Skip to main content
GET
cURL
These examples use the direct API host, https://api.nano-gpt.com. It has no IPv6 address, so clients with only IPv6 should use https://nano-gpt.com with the same paths. See API Hosts.

Overview

The /api/v1/models endpoint provides a list of available text generation models. It supports optional detailed information including capabilities, supported service tiers, and pricing data. The endpoint maintains full backwards compatibility while adding powerful new features. The default response deliberately stays close to OpenAI’s minimal Models API shape. Enhanced fields such as supported_service_tiers are returned only when you add ?detailed=true. For non-text model catalogs, use the dedicated catalog endpoints: Decision models answer typed questions through the Decisions API and reject plain chat requests, so the text model lists leave them out unless you ask for them with output_modalities. For API-only distillation metadata and filtering, see Distillation Policy.

Notable Model IDs (Examples)

Model availability changes frequently. Use GET /api/v1/models as the authoritative source of callable IDs. Examples below include canonical IDs and public moving aliases; legacy compatibility aliases are intentionally omitted.
  • OpenAI: openai/gpt-6.1-sol, openai/gpt-6-astra, openai/gpt-latest
  • Anthropic: anthropic/claude-opus-5.5, anthropic/claude-sonnet-5.5, anthropic/claude-fable-5.1
  • Google Gemini: google/gemini-flash-latest, google/gemini-3.8-flash, google/gemini-3.1-pro-preview
  • SpaceXAI Grok: x-ai/grok-4.7, x-ai/grok-latest
  • Moonshot Kimi: moonshotai/kimi-k3.1-pro, moonshotai/kimi-k3, moonshotai/kimi-latest
  • Z.AI GLM: z-ai/glm-5.3, z-ai/glm-5.3:thinking, z-ai/glm-5.3-flash
  • Xiaomi MiMo: xiaomi/mimo-v2.6-pro
  • DeepSeek: deepseek/deepseek-v4.1-flash-1017, deepseek/deepseek-v4-flash-latest, deepseek/deepseek-latest
  • MiniMax: minimax/minimax-m3.1-flash, minimax/minimax-m3, minimax/minimax-latest
  • Qwen: qwen/qwen3.8-max, qwen/qwen3-coder-next

GPT Terra Latest

openai/gpt-terra-latest follows GPT-6.1 Terra. It supports text and image input, tools, structured output, a 1,050,000-token context window, and up to 128,000 output tokens. Reasoning levels are none, low, medium, high, xhigh, and max; NanoGPT defaults to medium. Batch requests with tools must use /v1/responses; Chat Completions batches do not support tools for this model. Standard pricing is $1/M input, $5/M output, $0.05/M cached input, and $1.25/M cache writes. Requests above 272,000 input tokens use higher long-context rates. It is a paid model; use the live model pricing and privacy metadata for the current route details. For Pro reasoning mode, choose openai/gpt-6.1-terra-pro explicitly. It uses the same base model and per-token rates, but performs more model work, increasing token usage, cost, and latency. The Latest alias continues to select standard Terra by default. Choose openai/gpt-5.6-terra or openai/gpt-5.6-terra-pro explicitly to retain those models and their behavior. The general chat default and the examples on this site remain GPT-6.1 Sol.

DeepSeek Flash Latest

deepseek/deepseek-v4-flash-latest follows the current recommended Flash snapshot, DeepSeek V4.1 Flash 1017. Append :thinking to enable reasoning by default; the base alias defaults to non-thinking. Both remain included in subscriptions. The current snapshot accepts text and images, with a shared 1,048,576-token context window and up to 393,216 output tokens within the remaining context. JSON object output is supported, and JSON Schema output is available on eligible routes. Zero data retention is also available on eligible routes. Output limits and supported reasoning levels depend on the selected route, so the model-wide maximum is not available on every provider. Auto prices follow the current eligible routes and can differ from the snapshot’s peak/off-peak schedule. Read pricing and effective_pricing in /api/v1/models?detailed=true for the current Auto tariff, or the model’s provider pricing for Auto prices by privacy mode and provider-specific prices. Selecting a provider can change the price, including any applicable schedule and provider-selection markup. For a fixed checkpoint and the older price/capability contract, select deepseek/deepseek-v4-flash-0731 explicitly instead of the moving alias.

Kimi Latest and K3.1 Pro

moonshotai/kimi-latest follows the newest recommended Kimi model, currently moonshotai/kimi-k3.1-pro. The faster, more expensive moonshotai/kimi-k3.1-pro-highspeed remains a separate selection. Choose moonshotai/kimi-k3 explicitly to retain the K3 checkpoint and its pricing. K3.1 Pro supports text, image and video input, tool calling, structured output, and a shared 1,048,576-token context window. Output limits depend on the route and remaining context. Thinking is always enabled with low, high, or max effort; NanoGPT defaults to max. Hiding reasoning does not disable thinking or its token usage. Start a new conversation when switching from K3 to K3.1 Pro. K3.1 Pro currently costs $2 per million input tokens, $10 per million output tokens, and $0.20 per million cached-input tokens. K3 Auto prices vary by route; check current pricing before switching. K3.1 Pro does not support the Batch API and is excluded from subscriber discounts. It does not inherit K3-specific discounts, and neither model is included in subscriptions. Keep explicit K3 for integrations that need its batch support. Availability, privacy options and route limits can differ; check /api/v1/models?detailed=true and the provider endpoint on your chosen API host for current information.

