Status und Discovery
GET /status, /health, /capabilities, /openapi.json und /metrics — die nicht authentifizierte Oberfläche für Monitore, Statusseiten und Clients, die die Fähigkeiten des Knotens kennen müssen.
GET /api/v1/status
GET /api/v1/health
GET /api/v1/capabilities
GET /api/v1/openapi.json
GET /api/v1/metricsKeiner davon braucht einen API-Schlüssel außer /metrics, das ein separates Betriebs-Token verlangt.
Status
Die interaktive Scalar-Dokumentation ist unter /api/docs auf Ihrem API-Server verfügbar.
Wählen Sie Search API v1 (/api/v1/openapi.json, der SDK-Vertrag) oder Console & Auth API
(/api/spec.json, Sitzungsauthentifizierung). Die öffentliche Dokumentation gewährt
keinen Zugriff auf geschützte Operationen.
Das öffentliche Statusdokument: Erreichbarkeit von Engine, Redis und Datenbank in einem Aufruf, geeignet für eine Statusseite.
curl -sS "$AAC_API/status"{
"ok": true,
"engine": { "ok": true },
"redis": { "enabled": true, "ok": true, "status": "ready" },
"database": { "ok": true },
"latency_ms": 14,
"time": "2026-10-23T10:41:02.000Z",
"request_id": "req_2c4e6a8b0d2f4a6c8e0b2d4f"
}ok ist das logische UND aus Engine- und Datenbankprüfung; Redis wird gemeldet, entscheidet aber nicht, weil die Plattform ohne Redis auf prozesslokal Rate-Limits und Caches zurückfällt. redis.enabled: false heißt, dass kein REDIS_URL gesetzt ist. Antworten laufen mit cache-control: no-store, die Engine-Prüfung hat 1,5 Sekunden Timeout — ein hängender Knoten liefert schnell engine.ok: false statt den Monitor in einen Timeout zu schicken.
Health
Kurze Engine-Prüfung für Load Balancer.
curl -sS "$AAC_API/health"{
"ok": true,
"request_id": "req_5e7a9c1b3d5f7a9c1e3b5d7a"
}Ist die Engine nicht konfiguriert oder nicht erreichbar, kommt 503 mit der Ursache im Body:
{
"ok": false,
"error": "unavailable"
}error ist not_configured, wenn die Suche nicht konfiguriert ist, und unavailable, wenn der Dienst nicht erreichbar ist.
Capabilities
Dieser Endpunkt meldet die unterstützten API-Funktionen dieser Installation. Modelle und Indexeinstellungen können zusätzliche Konfiguration erfordern.
curl -sS "$AAC_API/capabilities"{
"features": {
"autoEmbedding": true,
"conversation": true,
"nlSearch": true,
"analytics": true,
"voiceQuery": true,
"imageSearch": true,
"joins": true,
"unionSearch": true,
"scopedKeys": true
},
"endpoints": {
"assistant": "/api/v1/indexes/{index}/assistant",
"assistant_stream": "/api/v1/indexes/{index}/assistant/stream",
"nl_search": "/api/v1/indexes/{index}/nl-search",
"voice": "/api/v1/indexes/{index}/voice",
"scoped_key": "/api/v1/indexes/{index}/scoped-key",
"suggest": "/api/v1/indexes/{index}/suggest"
},
"infrastructure": { "cache": { "enabled": true, "ok": true, "status": "ready" } }
}GET /api/v1/capabilities nennt die unterstützten Funktionen. Eine Funktion kann zusätzlich ein konfiguriertes Modell, Indexfelder oder Betriebseinstellungen benötigen. Backend-Version und Infrastrukturdetails gehören zur Plattformadministration.
OpenAPI-Dokument
curl -sS "$AAC_API/openapi.json" -o aacsearch-openapi.jsonAus diesem Dokument werden die SDKs generiert; pnpm sdk:generate baut beide Clients neu. Es eignet sich auch für typisierte Clients in anderen Sprachen, Postman-Collections oder Gateway-Konfiguration.
Metriken
Betriebszähler zum Scrapen. Deaktiviert, solange kein METRICS_TOKEN gesetzt ist, und niemals mit Mandanteninhalten — nur Summen.
curl -sS "$AAC_API/metrics" -H "x-metrics-token: $METRICS_TOKEN"{
"generated_at": "2026-10-23T10:41:02.000Z",
"gauges": {
"indexes": 42,
"documents": 184203,
"connectors": 17,
"dead_letters_open": 3,
"wallet_liability_cents": 128400
},
"counters_today": { "searches": 91204, "events": 1877 },
"latency": { "avg_search_ms": 18.6 }
}Ein falsches oder fehlendes Token wird mit 404 und { "error": { "code": "NOT_FOUND", "message": "Not found" } } beantwortet — der Endpunkt verrät seine Existenz nicht.