API Documentation

Complete reference for the VehicleDatabase.eu REST API v1.

Authentication

All API requests require an API key. Pass it as a Bearer token in the Authorization header:

GET /api/v1/manufacturers
Authorization: Bearer vdb_your_api_key_here

Alternatively, pass it as a query parameter (not recommended for production):

GET /api/v1/manufacturers?api_key=vdb_your_api_key_here

API keys are generated automatically when you subscribe. You can find them in your Dashboard.

If your license uses a domain lock, browser requests must come from that licensed domain. The API accepts the same domain with or without https://, www or a trailing slash.

Tier Access Levels

Data returned by the API depends on your subscription tier:

Feature Standard Advanced Professional
Manufacturers & Models
Engine Specs (HP, NM, KW)
ECU Names
Stage 1 Data
Stage 2 Data
Stage 3 Data
Manufacturer Logos
ECU Solutions & Devices
Extended Engine Specs
Dyno Chart Data
Full Technical Data

Rate Limits

All tiers are limited to 60 requests per minute per API key. If you exceed this, you'll receive a 429 response.

Error Codes

HTTP Code Description
401 INVALID_KEY Missing or malformed API key
401 KEY_NOT_FOUND API key not found or revoked
403 LICENSE_INACTIVE License is suspended or canceled
403 LICENSE_EXPIRED License period has ended
403 DOMAIN_MISMATCH Request origin doesn't match domain lock
429 RATE_LIMIT Too many requests (max 60/min)

Endpoints

Base URL: https://autoflashlog.com/api/v1

GET /status 🔑 Auth API health & key info

Returns your current tier, features, license status, and request count.

Response

{
  "status": "ok",
  "tier": "advanced",
  "features": { "logos": true, "additional_options": true, ... },
  "allowed_stages": ["stage1", "stage2"],
  "license": { "status": "active", "period_end": "2026-03-23T..." },
  "usage": { "total_requests": 1247 }
}
GET /manufacturers 🔑 Auth List all manufacturers

Returns all vehicle manufacturers. Logo URLs are only included for Advanced+ tiers.

Response

{
  "manufacturers": [
    { "id": 1, "name": "Audi", "slug": "audi", "logo_url": "/img/brands/audi.png" },
    { "id": 2, "name": "BMW", "slug": "bmw" },
    ...
  ]
}
GET /manufacturers/:id/models 🔑 Auth List models for a manufacturer

Returns the available generations for a model. The response always contains id, name and slug. The optional fields year_from and year_to can be null if no year range is stored in the database.

Parameters

Name Type Description
id integer Manufacturer ID

Response

{
  "models": [
    { "id": 10, "name": "A3", "slug": "a3" },
    { "id": 11, "name": "A4", "slug": "a4" },
    ...
  ]
}
GET /models/:id/generations 🔑 Auth List generations for a model

Parameters

Name Type Description
id integer Model ID

Response

{
  "generations": [
    { "id": 42, "name": "8V", "slug": "8v", "year_from": null, "year_to": null },
    ...
  ]
}
GET /generations/:id/engines 🔑 Auth Engines with tuning data

The main endpoint — returns all engines for a generation with tier-filtered tuning data, ECU mappings, solutions and devices.

Parameters

Name Type Description
id integer Generation ID

Response

{
  "engines": [{
    "id": 100,
    "name": "2.0 TFSI 190 HP",
    "engine_code": "DKZA",
    "fuel_type": "Gasoline",
    "displacement": 1984,
    "stock_hp": 190,
    "stock_nm": 320,
    "stock_kw": 140,
    "ecus": [{
      "ecu_name": "Bosch MG1CS111",
      "ecu_type": "ECU",
      "solutions": [/* Advanced+ only */
        { "name": "Stage 1", "slug": "stage-1" },
        { "name": "DPF OFF", "slug": "dpf-off" }
      ],
      "devices": [/* Advanced+ only */
        { "name": "Autoflasher OBD", "slug": "autoflasher-obd" }
      ]
    }],
    "tuning": {
      "stage1": [{ "name": "Stage 1", "hp": 245 }],
      "stage2": [/* Advanced+ only */]
    }
  }],
  "tier": "advanced",
  "allowed_stages": ["stage1", "stage2"]
}

Code Examples

JavaScript (Fetch)

const API_KEY = 'vdb_your_key_here';
const BASE = 'https://autoflashlog.com/api/v1';

async function getEngines(generationId) {
  const res = await fetch(`${BASE}/generations/${generationId}/engines`, {
    headers: { 'Authorization': `Bearer ${API_KEY}` }
  });
  return res.json();
}

PHP (cURL)

$ch = curl_init('https://autoflashlog.com/api/v1/manufacturers');
curl_setopt($ch, CURLOPT_HTTPHEADER, ['Authorization: Bearer vdb_your_key']);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$data = json_decode(curl_exec($ch), true);

Python (Requests)

import requests

headers = {'Authorization': 'Bearer vdb_your_key'}
r = requests.get('https://autoflashlog.com/api/v1/manufacturers', headers=headers)
data = r.json()