List contacts

GET
/v1/contacts

The contacts of the API key's environment, newest first. 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

email?string

Only the contact with this address.

status?string
Value in"subscribed""unsubscribed""pending"
audience_id?string

Only members of this audience.

limit?integer

1-100, default 50.

Range1 <= value <= 100
after?string

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

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 contacts.

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.contacts.list();
{  "object": "list",  "data": [    {      "object": "contact",      "id": "contact_01k7c8m4q2f3e9v6t5r1n0p8yz",      "email": "ada@example.com",      "first_name": "Ada",      "last_name": "Lovelace",      "status": "subscribed",      "properties": {        "plan": "pro",        "seats": 5      },      "source": "api",      "subscribed_at": "2026-10-10T12:00:00.000Z",      "unsubscribed_at": null,      "confirmed_at": null,      "created_at": "2026-10-10T12:00:00.000Z",      "updated_at": "2026-10-10T12:00:00.000Z"    }  ],  "has_more": false}