Autodoc APIautodoc.co.uk ↗
Browse Autodoc's vehicle hierarchy and parts catalog via API. Search parts by keyword or number, get specs, OE references, and find compatible alternatives.
What is the Autodoc API?
The Autodoc.co.uk API exposes 6 endpoints covering the full vehicle-to-part lookup chain on one of Europe's largest online auto parts retailers. Starting with get_car_makers, you can drill down through manufacturers, models, and engine variants to identify the correct fitment context, then search for parts by keyword or part number, retrieve detailed specifications and OE reference numbers, and find compatible alternative products from other brands.
No input parameters required.
curl -X GET 'https://api.parse.bot/scraper/70de51f9-9aaa-46f7-89f2-d9e784c78466/get_car_makers' \ -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 autodoc-co-uk-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.
"""Walkthrough: Autodoc API — browse vehicles, search parts, get details."""
from parse_apis.autodoc_api import Autodoc, ProductNotFound
client = Autodoc()
# List all car makers — limit= caps total items fetched
for maker in client.makers.list(limit=5):
print(maker.name, f"(id={maker.id}, group={maker.group})")
# Drill into a specific maker's models via constructible resource
bmw = client.maker(id=16)
first_model = bmw.models.list(limit=1).first()
if first_model:
print(f"First BMW model: {first_model.name} (group: {first_model.group})")
# Get engines for that model
for engine in first_model.engines.list(limit=3):
print(f" Engine: {engine.name} — {engine.group}")
# Search for parts by keyword
result = client.parts.search(query="oil filter", limit=3).first()
if result:
print(f"Search hit: {result.title} ({result.type}) — {result.url}")
# Get full product details
try:
product = client.parts.get(url="/ridex/7999410")
print(f"Product: {product.name}")
print(f" Brand: {product.brand}, Price: {product.price}")
print(f" Specs: {len(product.specs)} items, OE numbers: {len(product.oe_numbers)}")
except ProductNotFound as exc:
print(f"Product not found: {exc}")
# Find equivalent/compatible products
for equiv in client.products.equivalents(url="/ridex/7999410", limit=5):
print(f" Alternative: {equiv.brand} {equiv.part_number}")
print("exercised: makers.list / models.list / engines.list / parts.search / parts.get / products.equivalents")
Returns all car manufacturers available on Autodoc, grouped into popular and alphabetical lists. Each maker has an integer ID used to drill into models. No input required.
No input parameters required.
{
"type": "object",
"fields": {
"makers": "array of maker objects each containing id (integer), name (string), and group (string indicating popularity grouping)"
},
"sample": {
"data": {
"makers": [
{
"id": 16,
"name": "BMW",
"group": "Popular carmakers"
},
{
"id": 121,
"name": "VW",
"group": "Popular carmakers"
},
{
"id": 5,
"name": "AUDI",
"group": "Popular carmakers"
}
]
},
"status": "success"
}
}About the Autodoc API
Vehicle Hierarchy
Three endpoints map Autodoc's vehicle catalog as a tree. get_car_makers returns every manufacturer available, with each maker carrying an integer id, a name, and a group field that distinguishes popular brands from the full alphabetical list. Pass a maker_id to get_car_models to get that brand's model lineup — each model includes an integer id, a name with production date range, and a group denoting its model series. From there, get_car_engines accepts a model_id and returns engine variants grouped by fuel type (Petrol, Diesel, etc.), each with an integer id and a name encoding power output and date range.
Parts Search and Product Detail
search_parts accepts a free-text query — brand part numbers like RIDEX 402B0013 work as well as generic terms like brake pads. Results come back as an items array where each entry carries a type field (suggestion, category, or product), a title, and a url path. Product hits also include pricing. Those URL paths feed directly into get_product_details, which returns the full product record: name, brand, price, article_number, a specs object mapping specification labels to values, and an oe_numbers array of OEM reference strings.
Alternative Parts
get_equivalent_products accepts the same URL path format as get_product_details and returns an equivalents array. Each entry includes brand, part_number, price, and a url for further lookup. This is useful for comparing cross-brand fitment options or finding in-stock alternatives when a specific part number is unavailable.
The Autodoc API is a managed, monitored endpoint for autodoc.co.uk — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when autodoc.co.uk 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 autodoc.co.uk 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 vehicle-specific parts finder by chaining get_car_makers → get_car_models → get_car_engines to establish fitment context.
- Look up OE/OEM reference numbers for a part using the oe_numbers field from get_product_details.
- Compare prices across alternative brands for the same part using get_equivalent_products.
- Search by competitor part numbers or article numbers via search_parts to find matching Autodoc listings.
- Populate a product catalog with specs, pricing, and brand data pulled from get_product_details.
- Identify cross-brand replacement options for discontinued or hard-to-source parts.
| 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.