Search the web
const url = 'https://www.cemented.ai/v1/search';const options = { method: 'POST', headers: {'Content-Type': 'application/json'}, body: '{"query":"NVIDIA fiscal 2025 revenue"}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url https://www.cemented.ai/v1/search \ --header 'Content-Type: application/json' \ --data '{ "query": "NVIDIA fiscal 2025 revenue" }'Returns page text and verbatim highlights. Standard-retention responses cache each URL/contentSha256 pair before returning; zero-retention responses have null hashes. Use these pairs in Grounded drafts for server-backed source verification. Each successful provider call is billed, including calls completing after the response deadline. Provider failures are listed in the response; an empty result is not proof of no matches.
Authorizations
Section titled “Authorizations ”Request Body required
Section titled “Request Body required ”object
Natural-language or keyword query. Longer, specific queries work best across the neural backends.
Results to return after merging providers (max 50). Each provider is asked for this many, so the merged list is ranked from a wider pool.
Retrieval depth. fast favors latency, deep buys multi-hop retrieval where a backend offers it (Exa deep, Parallel advanced), auto balances the two.
Narrow the result type. research paper also routes to OpenAlex and Firecrawl’s academic index; news routes Firecrawl to its news source.
Only return pages on these domains (sec.gov also matches subdomains; docs.python.org/3 scopes a path). Applied server-side by each backend and re-checked locally.
Never return pages on these domains.
Only pages published on or after this date (ISO 8601).
Only pages published on or before this date. Undated pages are kept.
Phrases that must appear in a result’s title or text (case-insensitive).
Phrases that must not appear in a result’s title or text.
Backends to query, in priority order. Defaults to exa, parallel, and firecrawl (plus openalex for research paper). perplexity is admin-only and skipped for other callers. Unconfigured backends are reported as unavailable rather than failing the request. Firecrawl scrapes page bodies only when it is the sole backend; in a fan-out it contributes ranked URLs and page descriptions while Exa supplies page text.
Examples
{ "query": "NVIDIA fiscal 2025 revenue"}Responses
Section titled “ Responses ”Retrieval results
object
Unique id for this search call.
Merged, deduplicated results in fused-rank order.
object
Stable id for the result (its URL).
Publication date when a backend reports one. Usually ISO YYYY-MM-DD; a news backend may return a relative phrase.
Backend relevance score when one reports it (Exa, OpenAlex). Ordering uses the fused rank, not this value.
Page text (Exa, Firecrawl scrape) or the backend’s long excerpts joined with blank lines (Parallel, Perplexity), or a metadata header plus abstract (OpenAlex). Present unless contents.text is false.
Query-relevant passages, each a verbatim substring of text. Present unless contents.highlights is false.
Short backend-provided description or first excerpt.
Every backend that returned this page, best-ranked first. Agreement across backends raises the fused rank.
DOI parsed from the URL when the page is a scholarly work.
SHA-256 of text. For standard retention with text enabled, this hash and the exact result URL identify stored text; otherwise null. A grounded research draft can cite it as contentSha256 on a web source so quotes are verified against text Cemented retrieved rather than text the agent supplied.
One report per backend that was asked (or skipped).
object
ok returned results; error/timeout failed for this call (the other backends still count); unavailable was requested but is not configured or not permitted for this caller.
Vendor round trip in milliseconds.
Raw vendor cost for this call before Cemented’s markup.
Closed-registry code when status is not ok.
The backend’s HTTP status when the failure was an HTTP error response (for example 401 for a rejected credential or 429 for rate limiting); null otherwise.
Cost of the vendor calls behind this response.
object
Summed raw vendor cost before Cemented’s markup.
Wall-clock milliseconds for the whole fan-out.
Example
{ "object": "search", "query": "NVIDIA fiscal 2025 revenue", "searchTime": 100, "requestId": "search_example", "results": [], "providers": [], "costDollars": { "total": 0 }}Invalid input or unavailable provider
Authentication required
Insufficient credits or API key spend limit exceeded