Docs
Get an API key
API reference›Embeddings

List Embedding Models

GET /v1/embeddings/models No API key needed View .md

The live embedding models in OpenRouter's public model shape (data, total_count, links), for OpenRouter's embeddings.listModels(). Each entry has output_modalities: ["embeddings"], the context length and the price per input token in pricing.prompt, the same as GET /v1/models lists for it. Public like GET /v1/models.

  • offset integer

    Models to skip. Offset and limit both omitted is the whole list.

    default 0at least 0
  • limit integer

    Models per page, once offset or limit is set.

    default 500range 1–1000

OK

application/json · openrouter-public-models-response

3 fields
  • data array of objects required
    21 fields
    • id string required
    • canonical_slug string required

      The model id.

    • hugging_face_id string or null
    • name string required
    • created integer required

      Unix timestamp.

    • description string
    • context_length integer or null required

      Tokens the model reads. Null for models that have no token context (image, video, speech, transcription, alignment).

    • architecture object required
      5 fields
      • input_modalities array of strings required
      • output_modalities array of strings required
      • modality string required
      • tokenizer string
      • instruct_type string or null
    • pricing object required
      4 fields
      • prompt string required
      • completion string required
      • internal_reasoning string
      • input_cache_read string
    • top_provider object required
      3 fields
      • context_length integer or null
      • max_completion_tokens integer or null
      • is_moderated boolean required
    • per_request_limits object or null required
    • supported_parameters array of strings required
    • default_parameters object or null required

      The model row's sampling defaults, limited to temperature, top_p, top_k, frequency_penalty, presence_penalty and repetition_penalty.

      6 fields
      • temperature number
      • top_p number
      • top_k integer
      • frequency_penalty number
      • presence_penalty number
      • repetition_penalty number
    • supported_voices array of strings or null required

      A speech model's voice ids; null for every other model.

    • supported_languages array of strings

      Not in OpenRouter's Model: the languages a speech model's card names, which language takes by name, ISO 639-1 code or BCP 47 tag (or auto); an alignment model's are the ISO 639-1 codes it can spell. Absent for every other model and for one whose card names none.

    • links object required
      1 field
      • details string required
    • reasoning object

      Present on reasoning models. Fields the gateway does not know are left out, never null.

      5 fields
      • mandatory boolean required
      • supports_max_tokens boolean
      • supported_efforts array of strings
      • default_effort string
      • default_enabled boolean
    • quality_tiers object

      Not in OpenRouter's Model. Present on a model whose image, video or audio output is offered in quality tiers (minimax-h3; ace-step-1.5's music, whose tiers are engine models with null steps and step_range), keyed by that output modality; absent on every other model. Each list is in the model's order, cheapest first, and a request asks for a tier with quality set to its name or one of its aliases. The provider document's schema has no field for this list, which is why only this shape carries it; there the same tiers are the quality values and the price overrides.

    • rate_limits object

      Not in OpenRouter's Model (its per_request_limits is about tokens). What one subscription may send this model, keyed by output modality, as the API enforces it: each model category has its own defaults, and a model may have its own limits in place of them, higher or lower. A request over requests_per_minute is a 429 until the minute turns over; one over concurrent_requests waits its turn for up to two minutes, then is a 429. For video and music, which are jobs, active_jobs is how many may be pending or rendering at once, and a new job beyond it is a 429. Every response gives Retry-After.

    • input_limits object

      Not in OpenRouter's Model. What one chat request may carry of each media input, keyed by input modality (image, video, audio); absent on models other than chat. max_bytes is the most one item may be, whether it is sent as a link, a data URI or base64: a larger one is a 400. max_items is how many of that input one request may carry, where the model's engine sets a count: a request with more is a 400. Without max_items the model's context window is the bound.

    • price_options object

      Not in OpenRouter's Model. Every combination of the settings that change the price that a request can buy, keyed by output modality (image, video, audio); absent on a model where no setting changes the price. Derived from the model's capability spec: each combination is one the API accepts, so a combination it refuses is not listed (minimax-h3's 4K video runs Turbo only, so 4K at Standard, Max or Ultra is absent; its 2K is listed at every tier). A video option is a quality tier at a resolution, a still's a quality tier, since the size scales the megapixels and not their price, and, where references are billed, the number of image references sent (minimax-h3's reference stills: each quality tier at 1 to 9 references).

      The options name the quality tiers only. A raw step count (num_inference_steps for video, steps for stills) bills the tier whose step_range holds it (minimax-h3: 10 to 20 at Standard's 1.5x, 21 to 40 at Max's 3x, 41 to 50 at Ultra's 5x), so these are every price a request can pay, and 4K video takes only the Turbo count.

  • total_count integer required

    Models matching the filters, before paging.

  • links object required
    1 field
    • next string or null required

      Path and query of the next page, or null on the last.

curl https://api.vultrinference.com/v1/embeddings/models
Response · 200
{
    "data": [
        {
            "id": "glm-5.3",
            "canonical_slug": "string",
            "name": "string",
            "created": 0,
            "context_length": 0,
            "architecture": {
                "input_modalities": [],
                "output_modalities": [],
                "modality": "text+image->text",
                "tokenizer": "Other"
            },
            "pricing": {
                "prompt": "0.00000055",
                "completion": "0.00000275"
            },
            "top_provider": {
                "is_moderated": null
            },
            "per_request_limits": {},
            "supported_parameters": [
                "temperature",
                "top_p",
                "max_tokens",
                "tools"
            ],
            "default_parameters": {
                "temperature": null,
                "top_p": null,
                "top_k": null,
                "frequency_penalty": null,
                "presence_penalty": null,
                "repetition_penalty": null
            },
            "supported_voices": [
                null
            ],
            "links": {
                "details": "/v1/model/vultr/glm-5.3"
            },
            "rate_limits": {
                "text": {
                    "requests_per_minute": 120,
                    "concurrent_requests": 16
                }
            },
            "input_limits": {
                "image": {
                    "max_items": 1,
                    "max_bytes": 20971520
                },
                "video": {
                    "max_items": 1,
                    "max_bytes": 52428800
                },
                "audio": {
                    "max_items": 1,
                    "max_bytes": 52428800
                }
            }
        }
    ],
    "total_count": 0,
    "links": {
        "next": "/v1/models?offset=500&limit=500"
    }
}