> ## Documentation Index
> Fetch the complete documentation index at: https://docs.robase.dev/llms.txt
> Use this file to discover all available pages before exploring further.

> ## Agent Instructions
> For chatbots and coding agents, start at /guides/ai-agents.
> Hosted MCP: POST https://api.robase.dev/mcp (Streamable HTTP). Auth: Authorization: Bearer robe_… or robe_agent_….
> Phase 1 tools: get_pricing, send_otp, verify_otp, get_otp, send_sms, get_sms. No payment or top-up tools.
> Call get_pricing; treat listed:true as marketed markets (NG, GH, KE, ZA, GB, BJ, CI, US). Do not invent countries or delivery percentages.
> Prefer OTP-shaped tests such as "Your Robase test OTP is 123456". Do not send Hello or Good morning as tests. Match errors on error.type.

# Changelog

> What shipped, dated from this repo's git history. Never invented.

Customer-visible work only. Dates match the public changelog at [robase.dev/changelog](https://robase.dev/changelog), which is taken from git.

<Update label="2026-09-20">
  **Hosted MCP for AI agents**

  Connect 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](/guides/ai-agents).
</Update>

<Update label="2026-09-15">
  **Sender IDs per country, with a funding requirement**

  A 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.
</Update>

<Update label="2026-09-15">
  **US destination rate is 100 credits (₦600); eight priced markets**

  The 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.
</Update>

<Update label="2026-09-15">
  **Request your own Nigeria Sender ID from the dashboard**

  Dashboard → 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.
</Update>

<Update label="2026-09-14">
  **Pricing comes from the routing table**

  `GET /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](/sms/pricing).
</Update>

<Update label="2026-09-13">
  **Per-message delivery timeline**

  `GET /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](/sms/delivery-timeline).
</Update>

<Update label="2026-09-12">
  **Auto top-up now emits `credit_balance.topped_up`**

  After 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 left**

  Overview 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.
</Update>

<Update label="2026-09-08">
  **Automatic GSM-7 rewriting for transactional SMS**

  Currency 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.
</Update>

<Update label="2026-08-29">
  **Webhook signing secret in the dashboard**

  The HMAC secret used to verify `X-Robase-Signature` is visible to the workspace and can be rotated without opening a ticket.
</Update>

<Update label="2026-08-21">
  **English and French workspace language**

  A 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.
</Update>

<Update label="2026-08-18">
  **Third upstream route and per-tenant routes**

  A 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.
</Update>

<Update label="2026-08-17">
  **Contact page and in-dashboard support tickets**

  Public contact at [robase.dev/contact](https://robase.dev/contact), and tracked tickets from [robase.dev/app/support](https://robase.dev/app/support) so OTP delivery questions are not a shared inbox.
</Update>

<Update label="2026-07-22">
  **Official Node, Go, and PHP SDKs**

  Shipped packages: `@robasedev/sdk`, `github.com/mantissatech/robase-sdk-go`, and `robase/sdk`. There is no Python package.
</Update>

<Update label="2026-07-10">
  **Sender-ID registration pack**

  Operators can generate sender-ID registration documents from the admin dashboard. Sender IDs are not a public self-serve API.
</Update>

<Update label="2026-07-06">
  **Transactional outbox and anti-spam refunds**

  Sends go through an outbox so a crash cannot drop a paid message. Traffic that anti-spam blocks is refunded in full.
</Update>

<Update label="2026-06-29">
  **Transactional SMS API**

  `POST /v1/sms/send` and `GET /v1/sms/{id}` use the same routing, failover, and prepaid credits as OTP.
</Update>

<Update label="2026-05-25">
  **SMS OTP API**

  Send and verify one-time passcodes with primary + fallback failover, `robe_` API keys, prepaid credits, and Paystack billing.
</Update>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.