{"openapi":"3.1.0","info":{"title":"Klar BW Index API","description":"Read-only API at https://api.amt.social. Without Authorization: one shared request every second across REST and MCP, per gateway process; HTTP 429 includes Retry-After. Optional project Bearer keys have separate limits. Invalid supplied credentials return 401. Query text is sent in a POST body.","version":"1.0.0"},"paths":{"/v1/search":{"post":{"summary":"Search","operationId":"search_v1_search_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SearchParameters"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SearchResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"description":"Anfragelimit erreicht. Retry-After enthält die Wartezeit in Sekunden.","headers":{"Retry-After":{"description":"Sekunden bis zum nächsten Versuch","schema":{"type":"integer"}}}}},"security":[{"ProjectReadKey":[]},{}]}},"/v1/documents/{document_id}":{"get":{"summary":"Document","operationId":"document_v1_documents__document_id__get","security":[{"ProjectReadKey":[]},{}],"parameters":[{"name":"document_id","in":"path","required":true,"schema":{"type":"string","title":"Document Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"description":"Anfragelimit erreicht. Retry-After enthält die Wartezeit in Sekunden.","headers":{"Retry-After":{"schema":{"type":"integer"},"description":"Sekunden bis zum nächsten Versuch"}}}}}},"/v1/sources":{"get":{"summary":"Sources","operationId":"sources_v1_sources_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SourcesResponse"}}}},"429":{"description":"Anfragelimit erreicht. Retry-After enthält die Wartezeit in Sekunden.","headers":{"Retry-After":{"description":"Sekunden bis zum nächsten Versuch","schema":{"type":"integer"}}}}},"security":[{"ProjectReadKey":[]},{}]}},"/v1/stats":{"get":{"summary":"Stats","operationId":"stats_v1_stats_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StatsResponse"}}}},"429":{"description":"Anfragelimit erreicht. Retry-After enthält die Wartezeit in Sekunden.","headers":{"Retry-After":{"description":"Sekunden bis zum nächsten Versuch","schema":{"type":"integer"}}}}},"security":[{"ProjectReadKey":[]},{}]}}},"components":{"schemas":{"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"SearchHit":{"properties":{"content_type":{"type":"string","title":"Content Type","default":"text/html"},"match_type":{"type":"string","enum":["exact","word_form"],"title":"Match Type","default":"exact"},"document_id":{"type":"string","title":"Document Id"},"title":{"type":"string","title":"Title"},"snippet":{"type":"string","title":"Snippet"},"url":{"type":"string","title":"Url"},"source_id":{"type":"string","title":"Source Id"},"source_domain":{"type":"string","title":"Source Domain"},"fetched_at":{"type":"string","title":"Fetched At"},"published_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Published At"},"content_date":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Content Date"},"dates":{"additionalProperties":true,"type":"object","title":"Dates"},"content":{"additionalProperties":true,"type":"object","title":"Content"}},"type":"object","required":["document_id","title","snippet","url","source_id","source_domain","fetched_at"],"title":"SearchHit"},"SearchParameters":{"properties":{"q":{"type":"string","maxLength":400,"minLength":1,"title":"Q","description":"Suchbegriffe, als Wörter mit UND verknüpft."},"source":{"anyOf":[{"type":"string","maxLength":253},{"type":"null"}],"title":"Source"},"topic":{"anyOf":[{"type":"string","maxLength":40},{"type":"null"}],"title":"Topic","description":"Optionales KI-Thema, z.B. forschung oder foerderung."},"max_age_months":{"anyOf":[{"type":"integer","maximum":1200.0,"minimum":1.0},{"type":"null"}],"title":"Max Age Months","description":"Höchstalter anhand Änderungs-/Veröffentlichungsdatum; undatierte Treffer entfallen."},"document_types":{"items":{"type":"string","enum":["html","pdf","docx","doc","odt"]},"type":"array","maxItems":5,"title":"Document Types","description":"Leer: alle Typen. Mehrfachauswahl: html, pdf, docx, doc, odt."},"limit":{"type":"integer","maximum":50.0,"minimum":1.0,"title":"Limit","default":10},"offset":{"type":"integer","maximum":10000.0,"minimum":0.0,"title":"Offset","default":0}},"type":"object","required":["q"],"title":"SearchParameters"},"SearchResponse":{"properties":{"results":{"items":{"$ref":"#/components/schemas/SearchHit"},"type":"array","title":"Results"},"offset":{"type":"integer","title":"Offset"},"limit":{"type":"integer","title":"Limit"},"has_more":{"type":"boolean","title":"Has More"},"provider":{"type":"string","title":"Provider","default":"local"},"total":{"type":"integer","title":"Total","default":0},"total_relation":{"type":"string","enum":["eq","gte"],"title":"Total Relation","default":"eq"}},"type":"object","required":["results","offset","limit","has_more"],"title":"SearchResponse"},"SourceSummary":{"properties":{"domain":{"type":"string","title":"Domain"},"documents":{"type":"integer","title":"Documents"}},"type":"object","required":["domain","documents"],"title":"SourceSummary"},"SourcesResponse":{"properties":{"sources":{"items":{"$ref":"#/components/schemas/SourceSummary"},"type":"array","title":"Sources"}},"type":"object","required":["sources"],"title":"SourcesResponse"},"StatsResponse":{"properties":{"documents":{"type":"integer","title":"Documents"},"sources":{"type":"integer","title":"Sources"},"last_document_change":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Document Change"},"api_version":{"type":"string","title":"Api Version"},"document_schema_version":{"type":"string","title":"Document Schema Version"}},"type":"object","required":["documents","sources","last_document_change","api_version","document_schema_version"],"title":"StatsResponse"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"}},"securitySchemes":{"ProjectReadKey":{"type":"http","description":"Im Adminpanel erzeugter Projekt-Leseschlüssel. Kein Admin-Schlüssel.","scheme":"bearer"}}}}