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 codeMCP serverFor your agents
Connect tohttps://artificialanalysis.ai/api/v2https://mcp.artificialanalysis.ai/mcp
Sign inAPI key in x-api-keyOAuth, or an API key for deployed agents
Daily usageYour plan limitDouble the plan limit when signed in
ReferenceOpenAPI specBuilt 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-key header. 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.

TierIncludes
FreeThe language models list (headline indices, median performance, input and output prices) and the free media endpoints.
ProEvery model-level endpoint: model detail, full pricing, percentiles, and Pro media data.
CommercialPro, 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.

TierRequests per windowSigned-in MCP tool calls
Free100200
Pro5001,000
CommercialCustomCustom

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.

HeaderDescription
X-AA-TierSubscription tier that served the request: free, pro, or commercial. Mirrors the tier field in the response body.
X-RateLimit-LimitMaximum requests allowed in the current window.
X-RateLimit-RemainingRequests remaining in the current window.
X-RateLimit-ResetUnix timestamp when the fixed 24-hour window ends and the full quota resets.
Retry-AfterIncluded on 429 responses. Seconds until the quota resets.

Data conventions

These conventions apply across the API.

  • Dates use ISO 8601: 2025-06-15 for calendar dates and 2025-06-15T14:30:00.000Z for 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.

StatusMeaning
400Invalid query parameters. The message names the offending field.
401Missing or invalid API key.
403Your subscription does not cover this endpoint or provider, or the endpoint requires per-account approval (CritPt grading — request access via critpt@artificialanalysis.ai).
404Resource not found, usually because of an invalid slug.
429Daily rate limit exhausted. Check Retry-After before retrying.
500Server error. Retry with exponential backoff. If it persists, contact us.