API DOCUMENTATION  ยท  v1.5.3

Tire & Wheel Fitment API โ€” Full Documentation help?

All you need to know before start working with our comprehensive Tire API - vehicle-specific tire data at your fingertips.

View all endpoints โ†“
WHAT'S NEW
๐Ÿ“ /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

๐Ÿš€ Quick Start

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"

Rate Limits & Plans

Free: 300/day Starter: 5K/day Pro: 50K/day Business: 80K/day

Some endpoints also carry a monthly quota on top of the daily limit โ€” see Fair Use & Data Protection.

๐ŸŽฏ
Getting Started โ†’
  • Interactive Swagger UI with try-it-out functionality. Test all endpoints directly in your browser with your API key.
๐Ÿ“–
Full Reference โ†’
  • All endpoints fully expanded with parameters, response schemas, and examples. Best for deep integration work.
๐Ÿ“Š
API Dashboard โ†’
  • Manage your API key, monitor usage, and handle your subscription from your account dashboard.
โšก
Quick Reference โ†’
  • Collapsed endpoint list for fast lookup. Perfect when you already know the API and just need a parameter name.
๐Ÿ“„
OpenAPI Spec (YAML) โ†’
  • Download the machine-readable YAML spec to import directly into Postman, Insomnia, or your code generator.
๐Ÿ”—
OpenAPI Spec (JSON) โ†’
  • Raw OpenAPI 3.0 JSON spec for tools that prefer JSON format or for automated pipeline integration.

๐Ÿ”— API Endpoints

GET
/api/v1/search_allsizes
New in v1.3.0 Business
  • Every distinct tire size in the database in a single cached call โ€” no parameters needed. Returns size strings only (no vehicle or fitment linkage), so it is ideal for seeding your own sizing engine or size picker. Business plan only; other plans receive 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.
GET
/api/v1/by_vin/{vin}
Stable
  • Decode a 17-character VIN and get the vehicle's factory tire sizes in one call. Uses a per-plan monthly VIN quota (Free 10 / Starter 500 / Pro 5,000 / Business 20,000, plus a one-time 50-lookup welcome bonus on Free) reported via X-VIN-Quota-* response headers.
GET
/api/v1/search_allmake
Stable
  • Get all vehicle makes available in the database. Use to populate the first dropdown in a search UI without needing a year first. Highly cacheable.
GET
/api/v1/reverse_lookup
Updated in v1.3.0
  • Given a tire size, returns every vehicle (year / make / model / trim) that uses it. Accepts a full 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.
GET
/api/v1/year_range
Stable
  • Returns the earliest year, latest year, and total model years for a given make โ€” or a make + model combo. Useful for year sliders and input validation.
GET
/api/v1/tire_dimensions
Stable
  • Get tire dimensions (width, aspect ratio, diameter) for a specific vehicle configuration. Essential for vehicle-based tire search applications.
GET
/api/v1/by_vehicle/{query}
Stable
  • Get vehicle data by query type: make, model, trim, or tiresize. Perfect for building cascading selection interfaces.
GET
/api/v1/by_size/{query}
Stable
  • Get tire size data including aspect ratios and diameters. Build tire size selection interfaces based on width filters.
GET
/api/v1/search_allyear
Stable
  • Get all available years in the tire database. Perfect for populating year dropdown menus. Highly cacheable.
GET
/api/v1/search_allwidth
Stable
  • Get all available tire widths from database. Use for tire size-based search interfaces. Highly cacheable.
GET
/api/v1/usage
Updated in v1.3.0
  • Get your API usage statistics: daily limit, current usage, reset times, and the three monthly quota blocks โ€” 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.

๐Ÿ›ก๏ธ Fair Use & Data Protection

  • Three endpoints carry a monthly quota in addition to your plan's daily request limit. Monthly quotas reset on the first of each month (America/Toronto); daily limits reset at midnight America/Toronto. Current values are always available from 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-*
  • Each family exposes -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.

Acceptable use

  • Our Terms of Use ยง7.1 prohibit systematic harvesting, enumerating endpoints to rebuild a substantial portion of the tire-size or fitment database, redistributing responses as a standalone dataset, accessing fitment endpoints other than in response to genuine human-initiated activity in your own application, and circumventing quotas or access controls.
  • These terms apply identically on every plan, including Business. Access is monitored, and keys that breach ยง7.1 can be throttled or suspended.
  • If you have a legitimate need for bulk or full-catalog data, talk to us about a commercial data license โ€” we're happy to get you the data the right way.

Enforcement responses

429 Access temporarily throttled
  • Returned on any endpoint when unusual bulk-access patterns are detected on your key. Stop the bulk job โ€” access restores automatically once traffic on the key has been quiet for a while, so waiting alone will not clear it while a script keeps running.
  • 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
}
403 Access suspended
  • Returned on any endpoint when a key's access has been suspended pending review. Suspension is always a manual decision and is lifted by contacting support.
{
  "error": "Access suspended",
  "message": "Access to this API has been suspended
              pending a Terms of Use (ยง7.1) review.
              Please contact support."
}
  • Neither response is resolved by changing plans โ€” if you were throttled or suspended in error, or your workload is genuinely bulk, contact support and we'll sort it out.

๐Ÿ’ป Integration Examples

// 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
๐Ÿ“ฅ Download the import-ready workflow files and full step-by-step guide: github.com/Vdimtech/tire-api-help-doc โ†’ integrations/n8n.
Need a key first? Sign up free โ†’
Need Help?

Our support team is here to help

Chat with us