Skip to main content
Customer-visible work only. Dates match the public changelog at robase.dev/changelog, which is taken from git.
Hosted MCP for AI agentsConnect Cursor, Claude, ChatGPT, or your own bot to https://api.robase.dev/mcp (Streamable HTTP) with an Agent API key from Dashboard → API keys. Phase 1 tools: get_pricing, send_otp, verify_otp, get_otp, send_sms, get_sms. Same prepaid credits and error types as REST. No payment or top-up tools. See AI agents.
Sender IDs per country, with a funding requirementA custom Sender ID request now names the country it is for, from the list we have opened (Nigeria today). An approved name is used for messages to that country and the platform sender covers the rest. Requests are open to workspaces that have bought 10,000 credits in total, used or not; bonuses and refunds do not count. The Sender IDs page shows the gap and links to billing with the difference filled in.
US destination rate is 100 credits (₦600); eight priced marketsThe United States destination charge is now 100 credits (₦600 per message). It was 10 credits (₦60). This is destination pricing on GET /v1/pricing — not the signup trial, which stays 10 free credits (₦60). Published priced markets are Nigeria, Kenya, Ghana, South Africa, the United Kingdom, Benin, Ivory Coast, and the United States. Canada remains operational +1 and is not marketed as a priced market.
Request your own Nigeria Sender ID from the dashboardDashboard → Sender IDs lists Robase and RAlerts, ready to use, and lets you request a custom name: pick the name, upload your CAC, sign once. We prepare and file the carrier letters and you follow the status on the request page and by email. No public API for this; sends keep using the workspace default.
Pricing comes from the routing tableGET /v1/pricing publishes what a credit costs and how many credits each destination charges, with per-telco rates where they differ. No API key needed. The price page and the new Pricing page in the dashboard both read it, so an operator’s change reaches every surface instead of waiting for someone to edit the website. See Pricing.
Per-message delivery timelineGET /v1/sms/{id} and GET /v1/otp/{id} return a timeline: each hop the message took (queued, sent, delivered, failed, blocked, and for OTPs verified and expired) with a stable reason token and a refunded flag read from the credit ledger. The dashboard message drawers show the same timeline in English and French. sms.failed, sms.blocked and otp.failed webhooks carry reason and refunded too, and sms.failed / otp.failed now fire when every provider refuses a send, not only on a carrier failure receipt. There is still no delivery-rate percentage; see Delivery timeline.
Auto top-up now emits credit_balance.topped_upAfter a successful automatic charge and credit add, workspaces subscribed to credit_balance.topped_up receive the same event as a manual Paystack or Flutterwave top-up. It did not fire on auto top-up before this change.Estimated days of credits leftOverview and Billing show about how many days of credits remain at the last seven days’ send rate (workspace timezone, refunds netted out). Fewer than three send-days in that window shows “Not enough recent usage to estimate,” not unlimited. This is not a delivery forecast.
Automatic GSM-7 rewriting for transactional SMSCurrency signs, curly quotes and emoji are rewritten or removed before a transactional SMS is measured, so one ₦ no longer pushes a message into an extra part. On by default per workspace; turn it off under Settings → General. OTP bodies are untouched.
Webhook signing secret in the dashboardThe HMAC secret used to verify X-Robase-Signature is visible to the workspace and can be rotated without opening a ticket.
English and French workspace languageA workspace picks the language for OTP/SMS bodies and for the emails we send the team. POST /v1/otp/send accepts an optional language override.
Third upstream route and per-tenant routesA third upstream SMS route joins the routing pool. Operators can pin one customer to specific routes for a country; credit cost still comes from the global route.
Contact page and in-dashboard support ticketsPublic contact at robase.dev/contact, and tracked tickets from robase.dev/app/support so OTP delivery questions are not a shared inbox.
Official Node, Go, and PHP SDKsShipped packages: @robasedev/sdk, github.com/mantissatech/robase-sdk-go, and robase/sdk. There is no Python package.
Sender-ID registration packOperators can generate sender-ID registration documents from the admin dashboard. Sender IDs are not a public self-serve API.
Transactional outbox and anti-spam refundsSends go through an outbox so a crash cannot drop a paid message. Traffic that anti-spam blocks is refunded in full.
Transactional SMS APIPOST /v1/sms/send and GET /v1/sms/{id} use the same routing, failover, and prepaid credits as OTP.
SMS OTP APISend and verify one-time passcodes with primary + fallback failover, robe_ API keys, prepaid credits, and Paystack billing.