Documentation
Models
GET /v1/models returns the currently available model catalog. No authentication is required.
What the response includes
Identity & access
id— Model identifier used in API requestsowned_by— Provider name (e.g.openai,anthropic,google)endpoint— Which API endpoint this model works withtoken_multiplier— How many tokens count against your daily limit per actual tokenpremium— Whether this model requires a paid planrequired_plan— Minimum plan tier needed (if premium)
Capability metadata (pulled from the model's upstream catalog so clients can configure limits dynamically)
context_window— Maximum input context in tokens (integer | null)max_output_tokens— Maximum tokens the model can generate per response (integer | null)supports_vision,supports_tools/supports_function_calling,supports_reasoning,supports_json_mode,supports_audio_input,supports_image_output,supports_streaming— capability flags (boolean | null)input_modalities,output_modalities—array<string> | null(e.g.["text", "image"])modality— raw upstream modality string (e.g."text+image->text") ornulltokenizer— tokenizer name when known, otherwisenulldescription— short model description from the upstream catalog, ornullpricing—{ prompt, completion, image, request }per-token price strings (any field may benull), ornulloverallmetadata_source— which upstream provided the metadata:"openrouter","poe", ornullmetadata_status—"known"when capability metadata was resolved,"unknown"otherwise
> Unknown values are always returned as null (never 0). Treat null as "unknown" rather than as a real limit — for example, do not interpret "max_output_tokens": null as "this model can output 0 tokens".
Code examples
1curl https://api.navy/v1/modelsWhy it matters
- Populate model selectors dynamically
- Hide plan-locked models for the wrong tier
- Show endpoint compatibility before a request is sent