500Calls developer docs
The 500Calls API lets your software do what the dashboard does: send SMS in Nigeria, follow each message to its final status, and read your wallet balance and sender IDs. You pay from a prepaid naira wallet, and every request is authenticated with an API key that belongs to your organisation.
Base URL
Every endpoint lives under one base URL, over HTTPS only:
https://api.messaging.500calls.com/v1Before you start
- Create an account and verify your e-mail address.
- Request a sender ID and wait until it is approved and active.
- Top up your wallet.
- Create an API key in the dashboard under Developers, then API keys.
The quickstart walks through these steps and sends your first message.
What you can do
| Task | Endpoint |
|---|---|
| Send one SMS | POST /v1/sms/messages |
| Send one SMS to many recipients | POST /v1/sms/messages/bulk |
| Send a personalised batch | POST /v1/sms/messages/batch |
| Get a message and its status history | GET /v1/messages/{id} |
| List and search messages | GET /v1/messages |
| Cancel a scheduled or queued message | POST /v1/messages/{id}/cancel |
| Read your balance | GET /v1/balance |
| List your sender IDs | GET /v1/sender-ids |
The API reference documents every endpoint, field and error. You can also import the OpenAPI document into Postman or a code generator.
Conventions
- Requests and responses are JSON, sent as
Content-Type: application/json. - Money is a string with four decimal places next to
"currency": "NGN":"3.5000"is ₦3.50. - Times are RFC 3339 in UTC with milliseconds, such as
2026-09-28T10:15:30.123Z. - IDs carry a prefix:
msg_for messages,sid_for sender IDs,req_for requests. - Phone numbers come back in E.164 format, such as
+2348031234567. - Your code must ignore response fields and enum values it does not recognise. See versioning.