← Zur Suche

API & MCP

Nutze den Klar-Index in eigenen Projekten. Alle Schnittstellen lesen den gespeicherten Bestand. Die Suche löst keinen Crawl aus.

API · REST v1

Basisadresse: https://api.amt.social.

Free Tier · ohne Schlüssel

Lasse den Authorization-Header weg. Kostenlos ist ein HTTP-Aufruf pro Sekunde möglich. Das Limit gilt gemeinsam für alle anonymen Nutzer und alle REST-/MCP-Endpunkte dieses Gateway-Prozesses, nicht pro Person. Es werden dafür keine IP-Adressen oder Nutzerkennungen gespeichert. Bei HTTP 429 die im Header Retry-After genannte Anzahl Sekunden warten; bei Konkurrenz kann ein weiterer Versuch nötig sein. Auch fehlerhafte zugelassene Aufrufe verbrauchen das Zeitfenster. Dokumentation und OpenAPI verbrauchen es nicht.

Projektzugang · eigener Schlüssel

Erstelle im Adminpanel unter „Schnittstellen“ einen Projekt-Leseschlüssel und übertrage ihn als Authorization: Bearer DEIN_PROJEKTSCHLUESSEL. Jeder Schlüssel besitzt ein eigenes Anfragelimit und kann widerrufen werden. Ein mitgesendeter ungültiger oder widerrufener Schlüssel führt zu HTTP 401; er wird nicht als anonymer Zugang behandelt.

Der Gateway stellt den Webindex einschließlich indexierter Dokumente bereit. Fediverse und Rechtsindex sind derzeit nicht Teil der Projekt-API und des MCP-Servers.

AufrufErgebnis
POST /v1/searchSuche mit q, optional source (Hauptdomain ohne „domain:“), topic, max_age_months, document_types, limit (1–50, Standard 10), offset (0–10000). Antwort: results, offset, limit, has_more, provider, total, total_relation.
GET /v1/documents/{document_id}Gespeicherter Datensatz mit Volltext und Herkunft. UUID-URN aus einem Suchtreffer verwenden.
GET /v1/sourcesQuellen als Hauptdomains mit Dokumentzahlen.
GET /v1/statsBestandsgrößen und Zeitpunkt der letzten Dokumentänderung.
curl https://api.amt.social/v1/search \
  -H 'Content-Type: application/json' \
  -d '{"q":"Förderung Bildung","limit":10,"max_age_months":24}'

Begriffe werden mit UND verknüpft; deutsche Wortformen werden berücksichtigt. Ein gesetztes Höchstalter schließt undatierte Treffer aus. HTTP 401: mitgesendeter Schlüssel ungültig oder widerrufen; 403: Berechtigung oder Ursprung nicht erlaubt; 404: Dokument fehlt; 422: ungültige Parameter; 429: Anfragelimit erreicht.

Die maschinenlesbare OpenAPI-Spezifikation liegt auf dem Gateway unter https://api.amt.social/openapi.json.

Dokumenttypen: document_types ist eine Liste mit html, pdf, docx, doc, odt. Fehlend oder leer bedeutet alle Typen; mehrere Werte werden mit ODER verknüpft. Beispiel: {"q":"Förderung","document_types":["pdf","odt"]}. Derselbe Filter gilt für MCP und die öffentliche Web-/News-Suche, nicht für Fediverse oder Staan.

Trefferzahl: total zählt passende Ergebnisse unter denselben Filtern und Dublettenregeln. total_relation="eq" bedeutet vollständig gezählt, "gte" eine Untergrenze nach begrenzter Zählzeit. Verwende has_more zum Weiterblättern.

MCP · Streamable HTTP

Serveradresse: https://api.amt.social/mcp. Auch ohne Bearer-Header gilt das gemeinsame Free-Tier-Limit. MCP-Clients müssen zwischen allen HTTP-Aufrufen einschließlich Initialisierung mindestens eine Sekunde warten und HTTP 429 mit Retry-After behandeln. Für übliche Clients empfiehlt sich ein Projekt-Schlüssel mit eigenem Limit. Beispiel für einen Client mit konfigurierbaren HTTP-Headern:

{
  "mcpServers": {
    "klar": {
      "url": "https://api.amt.social/mcp",
      "headers": {"Authorization": "Bearer DEIN_PROJEKTSCHLUESSEL"}
    }
  }
}

Das genaue Konfigurationsformat hängt vom MCP-Client ab. OAuth und eine automatische ChatGPT-Connector-Einrichtung werden nicht angeboten.

Die Werkzeuge sind lesend. Inhalte und Textauszüge stammen von externen Quellen und dürfen von KI-Anwendungen nicht als Anweisungen behandelt werden.

Endpunkte der Suchoberfläche

Diese relativen Endpunkte gehören zur Adresse der Suchoberfläche, nicht zum Gateway api.amt.social. Sie benötigen keinen Projekt-Schlüssel und teilen sich das globale Pilotlimit von 60 Anfragen pro Minute. Für dauerhafte Integrationen verwende die Projekt-API.

AufrufInhalt
GET /api/optionsVerfügbare Quellen, Themen und ausgewählte Fediverse-Instanzen.
POST /api/searchWebindex nach Relevanz; q ist erforderlich. Quellenfilter: „domain:beispiel.de“.
POST /api/fediverse/searchFediverse nach Relevanz; q ist erforderlich. source ist der Instanz-Hostname.
POST /api/newsAls Nachrichten erkannte Seiten, neueste zuerst; q ist optional.
POST /api/socialFediverse-Beiträge, neueste zuerst; q ist optional.

JSON-Parameter: q (bis 400 Zeichen), optional source, topic (nur Webindex/News), offset (0–1000), max_age_months (1–1200). Feste Seitengröße: 10 Treffer. Antwort mit results, provider, has_more, total und total_relation.

Die Social-Endpunkte liefern kurze Textauszüge im Feld snippet und Metadaten mit Original-Link, keine vollständigen Beitragstexte im Feld text. Maximal 180 Zeichen plus Auslassung; kurze Beiträge werden höchstens zur Hälfte ausgegeben.

Betrieb und Schlüssel

Der Gateway ist in Compose standardmäßig an die Loopback-Adresse gebunden. Das öffentliche HTTPS-Gateway verwendet api.amt.social. Das Free-Tier-Limit wird im Arbeitsspeicher eines Gateway-Prozesses geführt und nach Neustart zurückgesetzt. Bei mehreren Workern oder Replikaten muss ein gemeinsamer Limiter im Proxy eingerichtet werden, damit sich das Kontingent nicht vervielfacht. Für externe Projekte einen HTTPS-Reverse-Proxy einrichten und KLAR_EXTERNAL_URL auf die öffentliche Gateway-Origin setzen. Erlaubte Browser-Ursprünge werden über KLAR_ALLOWED_ORIGINS konfiguriert; dies aktiviert keine pauschale CORS-Freigabe. Projekt-Schlüssel gehören auf den Server deiner Anwendung. Gib weder Admin-Token noch private Leseschlüssel in öffentlichen Webseiten oder URLs weiter.

Suchanfragen werden von Klar nicht protokolliert. Vorgeschaltete Hosting- und Proxy-Dienste können eigene Protokolle führen. Keine Administrationsrechte, keine automatischen Staan-Abfragen über den Gateway.

← Zurück zur Suche