Skip to main content

Overview

BackSearch answers one question no live search API can: “what did the web know on date X?” Every request carries an as_of date. Search returns only documents archived on or before that date, and fetch returns a page as it was captured at that time. The archive never moves, so the same query with the same as_of returns the same results forever. This is the same engine behind the BackSearchToolset you can declare in an environment, available here as a standalone HTTP API.
The cutoff gates on when a page was archived, not on the date the page claims for itself. A self-reported publish date is exactly the field a backdated crawl cannot trust, so gating on the capture is what guarantees nothing after the cutoff leaks in. Sources that carry an official date gate on that instead: SEC filings on their filing date, arXiv papers on the date each version was posted, and Wikipedia on the date of its monthly snapshot.

Base URL & authentication

Authenticate with your OpenReward API key (or_...) in the x-api-key header. There is no separate credential to obtain.

What is in the archive

Six corpora sit behind one endpoint. A search fans out across the corpora marked as default below; any corpus can also be named explicitly with the corpus field (see Corpus routing).
  • News is a continuous crawl of news domains. Each hit carries both the crawl date (what as_of gates on) and the article’s own publish date.
  • SEC filings are EDGAR filings including 10-Ks, 10-Qs, 8-Ks, 13Fs and Form 4s. They gate on the official filing date, and fetch returns the full text of the filing with tables rendered as markdown.
  • Wikipedia is a snapshot of English Wikipedia taken on the first of each month. A cutoff resolves to the newest snapshot on or before it, for both search and fetch.
  • General web is a broad crawl captured in periodic windows rather than continuously, starting June 2025. Fetch returns extracted text only.
  • Live captures are pages BackSearch fetched from the live web on demand to fill a coverage gap for a recent cutoff, then persisted with their capture date. See Recent cutoffs.
  • arXiv holds every paper since the first postings in August 1991, with each revision as its own capture. A cutoff between v1 and v2 returns v1. Fetch returns the LaTeX source of that version. arXiv is not part of the default fan-out because papers are noise on most non-academic queries; name it in corpus to search it.
Rolling sources are refreshed continuously and trail the present by a few days. An as_of before a source’s first capture simply returns nothing from that source rather than an error, so a run that silently finds no evidence is usually a date past the edge of the archive.

Pricing

Pay-as-you-go against your prepaid OpenReward balance, with no subscription. Only successful requests are billed. A search that errors, or a fetch that finds no capture on or before as_of (a 404), is not charged. When your balance is exhausted the API returns 402 Payment Required. Top up to continue.

POST /search

Hybrid lexical + semantic search over the archive, cut off at as_of.

Request body

Corpus routing

  • With no corpus, a search fans out across every corpus marked as default: news, SEC filings, Wikipedia, general web and live captures.
  • Naming corpora replaces the default set rather than extending it. ["cc_arxiv"] searches arXiv alone; ["cc_arxiv", "cc_news"] searches arXiv and news.
  • An unrecognised corpus name is silently ignored, and matching is case-sensitive. A typo therefore returns ordinary default results rather than an error. Read each hit’s corpus field to confirm what served it.
  • Routing applies under hybrid and dense. Under bm25 the corpus field has no effect and hits come back with corpus: null.

Response

Example

hybrid handles paraphrase that lexical search misses. A query for “Eastern European territorial dispute escalation” surfaces Russia/Ukraine coverage even when those keywords are not present.

Recent cutoffs and live fallback

The rolling corpora trail the present by a few days, so a cutoff within the last two days can fall into a gap the archive has not filled yet. When such a search finds nothing usable, BackSearch fills it: first from the live-capture corpus (fallback: "corpus"), then from a cache of earlier live lookups ("cache"), and as a last resort from a live web provider ("live"). Pages found this way are stored in cc_web_live with their capture date, so the same query at the same cutoff is reproducible from then on. This path never engages for a cutoff older than two days. A backdated as_of is always answered from the frozen archive alone.

POST /fetch

Retrieve a page’s content as it was archived on or before as_of, the point-in-time counterpart to search.

Request body

Response

Per-source behaviour

If there is no capture of the URL on or before as_of, the API returns 404 and does not bill the request. The detail string names the sources that were checked.

Example

as_of gates on the capture, not on the article’s stated publish date. A page first archived after your cutoff will not be returned even if it claims an earlier publish date. The one exception is sources with an official date (SEC filing date, arXiv version date, Wikipedia snapshot date), which gate on that.

Errors

Other endpoints

Checking your usage

GET https://api.openreward.ai/v1/billing/api-usage returns metered search and fetch usage for the account behind your API key.

Query parameters

Response

Adding credits

To top up open your organization’s billing page at openreward.ai/<your-org>/billing (for example, openreward.ai/GeneralReasoning/billing).

See also