NOSIBLE
DeveloperAPI reference
Get API key

Rich Search

Retrieve maximally enriched search results with source profiles, targeting, history, signals, and vectors.

POST/search/v2/rich-search

Related NOSIBLE resources

research & data

Inspect the Search data dictionary or read NOSIBLE research for implementation context and methods.

Authorizations

apiKey
Api-Keystringrequiredheader

Your NOSIBLE API key from the API Dashboard.

Example: nos_sk_...

Body

application/json
questionstringbody

The question the search should answer. 1–500 characters; use this as the primary information need.

Example: What is driving AI chip demand?

enrich_profilebooleanbody

Add source website profiles to each result.

Example: true

enrich_targetingbooleanbody

Add advertising targeting information.

Example: true

enrich_historybooleanbody

Add publishing history for the source website.

Example: true

enrich_signalsbooleanbody

Add quantitative result signals.

Example: true

enrich_vectorsbooleanbody

Add quantized search vectors.

Example: true

n_resultsintegerbody

Number of ranked results to return.

Example: 10

n_probesintegerbody

Number of shards to evaluate; Fast and Rich Search accept 5–50.

Example: 30

sql_filterstringbody

Optional SQL filter over the Search index.

Example: SELECT loc FROM engine WHERE words >= 30

instructionstringbody

Instruction passed to the embedding mode. Keep it short and purposeful; it is not a replacement for the question.

Example: Retrieve evidence about semiconductor demand.

expansionsstring[]body

Up to 10 semantically or lexically related formulations that broaden recall without changing the underlying intent.

Example: ["AI accelerator demand", "data-center GPU spending"]

algorithmenumbody

Scoring algorithm. hybrid-3 is the recommended default for general-purpose retrieval.

Example: hybrid-3

min_similaritynumberbody

Reject results below this similarity threshold. Must be between 0 and 1; it is a score threshold, not a probability.

Example: 0.35

must_includestring[]body

Terms that must appear in each result. Use sparingly: every additional hard constraint can reduce recall.

Example: ["NVIDIA"]

must_excludestring[]body

Terms that must not appear in a result.

Example: ["job listing"]

brand_safetyenumbody

Content-safety class: Safe, Sensitive, or Unsafe.

Example: Safe

languageenumbody

Language classification used to refine retrieval, such as EN, FR, or DE.

Example: EN

continentenumbody

Continent filter for the indexed document.

Example: Europe

regionenumbody

Geographic region filter for the indexed document.

Example: Western Europe

countryenumbody

Country filter using the API's canonical country values.

Example: Germany

sectorenumbody

GICS sector filter.

Example: Information Technology

industry_groupenumbody

GICS industry-group filter.

Example: Semiconductors & Semiconductor Equipment

industryenumbody

GICS industry filter.

Example: Semiconductors

sub_industryenumbody

GICS sub-industry filter.

Example: Semiconductor Equipment

iab_tier_1enumbody

IAB tier-1 content category.

Example: Business

iab_tier_2enumbody

IAB tier-2 content category.

Example: Business Services

iab_tier_3enumbody

IAB tier-3 content category.

Example: Investing

iab_tier_4enumbody

IAB tier-4 content category.

Example: Stocks

companiesstring[]body

Up to three company names used to refine retrieval.

Example: ["NVIDIA", "TSMC"]

collectionenumbody

Collection to search. everything searches the full available collection; this-week restricts to recently added data.

Example: everything

deduplicatebooleanbody

Deduplicate results that represent the same headline or story.

Example: true

How to use this endpoint

guidance

Use Rich Search when the result itself is the beginning of an analysis workflow. Enable only the enrichments you will consume: vectors and site history can materially increase latency and payload size. The envelope is the same message/query/response contract as Fast Search; only each result’s shape is enriched.

Response body

application/json

These are the fields you can build against. Nested names use dot notation; optional sections are called out in their descriptions.

messagestring

Human-readable retrieval summary.

Example: Evaluated 1,204,332 out of 15,311,040 records in 0.412 seconds.

queryobject

Effective query and enrichment controls used for the request.

Example: { "question": "What is driving AI chip demand?", "enrich_signals": true }

responseobject[]

Ranked enriched result documents.

Example: [{ page, snippet, tokens, semantics, profile, signals, vectors }]

response[].pageobject

Normalized page metadata, including URL, title, host, publication fields, author, description, and language.

Example: { "url": "https://www.reuters.com/...", "title": "AI infrastructure investment", "netloc": "reuters.com", "language": "en-en" }

response[].snippetobject

Best matching context and the indexed snippet content used to support the result.

Example: { "best_chunk": "...", "content": ["..."] }

response[].tokensobject | null

Optional token locations/content when token enrichment is enabled by the request.

Example: { "tokens": ["AI", "chip", "demand"] }

response[].semanticsobject

Semantic similarity and optional vector metadata.

Example: { "similarity": 0.9821 }

response[].profileobject | null

Source-site profile when enrich_profile is true.

Example: { "domain_authority": 0.87, "category": "news" }

response[].targetingobject | null

Source/content targeting signals when enrich_targeting is true.

Example: { "iab_tier_1": "Business" }

response[].historyobject | null

Source publishing-history signals when enrich_history is true.

Example: { "articles_last_30d": 1240 }

response[].signalsobject | null

Quantitative and editorial result signals when enrich_signals is true.

Example: { "signal_sentiment": "positive", "prob_positive": 0.81 }

response[].vectorsobject | null

Quantized vector payload when enrich_vectors is true. Treat it as binary model output, not readable text.

Example: { "nosible_bitstring": "010011..." }

Responses and errors

HTTP
200Request succeeded. The response body is shown in the panel on the right.
400invalid_requestThe request is syntactically valid JSON but a value, date, filter, or combination of fields is invalid.
401unauthorizedThe required API key or Bearer credential is missing or invalid.
422validation_errorThe request shape is understood but one or more values fail validation.
429rate_limitedThe request exceeded the account or public-window rate limit. Respect Retry-After when supplied.
502upstream_errorAn upstream retrieval service failed while processing the request.
504upstream_timeoutAn upstream retrieval service did not respond within the request timeout.