{"openapi":"3.1.0","info":{"title":"OSINT Navigator API","description":"Programmatic access to OSINT tool recommendations. Authenticate with an API key.","version":"1.0.0"},"paths":{"/api/categories":{"get":{"tags":["public"],"summary":"List Categories","description":"Return category slug -> display name mapping.","operationId":"list_categories_api_categories_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/query":{"post":{"tags":["public"],"summary":"Query Endpoint","description":"Main query endpoint. Returns JSON with answer, tools, and cache info.\n\nRequires authentication. Rate limited by tier.","operationId":"query_endpoint_api_query_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/QueryRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/tools/search":{"post":{"tags":["public"],"summary":"Search Tools Endpoint","description":"Search the tool database directly (for browsing, not Q&A).","operationId":"search_tools_endpoint_api_tools_search_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SearchRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}}},"components":{"schemas":{"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"QueryRequest":{"properties":{"query":{"type":"string","title":"Query"},"skip_cache":{"type":"boolean","title":"Skip Cache","default":false}},"type":"object","required":["query"],"title":"QueryRequest"},"SearchRequest":{"properties":{"query":{"type":"string","title":"Query"},"category":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Category"},"limit":{"type":"integer","title":"Limit","default":10},"countries":{"anyOf":[{"items":{"type":"string","maxLength":60},"type":"array","maxItems":5},{"type":"null"}],"title":"Countries"}},"type":"object","required":["query"],"title":"SearchRequest"},"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":{"ApiKeyAuth":{"type":"http","scheme":"bearer","description":"API key (on_...) generated from your account at navigator.indicator.media"}}}}