car-part APIcar-part.com ↗
Search recycled auto parts on car-part.com via API. Get part listings, pricing, mileage, dealer info, and full part details across thousands of vehicles.
What is the car-part API?
The car-part.com API provides 3 endpoints to search and retrieve recycled auto parts data, including part listings with pricing, mileage, grade, and dealer info. The search_parts endpoint accepts ZIP code, part type, year, and make/model inputs and returns paginated results with up to 8 fields per part record. A companion get_part_detail endpoint resolves any quote URL from search results into full part metadata including interchange numbers and stock identifiers.
No input parameters required.
curl -X GET 'https://api.parse.bot/scraper/2e7463dd-fe7e-4b11-ba61-d8836ee35a31/get_search_metadata' \ -H 'X-API-Key: $PARSE_API_KEY'
Typed, relational, agent-ready
A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.
- Fully typed · autocompletes
- Objects link to objects
- Typed errors & pagination
Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:
uv add parse-sdk uv run parse init uv run parse add --marketplace car-part-com-api
uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.
from parse_apis.car_part_com_scraper_api import CarPart, SearchMetadata, Part, PartDetail
client = CarPart()
# Get available search options
metadata = client.searchmetadatas.get()
print(metadata.years[1], metadata.parts[1], metadata.models[1])
# Search for recycled parts near Detroit
for part in client.parts.search(zip="48201", year="2020", model="Honda Accord", part="Engine", limit=5):
print(part.stock_number, part.price, part.description, part.distance)
dealer = part.dealer
print(dealer.name, dealer.phone)
# Get full detail for this part
detail = part.detail.get()
print(detail.quoted_price, detail.make_model, detail.miles)
Retrieve the search form options from car-part.com: available vehicle years, make/model combinations, part types, and geographic location filters. Returns arrays of string values that serve as valid inputs to search_parts. Each array's first element is a placeholder label (e.g. 'Select Year').
No input parameters required.
{
"type": "object",
"fields": {
"parts": "array of part type strings available for search",
"years": "array of year strings available for search",
"models": "array of make/model strings available for search",
"locations": "array of location filter strings available for search"
},
"sample": {
"data": {
"parts": [
"Select Part",
"A Pillar",
"A Pillar Trim"
],
"years": [
"Select Year",
"2026",
"2025"
],
"models": [
"Select Make/Model",
"AMC Ambassador",
"AMC American"
],
"locations": [
"All States",
"USA",
"Canada"
]
},
"status": "success"
}
}About the car-part API
Search Metadata and Valid Inputs
Before querying parts, call get_search_metadata (no inputs required) to retrieve the valid values for year, model, part, and location filters. These arrays come directly from car-part.com's available options and include placeholder strings like 'Select Part' and 'Select Year' which should be filtered out before use. Feeding values from this endpoint into search_parts prevents invalid-query errors and ensures results match the site's actual inventory.
Searching for Parts
The search_parts endpoint accepts a required zip postal code, part, year, and model string — all validated against get_search_metadata output. An optional location filter narrows results geographically, and a page integer enables pagination. Each result object includes year, model, part, description, image_url, part_miles, part_grade, stock_number, price, dealer, and a quote_url used for detail lookups. The response also returns total_pages so callers can iterate through all available results.
Retrieving Full Part Details
Pass any quote_url from search_parts results into get_part_detail to retrieve the complete record for that part. The response includes fields not returned in search results: Interchange (cross-reference number for compatible applications), Subject (a summary line combining year, model, part, price, and stock number), Yard (the selling dealer's name), and Postal Code. The Quoted Price field may differ from the price field in search results if dealer quotes have been updated.
Coverage and Pagination
Inventory coverage reflects what dealers have listed on car-part.com at query time. Results are paginated; total_pages indicates how many pages exist for a given query. Proximity search is driven by the zip parameter, so results are ordered by distance from the supplied postal code.
The car-part API is a managed, monitored endpoint for car-part.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when car-part.com changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official car-part.com API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Build a recycled parts price comparison tool using
priceanddealerfields across multiple ZIP codes - Track mileage and grade data (
part_miles,part_grade) to filter for lower-mileage used engines or transmissions - Retrieve interchange numbers via
get_part_detailto identify cross-compatible parts for a given vehicle - Aggregate dealer inventory by parsing
stock_numberandYardfields across paginatedsearch_partsresults - Power a salvage yard locator by mapping
dealerandPostal Codefrom part detail responses - Monitor price changes on specific parts by periodically querying
search_partsand comparingQuoted Pricevalues
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does car-part.com have an official developer API?+
What does `get_part_detail` return beyond what `search_parts` already provides?+
get_part_detail adds several fields absent from search results: Interchange (the part interchange number for cross-vehicle compatibility), Subject (a pre-formatted summary string), Yard (the dealer name as listed on the quote), and Postal Code. It also returns Quoted Price as a separate field, which may reflect a more current value than the price in the search listing.Are there any known limitations with pagination or result freshness?+
total_pages field in search_parts responses tells you how many pages exist, but there is no cursor or offset parameter — pagination is integer-based via the page input only.Does the API return seller contact details like phone numbers or email addresses?+
dealer (yard name) and Postal Code from get_part_detail, but does not expose phone numbers, email addresses, or direct contact links. You can fork this API on Parse and revise it to add an endpoint targeting dealer contact pages if that data is needed.Can I filter `search_parts` results by part grade or mileage range?+
search_parts endpoint does not accept part_grade or part_miles as filter inputs — those fields are returned in results and must be filtered client-side. You can fork this API on Parse and revise the search endpoint to add server-side grade or mileage filtering if your use case requires it.