NewThree filters returned the wrong rows
BeeL
Get StartedMulti-NIFVeriFactuStripeAPI ReferenceChangelog
Emails

Get an email of the history

Scopeemails:read

Returns one recorded email with its message body (HTML and plain text), its attachments and, for batch emails, the invoices it carried.

  • body_available: the body is fetched live and is only available while the message has a provider message id and the provider still retains it; otherwise it is false and html_body / text_body are null.
  • An email that never left: QUEUED or REJECTED, it has no body for that reason.
  • Deprecated: use GET /v1/accounts/{account_id}/emails/{email_id}, which behaves identically.

GET
/v1/emails/{email_id}
AuthorizationBearer <token>

Keys are prefixed beel_sk_, and each one carries the scopes it was created with: a key short of the scope an operation needs is answered 403. The scope an operation requires is shown next to its title, and the full catalogue lives in the Scopes reference.

Keys are created from the BeeL dashboard. They are secret credentials: do not share them or commit them to source control.

In: header

Path Parameters

email_idstring

Email delivery id

Formatuuid

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

curl -X GET "https://app.beel.es/api/v1/emails/497f6eca-6276-4993-bfeb-53cbbbba6f08"
{
  "success": true,
  "data": {
    "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
    "email_type": "INVOICE_EMITTED",
    "recipients": [
      "string"
    ],
    "cc": [
      "string"
    ],
    "subject": "string",
    "related_entity_type": "INVOICE",
    "related_entity_id": "e94907ff-519b-4a75-b3bc-05aaf47d6339",
    "status": "QUEUED",
    "sent_at": "2019-08-24T14:15:22Z",
    "body_available": true,
    "html_body": "string",
    "text_body": "string",
    "attachments": [
      {
        "filename": "factura-A-2026-0001.pdf",
        "content_type": "application/pdf",
        "size": 0,
        "download_url": "string"
      }
    ],
    "related_invoices": [
      {
        "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
        "invoice_number": "A-2025-0002"
      }
    ]
  },
  "meta": {
    "timestamp": "2025-01-15T10:30:00Z",
    "request_id": "4bf92f3577b34da6a3ce929d0e0e4736"
  }
}
{
  "success": false,
  "error": {
    "code": "UNAUTHORIZED",
    "message": "Authentication is required to access this resource"
  },
  "meta": {
    "timestamp": "2025-01-15T10:30:00Z",
    "request_id": "4bf92f3577b34da6a3ce929d0e0e4736"
  }
}
{
  "success": false,
  "error": {
    "code": "FORBIDDEN",
    "message": "You do not have permission to access this resource"
  },
  "meta": {
    "timestamp": "2025-01-15T10:30:00Z",
    "request_id": "4bf92f3577b34da6a3ce929d0e0e4736"
  }
}
{
  "success": false,
  "error": {
    "code": "NOT_FOUND",
    "message": "Resource not found"
  },
  "meta": {
    "timestamp": "2025-01-15T10:30:00Z",
    "request_id": "4bf92f3577b34da6a3ce929d0e0e4736"
  }
}
{
  "success": false,
  "error": {
    "code": "INTERNAL_ERROR",
    "message": "Internal server error"
  },
  "meta": {
    "timestamp": "2025-01-15T10:30:00Z",
    "request_id": "4bf92f3577b34da6a3ce929d0e0e4736"
  }
}
{
  "success": false,
  "error": {
    "code": "UNSUPPORTED_MEDIA_TYPE",
    "message": "Unsupported media type: text/plain. Supported: application/json"
  },
  "meta": {
    "timestamp": "2025-01-15T10:30:00Z",
    "request_id": "4bf92f3577b34da6a3ce929d0e0e4736"
  }
}

List the email history GET

Returns the emails the system recorded on behalf of the authenticated account: invoice deliveries, verification, onboarding. It only reads the history; it does not send or resend anything. - **Deprecated:** use `GET /v1/accounts/{account_id}/emails`, which behaves identically. - **Every attempt is recorded**, not only the ones that went out: an email stopped by policy is listed with `status` `REJECTED`, and one accepted but not dispatched yet as `QUEUED`, rather than being omitted. - **Order:** by `sent_at` descending, configurable with `sort_by` / `sort_order`. - **Filters:** `type`, `status`, `recipient` and `related_entity_id`. - **`sent_at`:** the moment the message was handed over, so it is absent while an email is still `QUEUED`.

Get the email indicators of several entities GET

Returns, for each related entity id given, how many emails the history holds for it, the status of the most recent one and when it was sent. Lets you show the state of an entity's email without loading its full history. - **`last_status`:** carries whatever the latest attempt ended in, `REJECTED` and `QUEUED` included, so a `count` above zero does not mean an email reached anyone. - **Ids with no associated emails:** omitted from the response rather than returned with `count` 0. - **Deprecated:** use `GET /v1/accounts/{account_id}/email-indicators`, which behaves identically. The successor is a sibling of the email collection, not `…/emails/indicators`: `indicators` used to sit where an email id goes.