Skip to main content

Sandbox and live

Sandbox and live are the same API on the same host, https://api.leeri.ai. The environment is chosen by the key you send: ak_sandbox_… keys run in sandbox, ak_live_… keys run live. To go to production you change the key and nothing else.

What differs​

Sandbox keyLive key
EngineThe real screening engine, run against your own account's dataThe same
Third-party data sourcesAnswered from stored answers only; a fresh lookup is never madeFresh lookups when needed
Quota and balanceNever usedUsed, see Rate limits and quotas
Rate ceiling10 requests per minute per route60 requests per minute per route
Transaction check without addressNot allowed: ADDRESS_REQUIREDAllowed for the assets that can derive it, see Supported assets

Because sandbox never makes a fresh lookup, an address with no stored third-party answer is screened without one. The verdict then says so: it can be returned as partial, with the reason listed in partial_reasons. A live key looks the answer up.

Environments are separate​

  • A check_id, batch id or verdict id created under one environment answers 404 NOT_FOUND under the other, exactly like an id that does not exist.
  • Webhook endpoints belong to one environment and receive only that environment's events. Each environment can have up to 20 active endpoints; the 21st answers 400. Every delivery states which environment it came from in its environment field.
  • Evidence reports carry the environment of the verdict they were issued for.

The test address​

To exercise the pending path without waiting for a real slow lookup, submit this address under a sandbox key:

FieldValue
assetBTC
address1PENDNGCHECKADDRESSFRSANDBXTEST99

As an address check it always answers status: "pending" with a check_id, so you can build and test your polling and webhook handling on day one. The same address under a live key completes normally; the switch never fires outside sandbox.

curl -s -X POST https://api.leeri.ai/v1/checks \
-H "Authorization: Bearer $LEERI_API_KEY" \
-H "Content-Type: application/json" \
-d '{"subject":"address","asset":"BTC","address":"1PENDNGCHECKADDRESSFRSANDBXTEST99"}'

Then poll GET /v1/checks/{check_id} until status leaves pending. Errors and limits are described in Errors.