Discover/HollanderParts API
live

HollanderParts APIhollanderparts.com ↗

Browse salvage yard listings on HollanderParts.com via API. Search by year, make, model, and part type. Get prices, seller contacts, VINs, and images.

Endpoint health
verified 2h ago
search_parts
list_search_options
get_part_details
3/3 passing latest checkself-healing
Endpoints
3
Updated
2h ago

What is the HollanderParts API?

The HollanderParts.com API exposes 3 endpoints that cover the full vehicle-to-part search flow: walking the year/make/model/category/part-type/fitment hierarchy, listing matched used-part listings from salvage yards, and fetching a single listing's complete details. The get_part_details endpoint alone returns over a dozen seller-recorded fields including donor VIN, mileage, body code, condition, and shipping availability.

This call costs1 credit / call— charged only on success
Try it
Make slug from list_search_options.options[*].slug at the make level (e.g. toyota).
4-digit model year of the vehicle being searched, e.g. 2014.
Model slug from list_search_options.options[*].slug at the model level (e.g. camry).
Part category slug from list_search_options.options[*].slug at the category level (e.g. engine).
Part type slug from list_search_options.options[*].slug at the part_type level; these carry a numeric prefix and may contain spaces (e.g. 300-engine, 308-timing cover).
→ api.parse.bot/scraper/70cd6b7b-bec1-43d0-aeaf-6af4fa6c6beb/<endpoint>
Ready to send
Fill in the parameters and hit sign in to send to see live response data here.
Call it over HTTPgrab a free API key at signup
curl -X GET 'https://api.parse.bot/scraper/70cd6b7b-bec1-43d0-aeaf-6af4fa6c6beb/list_search_options?make=toyota&year=2014&model=camry&category=engine&part_type=300-engine' \
  -H 'X-API-Key: $PARSE_API_KEY'
All endpoints · 3 totalmissing one? ·

Walks the site's search hierarchy one level at a time. Given a year returns the makes; given year+make the models; year+make+model the part categories; adding category the part types; adding part_type the engine/fitment options. Each option carries the site label and the slug to pass to the next level (or to search_parts). One page request per call. Parameters are positional: a later parameter is ignored unless every earlier one is supplied. The site returns the same fixed category list for any model slug (even an unknown one), so an unrecognized make/model is not rejected at that level; an unknown part_type yields an empty options list. The returned 'level' names the level the options belong to.

Input
ParamTypeDescription
makestringMake slug from list_search_options.options[*].slug at the make level (e.g. toyota).
yearrequiredstring4-digit model year of the vehicle being searched, e.g. 2014.
modelstringModel slug from list_search_options.options[*].slug at the model level (e.g. camry).
categorystringPart category slug from list_search_options.options[*].slug at the category level (e.g. engine).
part_typestringPart type slug from list_search_options.options[*].slug at the part_type level; these carry a numeric prefix and may contain spaces (e.g. 300-engine, 308-timing cover).
Response
{
  "type": "object",
  "fields": {
    "level": "which hierarchy level the options belong to: make | model | category | part_type | fitment",
    "options": "array of {label, slug}; slug is the value accepted by the next level and by search_parts",
    "selection": "object echoing the slugs supplied (year, make, model, category, part_type)"
  },
  "sample": {
    "data": {
      "level": "fitment",
      "options": [
        {
          "slug": "300-10946-2.5l,-vin-f-(5th-digit,-2arfe-engine,-4-cylinder,-without-hybrid),-pzev",
          "label": "2.5L, VIN F (5Th Digit, 2ARFE Engine, 4 Cylinder, Without Hybrid), PZEV"
        },
        {
          "slug": "300.to1j14-alternate-engine",
          "label": "Alternate Engine"
        }
      ],
      "selection": {
        "make": "toyota",
        "year": "2014",
        "model": "camry",
        "category": "engine",
        "part_type": "300-engine"
      }
    },
    "status": "success"
  }
}

About the HollanderParts API

Navigating the Vehicle Hierarchy

list_search_options walks HollanderParts.com's search tree one level at a time. Supply a year to get available makes; add make to get models; continue with model, category, and part_type to drill down to engine and fitment options. Each response includes a level field identifying which tier the results belong to (make, model, category, part_type, or fitment) and an options array of {label, slug} pairs. The slug from each level feeds directly into the next call, and ultimately into search_parts.

Searching for Parts

