Skip to main content
A sandbox is a separate, isolated ION tenant that starts blank. Use one to build and test an integration against the ION API without affecting production.

When to use a sandbox

Use a sandbox whenever you’re:
  • Building a new integration, such as an ETL, MES, ERP, Slack bot, or custom dashboard.
  • Testing destructive operations, such as bulk inventory adjustments or mass run cancellations.
  • Reproducing a customer support issue without touching live data.
  • Running automated CI tests against the API.
  • Onboarding a new developer who needs API access without production credentials.
If you’re only reading data for a one-off report or analysis, production with a read-only API key works too. If you’re writing data, use a sandbox first.

Requesting access

To request a sandbox environment, contact support with:
  • Why you need a sandbox, including which integration you’re building.
  • Who needs access, as a list of users or service accounts.
A typical sandbox is provisioned within a few business days, starting as a blank org. Sandboxes don’t count against your production seat license. Heavy or long-lived sandbox usage can have contract implications. The support team confirms this if it applies.

Differences from production

The most common stumbling block is auth credentials. API keys and OAuth apps are environment-scoped, so you have to register them inside the sandbox tenant. Production credentials used against the sandbox, or the other way around, return 401 Unauthorized.

What data is available

A sandbox always starts as a blank org. You populate parts, procedures, and runs yourself, or request a copy of your production data from support. Production data syncs into your sandbox on a recurring cadence, weekly or monthly, that you set up with support. A one-time or on-demand sync isn’t available.

Best practices

  • Seed test data programmatically. A script that creates a full part, procedure, run, and installation chain is easier to re-run than rebuilding state by hand each time the sandbox resets.
  • Tag webhook payloads. When testing webhooks, prefix the consumer URL or set a header such as X-Test-Run: 1, so your downstream system can tell sandbox-driven events apart from real ones.

Promoting an integration from sandbox to production

When your integration works in sandbox and you’re ready for production:
  1. Register production credentials. Create a new API key or OAuth app registration in the production tenant. Don’t reuse sandbox credentials.
  2. Swap the environment config. Update your service’s environment variables, such as ION_BASE_URL and ION_TOKEN, to point at production.
  3. Verify with read-only operations first. Start with me or a list query before any mutations.
  4. Roll out gradually. If your integration writes to ION, ramp the volume rather than turning it on at full throughput. Watch for 4xx error rates and back off if they spike.
Sandboxes share infrastructure with other tenants. ION throttles sustained high-volume tests, such as 10,000 QPS.
Your sandbox runs on ION’s staging environment, which is why its URLs use a staging domain prefix. “Sandbox” and “staging” refer to the same environment.