Technik

Fahrzeug-API in Python, JavaScript und cURL integrieren

Veroffentlicht am 19. Marz 2026 ยท 8 Min. Lesezeit

Die Integration einer Fahrzeugdaten-API in Ihre Anwendung dauert nur wenige Minuten. In diesem Artikel zeigen wir Ihnen, wie Sie die AutomotivAPI in Python, JavaScript (Node.js) und cURL aufrufen, mit konkreten Beispielen fur Authentifizierung, API-Aufrufe und Fehlerbehandlung.

Voraussetzungen

Bevor Sie beginnen, benotigen Sie:

  • Ein aktives AutomotivAPI-Konto โ€” registrieren Sie sich hier
  • Ihren API-Schlussel (verfugbar in Ihrem Kundenbereich nach Aktivierung)
  • Eine Entwicklungsumgebung mit Python 3.x, Node.js 16+ oder ein Terminal fur cURL

Authentifizierung

Alle Anfragen an die AutomotivAPI werden uber einen Authorization-Header vom Typ Bearer authentifiziert. Ihr API-Schlussel muss bei jeder Anfrage ubermittelt werden:

Authorization: Bearer IHR_API_SCHLUESSEL

Teilen Sie Ihren API-Schlussel niemals in offentlichem Quellcode (GitHub, GitLab). Verwenden Sie Umgebungsvariablen, um den Schlussel sicher zu speichern.

Beispiel 1: VIN-Dekodierung mit cURL

cURL ist das einfachste Werkzeug, um die API von einem Terminal aus zu testen:

curl -X POST https://api.automotivapi.com/v1/vin/decode \
  -H "Authorization: Bearer IHR_API_SCHLUESSEL" \
  -H "Content-Type: application/json" \
  -d '{"vin": "VF1RFA00867123456"}'

Die Antwort ist ein JSON-Objekt mit der vollstandigen Fahrzeugidentifikation: Marke, Modell, Ausstattung, Motorisierung, Ausstattungsmerkmale und technische Daten.

Beispiel 2: Kennzeichensuche mit Python

Mit Python und der Bibliothek requests:

import os
import requests

API_KEY = os.environ.get("AUTOMOTIVAPI_KEY")
BASE_URL = "https://api.automotivapi.com/v1"

def lookup_plate(plate: str) -> dict:
    """Sucht ein Fahrzeug anhand seines Kennzeichens."""
    response = requests.post(
        f"{BASE_URL}/plate/lookup",
        headers={
            "Authorization": f"Bearer {API_KEY}",
            "Content-Type": "application/json",
        },
        json={"plate": plate},
        timeout=10,
    )
    response.raise_for_status()
    return response.json()

# Anwendungsbeispiel
try:
    vehicle = lookup_plate("AB-123-CD")
    print(f"Marke: {vehicle['brand']}")
    print(f"Modell: {vehicle['model']}")
    print(f"VIN: {vehicle['vin']}")
except requests.exceptions.HTTPError as e:
    print(f"API-Fehler: {e.response.status_code}")
except requests.exceptions.Timeout:
    print("Die Anfrage ist abgelaufen")

Beispiel 3: VIN-Dekodierung mit JavaScript (Node.js)

Mit Node.js und der nativen fetch-API (verfugbar seit Node 18):

const API_KEY = process.env.AUTOMOTIVAPI_KEY;
const BASE_URL = 'https://api.automotivapi.com/v1';

async function decodeVin(vin) {
  const response = await fetch(`${BASE_URL}/vin/decode`, {
    method: 'POST',
    headers: {
      'Authorization': `Bearer ${API_KEY}`,
      'Content-Type': 'application/json',
    },
    body: JSON.stringify({ vin }),
  });

  if (!response.ok) {
    throw new Error(`API-Fehler: ${response.status}`);
  }

  return response.json();
}

// Anwendungsbeispiel
try {
  const vehicle = await decodeVin('VF1RFA00867123456');
  console.log(`Marke: ${vehicle.brand}`);
  console.log(`Modell: ${vehicle.model}`);
  console.log(`Ausstattung: ${vehicle.trim}`);
} catch (error) {
  console.error(error.message);
}

Fehlerbehandlung

Die API gibt Standard-HTTP-Codes zuruck. Hier die gebrauchlichsten:

  • 200 โ€” Erfolg, das Fahrzeug wurde identifiziert
  • 400 โ€” Ungultige Anfrage (VIN falsch formatiert, falsches Kennzeichen)
  • 401 โ€” Ungultiger oder fehlender API-Schlussel
  • 404 โ€” Fahrzeug nicht in der Datenbank gefunden
  • 429 โ€” Rate-Limit uberschritten
  • 500 โ€” Interner Serverfehler

Im Fehlerfall enthalt der Antwortkorper ein JSON-Objekt mit einem error-Feld, das das Problem beschreibt:

{
  "error": {
    "code": "INVALID_VIN",
    "message": "Die angegebene VIN entspricht nicht dem erwarteten Format (17 alphanumerische Zeichen)."
  }
}

Best Practices

Umgebungsvariablen verwenden

Speichern Sie Ihren API-Schlussel in einer Umgebungsvariablen (AUTOMOTIVAPI_KEY) statt im Quellcode. So vermeiden Sie versehentliche Veroffentlichungen bei einem Commit.

Retry-Mechanismus implementieren

Bei Fehler 429 (Rate-Limiting) oder 500 (Serverfehler) implementieren Sie einen Retry mit exponentiellem Backoff. Warten Sie 1 Sekunde vor dem ersten Retry, 2 Sekunden vor dem zweiten, 4 Sekunden vor dem dritten, dann brechen Sie ab.

Ergebnisse cachen

Fahrzeugdaten andern sich selten. Wenn Sie dieselbe VIN mehrfach dekodieren, cachen Sie das Ergebnis (Redis, Speicher, lokale Datenbank), um Credits zu sparen und die Performance zu verbessern.

Eingaben validieren

Validieren Sie das VIN-Format (17 alphanumerische Zeichen, ohne I, O, Q) oder das Kennzeichenformat clientseitig vor dem Senden der Anfrage. So vermeiden Sie den Verbrauch von Credits fur Anfragen, die systematisch fehlschlagen.

Fur weiterfuhrende Informationen lesen Sie unsere vollstandige technische Dokumentation und unseren Artikel uber die Architektur einer automobilen REST-API.

Verwandte Artikel