API Reference v1

vulpex API

Programmatischer Zugriff auf verifizierte Firmendaten im gesamten DACH-Raum. REST API mit JSON-Antworten.

HTTPS Only
API-Key Auth
JSON Responses

Einführung

Grundlagen zur vulpex REST API.

Die vulpex API bietet programmatischen Zugriff auf die umfangreichste Lead-Datenbank im DACH-Raum. Alle Endpunkte folgen REST-Konventionen, akzeptieren JSON-Bodys und liefern JSON-Antworten zurück.

Base URL

https://vulpex.synetra.de/api

Alle Anfragen müssen über HTTPS erfolgen. HTTP-Anfragen werden abgelehnt.

Authentifizierung

API-Key basierte Authentifizierung für alle Endpunkte.

Jede Anfrage muss einen gültigen API-Key im Authorization-Header enthalten. API-Keys können unter **Einstellungen > API** erstellt und verwaltet werden.

API-Keys beginnen immer mit dem Präfix vx_ und sind an eine Organisation gebunden. Jeder Key kann mit spezifischen Berechtigungen erstellt werden.

GET/api/leads

Anfrage mit API-Key

Jede Anfrage benötigt den Authorization-Header mit deinem API-Key.

Beispiel

bash
curl -X GET "https://vulpex.synetra.de/api/leads" \
  -H "Authorization: Bearer vx_dein_api_key" \
  -H "Content-Type: application/json"

Antwort

json
{
  "leads": [...],
  "total": 1284
}

Leads

Leads suchen, abrufen, freischalten und bewerten.

GET/api/leads/:id

Lead-Details abrufen

Ruft detaillierte Informationen zu einem einzelnen Lead ab. Freigeschaltete Felder werden nur angezeigt, wenn der Lead zuvor unlocked wurde.

Beispiel

bash
curl -X GET "https://vulpex.synetra.de/api/leads/f47ac10b-58cc-4372-a567-0e02b2c3d479" \
  -H "Authorization: Bearer vx_dein_api_key"

Antwort

json
{
  "id": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
  "firma": "TechVision AG",
  "branche": "Software",
  "plz": "10115",
  "stadt": "Berlin",
  "strasse": "Friedrichstraße 123",
  "score": 94,
  "bewertung": 4.7,
  "geschaeftsfuehrer": "Dr. Anna Weber",
  "email": "[email protected]",
  "telefon": "+49 30 1234567",
  "website": "https://techvision.de",
  "umsatz": 48200000,
  "mitarbeiter": 120,
  "isUnlocked": true,
  "enrichment": {
    "linkedin": "linkedin.com/company/techvision",
    "techStack": ["React", "Node.js", "AWS"],
    "handelsregister": "HRB 123456 B"
  }
}
POST/api/leads/:id/unlock

Lead freischalten

Schaltet die geschützten Kontaktdaten eines Leads frei. Kosten: 1 Credit. Idempotent: bereits freigeschaltete Leads werden nicht erneut belastet.

Beispiel

bash
curl -X POST "https://vulpex.synetra.de/api/leads/f47ac10b-58cc-4372-a567-0e02b2c3d479/unlock" \
  -H "Authorization: Bearer vx_dein_api_key"

Antwort

json
{
  "success": true,
  "creditsUsed": 1,
  "remainingCredits": 249
}
POST/api/leads/bulk-unlock

Mehrere Leads freischalten

Schaltet bis zu 100 Leads gleichzeitig frei. Bereits freigeschaltete Leads in der Liste werden übersprungen.

Request Body

json
{
  "leadIds": [
    "f47ac10b-58cc-4372-a567-0e02b2c3d479",
    "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
  ]
}

Beispiel

bash
curl -X POST "https://vulpex.synetra.de/api/leads/bulk-unlock" \
  -H "Authorization: Bearer vx_dein_api_key" \
  -H "Content-Type: application/json" \
  -d '{"leadIds": ["f47ac10b-...", "a1b2c3d4-..."]}'

Antwort

json
{
  "unlocked": 2,
  "skipped": 0,
  "creditsUsed": 2,
  "remainingCredits": 247
}
GET/api/leads/score

Lead-Score abrufen

