Blackcircles APIblackcircles.com ↗
Search Blackcircles.com tyres by UK vehicle registration. Get vehicle details, compatible tyre sizes, fitted prices, and EU label ratings in one API call.
What is the Blackcircles API?
The Blackcircles.com API exposes 1 endpoint — search_tyres_by_vehicle — that accepts a UK vehicle registration number and postcode, then returns a structured response containing vehicle identity, available tyre sizes, and a full array of tyre listings with fitted prices and EU label ratings. Developers building vehicle maintenance tools, fleet management dashboards, or tyre price-comparison features can resolve a registration plate directly into ready-to-buy tyre options without maintaining their own vehicle-to-tyre size mapping.
curl -X POST 'https://api.parse.bot/scraper/f22ea1ce-dba2-4bb2-805f-b789e540fbbe/search_tyres_by_vehicle' \
-H 'X-API-Key: $PARSE_API_KEY' \
-H 'Content-Type: application/json' \
-d '{
"postcode": "EH1 1BE",
"registration": "SP55ZXL"
}'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 blackcircles-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.
"""Walkthrough: Blackcircles tyre search — find tyres for a UK vehicle."""
from parse_apis.blackcircles_com_api import Blackcircles, VehicleNotFound
client = Blackcircles()
# Search for tyres by vehicle registration and postcode
result = client.vehicle_tyre_searches.search(
registration="SP55ZXL", postcode="EH1 1BE"
)
# Access vehicle details
print(f"Vehicle: {result.vehicle.vehicle} ({result.vehicle.colour})")
print(f"Registration: {result.vehicle.registration}")
print(f"Selected size: {result.selected_size}")
# Browse available tyre sizes
for size in result.tyre_sizes:
print(f" Size option: {size.label}")
# Inspect tyres with ratings
for tyre in result.tyres[:5]:
print(f"{tyre.name} — £{tyre.price} | Fuel: {tyre.fuel_efficiency} | Wet: {tyre.wet_grip} | Noise: {tyre.noise_db}dB | Season: {tyre.season}")
# Handle vehicle not found error
try:
client.vehicle_tyre_searches.search(
registration="XXXXXX", postcode="EH1 1BE"
)
except VehicleNotFound as exc:
print(f"Vehicle not found: {exc}")
print("exercised: vehicle_tyre_searches.search / vehicle fields / tyre_sizes / tyres / error handling")
Searches for tyres by UK vehicle registration number and postcode. First looks up the vehicle to determine compatible tyre sizes, then returns tyre listings for the first available size. Results include fully fitted prices, EU tyre label ratings (fuel efficiency, wet grip, noise), season type, and run-flat status. Returns a single composite result containing vehicle details and all matching tyres (typically 15-25 per size).
| Param | Type | Description |
|---|---|---|
| postcoderequired | string | UK postcode for local fitting availability and pricing (e.g. EH1 1BE, L1 8JQ). |
| registrationrequired | string | UK vehicle registration number (e.g. SP55ZXL, BD51SMR). Letters and numbers only, no spaces required. |
{
"type": "object",
"fields": {
"tyres": "array of matching tyre listings with pricing and specifications",
"vehicle": "object containing registration, vehicle name, colour, and MOT expiry",
"tyre_sizes": "array of available tyre size options with value codes and labels",
"selected_size": "string code of the tyre size used for the search"
},
"sample": {
"data": {
"tyres": [
{
"name": "Michelin CrossClimate 3 205/55 R16 V (91)",
"price": 109.99,
"season": "all_season",
"tyre_id": "48318247",
"featured": true,
"noise_db": 72,
"run_flat": false,
"wet_grip": "B",
"noise_rating": "B",
"fuel_efficiency": "C"
}
],
"vehicle": {
"colour": "Silver",
"vehicle": "FORD FOCUS GHIA TDCI",
"mot_expiry": "18 October 2008",
"registration": "SP55ZXL"
},
"tyre_sizes": [
{
"label": "205/55R16 H 91 Fitted to front and rear",
"value": "205_55_16_H_91"
}
],
"selected_size": "205_55_16_H_91"
},
"status": "success"
}
}About the Blackcircles API
What the API Returns
The search_tyres_by_vehicle endpoint takes two required inputs: a UK vehicle registration string (letters and numbers only, no spaces) and a UK postcode that determines local fitting availability and pricing. The response carries four top-level fields: vehicle, tyre_sizes, selected_size, and tyres.
Vehicle and Size Data
The vehicle object includes the registration, a human-readable vehicle name, colour, and MOT expiry date — enough to confirm you're pricing tyres for the right car. The tyre_sizes array lists every compatible size for that vehicle as value-code and label pairs (for example, 205/55 R16). The selected_size string tells you which size was used to fetch the current tyre listings, which is the first size in the compatible list.
Tyre Listings
The tyres array is the core payload. Each entry in the array includes product-level data drawn from Blackcircles' catalogue: tyre specifications, fully fitted price (inclusive of fitting at a local centre near the supplied postcode), and EU tyre label ratings covering fuel efficiency, wet grip, and external noise. This lets you filter or rank results by safety or running-cost criteria without a separate lookup.
Coverage Notes
The endpoint is limited to UK vehicle registrations and UK postcodes, reflecting the geographical scope of the Blackcircles fitting network. Only the first available tyre size is used to populate the tyres array in a single call; other sizes listed in tyre_sizes require separate requests with the relevant size code.
The Blackcircles API is a managed, monitored endpoint for blackcircles.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when blackcircles.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 blackcircles.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?+
- Show fitted tyre prices and EU label ratings inside a vehicle maintenance app after the user enters their registration plate.
- Build a fleet management tool that pulls MOT expiry dates and current tyre pricing for a list of registered vehicles.
- Compare fuel-efficiency and wet-grip EU label ratings across available tyre models for a given vehicle.
- Surface local fitted tyre prices in a price-alert service by polling with different postcodes.
- Populate a tyre replacement widget on a car insurance or breakdown-cover portal using live Blackcircles pricing.
- Validate a UK registration and retrieve vehicle colour and name as a lightweight DVLA-style lookup side-effect.
- Generate tyre cost estimates for a used-car valuation tool by resolving registration to compatible tyre sizes and current prices.
| 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 Blackcircles have an official developer API?+
What does the `tyres` array include for each listing?+
Can I search by a specific tyre size rather than a registration number?+
Does the API return results for all compatible tyre sizes at once?+
tyres array using only the first available size from the tyre_sizes array. The full list of compatible sizes is returned in tyre_sizes, but retrieving listings for each additional size requires a separate call. You can fork the API on Parse and revise it to iterate over all sizes in one response.Is this API limited to UK registrations?+
registration input and the postcode input are UK-specific. The registration lookup relies on UK plate formats, and postcode is used to determine fitting availability within the Blackcircles UK network. Non-UK registrations and non-UK postcodes are not supported.