Retrieve a suppression
bearerAuthAuthorizationBearer <token>A secret API key from the dashboard: coss_live_… for production environments, coss_test_… for sandbox environments.
id*stringThe suppression's id.
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.
"2026-10-10"The entry.
application/json- response
object*"suppression""suppression"id*stringaddress*stringThe bare, lower-cased address.
scope*string* (every email) or a category.
reason*stringbounce: added after a permanent bounce. complaint: added after a spam complaint. manual: added one by one through the API or dashboard. import: added by a bulk import.
"bounce""complaint""manual""import"email_id*|The email whose bounce or complaint added this entry.
created_at*stringdate-timeimport { Coss } from "coss";const coss = new Coss({ apiKey: process.env.COSS_API_KEY, baseUrl: "https://api.coss.com",});const { data, error } = await coss.email.suppressions.get("sup_01k7c8m4q2f3e9v6t5r1n0p8yz");{ "object": "suppression", "id": "sup_01k7c8m4q2f3e9v6t5r1n0p8yz", "address": "user@example.com", "scope": "marketing", "reason": "manual", "email_id": null, "created_at": "2026-01-15T09:30:00.000Z"}Export the suppression list as CSV GET
The whole suppression list of the API key's environment (optionally filtered), oldest first, as CSV with the columns `address,scope,reason,created_at,email_id,id`. The file can be imported again as is. Values a spreadsheet would run as a formula are prefixed with `'`.
Import suppressions in bulk POST
Adds up to 1000 entries at once, with reason `import`. Each entry is validated on its own: invalid ones are skipped and listed in `invalid`, entries already on the list are left unchanged and counted in `existing`. Importing again is safe.