REST API v1

Integrationsleitfaden GEO/AEO REST API

Verbinden Sie Ihre Anwendungen ueber die GEO-Audit-API von AILabsAudit. 105 Endpoints fuer Audits, Kunden, Berichte, GEO-Checklisten und Analytics.

Inhaltsverzeichnis

  1. Voraussetzungen
  2. API Key erhalten
  3. Authentifizierung
  4. Erste Anfrage
  5. Endpoints
  6. Paginierung & Filter
  7. Fehler & Rate Limiting
  8. Codebeispiele

Voraussetzungen

Stellen Sie vor der Integration der REST API sicher, dass Sie Folgendes haben:

1

Ein Agent- oder Partner-Konto

Der API-Zugang erfordert einen Agent-Plan oder höher, oder Partner-Status. Zugang beantragen, falls Sie noch keinen haben.

2

Einen REST API Key

Sie benötigen einen API Key (Format aila_...), der auf der Seite API & Integrationen generiert wird.

3

Einen HTTP-Client

Jeder HTTP-Client funktioniert: curl, Python requests, JavaScript fetch, Postman usw.

API Key erhalten

Ihr API Key ist derselbe, der auch für MCP-Verbindungen verwendet wird. Falls Sie bereits einen haben, können Sie ihn direkt verwenden.

1

Zu API & Integrationen navigieren

Gehen Sie in Ihrem Dashboard zu Konto → API & Integrationen.

2

Neuen Key erstellen

Klicken Sie auf „API Key erstellen", vergeben Sie einen Namen (z. B. „Meine App") und wählen Sie die gewünschten Berechtigungen.

3

Kopieren und sicher aufbewahren

Ihr Key beginnt mit aila_. Kopieren Sie ihn sofort — er wird nicht erneut angezeigt. Speichern Sie ihn in einer Umgebungsvariable, niemals im Quellcode.

Tipp

Sie koennen die API auch interaktiv ueber unsere mehrsprachige Swagger-Dokumentation (/api/v1/docs?lang=fr|en|es|de) erkunden, die alle 105 verfuegbaren Endpoints auflistet.

Authentifizierung

Die API unterstützt zwei Authentifizierungsmethoden. Wählen Sie die für Ihren Stack passende:

Methode 1: X-Api-Key Header

CURL
curl -H "X-Api-Key: aila_your_key_here" \
     https://ailabsaudit.com/api/v1/clients

Methode 2: Authorization Bearer

CURL
curl -H "Authorization: Bearer aila_your_key_here" \
     https://ailabsaudit.com/api/v1/clients

Sicherheit

Geben Sie Ihren API Key niemals in clientseitigem Code preis (JavaScript im Browser). Führen Sie API-Aufrufe immer von Ihrem Server (Backend) aus durch.

Erste Anfrage

Überprüfen wir, ob Ihre Verbindung funktioniert, indem wir Ihre Kundenliste abrufen:

CURL
curl -s -H "X-Api-Key: aila_your_key_here" \
     https://ailabsaudit.com/api/v1/clients | python3 -m json.tool

Erfolgreiche Antwort (200 OK)

JSON
{
    "success": true,
    "data": [
        {
            "id": 42,
            "name": "Acme Corp",
            "sector": "Technology",
            "website": "https://acme.com",
            "country": "FR",
            "created_at": "2025-01-15T10:30:00Z"
        }
    ],
    "pagination": {
        "page": 1,
        "per_page": 20,
        "total": 1,
        "total_pages": 1
    }
}

Das war's!

Wenn Sie Ihre Kundenliste sehen, funktioniert Ihr API Key. Sie können nun alle verfügbaren Endpoints unten erkunden.

Endpoints

Die API ist in 12 Endpoint-Gruppen mit insgesamt 105 Endpoints organisiert. Alle URLs haben das Praefix https://ailabsaudit.com/api/v1/. Content-Endpoints akzeptieren einen optionalen Parameter ?lang=fr|en|es|de fuer mehrsprachige Antworten.

Kunden

Methode Endpoint Description
GET /clients Alle Kunden auflisten
GET /clients/{id} Kundendetail
GET /clients/{id}/contacts Kundenkontakte
GET /clients/{id}/competitors Wettbewerber des Kunden
GET /clients/{id}/360 Vollständige 360-Ansicht