MiniMax Latest and M3.1 Flash

minimax/minimax-latest currently resolves to MiniMax M3 Thinking. This compatibility alias retains M3’s request format and structured-output support; it does not automatically select MiniMax M3.1 Flash. Plain minimax/minimax-m3 only thinks when a request asks for it. For the newer model, select minimax/minimax-m3.1-flash explicitly. It is included in subscriptions and supports text, image, and video input, tool calling, a shared 1,000,000-token context window, and up to 524,288 output tokens within the remaining context. Thinking is always enabled; reasoning_effort accepts low, medium, high, xhigh, and max, with max as the default. Reasoning tokens count toward the output limit. Hiding reasoning with reasoning.exclude does not disable thinking or its token usage. M3.1 Flash uses a fixed temperature of 1 and top_p of 0.95. Custom values have no effect; omit these parameters from requests. M3.1 Flash currently does not support response_format JSON modes, forced tool_choice, or disabling thinking. Keep an explicit M3 model for integrations that need these controls. Use the detailed model catalog for current prices and the provider endpoint for route-specific limits and privacy information.

Compatibility

Responses mirror OpenAI’s Models API shape. All models endpoints return:
Each model minimally includes:

Features

  • Basic Mode: Standard OpenAI-compatible model listing. Capability and service-tier metadata is omitted.
  • Detailed Mode: Enhanced information with capabilities, supported service tiers, pricing, and model descriptions.

Provider Selection Discovery

Provider selection support, public provider IDs, and provider-specific prices are discovered via GET /api/models/:canonicalId/providers. Its Per1kTokens fields are USD per 1,000 tokens and include selection markup; provider.max_price uses USD per 1 million tokens. See Provider Selection for details.

Query Parameters

When detailed=true, additional fields may be included per model:
  • name — display name
  • description — short model description
  • context_length — total context window shared by input and generated output (if known)
  • max_output_tokens — max output tokens (if known)
  • capabilities — feature flags (see below)
  • supported_service_tiers — alternate service_tier values accepted by the model (flex, fast, and/or the legacy priority alias); an empty array means only the default tier is available
  • pricing.prompt and pricing.completion — current per-million-token prices in USD
  • pricing.unit — per_million_tokens
  • icon_url — small icon representing the provider
  • cost_estimate — internal rollup used in UI for cost hints (for example "$", "$$", or an object)
  • category — optional category tag (for example "flagship", "mini", "reasoning")
  • distillationPolicy — optional policy metadata indicating whether model outputs may be used for distillation or output-based training under NanoGPT’s recorded model-license rules

Discovering service-tier support

Service-tier availability is model-specific. To discover it programmatically, request the detailed model list and inspect each model’s supported_service_tiers array:
For example:
  • flex requests lower-cost, variable-capacity processing.
  • fast is the preferred public spelling for higher-priority OpenAI processing.
  • priority remains accepted as a legacy alias and may still be the provider-native name on compatible non-OpenAI routes.
  • An empty array means the model supports only the default service tier.
The basic GET /api/v1/models response intentionally omits this field for OpenAI compatibility. The Models page also displays service-tier badges for visual discovery. Provider-specific availability can differ when you explicitly force a route; see Provider Selection.

Discovering video-capable models

For multimodal input, call GET /api/v1/models?detailed=true and select a model whose catalog entry advertises video input. Catalog fields are additive, so inspect both the architecture modalities and capability flags when present:
An explicitly selected model without video capability is rejected before provider dispatch and billing. Automatic fallback keeps only routes that preserve the requested video input. See Video Input for the endpoint content shapes and source rules.

Sorting model lists

GET /api/v1/models supports sort=favorites and sort=mostused. When sort is present, NanoGPT returns the same model list the caller would normally receive, but reordered by the selected ranking. Sorting only affects models that would already be visible to the caller. It does not add or hide models.
  • sort=favorites: Orders models by the authenticated account’s recent model usage.
  • sort=mostused: Orders models by global completed model usage.
  • Unused or unranked models remain in the response after ranked models, in the normal catalog order.
  • sort=favorites requires a valid API key to personalize the order. If no valid API key is provided, it falls back to normal ordering.
  • sort=mostused does not require authentication.
  • Invalid sort values are ignored.
  • Can be combined with detailed=true.
Examples:

capabilities (detailed mode)

