Artificial Analysis API
Independent benchmarks, pricing, and performance data for AI models. Call the REST API from your code, or make it part of your agentic workflow with MCP.
Overview
Same data and plan either way, with double the usage when you sign in to MCP.
| REST APIFor your code | MCP serverFor your agents | |
|---|---|---|
| Connect to | https://artificialanalysis.ai/api/v2 | https://mcp.artificialanalysis.ai/mcp |
| Sign in | API key in x-api-key | OAuth, or an API key for deployed agents |
| Daily usage | Your plan limit | Double the plan limit when signed in |
| Reference | OpenAPI spec | Built in. Your agent looks it up. |
Getting started
- Create a key in API key management. Keys belong to organisations, so pick the one with the subscription.
- Call the API with the key in the
x-api-keyheader. Keep it server-side.
curl "https://artificialanalysis.ai/api/v2/language/models" \
-H "x-api-key: YOUR_API_KEY"Responses share one envelope: tier, pagination on lists, and data.
A 401 means a bad key; a 403 means your tier doesn't cover the endpoint.
Using an AI assistant instead? Connect the MCP server.
Authentication
Send your API key in the x-api-key header. There's no OAuth or request
signing for the API. The MCP server uses OAuth sign-in,
and takes the same key for deployed agents.
Keys belong to organisations. Regenerating a key in API key management revokes the old one immediately. Keep keys server-side and out of source control.
Tiers
Your plan decides which endpoints you can call. Others return 403.
| Tier | Includes |
|---|---|
| Free | The language models list (headline indices, median performance, input and output prices) and the free media endpoints. |
| Pro | Every model-level endpoint: model detail, full pricing, percentiles, and Pro media data. |
| Commercial | Pro, plus provider-level data, performance over time, and custom data such as raw measurements. Contact the team. |
Rate limits
Quotas run on a fixed 24-hour window that starts with your first request and resets in full when it ends. Every key in the same scope (one user in an organization, or the whole organization) shares one quota. Signed-in MCP gets double the usage. An MCP call made with an API key counts as one request.
| Tier | Requests per window | Signed-in MCP tool calls |
|---|---|---|
| Free | 100 | 200 |
| Pro | 500 | 1,000 |
| Commercial | Custom | Custom |
Responses carry X-RateLimit-Limit, X-RateLimit-Remaining, and
X-RateLimit-Reset. A 429 adds Retry-After in seconds.
Contact the team for more.
Response headers
Every authenticated response carries a few headers that describe the request context and quota state.
| Header | Description |
|---|---|
X-AA-Tier | Subscription tier that served the request: free, pro, or commercial. Mirrors the tier field in the response body. |
X-RateLimit-Limit | Maximum requests allowed in the current window. |
X-RateLimit-Remaining | Requests remaining in the current window. |
X-RateLimit-Reset | Unix timestamp when the fixed 24-hour window ends and the full quota resets. |
Retry-After | Included on 429 responses. Seconds until the quota resets. |
Data conventions
These conventions apply across the API.
- Dates use ISO 8601:
2025-06-15for calendar dates and2025-06-15T14:30:00.000Zfor timestamps. - Country codes use lowercased ISO 3166-1 alpha-2 values:
us,cn,gb. - End-to-end response times assume 500 answer tokens unless a field name states otherwise.
- Field names use
snake_case. We keep the wire format stable: fields are deprecated, not renamed. - Nulls mean "not measured" or "not applicable". They never mean zero.
Intelligence Index versioning
artificial_analysis_intelligence_index is a composite score, and what goes
into it evolves. We version the index so you can interpret a score in context.
Current version: v4.3.2. Full composition and version history on the Intelligence Index methodology page.
How versions change:
- Major version bumps indicate a substantial change to the index definition or interpretation. Scores are best interpreted within the same major version.
- Minor version bumps indicate methodology changes within the same major version. These may include changes to contributing evaluations, task subsets, graders, scoring/normalization, weightings, anchors, or evaluation refreshes. Scores may or may not change.
- Patch version bumps indicate lower-significance methodology changes of
the same kinds — for example upgrading an evaluation's grader or dataset
version. Scores may change. They are not reflected in
intelligence_index_version, which reports major.minor only.
Currently included (v4.3.2, 10 evaluations): AA-Briefcase v1.1, GDPval-AA v2.1, AutomationBench-AA (partial score), Terminal-Bench 4.0, SciCode, AA-LCR v1.1, AA-Omniscience, HLE, GDP.pdf, CritPt.
artificial_analysis_coding_index and artificial_analysis_agentic_index
are derived from subsets of these evaluations and are not separately
versioned.
The six Capability Indexes (artificial_analysis_finance_and_accounting_index,
artificial_analysis_strategy_and_ops_index, artificial_analysis_legal_index,
artificial_analysis_healthcare_and_medical_index,
artificial_analysis_engineering_index, artificial_analysis_economics_index)
are versioned separately from the Intelligence Index. Each is null for models
missing any evaluation it depends on. Composition on the
Capability Indices methodology page.
Attribution and licensing
Use of the API requires attribution across all tiers. When you display or share API data, credit Artificial Analysis as the source. A visible byline or footer link is sufficient.
Use of the API is also subject to our Terms of Use and Data Platform Terms. For redistribution rights or bespoke contract terms, contact the team.
Errors
Errors return a JSON body with an error string and, when useful, a
details object. The HTTP status identifies the failure category.
| Status | Meaning |
|---|---|
400 | Invalid query parameters. The message names the offending field. |
401 | Missing or invalid API key. |
403 | Your subscription does not cover this endpoint or provider, or the endpoint requires per-account approval (CritPt grading — request access via critpt@artificialanalysis.ai). |
404 | Resource not found, usually because of an invalid slug. |
429 | Daily rate limit exhausted. Check Retry-After before retrying. |
500 | Server error. Retry with exponential backoff. If it persists, contact us. |