Audits

Methode Endpoint Description
GET /audits Audits auflisten
GET /audits/{id} Audit-Detail
GET /audits/{id}/results Audit-Ergebnisse
GET /audits/{id}/scores Sichtbarkeits-Scores
POST /audits/launch Neuen Audit starten

Berichte

Methode Endpoint Description
GET /reports Berichte auflisten
GET /reports/{id} Berichtsdetail
GET /reports/{id}/download PDF herunterladen

Aktionspläne

Methode Endpoint Description
GET /action-plans Aktionspläne auflisten
GET /action-plans/{id} Plandetail
GET /action-plans/{id}/progress Planfortschritt

Fragebögen

Methode Endpoint Description
GET /questionnaires Fragebögen auflisten
GET /questionnaires/{id}/responses Antworten zum Fragebogen

Analytics

Methode Endpoint Description
GET /analytics/portfolio Portfolio-Übersicht
GET /analytics/leaderboard Sichtbarkeits-Ranking
GET /analytics/scores/distribution Score-Verteilung

Modelle

Methode Endpoint Description
GET /models Verfügbare KI-Modelle auflisten
GET /models/{id} Modelldetail & Preise

Konto

Methode Endpoint Description
GET /account/profile Ihr Profil
GET /account/credits Guthaben
GET /account/subscription Abonnement-Info

Blog ?lang=

Methode Endpoint Description
GET /blog?lang=fr|en|es|de Blog-Artikel auflisten (mehrsprachig)
GET /blog/{slug} Artikeldetail

Glossar ?lang=

Methode Endpoint Description
GET /glossary?lang=fr|en|es|de Glossarbegriffe auflisten (mehrsprachig)
GET /glossary/{slug} Begriffsdetail

GEO Checklist & Halluzinierte URLs

Methode Endpoint Description
GET /clients/{id}/geo-checklist GEO-Optimierungs-Checkliste
GET /clients/{id}/hallucinated-urls Von KI-Modellen halluzinierte URLs

Geplante Audits

Methode Endpoint Description
GET /scheduled-audits Geplante Audits auflisten
POST /scheduled-audits Geplanten Audit erstellen
PUT /scheduled-audits/{id} Geplanten Audit aktualisieren
DELETE /scheduled-audits/{id} Geplanten Audit loeschen

Vollstaendige Dokumentation

Die API dokumentiert 16 Schemas (Client, Audit, GeoChecklist, BlogArticle, GlossaryTerm, HallucinatedUrl usw.), Rate-Limit-Header und CORS-Unterstuetzung. Die vollstaendige Liste aller 105 Endpoints, Parameter und Antwort-Schemas finden Sie in der interaktiven mehrsprachigen Swagger-Dokumentation (/api/v1/docs?lang=fr|en|es|de).

Paginierung & Filter

Alle Listen-Endpoints unterstützen Paginierung über Query-Parameter:

Parameter Standard Description
page 1 Seitennummer
per_page 20 Einträge pro Seite (max 100)

Beispiel mit Paginierung

CURL
curl -H "X-Api-Key: aila_your_key_here" \
     "https://ailabsaudit.com/api/v1/audits?page=2&per_page=10"

Paginierungs-Objekt in der Antwort

JSON
{
    "pagination": {
        "page": 2,
        "per_page": 10,
        "total": 47,
        "total_pages": 5
    }
}

Fehler & Rate Limiting

HTTP-Statuscodes

Code Bedeutung
200Erfolg
400Ungültige Anfrage (fehlerhafte Parameter)
401Nicht autorisiert (API Key fehlt oder ungültig)
403Verboten (unzureichende Berechtigungen)
404Nicht gefunden
429Rate Limit erreicht
500Serverfehler

Format der Fehlerantwort

JSON
{
    "success": false,
    "error": {
        "code": 401,
        "message": "Invalid or missing API key"
    }
}

Rate Limiting

Die API erlaubt 60 Anfragen pro Minute pro API Key. Die Antwort-Header enthalten Rate-Limit-Informationen:

