SMS
Recent SMS delivery reports
GET /v1/sms/delivery-reports
- Scope
sms:read- Tier
- Tier 1
- Data
- Personal data
- Idempotency
- Idempotency-Key: not used
The most recent outbound SMS of the account, newest first, up to limit (not paginated in v1). The message text is not returned. status is what the provider reported; delivered needs a carrier receipt, which not every route sends.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
limit | query | integer | no | (min 1; max 100; default 50) |
X-Correlation-ID | header | string | no | Your own trace value, logged with the request. Metadata only, never identity. (min length 1; max length 128) |
Response
200: The reports.
| Header | Meaning |
|---|---|
X-Request-ID | The DialerBee request id. Quote it to support. Every response carries X-Request-ID: req_<ULID>, or edge_<32 hex> when the edge answered before the request reached the API. |
Cache-Control | Always no-store. |
Examples
Request example
curl
curl -sS -X GET \
"https://app.dialerbee.com/api/v1/sms/delivery-reports" \
-H "Authorization: Bearer $DIALERBEE_API_KEY"
Python (SDK)
from dialerbee import DialerBee
db = DialerBee() # reads DIALERBEE_API_KEY from the environment
result = db.sms.delivery_reports()
Response example
200
{
"data": [
{
"id": "msg_0f8fad5b-d9cb-469f-a165-70867728950e",
"to": "+12125550123",
"status": "delivered",
"sent_at": "2026-09-29T12:00:00Z",
"delivered_at": "2026-09-29T12:00:02Z",
"sender_id": "ExampleCo",
"error": null
}
]
}
Error examples
403 insufficient_scope
{
"type": "https://docs.dialerbee.com/errors/insufficient-scope",
"title": "Not permitted",
"status": 403,
"detail": "The API client does not hold the scope this operation requires.",
"instance": "urn:dialerbee:request:req_01K6BZ3M9X4T7Q2V8N5R6P1W0C",
"code": "insufficient_scope",
"request_id": "req_01K6BZ3M9X4T7Q2V8N5R6P1W0C"
}
401 invalid_api_key
{
"type": "https://docs.dialerbee.com/errors/invalid-api-key",
"title": "Invalid API key",
"status": 401,
"detail": "The Authorization header is missing, is not Bearer dbk_live_..., or the key is not recognised, has expired or was revoked (one answer for every key problem, so a key's state is never revealed).",
"instance": "urn:dialerbee:request:req_01K6BZ3M9X4T7Q2V8N5R6P1W0C",
"code": "invalid_api_key",
"request_id": "req_01K6BZ3M9X4T7Q2V8N5R6P1W0C"
}
Errors
| Status | Code | Title |
|---|---|---|
| 401 | invalid_api_key | Invalid API key |
| 403 | api_access_disabled | API access disabled |
| 403 | ip_not_allowed | IP address not allowed |
| 403 | insufficient_scope | Not permitted |
| 400 | credential_in_url | Credential in URL |
| 400, 422 | validation_failed | Invalid request |
| 429 | rate_limit_exceeded | Too many requests |
| 503 | temporarily_unavailable | Temporarily unavailable |
| 503 | upstream_unavailable | Temporarily unavailable |
| 502 | upstream_invalid_response | Upstream error |
| 500 | internal_error | Internal error |
Objects
SmsDeliveryReportList
| Field | Type | Required | Description |
|---|---|---|---|
data | array of SmsDeliveryReport | yes |
SmsDeliveryReport
| Field | Type | Required | Description |
|---|---|---|---|
id | string (SmsMessageId) | yes | An outbound message (SMS or WhatsApp). msg_ + a lower-case UUID. |
to | string | yes | |
status | string | yes | |
sent_at | string (date-time) or null | yes | |
delivered_at | string (date-time) or null | yes | |
sender_id | string or null | yes | |
error | string or null | yes |