For a date range

Retrieve bounded semantic results grouped by date, with an optional live overlay for the newest slices.

POST/api/search

Authorizations

Bearer
Authorizationstringrequiredheader

Required Bearer API key. Programmatic access to the World API needs a key; browsing nosible.world in a browser does not.

Example: Bearer nos_sk_...

Body

application/json
group_byenumrequiredbody

Grouping dimension; currently date.

Example: date

vectorsnumber[][]requiredbody

One or more anchor embeddings. Each production vector must contain exactly 3,072 floating-point values.

Example: [[0.0, 0.0, ...]] (3,072 values)

dateobjectrequiredbody

Inclusive date window. Set include_live=true to include newest active slices.

Example: {"from":"2026-09-15","to":"2026-09-17","include_live":true}

filtersobjectbody

The World Search filter DSL.

Example: {"language":"en"}

includestring[]requiredbody

Projection selector; include factor for the grouped factor response.

Example: ["factor"]

per_date_limitintegerbody

Candidate retrieval budget for each date; defaults to 1000.

Example: 1000

min_scorenumberbody

Inclusive semantic score floor; defaults to 0.2.

Example: 0.35

How to use this endpoint

guidance

Use this endpoint when a semantic definition must be evaluated independently across dates. Request the factor projection and set date.include_live=true when the newest active slices should be included.

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.

schemastring

Stable grouped semantic search response contract identifier.

Example: nosible_world_factor_search_v1

group_bystring

Grouping dimension; currently date.

Example: date

eventsobject[]

Flat matched event rows; join them to groups by date.

Example: [{ date, event_id, score, vector_scores, sentiment }]

groupsobject[]

One summary per scanned date, including matches, candidates, truncation, and eligible denominators.

Example: [{ date, matched_count, candidate_count, truncated, eligible }]

date_windowobject

Requested window, live-slice decision, and archive cutoff.

Example: { "from": "2026-09-15", "to": "2026-09-17", "include_live": true, "archive_cutoff": "2026-09-15" }

statsobject

Aggregate date, candidate, match, and truncation counters.

Example: { "dates_requested": 3, "dates_scanned": 3, "matched_events": 412, "truncated": true }

Responses and errors

HTTP
200Request succeeded. The response body is shown in the panel on the right.
400invalid_requestThe grouped request is invalid or omits required date, vector, or projection fields.
403access_deniedThe requested archive date is outside the caller's World tier.
404not_foundThe requested date, entity, ticker, or event does not exist in the accessible index.
410cursor_expiredThe cursor was minted against a replaced index build. Restart pagination from the first page.
429rate_limitedThe request exceeded the endpoint or account rate limit. Respect Retry-After when supplied.
501backend_not_configuredThe World backend is not configured for this deployment.
502backend_errorThe BFF could not obtain a valid response from the World backend.
504backend_timeoutThe World backend or an upstream data source timed out.
422grouped_response_too_largeThe request exceeds the bounded grouped response budget; shorten the window or raise the score floor.
503grouped_search_busyThe grouped-search worker pool is full; retry after backoff.