Understanding sandbox vs. production
4 min read Updated October 22, 2026
Two environments
| Sandbox | Production | |
|---|---|---|
| Host | `sandbox.api.compliancegrid.ai` | `api.compliancegrid.ai` |
| Key prefix | `cg_sk_` | `cg_pk_` |
| Responses | Canned sample data | Live or synced data; `meta.dataSource.provenance` says which |
| Rate limit | 60/min, 1,000/day, 10,000/month; 50 risk-score calls a month | 300/min, 50,000/day |
| Subscriptions | Required, per API | Required, per API |
| Uptime commitment | None | See the SLA page |
Environment enforcement
A sandbox key only works on the sandbox host and a production key only on the production host; the wrong combination returns 403 environment_mismatch.
Sandbox behaviour
- Responses are static samples. They do not change with your request, so a screening in the sandbox does not tell you whether a party would match in production
- Endpoints without a sample return
{ "success": true, "sandbox": true, "data": {} } - Subscriptions are still required (use Subscribe to all in the Developer Portal)
- Webhooks you register are real deliveries to your URL
Where production data comes from
Each production response states its source in meta.dataSource: live (queried now), database (loaded by a scheduled job), computed, or seed (a small development sample, for example vessels, C-TPAT partners and DEA lookups). Read it before relying on a result.
Switching to production
1. Create a production key (cg_pk_...)
2. Subscribe to the APIs you need in the production environment
3. Change the host to api.compliancegrid.ai
4. If you use OAuth tokens, request a new token with the production key
Was this article helpful?