Email
Marketing
SMS
- List SMS GET
- Send an SMS POST
- List suppressed numbers GET
- Add a number to the SMS suppression list POST
- Check whether a number is suppressed GET
- Retrieve an SMS suppression GET
- Remove a number from the SMS suppression list DELETE
- List received SMS GET
- Retrieve a received SMS GET
- List the organization's phone numbers GET
- Retrieve an SMS GET
- List an SMS's events GET
- Cancel a scheduled SMS POST
Hooks
Risk
Platform
List SMS
GET
/v1/sms
Messages sent from the API key's environment, newest first. Pass the last id as after to get the next page while has_more is true.
bearerAuthheader
AuthorizationBearer <token>A secret API key from the dashboard: coss_live_… for production environments, coss_test_… for sandbox environments.
to?stringOnly messages to this number.
Match
^\+[1-9]\d{6,14}$status?stringOnly messages in these statuses, comma-separated: failed.
created_after?stringOnly messages created at or after this time.
Format
date-timecreated_before?stringOnly messages created before this time.
Format
date-timelimit?integer1-100, default 20.
Range
1 <= value <= 100after?stringCursor: the id of the last item of the previous page.
Length
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.
Value in
"2026-10-10"A page of messages.
application/json- response
- response
- …
object*"list"Value in
"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.sms.list();{ "object": "list", "data": [], "has_more": false}