Overview
The Backdated Search & Fetch API answers one question no live search API can: “what did the web know on date X?” Every request carries anas_of date. Search returns only documents crawled on
or before that date, and fetch returns the article’s bytes as they were
archived at that time — not today’s version of the page. The backing corpus is
a frozen archive, so the same as_of query returns the same results forever.
This is the same engine behind the BackSearchToolset
you can declare in an environment — exposed here as a standalone HTTP API for use
from any language or agent loop.
Why not a live search API with a date filter? Live APIs (Brave, Exa,
Perplexity, Anthropic, etc.) filter today’s index by a publish-date field and
then hand you today’s bytes — so ranking is computed with hindsight and a page
edited since the cutoff leaks its later content. This API never touches the live
web: it searches an immutable crawl, so results are reproducible and carry
no post-cutoff lookahead. That makes it suitable for leakage-free evals,
forecasting benchmarks, and defensible point-in-time backtests.
Base URL & authentication
x-api-key header — the same
or_... key the rest of the platform uses. No separate key is needed.
Search runs over a fixed historical corpus. Choose
as_of dates inside the
covered window — dates outside it return no results. Current coverage:
December 2025 → June 2026, news sources, rolling forward roughly one month
behind real time. Confirm the live window with the OpenReward team.Pricing
Pay-as-you-go against your prepaid OpenReward balance — 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. Track usage with orwd usage or GET /v1/billing/api-usage.
POST /search
Full-text + semantic search over the archive, cut off atas_of.
Request body
Response
Example
- curl
- Python
POST /fetch
Retrieve a page’s content as it was archived on or beforeas_of — the
point-in-time counterpart to search. Returns the extracted article text, not
today’s version of the URL.
Request body
Response
as_of, the API returns 404
(and does not bill the request).
Example
- curl
- Python
Budget & errors
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 — requests, billable cost, and
anything metered-but-not-yet-priced (pendingRequests).
Query parameters
Response
cost counts only usage that has already been priced. Requests from the last few
minutes show under pendingRequests with cost: 0 until the rater runs — so the
request count is always live even when the charge hasn’t landed yet.- curl
- CLI
Adding credits
Top up from the dashboard — the simplest path. Open your organization’s billing page atopenreward.ai/<your-org>/billing (for example,
openreward.ai/GeneralReasoning/billing),
choose an amount, and pay by card. The credit is available immediately.
Top up via the API — create a Stripe checkout session and send the user to
the returned URL:
An org-scoped API key draws down the organization’s shared balance; a
personal key draws down your own. Top up whichever the key belongs to.
See also
- Backdated Web Tools — the same engine as
an environment toolset (
BackSearchToolset) or SDK classes (Backsearch/Backfetch).

