Quota
/ docs
Dashboard

Models

List every model the current bearer token can use, with pricing. OpenAI-compatible response shape — drop-in for any tool that calls /v1/models on the OpenAI SDK.

GEThttps://api.usequota.ai/v1/models
Drop-in for the OpenAI SDK
Point the OpenAI SDK at Quota and call client.models.list()— the response is the same { object: "list", data: [...] } envelope, with one extra pricing field per model so you can show prices without a second lookup.

Request

curl https://api.usequota.ai/v1/models \
  -H "Authorization: Bearer $QUOTA_API_KEY"

Response

{
  "object": "list",
  "data": [
    {
      "id": "gpt-4o-mini",
      "object": "model",
      "created": 1746823412,
      "owned_by": "openai",
      "pricing": {
        "prompt_per_1k_tokens": 0.00015,
        "completion_per_1k_tokens": 0.0006
      }
    },
    {
      "id": "anthropic/claude-sonnet-4",
      "object": "model",
      "created": 1746823412,
      "owned_by": "anthropic",
      "pricing": {
        "prompt_per_1k_tokens": 0.003,
        "completion_per_1k_tokens": 0.015
      }
    },
    {
      "id": "elevenlabs/eleven_multilingual_v2",
      "object": "model",
      "created": 1746823412,
      "owned_by": "elevenlabs",
      "pricing": {
        "prompt_per_1k_tokens": 0.00018,
        "completion_per_1k_tokens": 0
      }
    },
    {
      "id": "elevenlabs/scribe_v1",
      "object": "model",
      "created": 1746823412,
      "owned_by": "elevenlabs",
      "pricing": {
        "prompt_per_1k_tokens": 0.000111,
        "completion_per_1k_tokens": 0
      }
    },
    {
      "id": "elevenlabs/voice-conversion-v1",
      "object": "model",
      "created": 1746823412,
      "owned_by": "elevenlabs",
      "pricing": {
        "prompt_per_1k_tokens": 0.0025,
        "completion_per_1k_tokens": 0
      }
    }
  ]
}

Response fields

objectstringAlways "list".
dataarray<Model>One entry per model the bearer token can call.
data[].idstringModel ID. Pass this verbatim as model to /v1/chat/completions, /v1/messages, or /v1/audio/speech.
data[].objectstringAlways "model".
data[].createdintegerUnix seconds. Reflects the last time pricing for the model was updated, not the model's release date.
data[].owned_bystringProvider that hosts the model — derived from the ID prefix. openai for unprefixed IDs, anthropic for anthropic/*, google for google/*.
data[].pricing.prompt_per_1k_tokensnumberUSD per 1,000 input units. Unit depends on the model: tokens for chat models, characters for TTS, per-second-equivalent for STT (Scribe), and per-second-of-input-audio for V2V (voice-conversion-v1). See Audio › Pricing for the exact mapping on ElevenLabs models.
data[].pricing.completion_per_1k_tokensnumberUSD per 1,000 output tokens. 0 for TTS, STT, and V2V models — they have no completion-side cost (V2V output audio length is ≈ 1:1 with input).
The list is filtered to what your token can use
Quota returns only the models available under the current bearer token's scope and plan. App keys with model-restriction policies, OAuth tokens with narrowed model scopes, and provider keys missing from your environment all reduce the list. If you don't see a model you expect, check the app's allowed-models configuration in the dashboard.

Authorization

Requires the credits.read scope (the same scope used for balance lookups). Any developer key, sandbox key, or OAuth token with wallet-read access works. Unauthenticated requests return invalid_api_key.

Errors

401invalid_api_keyToken missing, revoked, or for the wrong environment.
403insufficient_scopeToken lacks the credits.read scope.