Common capability flags:

Authentication

Authentication is optional but enables user-specific pricing in detailed mode: Notes:
  • Invalid or missing API keys still return a list of models. We simply omit user-specific pricing considerations in detailed=true mode.
  • With a valid key, the canonical /api/v1/models may apply your account’s subscription visibility preference (see Endpoint Variants).

Response Formats

Basic Response (Default)

Standard OpenAI-compatible format without pricing information:

Detailed Response

Enhanced format with model descriptions, context lengths, and pricing:

Field Descriptions

Basic Fields (Always Present)

Enhanced Fields (Detailed Mode Only)

Pricing Object Structure

Distillation Policy

Where available, text model records include a distillationPolicy object with status, label, basis, sourceUrl, and note. This indicates whether model outputs may be used for model training, fine-tuning, distillation, or similar model-improvement workflows under NanoGPT’s recorded interpretation of model licenses and provider terms.
Use the explore endpoints when you need to filter for distillation-allowed text models:
The filter applies only to text models. Responses include meta.distillation: "allowed" when the filter is used and meta.distillation: "all" otherwise. Provider route policy can differ from model-level policy. Use GET /api/models/:canonicalId/providers and inspect each provider row’s distillationPolicy before relying on a specific route for distillation. This metadata is informational and is not legal advice. Provider terms and model licenses can change, and licenses may impose attribution, naming, acceptable-use, or derivative-model restrictions even when distillation is allowed.

Usage Examples

Basic Request

Detailed Request

Sort by Favorites

Sort by Most Used

Detailed and Sorted

Detailed with Authentication

Alternative API Key Header

Endpoint Variants

In addition to the canonical /api/v1/models, two filtered variants are available:

1) GET /api/v1/models (canonical)

  • Returns all visible text models (excludes internal free/helper selector models except auto-model*).
  • If your account has an active subscription and you have not enabled “Also show paid models”, the list is automatically restricted to only subscription-included models.
  • If you enable “Also show paid models” in settings, it returns the full set again.
Examples:

2) GET /api/subscription/v1/models (subscription-only)

  • Always returns only models included in the NanoGPT subscription (equivalent to our isTextEligible(modelId) filter).
  • Ignores the user’s “Also show paid models” preference; it is always subscription-only.
  • Supports ?detailed=true and API key–aware pricing metadata.
Examples:

3) GET /api/paid/v1/models (paid/extras)

  • Returns only models that are NOT part of the subscription (paid/premium/extras).
  • Supports ?detailed=true and API key–aware pricing metadata.
Examples:

Choosing the Right Endpoint

  • Use /api/subscription/v1/models for curated lists guaranteed to be subscription-included (e.g., sub-only integrations).
  • Use /api/paid/v1/models to focus on paid or premium models.
  • Use /api/v1/models for the canonical list and let the account’s “Also show paid models” preference decide visibility.

Errors and Limits

  • These endpoints typically return 200 with a list. If an invalid API key is provided, the list still returns and simply omits user-specific pricing considerations in detailed=true mode.
  • Standard CORS and rate limiting apply. In overload scenarios you may receive 429 with:

Backwards Compatibility

  • Default response format unchanged
  • All existing fields preserved
  • New fields are additive only
  • No breaking changes to existing integrations
  • Image models - List image model capabilities and supported parameters
  • Video models - List video model capabilities and supported parameters
  • Audio models - List text-to-speech and speech-to-text models
  • Embedding models - List embedding model dimensions, token limits, and pricing
  • /api/v1/embeddings - Create embeddings using the available embedding models
  • Provider Selection - Discover model providers and set provider preferences
  • /api/subscription/v1/models - Subscription-included text models
  • /api/paid/v1/models - Paid or premium text models

Notes

  • Scope: These endpoints list text-chat models. For image, video, audio, embedding and decision catalogs, use the dedicated model catalog pages linked above.
  • Fields are subject to change as new capabilities or providers are added. We aim to remain OpenAI-API compatible for basic consumers (id/object/created/owned_by).

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Query Parameters

detailed
boolean
default:false

Returns detailed model information including capabilities, supported_service_tiers, and pricing. Inspect supported_service_tiers to discover whether a model accepts flex, fast, or the legacy priority alias; an empty array means only the default tier is available.

sort
enum<string>

Reorders the returned model list without adding or hiding models. favorites orders by the authenticated account's recent model usage and requires a valid API key; without one it falls back to normal ordering. mostused orders by global completed model usage and does not require authentication. Unused or unranked models remain after ranked models in normal catalog order. Invalid values are ignored.

Available options:
favorites,
mostused
Example:

"favorites"

output_modalities
string

Decision models are left out of this list by default because they reject plain chat requests. decisions lists only decision models; text,decisions lists chat models and decision models together.

Example:

"decisions"

Response

List of available models

object
string
default:list

Type of object, always 'list' for the models response

data
object[]

List of available models