aireserve_api_… (older
audacity_api_… keys keep working). There is no region, no credential chain,
no IAM role, and no signing. The SDKs resolve the key the way the AWS SDKs resolve
credentials, in priority order:
If no key can be resolved, the SDK fails fast with a clear client-side error
(
MissingApiKeyError or the language equivalent) — before any network call is made.
Keep keys in a secret manager or environment variable; never commit them.
Get an API key
Sign in to the portal, open API Keys in the sidebar, and click Create Key.
Restrict where a key can be used
Admins can narrow where requests carrying a key may come from. Every control below is evaluated at the API edge before any model work or spend, and a rejected request gets a clear403 naming the control (never the observed
address or country, and never the configured lists). The organization-level
controls also apply to portal sessions: a signed-in user on a blocked network
or in a disallowed country sees a short notice instead of the app until they
are back on an allowed connection.
IP allowlists and the organization IP blocklist
- Per key — an IP allowlist of IPv4/IPv6 addresses or CIDR ranges
(API Keys page → the key’s IP access). Requests from any other address
are rejected with
ip_address_not_allowed. - Per organization — an IP blocklist (dashboard → Governance →
IP blocklist). Matching API requests are rejected with
ip_address_blockedregardless of the key, and matching portal sessions are blocked.
Country restrictions
Country lists work on the source country of the request — the country the request’s network address resolves to — so an admin can think in “US only” or “US + Canada” instead of address ranges.
Organization lists cover every API key, domain sign-in (OIDC), and portal
session; MCP traffic is not covered. Platform operators (super admins) are
exempt so a mistaken list can always be corrected.
Rules worth knowing:
- A key can only narrow, never widen. The effective set for a key is the intersection of the organization allowlist (if any) and the key allowlist (if any). A key list containing a country the organization does not allow admits nothing for that country; the portal warns before saving such a list. The organization blocklist always applies on top.
- Unknown country fails closed under an allowlist. If the source country cannot be determined (the lookup failed, the address has no country, or it is a private address), the request is rejected whenever any allowlist is set. With only a blocklist configured there is nothing to match, so the request proceeds.
- Requests the platform makes on your behalf come from our infrastructure
in the United States — the Slack agent, the portal’s “Test key” button, and
similar integrations. An organization allowlist that excludes
USwill reject those too. - Rejections use the code
country_not_allowedand the messageRequests from your current country are not permitted by your organization's country restrictions…. The platform’s own geographic screen is separate and unchanged; its rejections keep theunsupported_country_region_territorycode.
Country restrictions are about where a request comes from, not where it
is processed. They are not a data-residency control: requests are processed
in the United States regardless of the countries you allow — see
Data privacy.