HTTP HEADERS
X-RateLimit-Limit: 60
X-RateLimit-Remaining: 58
X-RateLimit-Reset: 1709472000

Wenn Sie das Limit erreichen

Wenn Sie eine 429-Antwort erhalten, warten Sie bis zum X-RateLimit-Reset-Timestamp, bevor Sie es erneut versuchen. Implementieren Sie exponentielles Backoff in Ihrem Code für den Produktiveinsatz.

Codebeispiele

Hier finden Sie vollständige Beispiele für den Einstieg in Ihrer bevorzugten Programmiersprache:

import requests

API_KEY = "aila_your_key_here"
BASE_URL = "https://ailabsaudit.com/api/v1"

headers = {"X-Api-Key": API_KEY}

# List clients
response = requests.get(f"{BASE_URL}/clients", headers=headers)
clients = response.json()

for client in clients["data"]:
    print(f"{client['name']} — {client['sector']}")

    # Get audits for each client
    audits = requests.get(
        f"{BASE_URL}/audits",
        headers=headers,
        params={"client_id": client["id"], "per_page": 5}
    ).json()

    for audit in audits["data"]:
        print(f"  Audit #{audit['id']} — Score: {audit.get('score', 'N/A')}")

# Download a report as PDF
report_id = 1
r = requests.get(
    f"{BASE_URL}/reports/{report_id}/download",
    headers=headers
)
if r.status_code == 200:
    with open(f"report_{report_id}.pdf", "wb") as f:
        f.write(r.content)
    print(f"Report saved: report_{report_id}.pdf")
const API_KEY = "aila_your_key_here";
const BASE_URL = "https://ailabsaudit.com/api/v1";

const headers = { "X-Api-Key": API_KEY };

// List clients
async function getClients() {
    const response = await fetch(`${BASE_URL}/clients`, { headers });
    const { data, pagination } = await response.json();

    console.log(`${pagination.total} clients found`);
    data.forEach(client => {
        console.log(`${client.name} — ${client.sector}`);
    });

    return data;
}

// Get audit results
async function getAuditResults(auditId) {
    const response = await fetch(
        `${BASE_URL}/audits/${auditId}/results`,
        { headers }
    );
    return await response.json();
}

// Paginate through all audits
async function getAllAudits() {
    let page = 1;
    let allAudits = [];

    while (true) {
        const response = await fetch(
            `${BASE_URL}/audits?page=${page}&per_page=50`,
            { headers }
        );
        const { data, pagination } = await response.json();
        allAudits.push(...data);

        if (page >= pagination.total_pages) break;
        page++;
    }

    return allAudits;
}

getClients().then(console.log);
<?php
$apiKey = "aila_your_key_here";
$baseUrl = "https://ailabsaudit.com/api/v1";

function apiRequest($endpoint, $params = []) {
    global $apiKey, $baseUrl;

    $url = $baseUrl . $endpoint;
    if (!empty($params)) {
        $url .= "?" . http_build_query($params);
    }

    $ch = curl_init($url);
    curl_setopt_array($ch, [
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_HTTPHEADER => ["X-Api-Key: $apiKey"],
    ]);

    $response = curl_exec($ch);
    $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
    curl_close($ch);

    if ($httpCode !== 200) {
        throw new Exception("API error: HTTP $httpCode");
    }

    return json_decode($response, true);
}

// List clients
$clients = apiRequest("/clients");
foreach ($clients["data"] as $client) {
    echo "{$client['name']} — {$client['sector']}\n";
}

// Get audits with pagination
$audits = apiRequest("/audits", [
    "page" => 1,
    "per_page" => 10
]);
echo "Total audits: {$audits['pagination']['total']}\n";

// Get client 360 view
$client360 = apiRequest("/clients/42/360");
print_r($client360["data"]);

Bereit, die GEO/AEO API zu integrieren?

Erstellen Sie Ihren API Key in 30 Sekunden und beginnen Sie mit der Integration.

Jetzt starten

Bereit, Ihre KI-Sichtbarkeit zu prüfen?

Erstellen Sie Ihr kostenloses Konto und erhalten Sie 1000 Bonus-Credits.

Kostenloses Konto erstellen