REST API v1 + v2

Integrationsleitfaden GEO/AEO REST API

Verbinden Sie Ihre Anwendungen ueber die GEO-Audit-API von AILabsAudit. 100+ 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 100+ 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 100+ 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, die Sichtbarkeit Ihrer Kunden zu auditieren?

Erstellen Sie Ihr kostenloses Konto und erhalten Sie 500 Willkommens-Credits.

Kostenloses Konto erstellen