Rebates
Browse available tire rebates and get detailed rebate information including line items and associated tire patterns.
Case-insensitive filtering. String filter values such as
make_name and status are case-insensitive — for example, status=active and status=Active produce the same results.
List Rebates
GET
/api/v1/rebate
List rebates with optional filters for date range, status, and make. Returns paginated results.
Query Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
start_date | date | No | — | Filter by start date (e.g. 2025-03-01) |
end_date | date | No | — | Filter by end date (e.g. 2025-05-31) |
global | string | No | — | true/1 for global rebates only, false/0 for non-global |
status | string | No | — | One of: Active, Upcoming, Expired |
sort_by_key | string | No | — | Sort field: start_date, end_date, name |
sort_by_order | string | No | — | Sort direction: asc or desc |
page | int | No | 1 | Page number |
per_page | int | No | 30 | Results per page (max 100) |
make_name | string | No | — | Filter by tire make name |
Code Examples
curl -H "x-api-key: tl_live_your_key" \
"https://app.tireweblibrary.com/api/v1/rebate?status=Active"
const response = await fetch(
"https://app.tireweblibrary.com/api/v1/rebate?status=Active",
{ headers: { "x-api-key": "tl_live_your_key" } }
);
const data = await response.json();
import requests
response = requests.get(
"https://app.tireweblibrary.com/api/v1/rebate",
params={"status": "Active"},
headers={"x-api-key": "tl_live_your_key"},
)
data = response.json()
Response
{
"current_page": 1,
"data": [
{
"id": 10,
"name": "Spring Rebate",
"start_date": "2025-03-01",
"end_date": "2025-05-31",
"global": true,
"status": "Active"
}
],
"from": 1,
"last_page": 1,
"per_page": 30,
"to": 12,
"total": 12
}Response Fields
| Field | Type | Description |
|---|---|---|
id | long | Unique rebate identifier |
name | string | Rebate name |
start_date | string | Rebate start date (ISO 8601) |
end_date | string | Rebate end date (ISO 8601) |
global | bool | Whether the rebate applies to all makes |
status | string | Rebate status: Active, Upcoming, or Expired |
Error Responses
| Status | Condition |
|---|---|
401 | Missing or invalid API key |
Related Endpoints
- Tire Makes — get make names for the
make_namefilter - Tire Patterns — browse patterns associated with rebate line items
Get Rebate by ID
GET
/api/v1/rebate/{id}
Get full detail for a single rebate including line items (amounts, quantities, spend requirements) and associated tire patterns.
Path Parameters
| Parameter | Type | Description |
|---|---|---|
id | long | Rebate ID |
Code Examples
curl -H "x-api-key: tl_live_your_key" \
"https://app.tireweblibrary.com/api/v1/rebate/10"
const response = await fetch(
"https://app.tireweblibrary.com/api/v1/rebate/10",
{ headers: { "x-api-key": "tl_live_your_key" } }
);
const rebate = await response.json();
import requests
response = requests.get(
"https://app.tireweblibrary.com/api/v1/rebate/10",
headers={"x-api-key": "tl_live_your_key"},
)
rebate = response.json()
Response
{
"id": 10,
"name": "Spring Rebate",
"description": "Save on select tires this spring.",
"image_url": "https://...",
"image_horizontal_url": "https://...",
"image_preview_url": "https://...",
"form_url": "https://...",
"start_date": "2025-03-01",
"end_date": "2025-05-31",
"global": true,
"status": "Active",
"rebate_items": [
{
"id": 25,
"amount": 70.00,
"amount_reason": "Prepaid Card",
"amount_two": 100.00,
"amount_two_reason": "Prepaid Card (select sizes)",
"quantity_required": 4,
"quantity_limit": null,
"spend_min": null,
"spend_max": null,
"tire_patterns": [
{
"id": 678,
"name": "Defender T+H",
"description": "All-season tire...",
"image_url": "https://..."
}
]
}
]
}Response Fields
| Field | Type | Description |
|---|---|---|
id | long | Unique rebate identifier |
name | string | Rebate name |
description | string? | Rebate description |
image_url | string? | Rebate image URL (vertical) |
image_horizontal_url | string? | Rebate image URL (horizontal) |
image_preview_url | string? | Rebate preview image URL |
form_url | string? | URL to the rebate claim form |
start_date | string | Rebate start date (ISO 8601) |
end_date | string | Rebate end date (ISO 8601) |
global | bool | Whether the rebate applies to all makes |
status | string | Rebate status: Active, Upcoming, or Expired |
rebate_items | array | Line items with amounts, quantities, and qualifying tire patterns |
rebate_items[].id | long | Rebate item identifier |
rebate_items[].amount | decimal? | Primary rebate amount |
rebate_items[].amount_reason | string? | Description of how the primary amount is paid |
rebate_items[].amount_two | decimal? | Secondary rebate amount (e.g. for select sizes) |
rebate_items[].amount_two_reason | string? | Description of how the secondary amount is paid |
rebate_items[].quantity_required | int? | Number of tires required to qualify |
rebate_items[].quantity_limit | int? | Maximum number of submissions allowed |
rebate_items[].spend_min | decimal? | Minimum spend to qualify |
rebate_items[].spend_max | decimal? | Maximum spend to qualify |
rebate_items[].tire_patterns | array | Qualifying tire patterns with id, name, description, image_url |
Error Responses
| Status | Condition |
|---|---|
401 | Missing or invalid API key |
404 | Rebate with the given ID does not exist |
Related Endpoints
- Tire Patterns — get full pattern details for the tire patterns in
rebate_items[].tire_patterns - Tires — search for tire sizes that qualify for a rebate
- Tire Makes — filter rebates by
make_nameon the list endpoint