Static JSON, no key. null means unpublished.
{ meta, kind, data }. Use meta.revision as a cache key.generated_at and each record's last_verified./api/v1/index.jsonVersion, counts, license and endpoints. Counts include retired and unconfirmed tiers (48 providers, 345 models); the directory lists 36 and 209.
curl -s https://maxmytokens.com/api/v1/index.json | jq .{
"meta": {
"api_version": "1",
"schema_version": "1.2.0",
"generated_at": "2026-10-21T00:00:00.000Z",
"revision": "587f512b9fa8faf0fa38ed927d0f61bd975b44a870786c282f4ebce04f71ba43",
"counts": {
"providers": 48,
"model_deployments": 466,
"canonical_models": 345,
"default_comparison_deployments": 199,
"specialized_deployments": 62,
"unverified_task_deployments": 34
},
"calculation_policy": {
"version": "2.0.0",
"monthly_days": 30,
"default_mode": "normalized_daily",
"one_time_requires_duration": true
},
"license": {
"identifier": "NOASSERTION",
"notice": "No redistribution license is asserted for third-party source text or model terms. Follow attribution and the original…"
},
"attribution": [
{
"name": "maxmytokens.com",
"url": "https://maxmytokens.com"
}
]
},
"kind": "index",
"data": {
"endpoints": {
"providers": "/api/v1/providers.json",
"models": "/api/v1/models.json",
"changelog": "/api/v1/changelog.json",
"sponsors": "/api/v1/sponsors.json",
"schema": "/api/v1/schema.json"
},
"providers": {
"agnes": "/api/v1/providers/agnes.json",
"ai21": "/api/v1/providers/ai21.json",
"alibaba": "/api/v1/providers/alibaba.json",
"baidu-qianfan": "/api/v1/providers/baidu-qianfan.json",
"berget": "/api/v1/providers/berget.json",
"bigmodel": "/api/v1/providers/bigmodel.json",
"cerebras": "/api/v1/providers/cerebras.json",
"chutes": "/api/v1/providers/chutes.json",
"…": "40 more fields"
},
"models": {
"01-ai/yi-large": "/api/v1/models/01-ai/yi-large.json",
"adept/fuyu-8b": "/api/v1/models/adept/fuyu-8b.json",
"agnes-ai/agnes-2.5-flash": "/api/v1/models/agnes-ai/agnes-2.5-flash.json",
"agnes-ai/agnes-3.0-flash": "/api/v1/models/agnes-ai/agnes-3.0-flash.json",
"ai21/jamba-large": "/api/v1/models/ai21/jamba-large.json",
"ai21/jamba-mini": "/api/v1/models/ai21/jamba-mini.json",
"ai21labs/jamba-1.5-large-instruct": "/api/v1/models/ai21labs/jamba-1.5-large-instruct.json",
"aisingapore/gemma-sea-lion-v4-27b-it": "/api/v1/models/aisingapore/gemma-sea-lion-v4-27b-it.json",
"…": "337 more fields"
}
}
}/api/v1/providers.jsonEvery provider: tier type, requirements, terms, base URL, sources.
curl -s https://maxmytokens.com/api/v1/providers.json | jq .{
"meta": {
"api_version": "1",
"schema_version": "1.2.0",
"generated_at": "2026-10-21T00:00:00.000Z",
"revision": "587f512b9fa8faf0fa38ed927d0f61bd975b44a870786c282f4ebce04f71ba43",
"counts": {
"providers": 48,
"model_deployments": 466,
"canonical_models": 345,
"default_comparison_deployments": 199,
"specialized_deployments": 62,
"unverified_task_deployments": 34
},
"calculation_policy": {
"version": "2.0.0",
"monthly_days": 30,
"default_mode": "normalized_daily",
"one_time_requires_duration": true
},
"license": {
"identifier": "NOASSERTION",
"notice": "No redistribution license is asserted for third-party source text or model terms. Follow attribution and the original…"
},
"attribution": [
{
"name": "maxmytokens.com",
"url": "https://maxmytokens.com"
}
]
},
"kind": "providers",
"data": [
{
"id": "agnes",
"name": "Agnes AI",
"api_key_env": "AGNES_API_KEY",
"status": "active",
"base_url": "https://apihub.agnes-ai.com/v1",
"card_required": null,
"phone_required": null,
"commercial_use": null,
"…": "5 more fields"
},
{
"id": "ai21",
"name": "AI21 Studio",
"api_key_env": "AI21_API_KEY",
"sources": [
"https://www.ai21.com/pricing/"
],
"last_verified": "2026-10-15",
"notes": "Official pricing advertises a $10 trial lasting seven days with no card. Current trial model roster and quotas requir…",
"verification": "{…}",
"status": "active",
"…": "5 more fields"
},
"… 46 more"
]
}/api/v1/providers/{id}.jsonOne provider with its free models and limits.
curl -s https://maxmytokens.com/api/v1/providers/groq.json | jq .{
"meta": {
"api_version": "1",
"schema_version": "1.2.0",
"generated_at": "2026-10-21T00:00:00.000Z",
"revision": "587f512b9fa8faf0fa38ed927d0f61bd975b44a870786c282f4ebce04f71ba43",
"counts": {
"providers": 48,
"model_deployments": 466,
"canonical_models": 345,
"default_comparison_deployments": 199,
"specialized_deployments": 62,
"unverified_task_deployments": 34
},
"calculation_policy": {
"version": "2.0.0",
"monthly_days": 30,
"default_mode": "normalized_daily",
"one_time_requires_duration": true
},
"license": {
"identifier": "NOASSERTION",
"notice": "No redistribution license is asserted for third-party source text or model terms. Follow attribution and the original…"
},
"attribution": [
{
"name": "maxmytokens.com",
"url": "https://maxmytokens.com"
}
]
},
"kind": "provider",
"data": {
"provider": {
"id": "groq",
"name": "Groq",
"api_key_env": "GROQ_API_KEY",
"sources": [
"https://console.groq.com/docs/rate-limits",
"https://console.groq.com/docs/openai",
"… 1 more"
],
"last_verified": "2026-10-17",
"notes": "Free table audited in full. Llama 3.1 8B and Llama 3.3 70B are labeled Enterprise / Contact Sales in the current mode…",
"verification": "{…}",
"status": "active",
"…": "5 more fields"
},
"deployments": [
{
"id": "groq:canopylabs/orpheus-arabic-saudi",
"provider_id": "groq",
"canonical_slug": "canopylabs/orpheus-arabic-saudi",
"name": "canopylabs/orpheus-arabic-saudi",
"provider_model_id": "canopylabs/orpheus-arabic-saudi",
"availability": "active",
"free_access": true,
"task": "speech",
"…": "12 more fields"
},
{
"id": "groq:canopylabs/orpheus-v1-english",
"provider_id": "groq",
"canonical_slug": "canopylabs/orpheus-v1-english",
"name": "canopylabs/orpheus-v1-english",
"provider_model_id": "canopylabs/orpheus-v1-english",
"availability": "active",
"free_access": true,
"task": "speech",
"…": "12 more fields"
},
"… 8 more"
]
}
}/api/v1/models.jsonEvery canonical model and the providers that serve it free.
curl -s https://maxmytokens.com/api/v1/models.json | jq .{
"meta": {
"api_version": "1",
"schema_version": "1.2.0",
"generated_at": "2026-10-21T00:00:00.000Z",
"revision": "587f512b9fa8faf0fa38ed927d0f61bd975b44a870786c282f4ebce04f71ba43",
"counts": {
"providers": 48,
"model_deployments": 466,
"canonical_models": 345,
"default_comparison_deployments": 199,
"specialized_deployments": 62,
"unverified_task_deployments": 34
},
"calculation_policy": {
"version": "2.0.0",
"monthly_days": 30,
"default_mode": "normalized_daily",
"one_time_requires_duration": true
},
"license": {
"identifier": "NOASSERTION",
"notice": "No redistribution license is asserted for third-party source text or model terms. Follow attribution and the original…"
},
"attribution": [
{
"name": "maxmytokens.com",
"url": "https://maxmytokens.com"
}
]
},
"kind": "models",
"data": [
{
"id": "agnes:agnes-2.5-flash",
"provider_id": "agnes",
"provider_model_id": "agnes-2.5-flash",
"canonical_slug": "agnes-ai/agnes-2.5-flash",
"name": "agnes-2.5-flash",
"source_url": "https://agnes-ai.com/en/docs/agnes-25-flash",
"sources": [
"https://agnes-ai.com/en/docs/agnes-25-flash",
"https://agnes-ai.com/en/docs/pricing"
],
"last_verified": "2026-10-21",
"…": "12 more fields"
},
{
"id": "agnes:agnes-3.0-flash",
"provider_id": "agnes",
"provider_model_id": "agnes-3.0-flash",
"canonical_slug": "agnes-ai/agnes-3.0-flash",
"name": "agnes-3.0-flash",
"source_url": "https://agnes-ai.com/en/docs/agnes-30-flash",
"sources": [
"https://agnes-ai.com/en/docs/agnes-30-flash",
"https://agnes-ai.com/en/docs/pricing"
],
"last_verified": "2026-10-21",
"…": "12 more fields"
},
"… 464 more"
]
}/api/v1/models/{creator}/{model}.jsonOne model: each provider with its limits, context window and source.
curl -s https://maxmytokens.com/api/v1/models/openai/gpt-oss-120b.json | jq .{
"meta": {
"api_version": "1",
"schema_version": "1.2.0",
"generated_at": "2026-10-21T00:00:00.000Z",
"revision": "587f512b9fa8faf0fa38ed927d0f61bd975b44a870786c282f4ebce04f71ba43",
"counts": {
"providers": 48,
"model_deployments": 466,
"canonical_models": 345,
"default_comparison_deployments": 199,
"specialized_deployments": 62,
"unverified_task_deployments": 34
},
"calculation_policy": {
"version": "2.0.0",
"monthly_days": 30,
"default_mode": "normalized_daily",
"one_time_requires_duration": true
},
"license": {
"identifier": "NOASSERTION",
"notice": "No redistribution license is asserted for third-party source text or model terms. Follow attribution and the original…"
},
"attribution": [
{
"name": "maxmytokens.com",
"url": "https://maxmytokens.com"
}
]
},
"kind": "model",
"data": {
"canonical_slug": "openai/gpt-oss-120b",
"deployments": [
{
"id": "cerebras:gpt-oss-120b",
"provider_id": "cerebras",
"canonical_slug": "openai/gpt-oss-120b",
"name": "gpt-oss-120b",
"source_url": "https://inference-docs.cerebras.ai/support/rate-limits",
"sources": [
"https://inference-docs.cerebras.ai/support/rate-limits",
"https://inference-docs.cerebras.ai/models/overview"
],
"last_verified": "2026-10-17",
"notes": "TPM is the uncached bucket; total TPM is 90,000. Calculator assumes no cache hits. Catalog rounds free contexts to 65…",
"…": "12 more fields"
},
{
"id": "cloudflare:@cf/openai/gpt-oss-120b",
"provider_id": "cloudflare",
"canonical_slug": "openai/gpt-oss-120b",
"name": "@cf/openai/gpt-oss-120b",
"source_url": "https://developers.cloudflare.com/workers-ai/models/gpt-oss-120b/",
"sources": [
"https://developers.cloudflare.com/workers-ai/models/gpt-oss-120b/",
"https://developers.cloudflare.com/workers-ai/platform/pricing/",
"… 1 more"
],
"last_verified": "2026-10-17",
"notes": "Shared 10000 Neurons/day, with model-specific input/output costs. RPM is the documented default; beta/account limits …",
"…": "13 more fields"
},
"… 9 more"
]
}
}/api/v1/changelog.jsonDated changes to free tiers, newest first, with sources.
curl -s https://maxmytokens.com/api/v1/changelog.json | jq .{
"meta": {
"api_version": "1",
"schema_version": "1.2.0",
"generated_at": "2026-10-21T00:00:00.000Z",
"revision": "587f512b9fa8faf0fa38ed927d0f61bd975b44a870786c282f4ebce04f71ba43",
"counts": {
"providers": 48,
"model_deployments": 466,
"canonical_models": 345,
"default_comparison_deployments": 199,
"specialized_deployments": 62,
"unverified_task_deployments": 34
},
"calculation_policy": {
"version": "2.0.0",
"monthly_days": 30,
"default_mode": "normalized_daily",
"one_time_requires_duration": true
},
"license": {
"identifier": "NOASSERTION",
"notice": "No redistribution license is asserted for third-party source text or model terms. Follow attribution and the original…"
},
"attribution": [
{
"name": "maxmytokens.com",
"url": "https://maxmytokens.com"
}
]
},
"kind": "changelog",
"data": [
{
"date": "2026-10-15",
"kind": "initial_research",
"summary": "Initial official-source audit. Retired/paid-only and unconfirmed offers remain visible but are excluded from recurrin…",
"provider_ids": [
"groq",
"cerebras",
"… 23 more"
],
"source_urls": [
"https://github.blog/changelog/2026-07-01-github-models-is-being-fully-retired-on-July-30-2026/",
"https://inference-docs.cerebras.ai/support/rate-limits",
"… 2 more"
]
},
{
"date": "2026-10-15",
"kind": "verification",
"summary": "Documented Google Pacific-midnight RPD, OpenRouter UTC RPD, Cloudflare UTC Neuron resets, and Cerebras continuous tok…",
"provider_ids": [
"google",
"openrouter",
"… 2 more"
],
"source_urls": [
"https://ai.google.dev/gemini-api/docs/rate-limits",
"https://openrouter.ai/docs/api/reference/limits.md",
"… 2 more"
]
},
"… 38 more"
]
}/api/v1/sponsors.jsonPaid placements, kept separate from ranking data.
curl -s https://maxmytokens.com/api/v1/sponsors.json | jq .{
"meta": {
"api_version": "1",
"schema_version": "1.2.0",
"generated_at": "2026-10-21T00:00:00.000Z",
"revision": "587f512b9fa8faf0fa38ed927d0f61bd975b44a870786c282f4ebce04f71ba43",
"counts": {
"providers": 48,
"model_deployments": 466,
"canonical_models": 345,
"default_comparison_deployments": 199,
"specialized_deployments": 62,
"unverified_task_deployments": 34
},
"calculation_policy": {
"version": "2.0.0",
"monthly_days": 30,
"default_mode": "normalized_daily",
"one_time_requires_duration": true
},
"license": {
"identifier": "NOASSERTION",
"notice": "No redistribution license is asserted for third-party source text or model terms. Follow attribution and the original…"
},
"attribution": [
{
"name": "maxmytokens.com",
"url": "https://maxmytokens.com"
}
]
},
"kind": "sponsors",
"data": []
}/api/v1/schema.jsonJSON Schema for the catalog records.
curl -s https://maxmytokens.com/api/v1/schema.json | jq .{
"$schema": "http://json-schema.org/draft-07/schema#",
"$id": "https://maxmytokens.com/api/v1/schema.json",
"title": "maxmytokens public read-only API v1",
"definitions": {
"meta": {
"type": "object",
"additionalProperties": false,
"properties": {
"api_version": {
"const": "1"
},
"schema_version": {
"type": "string"
},
"generated_at": {
"type": "string",
"format": "date-time"
},
"revision": {
"type": "string",
"pattern": "^[a-f0-9]{64}$"
},
"counts": {
"type": "object",
"additionalProperties": false,
"properties": {
"providers": {
"type": "integer",
"minimum": 0
},
"model_deployments": {
"type": "integer",
"minimum": 0
},
"canonical_models": {
"type": "integer",
"minimum": 0
},
"default_comparison_deployments": {
"type": "integer",
"minimum": 0
},
"specialized_deployments": {
"type": "integer",
"minimum": 0
},
"unverified_task_deployments": {
"type": "integer",
"minimum": 0
}
},
"required": [
"providers",
"model_deployments",
"… 1 more"
]
},
"license": {
"type": "object",
"additionalProperties": false,
"properties": {
"identifier": {
"const": "NOASSERTION"
},
"notice": {
"type": "string"
}
},
"required": [
"identifier",
"notice"
]
},
"attribution": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"name": {
"type": "string"
},
"url": {
"type": "string",
"format": "https-url"
}
},
"required": [
"name",
"url"
]
}
},
"calculation_policy": {
"type": "object",
"additionalProperties": false,
"required": [
"version",
"monthly_days",
"… 2 more"
],
"properties": {
"version": {
"const": "2.0.0"
},
"monthly_days": {
"const": 30
},
"default_mode": {
"const": "normalized_daily"
},
"one_time_requires_duration": {
"const": true
}
}
}
},
"required": [
"api_version",
"schema_version",
"… 6 more"
]
}
},
"oneOf": [
{
"type": "object",
"additionalProperties": false,
"properties": {
"meta": {
"$ref": "#/definitions/meta"
},
"kind": {
"const": "providers"
},
"data": {
"type": "array",
"items": {
"$ref": "schemas/catalog.json#/definitions/provider"
}
}
},
"required": [
"meta",
"kind",
"… 1 more"
]
},
{
"type": "object",
"additionalProperties": false,
"properties": {
"meta": {
"$ref": "#/definitions/meta"
},
"kind": {
"const": "models"
},
"data": {
"type": "array",
"items": {
"$ref": "schemas/catalog.json#/definitions/model"
}
}
},
"required": [
"meta",
"kind",
"… 1 more"
]
},
"… 5 more"
]
}const res = await fetch("https://maxmytokens.com/api/v1/models.json");
const data = await res.json();
console.log(data);import requests
data = requests.get("https://maxmytokens.com/api/v1/providers.json", timeout=10).json()
print(data)