Gibt den berechneten Score und die Aufschlüsselung der einzelnen Scoring-Faktoren zurück.

Query-Parameter

ParameterTypBeschreibung
leadIdstringID des Leads

Beispiel

bash
curl -X GET "https://vulpex.synetra.de/api/leads/score?leadId=f47ac10b-..." \
  -H "Authorization: Bearer vx_dein_api_key"

Antwort

json
{
  "score": 94,
  "breakdown": {
    "dataCompleteness": 28,
    "contactQuality": 22,
    "financialData": 18,
    "onlinePresence": 14,
    "enrichmentDepth": 12
  }
}
GET/api/leads/duplicates

Duplikate finden

Findet potenzielle Duplikate anhand von Website-Domain, Telefonnummer oder Ähnlichkeit des Firmennamens.

Beispiel

bash
curl -X GET "https://vulpex.synetra.de/api/leads/duplicates" \
  -H "Authorization: Bearer vx_dein_api_key"

Antwort

json
{
  "duplicates": [
    {
      "leadA": "f47ac10b-...",
      "leadB": "a1b2c3d4-...",
      "matchType": "domain",
      "confidence": 0.95
    }
  ]
}

Lead-Listen

Leads in Listen organisieren und verwalten.

GET/api/lead-lists

Listen anzeigen

Gibt alle Lead-Listen der Organisation mit Anzahl der enthaltenen Leads zurück.

Beispiel

bash
curl -X GET "https://vulpex.synetra.de/api/lead-lists" \
  -H "Authorization: Bearer vx_dein_api_key"

Antwort

json
{
  "lists": [
    {
      "id": "abc-123",
      "name": "Softwarefirmen Berlin",
      "leadCount": 42,
      "createdAt": "2025-12-01T09:00:00Z"
    }
  ]
}
POST/api/lead-lists

Liste erstellen

Erstellt eine neue Lead-Liste.

Request Body

json
{
  "name": "Top Leads Q1"
}

Beispiel

bash
curl -X POST "https://vulpex.synetra.de/api/lead-lists" \
  -H "Authorization: Bearer vx_dein_api_key" \
  -H "Content-Type: application/json" \
  -d '{"name": "Top Leads Q1"}'

Antwort

json
{
  "id": "def-456",
  "name": "Top Leads Q1",
  "leadCount": 0,
  "createdAt": "2026-01-15T14:22:00Z"
}
POST/api/lead-lists/:id/items

Leads hinzufügen

Fügt einen oder mehrere Leads zu einer bestehenden Liste hinzu.

Request Body

json
{
  "leadIds": ["f47ac10b-...", "a1b2c3d4-..."]
}

Beispiel

bash
curl -X POST "https://vulpex.synetra.de/api/lead-lists/def-456/items" \
  -H "Authorization: Bearer vx_dein_api_key" \
  -H "Content-Type: application/json" \
  -d '{"leadIds": ["f47ac10b-...", "a1b2c3d4-..."]}'

Antwort

json
{
  "added": 2,
  "listId": "def-456"
}

Tags

Leads mit Tags kategorisieren und filtern.

GET/api/tags

Tags abrufen

Gibt alle Tags der Organisation zurück.

Beispiel

bash
curl -X GET "https://vulpex.synetra.de/api/tags" \
  -H "Authorization: Bearer vx_dein_api_key"

Antwort

json
{
  "tags": [
    { "id": "tag-1", "name": "Hot Lead", "color": "#ef4444" },
    { "id": "tag-2", "name": "Follow-up", "color": "#f59e0b" }
  ]
}
POST/api/tags

Tag erstellen

Erstellt einen neuen Tag mit Name und Farbe.

Request Body

json
{
  "name": "Enterprise",
  "color": "#8b5cf6"
}

Beispiel

bash
curl -X POST "https://vulpex.synetra.de/api/tags" \
  -H "Authorization: Bearer vx_dein_api_key" \
  -H "Content-Type: application/json" \
  -d '{"name": "Enterprise", "color": "#8b5cf6"}'

Antwort

json
{
  "id": "tag-3",
  "name": "Enterprise",
  "color": "#8b5cf6"
}
DELETE/api/tags/:id

