Tire Library API Documentation

Tires

Three endpoints for discovering and inspecting tires: a simple dimensional search, a full faceted catalog browser, and a detail endpoint for individual tire sizes.

Case-insensitive filtering. String filter values such as make_name, category, season, terrain, and exclude_category are case-insensitive — for example, make_name=Michelin and make_name=MICHELIN produce the same results.

Search Tires

GET /api/v1/tires/search

Search tire sizes by dimensional attributes. Returns paginated results with basic tire information.

Query Parameters

ParameterTypeRequiredDefaultDescription
widthstringNo—Tire width in mm (e.g. 205)
aspect_ratiostringNo—Aspect ratio (e.g. 65)
rim_sizestringNo—Rim diameter in inches (e.g. 15)
load_ratingstringNo—Load rating code (e.g. 97)
speed_ratingstringNo—Speed rating code (e.g. H)
size_formatstringNo—Size format. One of: Modern (metric, e.g. 205/65R15), Imperial, Imperial Truck (e.g. 10R22.5), OD (flotation, e.g. 31x10.50R15), Lawn and Garden
exclude_categorystring[]No[]Exclude tires in these categories. Repeat for multiple: ?exclude_category=OTR/Construction, Earthmover&exclude_category=Industrial
pageintNo1Page number (1-based)
per_pageintNo20Results per page (max 100)
Imperial & flotation sizes. Non-metric sizes have aspect_ratio: null. For imperial truck sizes (e.g. 10R22.5), query with aspect_ratio=0. For flotation sizes (e.g. 31x10.50R15), query by width and rim (?width=31&rim_size=15) and use size_format=OD to include only flotation tires.

Code Examples

curl -H "x-api-key: tl_live_your_key" \
  "https://app.tireweblibrary.com/api/v1/tires/search?width=205&aspect_ratio=65&rim_size=15"
const response = await fetch(
  "https://app.tireweblibrary.com/api/v1/tires/search?width=205&aspect_ratio=65&rim_size=15",
  { headers: { "x-api-key": "tl_live_your_key" } }
);
const data = await response.json();
import requests

response = requests.get(
    "https://app.tireweblibrary.com/api/v1/tires/search",
    params={"width": "205", "aspect_ratio": "65", "rim_size": "15"},
    headers={"x-api-key": "tl_live_your_key"},
)
data = response.json()

Response

{
  "current_page": 1,
  "data": [
    {
      "id": 12345,
      "name": "205/65R15",
      "item_number": "12345",
      "tire_model_id": 678,
      "tire_make_id": 90,
      "width": "205",
      "aspect_ratio": "65",
      "rim_size": "15",
      "load_rating": "97",
      "speed_rating": "H",
      "make_name": "Michelin",
      "model_name": "Defender T+H",
      "season": "All Season",
       "category": "Passenger",
       "three_pmsf": false,
       "run_flat": false,
       "mud_and_snow": true,
       "size_format": "Modern",
       "thumbnail_image": null,
       "angle_image_url": "https://...",
       "side_image_url": "https://...",
       "side2_image_url": "https://...",
       "front_image_url": "https://...",
       "rotation_image_url": "https://...",
       "image_url": "https://..."
     }
   ],
   "from": 1,
   "last_page": 3,
   "per_page": 20,
   "to": 20,
   "total": 55
 }

Response Fields

FieldTypeDescription
idlongUnique tire size identifier
namestringTire size name (e.g. "205/65R15")
item_numberstring?Item number / SKU
tire_model_idlongID of the tire pattern
tire_make_idlongID of the tire make
widthstring?Tire width in mm
aspect_ratiostring?Aspect ratio
rim_sizestring?Rim diameter in inches
load_ratingstring?Load rating code
speed_ratingstring?Speed rating code
size_formatstring?Size format: Modern, Imperial, Imperial Truck, OD, or Lawn and Garden; null when unclassified
make_namestring?Make name (e.g. "Michelin")
model_namestring?Pattern name (e.g. "Defender T+H")
seasonstring?Season classification
categorystring?Tire category
warrantystring?Warranty mileage
ply_ratingstring?Ply rating
load_rangestring?Load range (e.g. "SL")
utqgstring?UTQG rating (e.g. "820 A B")
tread_depthstring?Tread depth (32nds of an inch)
weightstring?Tire weight (lbs)
make_imagestring?URL to make logo image
terrainstring?Terrain classification
studdablebool?Studdable tire
three_pmsfboolThree-Peak Mountain Snowflake certification
run_flatboolRun-flat tire
mud_and_snowboolM+S rated
thumbnail_imagestring?Deprecated — always null. Use angle_image_url / side_image_url / image_url (per-model images) instead.
angle_image_urlstring?URL to a 500x500 angled tread photo with cache-busting ?v=; null when unavailable (see Angle Images below)
side_image_urlstring?URL to the side-view product photo (per tire model), with cache-busting ?v=; null when unavailable
side2_image_urlstring?Alternate side-view photo for this tire’s model (seeded set), with cache-busting ?v=; null when unavailable
front_image_urlstring?Front-view product photo for this tire’s model, with cache-busting ?v=; null when unavailable
rotation_image_urlstring?Poster frame of the 360° spin set for this tire’s model (first frame), with cache-busting ?v=; null when unavailable
image_urlstring?URL to the legacy pattern product image (fallback when the angle image is unavailable)

