List SMS messages
List the team's SMS messages, newest first, with a cursor for the next page.
GET
https://app.usenotix.dev/api/v1/smsFull access and read only keys can call this. Sending access keys cannot. Key permissions lists the extra rules some calls have.
List the team's SMS messages, newest first, with a cursor for the next page. Filter by status and page with cursor and limit (default 50, max 100). Needs a full access key.
| Status | Meaning |
|---|---|
queued | Charged, waiting for the provider. |
sent | Accepted by the network. |
delivered | Confirmed delivered by the provider's delivery report. |
failed | Not delivered after being sent. The charge stands. |
rejected | Refused before delivery. The charge was returned. |
Query parameters
cursorstring
limitinteger
Minimum 1. Maximum 100. Default 50.
statusstring
One of queued, sent, delivered, failed, rejected.
Headers
Authorizationstringrequired
Bearer followed by your API key.
Errors
400
Invalid cursor, limit or status.
Every error has the same shape. See all error codes.
curl -X GET "https://app.usenotix.dev/api/v1/sms" \
-H "Authorization: Bearer $NOTIX_API_KEY"
import { Notix } from "notix-js";
const notix = new Notix(process.env.NOTIX_API_KEY);
const { data, error } = await notix.sms.list({ limit: 20, status: "failed" });
from notix import Notix
notix = Notix() # reads NOTIX_API_KEY
page, _ = notix.sms.list(limit=20, status="failed")
use Notix\Notix;
$notix = new Notix(getenv('NOTIX_API_KEY'));
$page = $notix->sms->list(['limit' => 20, 'status' => 'failed']);
Response200
{
"data": [
{
"id": "sms_abc123",
"to": "+234*******5678",
"status": "queued",
"segments": 1,
"network": "MTN",
"charge": {
"currency": null,
"amount": null
},
"reason": {
"code": "not_reachable",
"message": "Recipient number not reachable."
},
"createdAt": "2026-09-08T10:00:00.000Z",
"updatedAt": "2026-09-08T10:00:05.000Z"
}
],
"nextCursor": "string"
}