AllCarIndex APIallcarindex.com ↗
Access data on 14,000+ car brands via the AllCarIndex API. Browse by region, country, or letter, get brand histories, and search the full database.
What is the AllCarIndex API?
The AllCarIndex API exposes data from one of the largest automotive encyclopedias online, covering over 14,000 car brands across 5 endpoints. Use get_brands_list to page through brands filtered by region, starting letter, and production year range, or call get_brand_detail with a country slug and brand slug to retrieve company history, production eras, and geographic information for any specific brand.
curl -X GET 'https://api.parse.bot/scraper/4bcfbe83-bb28-4b35-9a68-0d0df55def8a/get_brands_list?page=1&letter=a®ion=europe' \ -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 allcarindex-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.
"""AllCarIndex API – browse the world's largest automotive encyclopedia."""
from parse_apis.allcarindex_api import AllCarIndex, Region_, BrandNotFound
client = AllCarIndex()
# List all available browsing regions.
for region in client.regions.list(limit=6):
print(region.name, region.slug)
# Construct a region and browse its brands (page-auto-iterated, capped).
europe = client.region(slug="europe")
for brand in europe.list_brands(letter="b", limit=3):
print(brand.name, brand.country_display, brand.years)
# Drill into a single brand's full detail via the summary→detail nav-op.
first_brand = europe.list_brands(letter="a", limit=1).first()
if first_brand:
detail = first_brand.details()
print(detail.name, detail.production_years)
for era in detail.brand_data:
print(era.years, era.company_name, era.place)
# Search the database by keyword.
result = client.searchresults.search(query="Toyota")
print(result.query, result.counts.brands, result.counts.models)
# Fetch country-level statistics.
try:
stats = client.countrystatses.get(country="germany")
print(stats.country, stats.brands_count, stats.models_count)
except BrandNotFound as exc:
print(f"Country not found: {exc}")
print("exercised: regions.list / region.list_brands / brand.details / searchresults.search / countrystatses.get")
Retrieve a paginated list of car brands filtered by geographic region and starting letter. Returns 12 brands per page. Each brand includes name, country, production years, image URL, and a slug usable for detail lookup. Pagination metadata includes current page, total pages, and whether more pages exist.
| Param | Type | Description |
|---|---|---|
| page | integer | Page number for pagination. |
| sort | string | Sort order for results. Leave empty for default (alphabetical A-Z). |
| letter | string | Starting letter of the brand name (a-z, 0-9). |
| region | string | Geographic region to browse. |
| max_year | integer | Maximum production year filter. |
| min_year | integer | Minimum production year filter. |
{
"type": "object",
"fields": {
"brands": "array of brand objects with name, slug, country, country_display, years, image_url, and url",
"pagination": "object with current_page, total_pages, and has_next",
"total_results": "integer count of brands on current page"
},
"sample": {
"data": {
"brands": [
{
"url": "https://allcarindex.com/brand/united-kingdom/am-am-sportscars",
"name": "A&M / AM Sportscars",
"slug": "am-am-sportscars",
"years": "1996-2011",
"country": "united-kingdom",
"image_url": "https://allcarindex.com/img/models/e/am-am-sportscars-ex2-imola_001.jpg?w=1080&h=607",
"country_display": "UNITED KINGDOM"
}
],
"pagination": {
"has_next": true,
"total_pages": 49,
"current_page": 1
},
"total_results": 12
},
"status": "success"
}
}About the AllCarIndex API
Browsing and Filtering Brands
The get_brands_list endpoint returns paginated results of 12 brands per page, each containing name, slug, country, country_display, years, image_url, and url. You can narrow results with the letter parameter (a–z or 0–9), a region slug from get_all_regions, or min_year/max_year to filter by active production period. The pagination object in the response includes current_page, total_pages, and has_next, making it straightforward to walk all pages programmatically.
Brand Detail and Company History
get_brand_detail requires a country slug and a brand_slug, both available in get_brands_list results. The response includes a brand_data array where each element represents a company era with years, company_name, place, and country — useful for brands that changed ownership, name, or location over time. A description field provides a narrative summary where available, and production_years gives the full active range as a string.
Search and Country Aggregates
The search endpoint accepts a free-text query and returns aggregate counts for brands, models, and blogs matching that keyword. It does not return individual result items — only the integer totals. get_brands_by_country works similarly: pass a country name slug like japan or germany and receive brands_count and models_count for that country. get_all_regions returns a static list of 6 region objects, each with name and slug, which feed directly into the region filter on get_brands_list.
The AllCarIndex API is a managed, monitored endpoint for allcarindex.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when allcarindex.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 allcarindex.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 an automotive brand directory filtered by region and production decade using
get_brands_listwithregion,min_year, andmax_year. - Generate brand history timelines using the
brand_dataeras array fromget_brand_detail, which tracks name and location changes across company periods. - Compare the automotive output of different countries using
get_brands_by_countryto pullbrands_countandmodels_countper country. - Power an autocomplete or brand-lookup tool using the
slugfield fromget_brands_listto feed subsequent detail requests. - Audit which letters of the alphabet have the most represented brands by iterating
get_brands_listwith theletterparameter and summingtotal_results. - Populate a regional selector UI with the six available regions from
get_all_regionsbefore passing the chosen slug into brand browse calls.
| 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 AllCarIndex offer an official developer API?+
Does `get_brands_list` return all brands at once, or do I need to paginate?+
pagination object in the response includes total_pages and has_next, so you need to iterate pages using the page parameter to retrieve the full dataset for a given filter combination.Does the `search` endpoint return individual brand or model records?+
search endpoint returns only aggregate counts — integers for brands, models, and blogs that match the query string. Individual records are not included in the response. To retrieve brand details, use get_brands_list to locate a slug, then pass it to get_brand_detail.Does the API expose individual model specifications, such as engine, trim, or pricing data?+
Are concept cars or defunct brands included in the brand list?+
years and production_years fields in get_brands_list and get_brand_detail responses reflect the active production period, which can help distinguish active brands from historical or concept-only entries. Explicit concept-car filtering is not a parameter on any current endpoint. You can fork this API on Parse and revise it to add that filter.