search_parts requires all six hierarchy slugs — year, make, model, category, part_type, and fitment — and returns up to 100 listings. Each listing in the parts array carries a part_key, ref_number, price (numeric or null), price_text, and a free_shipping boolean. The site does not paginate beyond 100 results for any given fitment, so the sort parameter — including a nearest option that uses a postal_code input as origin — is the main tool for controlling which listings surface. The selection object in the response echoes back all six slugs for verification.

Part Listing Details

get_part_details takes a part_key from search_parts and returns the full listing record. Seller-recorded fields include mileage, vin, body_code, location, notes, and the seller object containing name, address, phone, and nullable email. The shipping object breaks out in_store_pickup, domestic, and international availability text; all three fields are null when no price is published. The images array contains listing photo URLs and may be empty if the seller uploaded none.

Reliability & maintenanceVerified

The HollanderParts API is a managed, monitored endpoint for hollanderparts.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when hollanderparts.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 hollanderparts.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.

Last verified
2h ago
Latest check
3/3 endpoints passing
Maintenance
Monitored & self-healing
Will this API break when the source site changes?+
It's built not to. Every endpoint is health-checked on a schedule with automated test probes. When the source site changes and a check fails, the API is automatically queued for repair and re-verified — that's the self-healing layer. Each API page shows when its endpoints were last verified. And because marketplace APIs are shared, any fix reaches everyone using it.
Is this an official API from the source site?+
No — Parse APIs are independent, managed REST wrappers over publicly available data. That is the point: where a site has no official API (or only a limited one), Parse gives you a maintained, monitored endpoint for that data and keeps it working as the site changes — so you get a stable contract over a source that never promised one.
Can I fix or extend this API myself if I need a new endpoint or field?+
Yes — and you don't have to wait on us. This API was generated by the Parse agent, which stays attached. Describe the change in plain English ("add an endpoint that returns reviews", "fix the price field") in the revise box on the API page or via the revise_api MCP tool, and the agent rebuilds it against the live site in minutes. Contributing the change back to the public API is free.
What happens if I call an endpoint that has an issue?+
Errors are machine-readable: a bad call returns a clean status with the list of available endpoints and a repair hint, so an agent (or you) can recover or trigger a fix instead of failing silently. Confirmed failures feed the automatic repair queue.
Common use cases
  • Build a used-parts price comparison tool across salvage yards for a specific vehicle fitment.
  • Aggregate seller contact data and locations to map nearby yards stocking a target part.
  • Monitor price changes on a specific part type across model years by polling search_parts.
  • Filter listings by free_shipping to surface parts that ship without additional cost.
  • Populate an inventory database with donor VINs, mileage, and body codes from get_part_details.
  • Drive a vehicle-aware part-finder UI using the list_search_options hierarchy responses.
  • Sort listings by nearest yard using the postal_code parameter to minimize shipping distance.
Pricing & limitsSee full pricing →
TierPriceCredits/monthRate limit
Free$0/mo2005 req/min
Hobby$30/mo1,00020 req/min
Developer$100/mo5,000100 req/min
Team$300/mo20,000300 req/min
Company$1,000/mo100,000500 req/min

Each endpoint has a fixed posted price per successful call — most fall between 1 and 10 credits — shown on this API's page before you run it. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.

Frequently asked questions
Does HollanderParts.com have an official developer API?+
HollanderParts.com does not publish a public developer API or documentation for third-party access to its listing data.
What does search_parts return when no listings are found for a fitment?+
The parts array will be empty and count will be 0. The selection object still echoes back the six slugs you supplied, so you can confirm the query parameters were accepted correctly.
How does the search_parts pagination work — can I retrieve more than 100 listings?+
The endpoint returns up to 100 listings, which matches the maximum the site displays for any given fitment. There is no page or offset parameter. If you need a broader view across fitments, you can query multiple fitment slugs separately using values returned by list_search_options at the fitment level.
Does the API return part condition grades or grading scale details?+
The current endpoints do not expose a structured condition grade field beyond the seller's free-text notes in get_part_details. You can fork this API on Parse and revise it to add a dedicated condition field if that data appears in listing records.
Can I search by part number or keyword instead of navigating the full year/make/model hierarchy?+
Not currently. All three endpoints are built around the vehicle hierarchy — year, make, model, category, part type, and fitment slugs are required to retrieve listings. You can fork this API on Parse and revise it to add a keyword or part-number search endpoint.
Page content last updated . Spec covers 3 endpoints from hollanderparts.com.
Related APIs in AutomotiveSee all →