Skip to main content
Credits are prepaid and cover both OTP and transactional SMS. One credit has a fixed price; a message costs a number of credits that depends on where it lands, and on which network answers for the number. GET /v1/pricing publishes the table that bills your messages. It needs no API key, and it is the same table the price page and the dashboard read.

Reading a country

Countries are ordered cheapest first. min_credits and max_credits are equal where every number to a country costs the same. Where they differ, the rate depends on the recipient’s network: a Nigerian number on Glo costs 3 credits, and one on any other network costs 1. An unlisted destination is still sendable and still charged at the price shown. The +1 territories are routed so those numbers keep working, and they are not destinations Robase markets.

What you are actually charged

Two things decide the charge on a send:
  1. The network. Robase identifies the recipient’s network from the number and applies that telco’s rate. When it cannot, the country’s credits applies.
  2. The parts. A long message is split by the carrier and billed per part, so a two-part message to Nigeria costs two credits, not one. See Segments and encoding.
The response to POST /v1/sms/send carries the credit_cost that was actually charged, along with segments.

Caching

Prices change rarely. The endpoint sets Cache-Control: public, max-age=60, and the server holds a built table for the same minute, so polling it more often than that returns the same answer.