Required headers
Every API request must include both of the following headers:businessId header scoping the request to a specific business. See the API overview and individual endpoint pages for which headers each endpoint expects.
Key format
x-api-keyvalues look likestl_followed by 32 hexadecimal characters, e.g.stl_c8e286ca55b0123e0b05da047494f585.x-api-secretvalues look likestl_test_orstl_live_followed by 64 hexadecimal characters.
stl_test_ or stl_live_ prefix on your secret determines whether a request is treated as sandbox or production traffic.
Live and test credentials are fully isolated from each other: they draw from separate rate-limit budgets and operate on separate data. A test key can never see or affect live data, and vice versa.
Generating and storing credentials
Generate an API key pair from the Interstellas dashboard under Settings → API Keys. Thex-api-secret is shown to you exactly once, at the moment it’s created or regenerated — store it securely right away, since you won’t be able to view it again afterward. If you lose it, you’ll need to regenerate a new one, which invalidates the old secret.
Rotating and revoking keys
You can regenerate yourx-api-secret or revoke an API key entirely from the dashboard at any time. Revocation takes effect within about 60 seconds — a key you’ve just revoked may continue to work briefly during that window, so don’t be alarmed if a request succeeds immediately after revoking.
Security best practices
- Store credentials in environment variables — never hard-code them in source files.
- Use
stl_test_...credentials in development andstl_live_...credentials only in production. - Revoke and regenerate a key immediately if you suspect it has been compromised.
- Grant keys only the scopes they need (see below).
Scopes
API keys carry a set of scopes, such astransfers:read, transfers:write, or customers:read. Where a scope check is enforced, a request made with a key that isn’t scoped for the endpoint it’s calling returns 403 Forbidden rather than 401 Unauthorized.
Every API key currently issued defaults to full access (
["*"]), and no endpoint currently enforces per-scope checks. Scoping is part of the credential model but isn’t yet gating any endpoint — don’t build authorization logic in your integration around it until your account team confirms it’s enforced for the endpoints you use.Rate limits
Rate limits are enforced per API client, per minute:
Your tier is assigned to your account based on your contract with Interstellas — it isn’t self-service. Live and test credentials draw from separate rate-limit budgets, so testing against sandbox won’t consume your production allowance.
Exceeding your limit returns
429, with a Retry-After header (seconds until you can retry):
Errors
A401 is returned whenever a request can’t be authenticated. The message is one of two generic buckets — a missing/malformed request ("Unauthorized") or recognized-but-wrong credentials ("Invalid credentials") — neither of which reveals which specific header or value was the problem: