Environment and API keys
Permissio publishes one OpenAPI document and serves one host. Sandbox and production are not separate hostnames — they are different API key prefixes against the same base URL.
| What | Value |
|---|---|
| Base URL | https://api.permissio.us |
| Sandbox keys | sk_test_… |
| Production keys | sk_live_… |
| OpenAPI spec (YAML) | https://api.permissio.us/api/openapi/public.yaml |
| OpenAPI spec (JSON) | https://api.permissio.us/api/openapi/public.json |
A single sk_test_… request hits sandbox. The same request with an sk_live_… key hits production. There is no per-environment URL or Host: header to switch — the prefix on the key is the routing decision.
The interactive explorer at /api/explorer reflects this. There is no server picker; pick the environment by which key you paste in.
In CI, run pnpm --filter @workspace/docs run openapi:lint to validate the spec against the Redocly ruleset bundled with this site. To pull the latest spec from the live publishing pipeline, set PERMISSIO_OPENAPI_URL and run pnpm --filter @workspace/docs run openapi:sync (then openapi:clean and openapi:gen). See CONTRIBUTING.md for the full sync recipe.