List sender IDs
GET/v1/sender-ids
Lists your sender IDs, newest first, with their status and whether each can be used to send now.
- Scope
sender_ids:read
Request
Every request needs an API key in the Authorization header, and the key needs the scope the endpoint names.
Parameters
statusqueryarray of stringOnly sender IDs with this status. Repeat it for several.
- One of: pending, approved, rejected, suspended, withdrawn
limitqueryintegerHow many items to return, from 1 to 100 (50 by default).
- From 1 to 100
- Defaults to 50
cursorquerystringThe
next_cursorof the previous page.- At most 256 characters
GET /v1/sender-ids?status=approvedResponses
200 OK
ReturnsSenderIdList
Your sender IDs on this page, newest first.
next_cursorstringor nullRequiredPass this back as
cursorfor the next page;nullon the last page.
Headers
Cache-ControlstringRequiredResponses are never cached.
RateLimit-LimitintegerRequests per second your account may sustain.
RateLimit-RemainingintegerWhole requests left in your account's bucket.
RateLimit-ResetintegerSeconds until the bucket is full again.
X-Request-IdstringRequiredThis request's ID, also given as
request_idin error bodies. Quote it to support.
{ "data": [ { "id": "sid_01M3KR6CEGVQVV5PV6Q9J1G6SP", "object": "sender_id", "created_at": "2026-09-20T09:00:00.000Z", "decided_at": "2026-09-21T11:30:00.000Z", "ready": true, "status": "approved", "status_reason": null, "updated_at": "2026-09-21T11:30:00.000Z", "usable": true, "value": "ACME" } ], "next_cursor": null}Errors
Each code links to its page. Branch on the code, never on the title or detail.
- 401 Unauthorized
- 403 Forbidden
- 413 Content Too Large
- 415 Unsupported Media Type
- 422 Unprocessable Content
- 429 Too Many Requests
- 500 Internal Server Error
- 503 Service Unavailable
{ "type": "https://docs.messaging.500calls.com/errors/validation_error", "title": "Validation error", "status": 422, "code": "validation_error", "detail": "1 field failed validation.", "request_id": "req_01M3KR6CQ26S90NG2V790GVFTX", "errors": [ { "field": "limit", "code": "out_of_range", "message": "Input should be greater than or equal to 1" } ]}Code samples
Each sample reads your key from the API_KEY_500CALLS environment variable.
curl 'https://api.messaging.500calls.com/v1/sender-ids?status=approved' \ -H "Authorization: Bearer $API_KEY_500CALLS"import osimport requestsresponse = requests.get( "https://api.messaging.500calls.com/v1/sender-ids?status=approved", headers={ "Authorization": f"Bearer {os.environ['API_KEY_500CALLS']}", }, timeout=30,)print(response.status_code, response.json())const response = await fetch("https://api.messaging.500calls.com/v1/sender-ids?status=approved", { headers: { Authorization: `Bearer ${process.env.API_KEY_500CALLS}`, },});console.log(response.status, await response.json());<?php$curl = curl_init('https://api.messaging.500calls.com/v1/sender-ids?status=approved');curl_setopt_array($curl, [ CURLOPT_HTTPHEADER => [ 'Authorization: Bearer ' . getenv('API_KEY_500CALLS'), ], CURLOPT_RETURNTRANSFER => true,]);$body = curl_exec($curl);$status = curl_getinfo($curl, CURLINFO_RESPONSE_CODE);echo $status, PHP_EOL, $body, PHP_EOL;