Keyless means no signup or manually provisioned key. It does not mean that
stateful requests share an unauthenticated account. Each session owns only
its own quotes, assets, orders, idempotency records, and usage.
Use the CLI
The Batch Relay CLI creates and stores an anonymous session when a stateful command needs one:BATCHRELAY_API_KEY or configured API-key profile always takes
precedence. If an explicit key is rejected, the CLI reports that failure; it
does not silently fall back to an anonymous session.
Use the HTTP API
Create a session through the public API host:Capability boundary
An anonymous session uses the normal public Test Mode lane. It can validate orders, check compatibility, create quotes, ingest supported assets, submit sandbox orders, retrieve its own orders, and read its own usage. Provider selection follows the same sandbox availability and compatibility rules as abr_test_ key.
It cannot enter Live Mode, charge through Stripe, access a studio or event,
manage an account, or read another session’s records. Changing an
environment or provider field in a request cannot widen those permissions.
Template rendering is not keyless yet. The current render endpoint requires a
studio-owned API account and published-template entitlement; adding a safe
anonymous entitlement model is separate work.
Expiry and limits
Sessions expire after seven days by default. Create a new session after expiry; records owned by an expired anonymous session are not transferred to the new one. Anonymous use has operation-specific limits. A limited request returns429 anonymous_session_rate_limited and a Retry-After header. Wait for that
interval or move durable development and CI work to a scoped Test API key.