Tag löschen

Löscht einen Tag. Bestehende Zuordnungen zu Leads werden entfernt.

Beispiel

bash
curl -X DELETE "https://vulpex.synetra.de/api/tags/tag-3" \
  -H "Authorization: Bearer vx_dein_api_key"

Antwort

json
{
  "success": true
}

CRM-Integration

Leads mit HubSpot, Close und weiteren CRMs synchronisieren.

GET/api/crm/connections

Verbindungen anzeigen

Listet alle konfigurierten CRM-Verbindungen auf. Erfordert mindestens den Pro-Plan.

Beispiel

bash
curl -X GET "https://vulpex.synetra.de/api/crm/connections" \
  -H "Authorization: Bearer vx_dein_api_key"

Antwort

json
{
  "connections": [
    {
      "id": "conn-1",
      "provider": "hubspot",
      "status": "active",
      "lastSync": "2026-01-14T18:00:00Z"
    }
  ]
}
POST/api/crm/sync

Leads synchronisieren

Synchronisiert ausgewählte Leads mit dem verbundenen CRM-System.

Request Body

json
{
  "connectionId": "conn-1",
  "leadIds": ["f47ac10b-...", "a1b2c3d4-..."]
}

Beispiel

bash
curl -X POST "https://vulpex.synetra.de/api/crm/sync" \
  -H "Authorization: Bearer vx_dein_api_key" \
  -H "Content-Type: application/json" \
  -d '{"connectionId": "conn-1", "leadIds": ["f47ac10b-..."]}'

Antwort

json
{
  "synced": 2,
  "provider": "hubspot",
  "syncId": "sync-abc-123"
}

Credits & Billing

Guthaben abfragen und Transaktionen einsehen.

GET/api/billing/credits

Guthaben abfragen

Gibt das aktuelle Credit-Guthaben, letzte Transaktionen und verfügbare Credit-Pakete zurück.

Beispiel

bash
curl -X GET "https://vulpex.synetra.de/api/billing/credits" \
  -H "Authorization: Bearer vx_dein_api_key"

Antwort

json
{
  "balance": 247,
  "transactions": [
    {
      "id": "txn-1",
      "type": "debit",
      "amount": -2,
      "description": "Bulk-Unlock (2 Leads)",
      "createdAt": "2026-01-15T14:30:00Z"
    },
    {
      "id": "txn-2",
      "type": "credit",
      "amount": 500,
      "description": "Monatliche Aufladung (Pro)",
      "createdAt": "2026-01-01T00:00:00Z"
    }
  ],
  "packages": [
    { "id": "pkg-100", "credits": 100, "priceEur": 29 },
    { "id": "pkg-500", "credits": 500, "priceEur": 119 }
  ]
}

Fehlerbehandlung

HTTP-Statuscodes und Fehlerformate.

Alle Fehler folgen einem einheitlichen JSON-Format:

json
{
  "error": "Beschreibung des Fehlers",
  "code": "ERROR_CODE"
}
StatusBedeutung
400Ungültige Anfrage - fehlende oder falsche Parameter
401Nicht authentifiziert - API-Key fehlt oder ungültig
403Keine Berechtigung - unzureichende Rechte oder Plan
404Ressource nicht gefunden
409Konflikt - z.B. Duplikat bei Erstellung
422Validierungsfehler - Body entspricht nicht dem Schema
429Rate Limit erreicht - zu viele Anfragen
500Serverfehler - bitte Support kontaktieren

Rate Limits

Anfragelimits und Throttling.

Die API begrenzt Anfragen pro Zeitfenster, abhängig vom Plan:

PlanLimit
Starter60 Anfragen / Minute
Pro120 Anfragen / Minute
Business300 Anfragen / Minute
Enterprise1.000 Anfragen / Minute

Bei Überschreitung wird 429 Too Many Requests zurückgegeben. Die Antwort enthält den Header Retry-After mit der Wartezeit in Sekunden.

text
HTTP/1.1 429 Too Many Requests
Retry-After: 12
Content-Type: application/json

{"error": "Rate limit exceeded", "code": "RATE_LIMITED"}

Befehlspalette

Suche nach Seiten, Aktionen oder Leads