Create an inbox filter

POST
/filters

Evaluated when listing, so it also hides past emails, and deleting it brings them back. Addresses and domains are stored lowercase; a leading @ on a domain is dropped. A label filter must reference a label of the workspace. Supports Idempotency-Key.

Authorization

apiKey
Authorization<token>

Your 48 character Emelia API key, the same as for the Emelia API, sent as is (a Bearer prefix is tolerated). Create it at https://v3.emelia.io/settings/api. Disabling a key can take up to 5 minutes to apply to the Inbox API.

In: header

Header Parameters

Idempotency-Key?string

Any unique string (a UUID). The first successful response is stored 24 hours and replayed with Idempotent-Replay: true for the same key, method, URL and body. Same key with another body: 409 CONFLICT. Original call still running: 409 CONFLICT. Failed calls (status 400 and above) release the key. Keys are scoped to the workspace, not to the API key: two integrations of the same workspace must not reuse values. Replays count in the quotas.

Lengthlength <= 255

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

sender: an email address, exact match, case insensitive. domain: a domain such as example.com (leading @ dropped). subject: text contained in the subject. label: id of a manual or AI label of the workspace.

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

application/json

application/json

application/json

curl -X POST "https://example.com/filters" \  -H "Authorization: YOUR_API_KEY" \  -H "Idempotency-Key: 3f6c1b2e-7d4a-4f0e-9a51-acme00000001" \  -H "Content-Type: application/json" \  -d '{    "type": "domain",    "value": "newsletter.example.com"  }'
{  "filter": {    "id": "cmflacme0000000000000001",    "type": "domain",    "value": "newsletter.example.com",    "label": null,    "createdAt": "2026-10-01T12:00:00.000Z",    "updatedAt": "2026-10-01T12:00:00.000Z"  }}