Product

Control, cap and account for every AI API call

A1 API Gateway gives each application, teammate and customer its own key to Anthropic, OpenAI and xAI models, and gives you the limits, the numbers and the audit trail behind every one of them.

New in this release: a model list, an environment and a monthly cap on every vendor key, and a record of every refused request. See what changed.

Virtual keys

A key for every consumer, with its own rules

Keys are shown once when they are created and stored only as a hash. Each one is named, has an owner, and carries its own limits.

  • An address list per key, or allow-anywhere if you deliberately choose it — plus a ten-minute window that adds exactly one new address when nobody can name it in advance.
  • Requests per minute, per day, per address, and a cap on concurrent requests.
  • Dollar budgets over the key's lifetime or per month, week, day or hour, with the time each one resets.
  • A tag for the environment a key belongs to, so a production key cannot be routed through a development vendor key by accident.
  • Restrict a key to particular models, or let it follow the vendor key it routes through as that key's list changes.
  • A per-key log of the addresses it was used from, of its requests, and of everything that was refused, with prompt and completion logging available per key when you want it.

Vendor keys and routing

Your vendor accounts, kept out of reach

Organisations can bring their own keys for Anthropic, OpenAI and xAI, several per vendor, told apart by a label such as production or testing.

  • Every vendor key is tested against the vendor before it is saved.
  • Secrets are encrypted with AES-256-GCM and are never returned by the API or written to logs.
  • Each vendor key carries its own list of models, so one key can serve the cheap models and another the expensive ones. Narrowing a list says first which virtual keys would lose which models.
  • Each vendor key can carry a monthly spend cap of your own, and a tag — development, staging or production.
  • Pick a default key per vendor, or bind an organisation or a single virtual key to a specific vendor key.
  • Spend is attributed to the vendor key that served it, so each vendor account can be reconciled on its own.

Spend and credit

Numbers you can take to finance

Every request is metered, priced in US dollars from the model's token rates, and recorded against the key, the model and the vendor key.

  • Own-key requests are billed to you by the vendor; the gateway meters and caps them without deducting anything.
  • Prepaid requests run on our vendor keys and are deducted from credit that can never go below zero.
  • A monthly ceiling for the whole organisation, on top of each key's budgets.
  • Daily reconciliation against Anthropic's and OpenAI's own usage reports, with differences flagged.

Consoles

A console for each organisation

Each organisation signs in at its own address, such as acme.a1apigateway.com. Two-factor authentication is required for everyone.

  • A dashboard of spend and requests by period, provider, model, vendor key and virtual key.
  • A Refusals page: everything the gateway turned away, what needs a look, and which of your limits are actually being hit and by how much.
  • Keys, vendor keys with their model lists, aliases, members and usage in one place.
  • Owner, admin and viewer roles, and invitations by email.
  • Alerts for budgets, the ceiling, credit and vendor-key health, by email or signed webhook.
  • An audit log recording who changed what, with the values before and after.

API

Change the base URL and the key

The OpenAI SDK, the Anthropic SDK and plain HTTP all work unchanged. Model names carry the vendor, such as anthropic/claude-sonnet-5, openai/gpt-5 or xai/grok-4.

EndpointWhat it does
POST https://api.a1apigateway.com/v1/chat/completionsChat with any supported model in the OpenAI format, streaming included
POST https://api.a1apigateway.com/v1/messagesClaude models through Anthropic's native Messages API
POST https://api.a1apigateway.com/v1/messages/count_tokensCount input tokens before sending a Claude request
GET https://api.a1apigateway.com/v1/modelsThe models this key may use, with what each one accepts
GET https://api.a1apigateway.com/v1/keyThis key's limits, budgets and routing

Every response carries x-gw-request-id and the model that actually served it in x-gw-model; a successful one also carries its exact cost in x-gw-cost-usd and the budget left in x-gw-budget-remaining-usd. Errors come back in the envelope your SDK already understands.

See it with your own workloads

We can walk you through it, or you can get started straight away.