API reference
Base URL: /api/v1. Authenticate every request with Authorization: Bearer sk-....
POST /search
Unified web search.
{
"query": "string",
"num_results": 8,
"engine": "auto | cheap | fresh | fast | reliable",
"sort": "price | latency | throughput | quality",
"allow_fallbacks": true,
"providers": { "only": ["brave", "exa"], "ignore": ["bing"] },
"timeout_ms": 8000
}POST /retrieve
Semantic / neural retrieval. Same routing fields as search. Prefer engines that weight quality (auto, reliable) or providers such as Exa and Tavily.
POST /crawl
{
"url": "https://example.com/docs",
"max_depth": 1,
"engine": "reliable"
}POST /research
Multi-step research. depth controls follow-up queries (1–4).
Catalog
GET /providers— adapter catalog, capabilities, and live-key statusGET /modelsandGET /engines— named routing profiles
Workspace
GET /usage— recent requests and aggregatesGET|POST /credits— balance, ledger, stub purchasesGET|POST|DELETE /keys— API keys and spend limits
Errors
Errors use a structured envelope: { "error": { "type", "code", "message", "details?" } }. Common codes: unauthorized, insufficient_credits, spend_limit_exceeded, all_providers_failed, provider_timeout.