SearchQueryResult search.query-result@1
Generated at from
openvibe-contracts v0.53.0 and
openvibe-sdk v0.11.0.
- Version
- 1.0.0
- Owner
- search
- Visibility
- first-party
- Status
- active
- Compatibility
- backward
- Schema
https://openvibe.network/contracts/search/query-result.v1.json
search.query-result@1: the answer of GET /api/v1/search — one page of hits the caller may see, a cursor for the next page, and facet counts when asked. Never a total count and never an ACL.
Fields
| Field | Type | Required | Description | Constraints |
|---|---|---|---|---|
results | array of object | yes |
| |
results[].owner | string | yes | ||
results[].type | string | yes | ||
results[].id | string | yes | ||
results[].revision | integer |
| ||
results[].visibility | string | |||
results[].title | string | null | |||
results[].summary | string | null | |||
results[].canonical_url | string | null | |||
results[].facets | object | null | |||
results[].language | string | null | |||
results[].authorship | string | null | |||
results[].provenance | array | object | null | |||
results[].published_at | string | null | |||
results[].updated_at | string | null | |||
results[].indexable | boolean | false for a noindex document the caller may still see. | ||
results[].snippet_html | string | null | Escaped text with <mark> around the matches; nothing else. | ||
next_cursor | string | null | yes | ||
facets | object |
Examples
From the contract's own test fixtures: valid ones validate, rejected ones must fail.
Valid: page
{
"results": [
{
"owner": "live",
"type": "vod",
"id": "912",
"revision": 3,
"visibility": "public",
"title": "Building a forum",
"summary": null,
"canonical_url": "https://openvibe.live/vod/912",
"facets": {
"channel": "alex"
},
"language": null,
"authorship": "human",
"provenance": [],
"published_at": "2026-09-24T19:00:00.000Z",
"updated_at": null,
"indexable": true,
"snippet_html": "building a <mark>forum</mark>"
}
],
"next_cursor": null
}Rejected: leaks-acl
{
"results": [
{
"owner": "live",
"type": "vod",
"id": "912",
"acl": [
"usr_x"
]
}
],
"next_cursor": null
}Validate
const contracts = require('openvibe-contracts');
contracts.validate('search.query-result@1', value); // { valid, errors: [{ path, message }] }