Skip to main content
An environment is an isolated space for your Endstate data. Every organization has one LIVE environment for production traffic, and can add sandboxes to build and test without affecting it. Use separate sandboxes for local development and continuous integration so automated tests do not touch the data or settings you work with by hand.

LIVE and sandboxes

Sandboxes are enabled per organization. Ask your Endstate contact to turn them on.

What a sandbox isolates

Each environment has its own:
  • Credentials. A server key or publishable key works only in the environment it was created in. The key you send selects the environment; there is no environment header, query parameter or separate host. Existing end_sk_ keys created before environments remain LIVE keys and keep working.
  • Data. Units, collections and everything attached to them, including chip pairings, taps, claims and transfers. External IDs are unique per environment, so the same external_id can exist in LIVE and in a sandbox.
  • Settings. Allowed browser origins, browser tap access, the default tap redirect URL and your sign-in provider settings. A new sandbox starts with no allowed origins and browser taps disabled, and never inherits LIVE sign-in settings.
  • Wallet identities. Signing in to a sandbox creates separate wallet identities, even when a person uses the same email address as in LIVE.
Products, media, branding and billing are shared by every environment in your organization.

Manage environments

To create, rename, archive, reactivate or delete a sandbox, or to create, rotate or revoke an environment’s server keys and publishable keys, contact your Endstate contact. Environments and keys cannot be managed through the API, and no API key can create an environment or another key.
  • Archive a sandbox to free a slot while keeping its data, history and identity mappings. Its keys stop working for data access but can still be revoked.
  • Reactivate an archived sandbox when your allowance has room for it.
  • Delete a sandbox only when it has no data, credentials or identities left. Archive a populated sandbox instead.
  • LIVE can be renamed but never archived or deleted.
Lowering your plan’s allowance keeps existing sandboxes and blocks new ones until usage falls below the limit.

Base URL

Send your requests to production unless your Endstate contact has set you up on staging. Staging runs separate data and separate credentials, so a production key will not authenticate there.

Developing without hardware

You can exercise the full tap flow before you have physical chips, in a sandbox or in LIVE. Pair a test chip with POST /v1/chips (is_test: true), generate a fresh single-use e value with POST /v1/test-helpers/taps, then exchange it for a session token with POST /v1/taps. Test chips behave identically to encoded chips in every API call. See Testing without hardware for a step-by-step walkthrough.

HTTPS

HTTPS is required. Plain HTTP requests return 426 Upgrade Required.

OpenAPI spec

The OpenAPI specification is served at https://api2.endstate.io/openapi.json.

Credentials and limits

See Organization settings for what you can read and change through the API. If you plan to call the API from a browser, two things are self-serve: your publishable key and your CORS origins. Confirm any rate limits with your Endstate contact.

Next steps

Quickstart

Make your first API call end to end.

Credentials

Learn how API keys and session tokens work.