API Documentation
Access real-time rankings, scores, pricing, and reviews for 350+ AI models. Build dashboards, integrate widgets, or power your own AI comparison tool.
Quick Start
Make your first API call in under 2 minutes.
API Reference
Every endpoint, parameter, and response type.
Widgets
Embed rankings and model cards on your site.
API Pricing & Plans
Compare tiers, see rate limits, and pick the right plan.
Base URL
All API requests go to the following base URL. Every endpoint is prefixed with /v1.
https://api.lmmarketcap.com/v1Authentication
Pass your API key in the X-API-Key header with every request. You can get a free key from your developer dashboard.
curl https://api.lmmarketcap.com/v1/models \
-H "X-API-Key: YOUR_API_KEY"API Key Tiers
Every key starts on the Free tier. Upgrade anytime from your developer dashboard -- no code changes needed. The only difference between tiers is the daily request limit.
| Tier | Requests / day | Price | Best for |
|---|---|---|---|
| Free | 100 | $0 | Prototyping, personal projects |
| Dev | 10,000 | $29/mo | Production apps, startups |
| Pro | 100,000 | $199/mo | High-traffic sites, enterprise integrations |
| Enterprise | Custom | Contact us | SLA, dedicated support, custom data feeds |
Rate Limiting
Every response includes rate limit headers so you always know where you stand. Limits reset daily at midnight UTC.
| Header | Description |
|---|---|
X-RateLimit-Limit | Your plan's daily request cap |
X-RateLimit-Remaining | Requests left in the current window |
X-RateLimit-Reset | UTC epoch seconds when the window resets |
Retry-After | Seconds until you can retry (only on 429 responses) |
When you hit the limit, the API returns 429 Too Many Requests. The best practice is to check X-RateLimit-Remaining and back off before hitting zero. Our SDK handles this automatically with exponential backoff.
Quick Example
Get the top 5 coding models in a single request:
curl "https://api.lmmarketcap.com/v1/rankings/coding?limit=5" \
-H "X-API-Key: YOUR_API_KEY"Error Handling
Errors follow a consistent format. The code field is machine-readable, and message is a human-friendly explanation.
{
"error": {
"code": "not_found",
"message": "No model found with slug 'gpt-5-turbo'. Did you mean 'gpt-4-turbo'?"
}
}| Status | Code | Meaning |
|---|---|---|
400 | bad_request | Invalid parameters. Check the details field. |
401 | unauthorized | Missing or invalid API key. |
403 | forbidden | Your plan does not allow this action. |
404 | not_found | The requested resource does not exist. |
429 | rate_limited | Daily rate limit exceeded. Check Retry-After header. |
Pagination
List endpoints use cursor-based pagination. Each response includes a pagination object. To get the next page, pass the next_cursor value as the cursor query parameter.
{
"data": [...],
"pagination": {
"next_cursor": "eyJpZCI6MTAxfQ==",
"has_more": true,
"total": 847
}
}When has_more is false, you have reached the last page. The default page size is 20; you can set it to anything between 1 and 100 with the limit parameter.