BCA APIbca.co.uk ↗
Access BCA vehicle auction data via 5 endpoints: remarketing centre locations, sales schedules, vehicle type counts, news articles, and site navigation menus.
What is the BCA API?
The BCA API exposes 5 endpoints covering UK vehicle auction logistics and content from bca.co.uk. Use get_locations to pull GPS coordinates, contact details, and vehicle-type flags for every remarketing centre, or call get_sales_schedule to retrieve upcoming auction events with lot counts, channel type, and datetime. All endpoints return structured JSON with no authentication required.
curl -X GET 'https://api.parse.bot/scraper/e7436d69-113d-42cc-98ab-3c3cde3ec036/get_news?limit=5&offset=0' \ -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 bca-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.
"""BCA (British Car Auctions) SDK — browse auction inventory, locations, and news."""
from parse_apis.bca_british_car_auctions_public_api import BCA, MenuName, MenuNotFound
client = BCA()
# List vehicle type inventory counts across all auctions.
for vt in client.vehicletypes.list(limit=5):
print(vt.description, vt.count)
# Browse upcoming sale events.
event = client.saleevents.list(limit=1).first()
if event:
print(event.name, event.channel, event.lots)
# Get latest news articles.
for article in client.articles.list(limit=3):
print(article.name, article.published_date)
# Fetch a specific menu by enum.
try:
menu = client.menuitems.get(menu_name=MenuName.FOOTER)
print(menu.name)
except MenuNotFound as exc:
print(f"Menu not found: {exc.menu_name}")
# List remarketing centre locations.
loc = client.locations.list(limit=1).first()
if loc:
print(loc.name, loc.town, loc.postcode, loc.phone_number)
print("exercised: vehicletypes.list / saleevents.list / articles.list / menuitems.get / locations.list")
Retrieve latest BCA news and industry insights articles. Returns paginated results ordered by published date descending. Each article includes title, published date, short description, full HTML content, image metadata, and tags. Pagination via offset/limit; total count is returned for client-side page calculation.
| Param | Type | Description |
|---|---|---|
| limit | integer | Max results to return per page. |
| offset | integer | Offset for pagination. |
{
"type": "object",
"fields": {
"limit": "integer — max results returned",
"total": "integer — total number of news articles available",
"offset": "integer — current pagination offset",
"results": "array of Article objects"
},
"sample": {
"data": {
"limit": 10,
"total": 894,
"offset": 0,
"results": [
{
"name": "Fish Brothers extend exclusive remarketing deal with BCA",
"@name": "Fish-Brothers-extend-exclusive-remarketing-deal-with-BCA",
"mgnl:tags": [
"Customer"
],
"isFeatured": true,
"description": "<p>Full HTML article content...</p>",
"publishedDate": "2026-06-10T11:35:57.000+01:00",
"shortDescription": "Fish Brothers has extended its exclusive remarketing contract with BCA for a further two years."
}
]
},
"status": "success"
}
}About the BCA API
Auction Schedule and Inventory
The get_sales_schedule endpoint returns paginated upcoming sale events across all BCA locations. Each SaleEvent object includes the sale name, channel (such as InternetAuction), start datetime, lot count, and a closed-sale boolean. Use limit and offset parameters together with the returned total field to implement client-side pagination. The get_vehicle_types endpoint complements this by returning current inventory counts per vehicle category — each VehicleType object carries a Count, Description, and ResourcedDescription. The wildcard entry (*) gives the aggregate total across all types.
Locations and Contact Data
get_locations returns the full list of BCA remarketing centres in a single unpaginated response. Each Location object includes a full postal address, GPS coordinates, phone and email contact details, weekday opening and closing times, and boolean flags indicating which vehicle types the site handles: car, lcv, motorbike, and leisure. This makes it straightforward to filter centres by capability or map them geographically.
News and Navigation
get_news delivers paginated BCA news articles ordered by published date descending. Each Article object contains a title, published date, short description, full HTML body content, image metadata, and tags. The total field supports page-count calculation using your chosen limit. The get_menu_links endpoint exposes the site's navigation structure as a nested tree of menu items, each with a label, link URL, and isVisible flag. You can request specific menus by passing a menu_name value such as Main-Menu, Footer, Social-Links, or MyBCA-Menu.
The BCA API is a managed, monitored endpoint for bca.co.uk — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when bca.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 bca.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 centre-finder tool using GPS coordinates and vehicle-type flags from get_locations.
- Display a live auction calendar in a dealer dashboard by polling get_sales_schedule for upcoming lot counts and datetimes.
- Track vehicle category availability over time by recording daily snapshots from get_vehicle_types.
- Aggregate BCA industry news into a fleet management portal using get_news article titles, dates, and tags.
- Filter remarketing centres that handle LCVs or motorbikes using the boolean flags returned by get_locations.
- Reconstruct BCA site navigation for a white-label portal by consuming the nested menu tree from get_menu_links.
- Calculate total active auction lots by reading the wildcard Count entry from get_vehicle_types.
| 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.