API Dokumentation
Die DACH Enrichment API extrahiert Firmendaten aus deutschen Impressum-Seiten. Input: Domain → Output: Name, Adresse, E-Mail, Telefon, Geschäftsführer, USt-ID und mehr.
https://api.dach-enrichment.de/apiAuthentifizierung
Alle API-Anfragen benötigen einen API-Key als Bearer-Token im Authorization Header.
Authorization: Bearer dach_sk_your_api_key_hereAPI Keys erstellen Sie unter API Keys. Behandeln Sie Ihren Key wie ein Passwort — teilen Sie ihn nicht.
Fehler-Codes
| Code | Bedeutung |
|---|---|
400 | Ungültige Anfrage (z.B. fehlende Domain) |
401 | Ungültiger oder fehlender API-Key |
402 | Keine Credits vorhanden — bitte upgraden |
422 | Validierungsfehler im Request-Body |
500 | Interner Fehler beim Enrichment |
Rate Limits
| Plan | Requests/Min | Concurrent |
|---|---|---|
| Free | 5 | 1 |
| Starter | 20 | 2 |
| Growth | 60 | 5 |
| Scale | 200 | 10 |
/enrich
Enricht eine einzelne Domain. Gecachte Anfragen (24h TTL) kosten 0 Credits.
Request Body
| Parameter | Typ | Pflicht | Beschreibung |
|---|---|---|---|
domain |
string | required | Domain ohne Protokoll (z.B. siemens.com) |
curl -X POST https://api.dach-enrichment.de/api/enrich \
-H "Authorization: Bearer dach_sk_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{"domain": "siemens.com"}'{
"success": true,
"cached": false,
"credits_used": 1,
"credits_remaining": 499,
"processing_time_ms": 3241,
"data": { → siehe CompanyData }
}/bulk/upload
Growth+
Lädt eine CSV-Datei mit Domains hoch. Max. 500 Domains pro Job. Verarbeitung läuft asynchron im Hintergrund.
Request (multipart/form-data)
| Parameter | Typ | Beschreibung |
|---|---|---|
file |
CSV file | Erste Spalte = Domain. UTF-8, max 500 Zeilen. |
{
"job_id": 42,
"total_domains": 150,
"message": "150 Domains werden verarbeitet."
}/bulk/{job_id}/status
Gibt den aktuellen Status eines Bulk-Jobs zurück. Pollen Sie alle 2–5 Sekunden.
{
"job_id": 42,
"status": "processing", // pending | processing | completed | failed
"total_domains": 150,
"completed": 73,
"failed": 2,
"credits_used": 73,
"progress_percent": 50,
"ready": false
}/bulk/{job_id}/download
Gibt die fertige CSV-Datei zurück. Nur verfügbar wenn status == "completed".
/auth/me
Gibt Account-Informationen zurück — nützlich zum Prüfen von Credits.
{
"email": "you@company.de",
"subscription_tier": "growth",
"credits_remaining": 2341,
"is_active": true
}CompanyData Schema
Das data-Objekt in jeder Enrich-Antwort.
| Feld | Typ | Beschreibung |
|---|---|---|
company_name | string | Firmenname |
legal_form | string | z.B. GmbH, AG, GbR |
street | string | Straße + Hausnummer |
postal_code | string | Postleitzahl |
city | string | Stadt |
country | string | Ländercode (z.B. DE) |
phone_numbers | string[] | Telefonnummern |
emails | object[] | [{email, role, confidence}] |
vat_id | string | Umsatzsteuer-ID |
commercial_register | string | HRB / HRA Nummer |
roles | object | {managing_director, ceo, cto, …} |
data_sources | string[] | z.B. ["regex", "llm", "json_ld"] |
cURL Beispiel
curl -X POST https://api.dach-enrichment.de/api/enrich \
-H "Authorization: Bearer dach_sk_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{"domain":"bmw.de"}' | python3 -m json.toolPython Beispiel
import requests
API_KEY = "dach_sk_YOUR_KEY"
BASE_URL = "https://api.dach-enrichment.de/api"
HEADERS = {"Authorization": f"Bearer {API_KEY}"}
# Single enrichment
r = requests.post(
f"{BASE_URL}/enrich",
headers=HEADERS,
json={"domain": "siemens.com"}
)
data = r.json()["data"]
print(data["company_name"], data["emails"])
# Bulk from list
domains = ["bmw.de", "sap.com", "bosch.de"]
csv_content = "domain\n" + "\n".join(domains)
r = requests.post(
f"{BASE_URL}/bulk/upload",
headers=HEADERS,
files={"file": ("domains.csv", csv_content, "text/csv")}
)
job_id = r.json()["job_id"]
print(f"Job {job_id} gestartet")Node.js Beispiel
const API_KEY = 'dach_sk_YOUR_KEY';
const BASE_URL = 'https://api.dach-enrichment.de/api';
async function enrich(domain) {
const res = await fetch(`${BASE_URL}/enrich`, {
method: 'POST',
headers: {
'Authorization': `Bearer ${API_KEY}`,
'Content-Type': 'application/json'
},
body: JSON.stringify({ domain })
});
const data = await res.json();
return data.data;
}
enrich('volkswagen.de').then(d =>
console.log(d.company_name, d.emails)
);