Search
Search the index for one query, or up to five judged together.
Searches the index and returns the relevant articles, most relevant first, each with a calibrated
score. With several queries, results come merged and each query also gets its own entry in groups.
Set stream: true to receive Server-Sent Events while it searches.
Body
querystring | string[]requiredOne query, or up to five judged together in the same request, faster than searching them one by one; each one is billed as a search of its mode. 2–200 characters each.
indexstringSearch your own custom index (
idx_…) instead of the news index: the same modes, prices,questions,toneandhighlights. One query per request, and no date filter unless you set one. See the Custom index guide.sourcesstring[]Only these sources, by domain (such as
diarioejemplo.example), up to 100. A domain that is not in the index comes back as adomain_not_indexedwarning.include_domainsstring[]Only these domains or paths, up to 20. A domain includes its subdomains; a path such as
diarioejemplo.example/economiaincludes everything under it.exclude_domainsstring[]Never these domains or paths, up to 20. Same matching rules as
include_domains.countriesstring[]Only sources based in these countries: ISO 3166-1 alpha-2 codes, such as
ARorUS.languagesstring[]Only sources that publish in these languages: ISO 639-1 codes, such as
esoren. A tag such aspt-BRcounts aspt.sectionsstring[]Only these sections: the section the source declares, or the first segment of the path (
economia).daysinteger | nullThe last N days, 1–365.
nullsearches the whole index. Defaults to 7, unlesspublished_afterorpublished_beforeis set.published_afterdate | date-timePublished on or after this moment. A bare date (
2026-09-20) covers the whole day in UTC−3; a date-time needs an offset.published_beforedate | date-timePublished on or before this moment, inclusive. Same format as
published_after.modeenum<string>Default:"normal"ultrajudges headlines only and is the cheapest ·fastjudges headlines and standfirsts ·normalalso reads the top results to confirm them ·deepjudges the whole index and reads more.max_resultsintegerDefault:10How many results to return, 1–50.
highlightsbooleanReturn a short verbatim excerpt from the articles that were read: at most one per article (two in
deep), up to 25 words, never from the first paragraph. Defaults totrueindeepandfalseotherwise.dedupebooleanDefault:falseCollapse the same story told by several outlets into a single result, listing the others in
duplicates.tonebooleanDefault:falseClassify each result as positive, neutral or negative relative to the query, and summarise it by source.
essentialbooleanReturn up to three verbatim excerpts from different sources that capture the story, with the same limits as
highlights. Defaults totrueindeep.questionsmap<string, …>Structured output: up to 8 typed questions (
boolean,choiceorscore) answered on every result, keyed by a name you choose.max_tokensinteger | nullA hard cap on model tokens for this request, minimum 2000. If it is reached, you get everything judged so far with
incomplete: true.freshbooleanDefault:falseSkip the result cache. Otherwise, an identical request within 10 minutes is served from cache at no cost.
temporalenum<string>Default:"auto"timezonestringstreambooleanDefault:falseSend Server-Sent Events while searching:
step,partialand a finalresult.
Response
idstringThe request id, also sent in the
X-Request-Idheader.objectenum<string>search,site_searchorsimilar.modeenum<string>The mode that was used.
queriesstring[]The queries that were searched.
foundbooleanWhether any article reached the relevance threshold (a
scoreof 0.5).totalintegerHow many relevant articles were found. It can exceed the number of results returned.
resultsobject[]The results, most relevant first.
Show child attributes
urlstringThe article’s canonical URL.
titlestringThe headline, up to 240 characters.
sourcestring | nullThe publication.
countrystring | nulllanguagestring | nullpublished_atstring | nullPublication time, ISO 8601 in UTC.
sectionstring | nullThe section, when the source provides one.
snippetstring | nullThe description the publisher gives the article in its feed or page metadata, up to 300 characters.
scorenumberCalibrated probability (0–1) that the article is about the query: from the article when it was read, from the headline otherwise. Between 0.35 and 0.65 the model is undecided.
headline_relevancenumberThe probability judged from the headline alone.
readobject | nullPresent when the article was opened and read to confirm it.
Show child attributes
probabilitynumberThe probability after reading the article.
centralitynumberHow central the query is to the article, from 0 (not present) to 3 (the main topic).
highlightsstring[]Verbatim excerpts about the query: at most one per article (two in
deep), up to 25 words, never from the first paragraph. None for short articles.toneobject | nullPresent when
tonewas requested.Show child attributes
labelenum<string>positive,neutralornegative, relative to the query.probabilitiesmap<string, number>The probability of each label.
basisenum<string>articlewhen judged on the text,headlineotherwise.
answersobject | nullPresent when
questionswere sent.Show child attributes
basisenum<string>articlewhen answered on the text,headlineotherwise.valuesmap<string, …>One answer per question key:
probabilityforboolean,choiceforchoiceandscoreforscore, withprobabilitiesandconfidencewhere they apply.
duplicatesobject[]With
dedupe: other outlets that told the same story.Show child attributes
urlstringThe duplicate’s URL.
titlestringThe duplicate’s headline.
sourcestring | nullThe duplicate’s publication.
date_matchenum<string> | nullreferenced_datestring | nullfound_inenum<string>Where it was found:
index,custom_indexwhen you searched your own index, or on a live sitehomepage,sectionorsite_search.datamap<string, string | number> | nullOn custom index searches: the structured data the page declares, such as
price,currency,availability,brandorsku.nullwhen it declares none.queriesstring[]With several queries: which ones this result answers.
groupsobject[] | nullWith several queries: one entry per query, with its own results and enrichments.
Show child attributes
querystringThe query.
foundbooleanWhether this query found anything.
totalintegerRelevant articles found for this query.
resultsobject[]Results for this query.
near_missesobject[]When nothing was found: what came closest, so your agent can decide.
rejectedobject[]Articles whose headline looked relevant but scored below 0.6 once read.
diffusionobject | nullHow the story spread: articles per day and per source, and who published first. Computed from the index at no extra cost.
toneobject | nullWith
tone: counts by label, overall and per source.essentialobject | nullWith
essential: up to three verbatim excerpts from different sources.temporalobject | null
near_missesobject[]When nothing was found: what came closest, so your agent can decide.
rejectedobject[]Articles whose headline looked relevant but scored below 0.6 once read.
diffusionobject | nullHow the story spread: articles per day and per source, and who published first. Computed from the index at no extra cost.
Show child attributes
by_dayobject[]Articles per day, in UTC−3.
Show child attributes
daystringThe day,
YYYY-MM-DD.countintegerArticles that day.
by_sourceobject[]Articles per source, with the time of each source’s first article.
Show child attributes
sourcestringThe publication.
countintegerIts articles.
first_published_atstringWhen it first published.
firstobject | nullThe first article published.
Show child attributes
sourcestring | nullIts publication.
urlstringIts URL.
titlestringIts headline.
published_atstringWhen it was published.
undatedintegerArticles without a publication date.
toneobject | nullWith
tone: counts by label, overall and per source.Show child attributes
articlesintegerArticles classified.
overallobjectCounts by label.
Show child attributes
positiveintegerPositive articles.
neutralintegerNeutral articles.
negativeintegerNegative articles.
by_sourceobject[]Counts by label, per source.
Show child attributes
positiveintegerPositive articles.
neutralintegerNeutral articles.
negativeintegerNegative articles.
sourcestringThe publication.
essentialobject | nullWith
essential: up to three verbatim excerpts from different sources.Show child attributes
excerptsobject[]The excerpts.
Show child attributes
textstringThe excerpt, verbatim.
urlstringThe article it comes from.
sourcestring | nullIts publication.
titlestringIts headline.
referenceobject | nullOn
similar: the reference article.Show child attributes
urlstringIts URL.
titlestringIts headline.
custom_indexobject | nullWith
index: the custom index that was searched.Show child attributes
idstringIts id,
idx_….namestringThe name you gave it.
temporalobject | nullShow child attributes
expressionstring | nullfromstring | nulltostring | nulltimezonestringbasisenum<string>windowobject | nullShow child attributes
fromstringtostring
widenedboolean
sitestring | nullOn
site_search: the site that was searched.indexobject | nullOn index searches: how fresh the index was at the time of the search.
Show child attributes
updated_atstring | nullThe last time a source was refreshed.
usageobjectWhat the request consumed.
Show child attributes
tokensintegerModel tokens. 0 when served from cache.
callsintegerModel calls.
cost_usdnumber | nullCost in US dollars, when known.
headlinesintegerHeadlines considered, including those judged before.
from_memoryintegerOf those, the ones judged before and reused at no cost.
pages_directintegerArticles read with a plain request.
pages_browserintegerPages opened with a browser.
duration_msintegerTime on the server, in milliseconds.
budgetobject | nullWith
max_tokens: the cap, how much was used and whether it was reached.Show child attributes
max_tokensintegerThe cap you set.
usedintegerTokens used.
exhaustedbooleanWhether the cap was reached.
discoveryobject | nullDiscovery: when the index has fewer than 3 good matches, we look for sources beyond it and read them at the original site.
nullonly in partial events, while it’s still running.Show child attributes
statusenum<string>used: it searched beyond the index within the time budget ·background: inultraorfastthere was nothing to check quickly; it keeps learning in the background ·skipped: the index had enough, or it doesn’t apply ·budget: the discovery limit was reached ·timeout: the time budget ran out (incomplete: true).sitesintegerSites beyond the index that contributed candidates.
msintegerTime it added to this request, in milliseconds.
incompletebooleantruewhenmax_tokensor the discovery time budget ran out before everything was judged: there may be more.cached_atstring | nullWhen served from cache: when the result was computed.
warningsobject[]Non-fatal notes about the request, such as a domain that is not in the index.
Show child attributes
codestringA stable code.
messagestringA human-readable explanation.