Providers & modes.

Thirteen engines in three families, each probed with a real billed request every 30 minutes. Name one explicitly, or let the router pick from the engines that support your mode.

The three families

Search engines — parallel, brave, serper, serpapi, exa, tavily — query a web index and return ranked results at a flat price per call. Scrapers & readers — jina, firecrawl, browserless, stealth — turn a URL into clean text; stealth is our own Chrome-fingerprint fetcher for pages that fight back. Answer engines — perplexity, xai, linkup — return grounded, LLM-synthesized answers with sources; where the upstream bills by token, so do we, from the usage it actually reports.

The table

providerfamilymodesfrom / callmedianuptime
parallelsearchgeneral news deep$0.0075
bravesearchgeneral news deep$0.00750%
serpersearchgeneral news scholar patents images places$0.00151030 ms100%
exasearchgeneral academic people similar deep$0.01051287 ms100%
jinascrapergeneral extract$0.0001 +tok2412 ms98%
linkupanswergeneral news deep$0.0090989 ms100%
stealthscraperscrape extract$0.000863 ms100%
firecrawlscrapergeneral scrape extract$0.01141270 ms100%
tavilysearchgeneral news academic deep$0.0120
browserlessscraperscrape extract$0.0060
perplexityanswergeneral news academic deep$0.0210 +tok0%
serpapisearchgeneral news scholar images$0.0375
xaianswersocial$0.0075 +tok11104 ms100%

How those two columns are measured. Every configured engine gets one real, billed request every 30 minutes from our production region, and we record what came back. The figures above are the median round-trip and the success rate over the last 24 hours (n = 432 probes), recomputed every five minutes. Median rather than mean, because one timeout would drag an average somewhere no real call ever went; and an em-dash rather than a zero, because an unmeasured engine and an instant one are not the same fact. The same data, charted, is at /status.

A provider under 100% is failing its probe right now. The router sorts it last but still tries it, because an engine that fails a health check can still answer a real query, and being the only candidate beats returning nothing.

Prices shown are the default-mode rate; some modes price differently — deep usually costs more, scrape sometimes less. Every response tells you the exact charge, and Billing explains the formula.

Live availability

GET /api/v1/providers is public (no auth) and returns, per provider: supported modes, whether it is currently configured, the per-call resale price, whether it is token-billed, and the result of the last health check — a real billed probe run every 30 minutes. Responses are cached for 60 seconds.

GET /api/v1/providers
{
  "providers": [
    {
      "name": "brave",
      "modes": ["general", "news", "deep"],
      "available": true,
      "price_per_search_usd": 0.0075,
      "token_billed": false,
      "status": {
        "ok": true,
        "latency_ms": 412,
        "checked_at": "2026-07-03T09:30:00.000Z"
      }
    }
  ]
}

The human-readable version, with 24 hours of uptime history, lives at metasearch.sh/status.