Skip to content
induwara.lk
induwara.lkDevelopers · AI APIs

AI Model Feature Support Matrix

A caniuse-style table of which production LLM APIs support each developer feature, vision, function calling, JSON mode, prompt caching, batch, PDF input, reasoning and more. Pick a feature to see every model that has it, or a model to see everything it can do. Cited to provider docs, no signup.

By Induwara AshinsanaUpdated Jul 17, 2026
Filter the matrix

28 of 28 models

✓supported~partial / beta—not supported, tap a model name for its full capability list.

Feature support matrix: models down the left, developer features across the top. Check means supported, tilde means partial or beta, dash means not supported.
ModelVisionToolsJSON outCachingBatchFine-tuneAudio inAudio outPDF inVideo inStreamReasoningWeb searchCode exec
✓✓✓✓✓~——✓—✓✓~~
✓✓✓✓✓———✓—✓✓~~
✓✓✓✓✓———✓—✓✓~~
✓✓✓✓✓~——✓—✓✓~~
✓✓✓✓✓✓——✓—✓—~~
✓✓✓✓✓✓——✓—✓—~~
✓✓✓✓✓✓~~✓—✓—~~
✓✓✓✓✓✓——✓—✓—~~
~✓————✓✓——✓———
✓✓~✓✓———✓—✓✓✓~
✓✓~✓✓———✓—✓✓✓~
✓✓~✓✓———✓—✓✓✓~
✓✓✓✓✓~✓~✓✓✓✓✓✓
✓✓✓✓✓✓✓~✓✓✓✓✓✓
✓✓✓✓✓—✓~✓✓✓~✓✓
✓✓✓✓✓—✓~✓✓✓—✓✓
✓✓————✓✓—✓✓—✓✓
✓✓~——✓————✓———
✓✓~——✓————✓———
—✓~——✓————✓———
—✓✓—✓✓————✓——~
✓✓✓—✓———~—✓——~
—✓✓—✓—————✓✓—~
—✓✓✓——————✓———
—~~✓——————✓✓——
✓✓✓✓——————✓✓✓~
~✓✓✓——————✓✓✓—
✓✓✓✓——————✓✓✓~
Tap any model name in the matrix to see its full capability list, context window, and the provider doc the values came from.

Compare two models

3 of 14 features differ. Differences are highlighted.

  • Vision (image input)✓ Supported✓ Supported
  • Tools / function calling✓ Supported✓ Supported
  • Structured output / JSON mode✓ Supported~ Partial / beta
  • Prompt caching✓ Supported✓ Supported
  • Batch API✓ Supported✓ Supported
  • Fine-tuning~ Partial / beta— Not supported
  • Audio input— Not supported— Not supported
  • Audio output— Not supported— Not supported
  • PDF / document input✓ Supported✓ Supported
  • Video input— Not supported— Not supported
  • Streaming✓ Supported✓ Supported
  • Reasoning / extended thinking✓ Supported✓ Supported
  • Built-in web search~ Partial / beta✓ Supported
  • Code execution~ Partial / beta~ Partial / beta

Every cell is compiled from the provider's official API docs and carries a source link in the detail panel. This is a static table, no request is sent to any provider. Sources and the last-verified date are listed below the tool. Spotted a stale value? Email me and I'll fix it.

How it works

This is not a calculator. It is a capability lookup, so correctness means one thing: fidelity to the official provider documentation. The matrix covers 28 current models across seven providers (OpenAI, Anthropic, Google, Meta, Mistral, DeepSeek and xAI) and 14 developer features, 392 cells in total, each set by hand from a provider doc rather than guessed or scraped.

Every cell resolves to one of three states:

  • ✓ Supported, the feature is generally available on that model's hosted API.
  • ~ Partial, real but caveated: in beta or preview, delivered through a separate tool or endpoint, or model-specific. Every partial cell carries a note in the detail panel explaining exactly why.
  • — Not supported, the provider docs do not offer it on that model's API.

The filtering is a set of pure, deterministic functions. Selecting feature chips runs matchesFeatures(model, selected, mode): in Match ALL mode a model qualifies only when every selected feature is supported or partial; in Match ANY mode it qualifies when at least one is. Provider and model-name filters compose on top with plain set membership and a case-insensitive substring match. An empty selection is a no-op, so the matrix always shows the full catalogue by default rather than a dead, empty page.

For credibility the module also exposes a compareModels(a, b) cross-check: it reads the exact same feature records the matrix renders and returns a feature-by-feature diff, so a single cell and the compare panel can never disagree. A matrixCoverage() self-test confirms all 392 cells resolve to a concrete value, no silent gaps. Because everything is static, there are no live API calls; the table is versioned with a LAST_VERIFIED date (2026-07-17) and every model row links to the provider doc it was read from.

Worked examples

Document-Q&A build: PDF input + caching + batch

  1. Filter chips: PDF input, Prompt caching, Batch API, Match ALL.
  2. matchesFeatures keeps a model only if all three are ✓ or ~.
  3. 15 of 28 models qualify: the GPT-5, GPT-4.1 and GPT-4o lines, o3 and o4-mini, all three Claude models, and four Gemini models.
  4. Llama 4 Maverick is excluded (Batch = —); Mistral Large is excluded (Caching = —); DeepSeek-V3 is excluded (Batch = —).

Which models support function calling? (Match ANY)

  1. Filter chip: Tools / function calling, Match ANY.
  2. Every one of the 28 catalogue models resolves to ✓ or ~.
  3. 27 are full ✓; DeepSeek-R1 is ~ because function calling on its reasoner endpoint is limited.
  4. Result: 28 of 28, tool use is now table stakes across hosted LLM APIs.

Compare GPT-5 vs Claude Opus 4.8

  1. Open the compare panel and pick GPT-5 and Claude Opus 4.8.
  2. compareModels returns 14 rows; 3 differ.
  3. JSON mode: GPT-5 ✓ (schema-guaranteed) vs Claude ~ (via tool use).
  4. Fine-tuning: GPT-5 ~ (limited availability) vs Claude, (not offered).
  5. Web search: GPT-5 ~ (Responses API tool) vs Claude ✓ (native tool). All other 11 features match.

Frequently asked questions

Sources & references

Each model row in the tool links to the exact provider doc its values came from. The primary references are:

Feature values were last cross-checked against these sources on 2026-07-17. Model capabilities change frequently, always confirm against the linked provider doc before writing production code.

Related tools

Comments & feedback

Spotted a bug or want an improvement? Tell us, our team reviews every comment, and good ideas get built. Comments are public and anonymous.

Spotted a feature value that has changed, or a model we should add?

Email me at [email protected] , most fixes ship within 24 hours.