Preview

BackSearch

Search the web as it was.

BackSearch is a point-in-time search and fetch API over a frozen archive of the web. Every request carries an as_of date. Search returns only documents archived on or before it, and fetch returns a page as it was captured at that time. The archive never moves, so the same query with the same date returns the same results forever.

BackSearch is hosted on OpenReward and authenticates with your existing OpenReward API key. There is nothing else to set up.

How it works

Two endpoints, one header. The base URL is https://search.openreward.ai and it authenticates with your existing OpenReward or_... key in the x-api-key header.

01

Pick a date

Set as_of to the day your agent is meant to be living in. Everything archived after that day is invisible to it.

02

Search

Hybrid search over the archive. Each hit carries the archived URL, a snippet, the corpus it came from and the date it was captured.

03

Fetch

Give it a URL and the same cutoff, and you get the extracted text from the latest capture on or before that date. Not today’s version of the page.

Each hit comes back with the archived URL, title, snippet, host, the corpus it came from and both dates:

/fetch is the point-in-time counterpart. Give it a URL and a cutoff and you get the extracted article text from the latest capture on or before that date, not today's version of the page.

The cutoff gates on when a page was archived, not on the date the page claims for itself. A self-reported date is exactly the field a backdated crawl can't trust, and 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.

What it is for

A frozen web earns its keep whenever the live one would either give the answer away or refuse to stay the same twice.

Predictive forecasting

Score a model on questions whose answers you already know, with the evidence horizon pinned before resolution. Step the cutoff forward one day at a time and an agent lives through a past window, reading the news as it broke and trading or predicting on what it finds.

The same holds for training. A forecasting reward only means something if the policy can’t look up the outcome, so backdated retrieval is what makes reinforcement learning on resolved questions honest.

A cached internet for evals and training

The live web is a moving target. Run the same agentic eval twice against it and you get different rankings, rewritten pages and dead links, so a change in score may be the model or may be the internet. Against BackSearch the same query with the same cutoff returns the same bytes every time.

For reinforcement learning, a stable corpus keeps rewards comparable across steps and runs, keeps rollouts off the open web, and lets anyone replay a trajectory exactly.

What is in the archive

Five sources. Rolling sources are refreshed continuously and trail the present by a few days. We are growing the archive going forward.

SourceCorpusCoverageGates on
Newscc_news2025-12-01 → nowcrawl date
SEC filingscc_sec2023-01-03 → nowfiling date
arXivcc_arxiv1991-08-14 → nowversion date
Wikipediacc_wiki2026-02-01 → nowmonthly snapshot
Webcc_web2025-06-12 → nowcrawl date

arXiv

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.

Wikipedia

English Wikipedia as a monthly snapshot taken on the first of each month. A cutoff resolves to the newest snapshot on or before it.

SEC

EDGAR filings since January 2023, including 10-Ks, 10-Qs, 8-Ks, 13Fs and Form 4s. Filings gate on their filing date rather than the crawl, because a filing’s date is official. Fetch returns the full text of the filing.

Works with your stack

Because the endpoints are plain HTTP, they drop into any model that supports function calling. Wrap search and fetch as two tools, hand them to the model, and the model researches the past the same way it would research the present.

Inside OpenReward environments the same engine is available as a toolset. Declare it on the environment and the agent gets web_search and web_fetch, both bounded to the cutoff. For time-stepped environments, expose web_as_of as a property and the agent's window advances with your simulation clock.

Outside an environment, the Backsearch and Backfetch classes in the Python SDK do the same job directly.

Pricing

Pay-as-you-go against your prepaid OpenReward balance, with no subscription. See full pricing.

Search
$10.00
per 1,000 searches
Fetch
$2.00
per 1,000 fetches

Only successful requests are billed. A search that errors, or a fetch that finds no capture on or before your cutoff and returns 404, costs nothing. Check what you've spent with orwd usage.

Rate limits

Each API key has its own limit on search and on fetch, counted separately, so fetching the results of a search never spends your search allowance. A key can run at the sustained rate indefinitely and briefly go above it, up to the burst.

EndpointSustainedBurst
Search2 requests/sec20 requests
Fetch2 requests/sec60 requests

A request over the limit is refused with 429 Too Many Requests and is not billed. Retry-After gives the whole number of seconds to wait, X-RateLimit-Limit the sustained rate of the limit you hit, and X-RateLimit-Scope which limit it was:

caller

Your API key went over its own limit.

global

The service as a whole is at its ceiling. Temporary.

overload

Search is briefly at capacity. Retry after a second.

Clients must honour Retry-After. Wait at least that long before retrying, and add random jitter so that parallel workers spread their retries out instead of returning together and being refused again:

Need more than this? Email hello@gr.inc with your use case and the request rate you expect, and we'll raise the limit on your key.

Enterprise

The preview is self-serve. Some work needs more than that: an archive that reaches back further than the windows above, sources we don't index yet, or the corpus delivered into your own environment. Tell us what you're building and the coverage it needs, and we'll work out the shape of it with you.

Point your agent at any date in the archive