All you need to know before start working with our comprehensive Tire API - vehicle-specific tire data at your fingertips.
View all endpoints โ/search_allsizes โ full size catalog in one call (Business)
๐ Monthly quota headers on VIN, reverse-lookup & size catalog
๐ก๏ธ Fair Use & Data Protection โ limits and enforcement explained
Get started with the Tire API in seconds. Test your first request below.
curl -H "x-api-key: YOUR_API_KEY" \
"/api/v1/tire_dimensions?year=2023&make=Toyota&model=Camry&trim=LE AWD"
Some endpoints also carry a monthly quota on top of the daily limit โ see Fair Use & Data Protection.
403. Cached for 1 hour (Cache-Control: public, max-age=3600) and metered by a 500/month size-catalog quota reported via X-AllSizes-Quota-* headers.X-VIN-Quota-* response headers.tiresize string or individual width, aspectratio, diameter params. Carries a monthly quota alongside your daily limit (Free 10 / Starter 5,000 / Pro 20,000 / Business 60,000, plus a one-time 10-lookup trial bonus on Free), reported via X-RevLookup-Quota-* response headers.vinQuota, reverseLookupQuota, and allSizesQuota (null limit when your plan has no size-catalog access). Like every endpoint, a usage call counts toward your daily request limit.GET /api/v1/usage.| Endpoint | Free | Starter | Pro | Business | Headers |
|---|---|---|---|---|---|
/by_vin/{vin} |
10 +50 one-time | 500 | 5,000 | 20,000 | X-VIN-Quota-* |
/reverse_lookup |
10 +10 one-time | 5,000 | 20,000 | 60,000 | X-RevLookup-Quota-* |
/search_allsizes |
โ | โ | โ | 500 | X-AllSizes-Quota-* |
-Limit, -Remaining, and -Reset (Unix timestamp) headers. While a one-time bonus is still available you will also see X-VIN-Bonus-Remaining / X-RevLookup-Bonus-Remaining./by_vehicle/{query} โ the vehicle โ tire size direction most applications rely on โ has no monthly quota. It runs on the daily request limit only.Retry-After is the earliest your key can be reconsidered, not a guarantee. Repeat throttles need progressively longer quiet periods; if the header is absent, the key needs a support review before it resumes.{
"error": "Access temporarily throttled",
"message": "Unusual bulk-access patterns were detected
on this key, so it is rate-limited under our
Terms of Use (ยง7.1). Stop the bulk job and
access restores automatically once traffic
on the key has been quiet for a while. If you
believe this is a mistake, contact support.",
"retryAfter": 3600
}
{
"error": "Access suspended",
"message": "Access to this API has been suspended
pending a Terms of Use (ยง7.1) review.
Please contact support."
}
// Modern async/await approach with error handling
async function getTireDimensions(year, make, model, trim) {
const API_KEY = 'your-api-key-here';
const BASE_URL = '/api/v1';
try {
const params = new URLSearchParams({ year, make, model, trim });
const response = await fetch(`${BASE_URL}/tire_dimensions?${params}`, {
headers: { 'x-api-key': API_KEY }
});
if (!response.ok) {
throw new Error(`API Error: ${response.status}`);
}
const data = await response.json();
return data.dimensions;
} catch (error) {
console.error('Failed to fetch tire dimensions:', error);
return null;
}
}
import requests
from typing import Optional, Dict
class TireAPIClient:
def __init__(self, api_key: str):
self.api_key = api_key
self.base_url = '/api/v1'
self.headers = {'x-api-key': self.api_key}
def get_tire_dimensions(self, year: str, make: str, model: str, trim: str) -> Optional[Dict]:
try:
response = requests.get(
f'{self.base_url}/tire_dimensions',
params={'year': year, 'make': make, 'model': model, 'trim': trim},
headers=self.headers
)
response.raise_for_status()
return response.json()
except requests.RequestException as e:
print(f"API request failed: {e}")
return None
# Get tire dimensions for specific vehicle
curl -H "x-api-key: your-api-key-here" \
"/api/v1/tire_dimensions?year=2023&make=Toyota&model=Camry&trim=LE%20AWD"
# Browse makes available for a given year
curl -H "x-api-key: your-api-key-here" \
"/api/v1/by_vehicle/make?year=2023"
# Check your API usage
curl -H "x-api-key: your-api-key-here" \
"/api/v1/usage"
# VIN lookup โ decode a VIN straight to its factory tire sizes
curl -H "x-api-key: your-api-key-here" \
"/api/v1/by_vin/1HGCM82633A004352"
# Get all vehicle makes (great for first dropdown, 1-hour cache)
curl -H "x-api-key: your-api-key-here" \
"/api/v1/search_allmake"
# Full tire-size catalog in one cached call (Business plan only)
curl -H "x-api-key: your-business-key" \
"/api/v1/search_allsizes"
# Reverse lookup โ which vehicles use 225/60R16?
# -i shows the X-RevLookup-Quota-* headers with your remaining monthly quota
curl -i -H "x-api-key: your-api-key-here" \
"/api/v1/reverse_lookup?tiresize=225/60R16"
# Reverse lookup using individual dimensions
curl -H "x-api-key: your-api-key-here" \
"/api/v1/reverse_lookup?width=225&aspectratio=60&diameter=16"
# Year range for Toyota (all models)
curl -H "x-api-key: your-api-key-here" \
"/api/v1/year_range?make=Toyota"
# Year range for Toyota Camry specifically
curl -H "x-api-key: your-api-key-here" \
"/api/v1/year_range?make=Toyota&model=Camry"
# Ready-to-import n8n workflows (no code required)
# 01-cascading-vehicle-lookup.json โ Year → Make → Model → Trim → Tire Size
# 02-tire-dimensions-lookup.json โ width / aspect ratio / diameter for one vehicle
# 03-reverse-lookup.json โ tire size → vehicles that use it
# 04-usage-check.json โ plan, daily limit, remaining calls; branch on low quota
# 06-all-sizes-catalog.json โ the entire tire-size catalog in one call (Business)
# 1) Create a Header Auth credential ONCE:
# Credentials → Add credential → "Header Auth"
# Name: x-api-key
# Value: your-api-key-here
# 2) Import a workflow: Workflows → Import from File → pick a .json
# 3) On each HTTP Request node, select your "Tire API Key" credential, then Execute.
# Build your own node against ANY endpoint:
# Method: GET
# URL: /api/v1/tire_dimensions
# Auth: Generic Credential Type → Header Auth (x-api-key)
# Query: year=2023, make=Toyota, model=Camry, trim=LE AWD