Error Responses

StatusCondition
401Missing or invalid API key

Related Endpoints


Browse Catalog

GET /api/v1/tires/catalog

Full-featured faceted catalog browser. Returns matching tires along with available facet values for building interactive filters. Most parameters accept multiple values — repeat the query parameter for each value.

Query Parameters

ParameterTypeRequiredDefaultDescription
searchstringNo—Free-text search
make_namestring[]No[]Filter by make. Repeat for multiple: ?make_name=Michelin&make_name=Bridgestone
widthstring[]No[]Filter by width
aspect_ratiostring[]No[]Filter by aspect ratio
rim_sizestring[]No[]Filter by rim size
speed_ratingstring[]No[]Filter by speed rating
load_ratingstring[]No[]Filter by load rating
ply_ratingstring[]No[]Filter by ply rating
load_rangestring[]No[]Filter by load range
utqgstring[]No[]Filter by UTQG
warrantystring[]No[]Filter by warranty
item_numberstring[]No[]Filter by item number
size_formatstring[]No[]Filter by size format. Values: Modern, Imperial, Imperial Truck, OD (flotation), Lawn and Garden
seasonstring[]No[]Filter by season
terrainstring[]No[]Filter by terrain
categorystring[]No[]Filter by category
exclude_categorystring[]No[]Exclude tires in these categories. Repeat for multiple: ?exclude_category=OTR/Construction, Earthmover&exclude_category=Industrial
three_pmsfboolNo—Three-Peak Mountain Snowflake
run_flatboolNo—Run-flat tires only
mud_and_snowboolNo—M+S rated only
studdableboolNo—Studdable only
sortstringNo—Sort key (e.g. name_asc)
pageintNo1Page number
per_pageintNo30Results per page (max 100)

Code Examples

curl -H "x-api-key: tl_live_your_key" \
  "https://app.tireweblibrary.com/api/v1/tires/catalog?make_name=Michelin&per_page=30"
const response = await fetch(
  "https://app.tireweblibrary.com/api/v1/tires/catalog?make_name=Michelin&per_page=30",
  { headers: { "x-api-key": "tl_live_your_key" } }
);
const data = await response.json();
import requests

response = requests.get(
    "https://app.tireweblibrary.com/api/v1/tires/catalog",
    params={"make_name": "Michelin", "per_page": 30},
    headers={"x-api-key": "tl_live_your_key"},
)
data = response.json()

Response

{
  "results": {
    "current_page": 1,
    "data": [
      {
        "id": 12345,
        "name": "205/65R15",
        "item_number": "12345",
        "tire_model_id": 678,
        "tire_make_id": 90,
        "width": "205",
        "aspect_ratio": "65",
        "rim_size": "15",
        "load_rating": "97",
        "speed_rating": "H",
        "make_name": "Michelin",
        "model_name": "Defender T+H",
        "season": "All Season",
        "category": "Passenger",
        "warranty": "90000",
        "ply_rating": "4",
        "load_range": "SL",
        "utqg": "820 A B",
        "tread_depth": "9.5",
        "weight": "22",
        "make_image": "https://...",
        "terrain": "Highway",
         "studdable": false,
         "three_pmsf": false,
         "run_flat": false,
         "mud_and_snow": true,
         "size_format": "Modern",
         "thumbnail_image": null,
         "angle_image_url": "https://...",
         "side_image_url": "https://...",
         "side2_image_url": "https://...",
         "front_image_url": "https://...",
       "front_image_url": "https://...",
       "side2_image_url": "https://...",
       "front_image_url": "https://...",
         "rotation_image_url": "https://...",
       "rotation_image_url": "https://...",
         "image_url": "https://..."
      }
    ],
    "from": 1,
    "last_page": 5,
    "per_page": 30,
    "to": 30,
    "total": 150
  },
  "facets": {
    "make_name": ["Michelin", "Bridgestone", "Goodyear", "..."],
    "width": ["155", "165", "175", "185", "195", "205", "..."],
    "aspect_ratio": ["40", "45", "50", "55", "60", "65", "..."],
    "rim_size": ["14", "15", "16", "17", "18", "..."],
    "speed_rating": ["H", "V", "W", "Y", "..."],
    "load_rating": ["93", "97", "101", "..."],
    "ply_rating": ["4", "6", "8", "..."],
    "load_range": ["SL", "XL", "E", "..."],
    "utqg": ["820 A B", "740 A A", "..."],
    "warranty": ["90000", "80000", "60000", "..."],
    "season": ["All Season", "Winter", "Summer", "..."],
    "terrain": ["Highway", "All-Terrain", "Mud-Terrain", "..."],
    "category": ["Passenger", "Light Truck", "..."],
    "size_format": ["Imperial", "Imperial Truck", "Lawn and Garden", "Modern", "OD"]
  }
}

