kurrier
Configuring Providers

Inbound API

Submit raw RFC 822 or EML messages to a Kurrier mailbox through the hosted API.

Inbound API

The Inbound API lets an application submit a raw email message directly to Kurrier. Kurrier parses and stores the message, then makes it available in the selected inbound identity's Inbox.

Use this integration when your application already receives or generates RFC 822/EML messages and you want Kurrier to provide the mailbox, search, and inspection experience.

The Inbound API is intended for application integrations. If you want to receive internet email for your own domain, connect a supported inbound provider instead.

Create an inbound identity

Kurrier Inbound provider

  1. Open Settings → Providers → Inbound.
  2. Select Create Identity.
  3. Enter a descriptive label, such as Order Testing.
  4. Save the identity.
  5. Copy the identity ID shown by Kurrier.

Kurrier creates an internal address similar to:

order-testing@inbound.kurrier

This address identifies the mailbox inside Kurrier. It is not a public SMTP address and does not receive internet mail directly.

Create a Kurrier inbound identity

Create an API key

Inbound requests use a Kurrier API key. Create a key with only the permissions required by your integration, and store it in your application's secret manager.

Send the key as a bearer token:

Authorization: Bearer YOUR_API_KEY

See API authentication for API-key setup and management.

API keys are secrets. Never place one in browser code, commit it to a repository, or include it in a support request.

Submit a message

Send a POST request to your hosted Kurrier inbound endpoint:

POST https://YOUR_KURRIER_HOST/api/kurrier/inbound

Include the destination identity and content type:

X-Kurrier-Identity: YOUR_IDENTITY_ID
Content-Type: message/rfc822

Example

curl -X POST 'https://YOUR_KURRIER_HOST/api/kurrier/inbound' \
  -H 'Authorization: Bearer YOUR_API_KEY' \
  -H 'X-Kurrier-Identity: YOUR_IDENTITY_ID' \
  -H 'Content-Type: message/rfc822' \
  --data-binary $'From: sender@example.com\r\nTo: order-testing@inbound.kurrier\r\nSubject: Test message\r\nMessage-ID: <test-001@example.com>\r\n\r\nHello from the Kurrier Inbound API.'

Replace YOUR_KURRIER_HOST with the host used by your Kurrier workspace.

Submit an EML file

You can submit an existing .eml file without converting it to JSON:

curl -X POST 'https://YOUR_KURRIER_HOST/api/kurrier/inbound' \
  -H 'Authorization: Bearer YOUR_API_KEY' \
  -H 'X-Kurrier-Identity: YOUR_IDENTITY_ID' \
  -H 'Content-Type: message/rfc822' \
  --data-binary @message.eml

Use --data-binary so that curl preserves the message body and line endings.

Kurrier supports standard MIME messages, including HTML, plain text, multipart content, headers, and attachments.

Successful response

A successful request returns the matched identity and stored message:

{
  "success": true,
  "data": {
    "identity": {
      "id": "YOUR_IDENTITY_ID",
      "value": "order-testing@inbound.kurrier"
    },
    "message": {
      "...": "..."
    }
  }
}

The message then appears in the inbound identity's Inbox.

Duplicate messages and retries

Provide a stable, unique Message-ID for every distinct message:

Message-ID: <unique-id@example.com>

Kurrier uses message identity while storing mail. Retrying the same message may therefore be treated as a duplicate instead of producing another mailbox entry.

Common uses

  • Importing RFC 822 or EML messages
  • Email testing and QA environments
  • Application-generated test messages
  • Forwarding mail received by another service
  • Custom inbound-processing pipelines

If a valid request does not create a message, confirm the identity ID, API-key permissions, content type, and raw message structure before contacting Kurrier Support.

On this page