---
title: "search.fabric.query · OpenVibe.Services"
canonical: "https://openvibe.services/docs/capabilities/search.fabric.query"
updated: null
---

# search.fabric.query · OpenVibe.Services

HTML: [search.fabric.query · OpenVibe.Services](https://openvibe.services/docs/capabilities/search.fabric.query)

# `search.fabric.query`

Generated at 2026-11-13 06:25:48 UTC from [`openvibe-contracts v0.419.0`](https://github.com/OpenVibers/OpenVibe.Contracts/tree/v0.419.0) and [`openvibe-sdk v0.161.0`](https://github.com/OpenVibers/OpenVibe.SDK/tree/v0.161.0).

Grantable to apps: request it for an app on its project page. Network approves it only inside the project's allowance.

One search over several scopes (plan 2026-10-28 §4.5, the Search Fabric): network (Search's index, permission-aware as search.query.run), mine (the person's own private documents), web (OpenVibe's open index, then paid providers in a ladder, cached), with route.explain saying what answered and what it cost. Anonymous callers get network results and web results from the open index and the cache; a signed-in person or a first-party service (X-OV-Subject for mine) also reaches paid providers within OpenVibe's daily caps. Providers never receive an account identifier. The same operation is the SDK's createSearchClient().query() and the MCP tool openvibe.search.

- Owner: search (token audience `openvibe.search`)
- Version: 1.0
- Status: active
- Visibility: public
- Resource constraints: none
- Quota class: search-query
- Permissions: search:read
- Input: [search.fabric-request@1](/docs/contracts/search.fabric-request)
- Output: search.fabric-result@1
- Events: —
- Implemented by: - `POST /api/v1/query`
- `GET /api/v1/query`
- `GET /api/v1/query/providers`

[These routes in the API explorer](/docs/api/search#cap-search.fabric.query)