Response Fields

FieldTypeDescription
resultsobjectPaginated tire results (same fields as Search Tires)
facetsobjectAvailable filter values for building interactive UIs
facets.make_namestring[]Distinct make names in the result set
facets.widthstring[]Distinct widths
facets.aspect_ratiostring[]Distinct aspect ratios
facets.rim_sizestring[]Distinct rim sizes
facets.speed_ratingstring[]Distinct speed ratings
facets.load_ratingstring[]Distinct load ratings
facets.ply_ratingstring[]Distinct ply ratings
facets.load_rangestring[]Distinct load ranges
facets.utqgstring[]Distinct UTQG ratings
facets.warrantystring[]Distinct warranty values
facets.seasonstring[]Distinct seasons
facets.terrainstring[]Distinct terrain values
facets.categorystring[]Distinct categories
facets.size_formatstring[]Distinct size formats

Error Responses

StatusCondition
401Missing or invalid API key

Related Endpoints


Get Tire by ID

GET /api/v1/tires/{id}

Get the full specification sheet for a single tire size, including dimensions, performance ratings, images, rebates, and vehicle fitments.

Path Parameters

ParameterTypeDescription
idlongTire size ID (obtained from search or catalog endpoints)

Query Parameters

ParameterTypeRequiredDefaultDescription
rebate_statusstringNo— (returns all)Filter rebates by status: Active, Upcoming, or Expired. Without this parameter, all rebates are returned.

Code Examples

curl -H "x-api-key: tl_live_your_key" \
  "https://app.tireweblibrary.com/api/v1/tires/12345"

# Only include active rebates
curl -H "x-api-key: tl_live_your_key" \
  "https://app.tireweblibrary.com/api/v1/tires/12345?rebate_status=Active"
const response = await fetch(
  "https://app.tireweblibrary.com/api/v1/tires/12345",
  { headers: { "x-api-key": "tl_live_your_key" } }
);
const tire = await response.json();

// Only include active rebates
const response2 = await fetch(
  "https://app.tireweblibrary.com/api/v1/tires/12345?rebate_status=Active",
  { headers: { "x-api-key": "tl_live_your_key" } }
);
const tire2 = await response2.json();
import requests

response = requests.get(
    "https://app.tireweblibrary.com/api/v1/tires/12345",
    headers={"x-api-key": "tl_live_your_key"},
)
tire = response.json()

# Only include active rebates
response = requests.get(
    "https://app.tireweblibrary.com/api/v1/tires/12345",
    params={"rebate_status": "Active"},
    headers={"x-api-key": "tl_live_your_key"},
)
tire = response.json()

Response

{
  "id": 12345,
  "name": "205/65R15",
  "item_number": "12345",
  "upc": "086699212345",
  "ean": "00866992123455",
  "asin": "B0CX12AB34",
  "gm_code": "356096357",
  "width": "205",
  "aspect_ratio": "65",
  "rim_size": "15",
  "load_rating": "97",
  "speed_rating": "H",
  "price": "129.99",
  "load_capacity_dual": "1709",
  "load_capacity_single": "1609",
  "max_inflation_pressure": "44",
  "revolutions_per_mile": "775",
  "rolling_circumference": "81.8",
  "diameter_overall": "25.5",
  "sidewall": "5.3",
  "section_width": "8.5",
  "weight": "22",
  "warranty": "90000",
  "utqg": "820 A B",
  "ply_rating": "4",
  "load_range": "SL",
  "tread_depth": "9.5",
  "category": "Passenger",
  "season": "All Season",
  "terrain": "Highway",
  "studdable": false,
  "three_pmsf": false,
  "run_flat": false,
  "mud_and_snow": true,
  "thumbnail_image": null,
  "tire_make": {
    "id": 90,
    "name": "Michelin",
    "image_url": "https://...",
    "dot_reg_url": "https://..."
  },
  "tire_model": {
    "id": 678,
    "name": "Defender T+H",
    "image_url": "https://...",
    "angle_image_url": "https://...",
    "side_image_url": "https://...",
    "side2_image_url": "https://...",
    "front_image_url": "https://...",
    "rotation_image_url": "https://...",
    "rotation_frame_count": 36,
    "image_360_url": "https://...",
    "image_360_thumbnail_url": "https://...",
    "video_url": "https://...",
    "manufacturer_url": "https://...",
    "features": "Extended tread life...",
    "benefits": "All-season confidence...",
    "description": "...",
    "three_pmsf": false
  },
  "rebates": [
    {
      "id": 10,
      "name": "Spring Rebate",
      "description": "Save on select Michelin tires",
      "start_date": "2025-03-01",
      "end_date": "2025-05-31",
      "global": false,
      "status": "Active"
    }
  ],
  "fitments_grouped": {
    "Chevrolet": {
      "Equinox": [
        { "trim": "L", "years": "2018-2021", "year_list": [2018, 2019, 2020, 2021] },
        { "trim": "LS", "years": "2018-2024", "year_list": [2018, 2019, 2020, 2021, 2022, 2023, 2024] },
        { "trim": "LT", "years": "2018-2024", "year_list": [2018, 2019, 2020, 2021, 2022, 2023, 2024] }
      ]
    },
    "Ford": {
      "Escape": [
        { "trim": "SE", "years": "2020-2022", "year_list": [2020, 2021, 2022] }
      ]
    }
  }
}

