List emails

GET
/v1/emails

Emails sent from the API key's environment, newest first, without their content (retrieve an email for html, text, headers and attachments). Filter by recipient (to), by the email's or a recipient's status, by category, batch or creation time. Pass the last id as after to get the next page while has_more is true.

Authorization

bearerAuth
headerAuthorizationBearer <token>

A secret API key from the dashboard: coss_live_… for production environments, coss_test_… for sandbox environments.

Query Parameters

to?string

Only emails with this recipient (in to, cc or bcc; the bare address, any case).

Length1 <= length <= 320
recipient_status?string

Only emails with a recipient in one of these statuses, comma-separated: bounced,complained. With to, that recipient's status.

status?string

Only emails in these statuses, comma-separated: failed.

q?string

Free text, matched against the subject and the to addresses.

Lengthlength <= 256
category?string

Only emails of this category.

Match^[A-Za-z0-9_-]{1,256}$
batch_id?string

Only the emails of this batch.

Lengthlength <= 64
created_after?string

Only emails created at or after this time.

Formatdate-time
created_before?string

Only emails created before this time.

Formatdate-time
limit?integer

1-100, default 20.

Range1 <= value <= 100
after?string

Cursor: the id of the last email of the previous page.

Lengthlength <= 64

Header Parameters

Coss-Version?"2026-10-10"

The API version (a date) to use for this request. Defaults to your organization's version, pinned to the latest one when it first used the API and upgraded from the dashboard. The SDK always sends the version it was built for.

Value in"2026-10-10"

Response Body

A page of emails.

application/json
  1. response
object*"list"
Value in"list"
data*array<>
has_more*boolean
import { Coss } from "coss";const coss = new Coss({  apiKey: process.env.COSS_API_KEY,  baseUrl: "https://api.coss.com",});const { data, error } = await coss.email.list();
{  "object": "list",  "data": [    {      "object": "email",      "id": "email_01k7c8m4q2f3e9v6t5r1n0p8yz",      "from": "Acme <onboarding@acme.com>",      "to": [        "user@example.com"      ],      "cc": [],      "bcc": [],      "reply_to": [],      "subject": "Welcome to Acme",      "tags": [        {          "name": "template",          "value": "welcome"        }      ],      "category": "onboarding",      "status": "sent",      "failure": null,      "recipients": [        {          "address": "user@example.com",          "type": "to",          "status": "delivered",          "last_event_at": "2026-10-10T12:00:02.000Z"        }      ],      "sandbox": false,      "tracking": {        "opens": false,        "clicks": false,        "open_count": 0,        "first_opened_at": null,        "last_opened_at": null,        "click_count": 0,        "first_clicked_at": null,        "last_clicked_at": null      },      "created_at": "2026-10-10T12:00:00.000Z",      "sent_at": "2026-10-10T12:00:01.000Z",      "scheduled_at": null,      "batch_id": null    }  ],  "has_more": false}