---
title: "Ingest .eml from Lambda (archive only)"
method: POST
path: "/public/email/inbox-ingest"
tags: ["Email - Public"]
---

# Ingest .eml from Lambda (archive only)

`POST /public/email/inbox-ingest`

Archive-only ingest. Match recipient against `Z_Mailboxes`
(Delivered-To → X-Original-To → To → Cc). If found → archive into
`stand-gest:{co}/{pv}/emails/...` and insert a `Z_EmailMessages` row.

No mailbox match → RECORD the drop in `Z_EmailIngestDrops` and answer 202.
Portal-lead emails (Standvirtual / OLX / Carmine / etc.) are owned by
Lambda's `BE_ENDPOINT` → `/email/inbound`, never this route.

Why 202 and not an error: the deployed SES Lambda's `_post_to_archive()`
swallows every outcome and never raises, so a status code alone changes
nothing observable — the durable row is the actual fix. And a 5xx would
make the second ingest Lambda retry a permanently unroutable address
forever. 202 = "accepted, not routed", which is honest and terminal.

## Headers

- `X-Origin-Verify` string, required
- `X-Mailbox` string, nullable
- `X-SES-Bucket` string, nullable
- `X-SES-Key` string, nullable

## Response `200`

Successful Response

- unknown

## Other responses

- `422` — Validation Error

---

[API](https://skmtc.dev/multigest/apis/multigest-protected-api.md) · [All operations](https://skmtc.dev/multigest/apis/multigest-protected-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/multigest/multigest-protected-api/revisions/8492136eefc5/schema)
