Sandbox and live

Every account has a sandbox and a live side. They have separate wallets, data and API keys.

Every account exists twice: a sandbox and a live side. They are separate in every way that matters, so nothing you do while testing can touch real money or real orders.

SandboxLive
Orders are filled byA built-in test provider (or the registrar's own test environment, for domains)Real upstream providers
WalletTest funds you add yourselfReal funds
API keys start withrhq_test_rhq_live_
Numbers, domains, mailboxesNot realReal
Webhook endpointsIts own listIts own list

Choosing a side

In the dashboard, use the Sandbox / Live switch at the top right. New accounts start in the sandbox.

In the API, the key decides. A rhq_test_ key can only ever reach the sandbox, and a rhq_live_ key can only ever reach the live side. There is no parameter to switch.

Create each key on the side you want it for: switch the dashboard to that side, then open Developers.

What the sandbox does

  • Test funds. Add them from the Wallet page. They cannot be withdrawn or spent on the live side.
  • Phone numbers are issued instantly from a +1 555 range and never receive real SMS. Send one a test message from its page in the dashboard.
  • Domains, on a deployment configured for it, go to the registrar's own test environment (OT&E): names are really registered there, behave like real registrations, resolve nowhere and cost nothing. Otherwise the built-in test provider answers, where whether a name is "available" is a fixed function of the name, so the same search always gives the same answer.
  • Mailboxes are not created at Google. They come up within seconds with realistic sign-in details that don't work anywhere. See Mailboxes.
  • Prices in the sandbox are test prices. Do not quote them to customers.
  • Webhooks are real: events are signed and delivered to your endpoint exactly as on the live side.

What is open on the live side

Phone numbers are live on accounts that have a carrier enabled. Domains need a registrar key on the deployment, and mailboxes need a mailbox provider key; while either is missing, that product's routes answer 422 not_available on the live side.

GET /v1/account tells you what the calling key can order:

{
  "environment": "sandbox",
  "products": { "numbers": true, "domains": true, "licences": true }
}

products.licences is about mailbox licences, which are no longer sold. It does not cover mailboxes. To see whether mailboxes can be ordered, call GET /v1/mailboxes/price: it answers 422 not_available where they cannot.