- Check an email address POST
- Check an IP address POST
- Check a rate limit POST
- Classify content POST
- Assess an event POST
- Report an assessment's outcome POST
- Create a rate limit bucket POST
- Add an allow or block list entry POST
- Create a rule POST
- Delete a rate limit bucket DELETE
- Remove a list entry DELETE
- Delete a rule DELETE
- Forget a user DELETE
- Retrieve an assessment GET
- Retrieve the calibration GET
- Retrieve a rate limit bucket GET
- Retrieve a list entry GET
- Retrieve a rule GET
- Retrieve the risk settings GET
- List assessments GET
- List rate limit buckets GET
- List allow and block list entries GET
- List rules GET
- Update a rate limit bucket PATCH
- Update a rule PATCH
- Update the risk settings PATCH
List 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.
bearerAuthAuthorizationBearer <token>A secret API key from the dashboard: coss_live_… for production environments, coss_test_… for sandbox environments.
to?stringOnly emails with this recipient (in to, cc or bcc; the bare address, any case).
1 <= length <= 320recipient_status?stringOnly emails with a recipient in one of these statuses, comma-separated: bounced,complained. With to, that recipient's status.
status?stringOnly emails in these statuses, comma-separated: failed.
q?stringFree text, matched against the subject and the to addresses.
length <= 256category?stringOnly emails of this category.
^[A-Za-z0-9_-]{1,256}$batch_id?stringOnly the emails of this batch.
length <= 64created_after?stringOnly emails created at or after this time.
date-timecreated_before?stringOnly emails created before this time.
date-timelimit?integer1-100, default 20.
1 <= value <= 100after?stringCursor: the id of the last email of the previous page.
length <= 64Coss-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.
"2026-10-10"A page of emails.
application/json- response
- response
- …
object*"list""list"data*array<>has_more*booleanimport { 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}