Response Fields

FieldTypeDescription
idlongUnique tire size identifier
namestringTire size name (e.g. "205/65R15")
item_numberstring?Item number / SKU
upcstring?Universal Product Code (UPC, 12 digits); null when not provided by the manufacturer
eanstring?International Article Number (EAN-13); null when unavailable
asinstring?Amazon Standard Identification Number; null when unavailable
gm_codestring?GM code; null when unavailable
widthstring?Tire width in mm
aspect_ratiostring?Aspect ratio
rim_sizestring?Rim diameter in inches
load_ratingstring?Load rating code
speed_ratingstring?Speed rating code
pricestring?List price
load_capacity_dualstring?Load capacity for dual fitment (lbs)
load_capacity_singlestring?Load capacity for single fitment (lbs)
max_inflation_pressurestring?Maximum inflation pressure (PSI)
revolutions_per_milestring?Revolutions per mile
rolling_circumferencestring?Rolling circumference (inches)
diameter_overallstring?Overall diameter (inches)
sidewallstring?Sidewall height (inches)
section_widthstring?Section width (inches)
weightstring?Tire weight (lbs)
warrantystring?Warranty mileage
utqgstring?UTQG rating (e.g. "820 A B")
ply_ratingstring?Ply rating
load_rangestring?Load range (e.g. "SL")
tread_depthstring?Tread depth (32nds of an inch)
categorystring?Tire category
seasonstring?Season classification
terrainstring?Terrain classification
studdablebool?Studdable tire
three_pmsfboolThree-Peak Mountain Snowflake certification
run_flatboolRun-flat tire
mud_and_snowboolM+S rated
thumbnail_imagestring?Deprecated — always null. Use angle_image_url / side_image_url / image_url (per-model images) instead.
tire_makeobject?Nested make object with id, name, image_url, dot_reg_url
tire_modelobject?Nested pattern object with id, name and images: image_url (legacy pattern JPG) plus per-model angle_image_url (500x500 angled tread photo), side_image_url, side2_image_url, front_image_url (all null when unavailable, cache-busting ?v=), rotation_image_url/rotation_frame_count (360° spin poster + frame count, when the pattern has a spin set); then image_360_url, image_360_thumbnail_url, video_url, manufacturer_url, features, benefits, description, three_pmsf
rebatesarrayApplicable rebates with id, name, description, start_date, end_date, global, status
fitments_groupedobject?Vehicle fitments for this size, grouped by make, then model. Outer keys are make names, inner keys are model names, and each model maps to an array of objects with trim (string, the trim level), years (string: individual years and collapsed ranges for display, e.g. "2019, 2021-2023"), and year_list (int array: every applicable model year, e.g. [2019, 2021, 2022, 2023] — use this for programmatic year matching instead of parsing years). null when no fitment data exists for this size.
Tire-level images deprecated. Legacy per-size image fields (thumbnail_image, angle_image, front_image, side_image, side2_image, image_0100, image_0200, image_0301) always return null. Use the per-model images instead: tire_model.image_url / tire_model.angle_image_url (search and catalog also expose image_url, angle_image_url, side_image_url, side2_image_url, front_image_url and rotation_image_url).

Error Responses

StatusCondition
401Missing or invalid API key
404Tire with the given ID does not exist

Related Endpoints

Compare & Export not available. The /api/v1/tires/compare and /api/v1/tires/compare-export endpoints require a logged-in web session and are not available via API keys.