Search API
POST /v1/search returns ranked, verbatim-cited results for a query. This
guide covers what the API guarantees and how to use it economically; the
machine-readable contract is the generated
API reference.
The verbatim guarantee
Section titled “The verbatim guarantee”There is no LLM anywhere in the pipeline. Every cited sentence (q) comes
verbatim from a fetched source, and every ranking, fusion, dedup, and
compression step is deterministic. The same evidence in produces the same
results out — nothing is paraphrased, summarised, or hallucinated. Your model
(or your reader) does the reasoning over quotable, attributable evidence.
That makes the API a fit where LLM-synthesised search is a dealbreaker: legal and compliance research, medical queries, academic citation, fact-checking, and competitive intel with auditable provenance.
Retrieval lanes
Section titled “Retrieval lanes”The engine behind the API (aptrouter’s research-mcp) fuses several
independent retrieval lanes:
- Web — Brave Search, an independent ~30B-page index.
- Academic — OpenAlex, Europe PMC, arXiv, and Semantic Scholar, resolved to open-access full text (OA PDFs and JATS XML) rather than paywalled landing pages.
- Reference & news — Wikipedia REST and a news RSS lane for recency.
- Hosted corpus — a scholarly index serving DOI-backed results with dense
- full-text retrieval.
Lanes are merged with Reciprocal Rank Fusion so each lane’s best results interleave, and a continuous time-decay prior favours fresh sources on recency-relevant queries while leaving evergreen queries unbiased.
Quality & honesty signals
Section titled “Quality & honesty signals”Ranking is driven by deterministic quality signals, not classifiers:
- Domain tiers (authoritative / reputable / mid / low / unknown) and Oxford-CEBM evidence levels (systematic review … expert opinion).
- Cross-source clustering — claims are clustered across sources and
labelled
Consensus/Corroborated/Singular/Conflict. - Spam resistance — listicle/SEO/affiliate pages are demoted by structural signals (no AI-text classifiers, which false-positive on legitimate non-native-English writing).
- Honest failure — the engine reports a composite confidence score
(corroboration + tier + evidence level + diversity − conflict) and a
degraded list naming blocked, failed, or empty sources rather than
papering over gaps. The hosted
/v1/searchenvelope stays minimal by design (n+results); these signals shape what reaches your results, and the full envelope (confidence, degraded, per-source metadata) is exposed on the engine’s MCP surface.
Token budgets
Section titled “Token budgets”Long agent runs live or die on token economy, so the API is token-lean by default:
- Abbreviated keys —
d,t,y,a,s,qinstead of verbose field names (see the quickstart for the full key table). - Opt-in weight — abstracts are omitted unless you ask
(
"fields": "abstract"addsabper result). - Bounded result counts —
limitis clamped to 1–50 (default 8). X-Token-Budget— every response carries an estimated token count (~4 chars/token) so a framework can budget without parsing the body.
Pricing & billing
Section titled “Pricing & billing”Billing is prepaid, pay-as-you-go — there are no plans, tiers, quotas, or free allowance. You top up a credit balance in the dashboard and each call draws it down:
- $0.005 per search ($5 per 1,000) — one successful
POST /v1/searchdebits 1 credit.GET /v1/usageandGET /healthare free. - No charge for failures — server errors (
500) and timeouts (504) automatically refund the credit. - Empty balance returns
402— top up to keep serving; nothing throttles you while you have a balance.
Request shape
Section titled “Request shape”{ "query": "quantum error correction surface codes", "limit": 5, "fields": "abstract"}query is required (1–2048 characters) and is tokenised full-text + dense
retrieval — plain language works best; it is not a boolean DSL.
Every /v1/* request must carry your API key as
Authorization: Bearer sk_live_… (issue and rotate keys in the
dashboard). A missing or invalid key
returns 401.
Reference
Section titled “Reference”POST /v1/search— full request/response schemaGET /v1/usage— credit usage and remaining balance for the calling key (free to call). Top up at aptrouter.com/dashboard.GET /health— unauthenticated liveness probe- API overview — generated from the OpenAPI 3.1 spec