Outcome
Run tenant-filtered full-text search across current locale versions.
These examples were captured from the local Worker. Deployment, publication and retrieval are verified separately for each environment; local examples do not establish external provider delivery.
Before you start
-
Inspect the credential identity with topolo whoami and the exact action with topolo actions get before preparing input.
-
Discover an accessible Docs workspace with topolo resources topolo-docs and topolo workspaces list topolo-docs. Pass workspace resource type and identifier separately from action input.
-
The published required permission is docs:read; the active credential and resource binding must authorize the call.
Discover the target
topolo actions get app_topolo_docs.search.query --detail --json
topolo resources topolo-docs --json
topolo workspaces list topolo-docs --json
Input fields
| Field | Required | Meaning |
|---|---|---|
q | Yes | Nonempty full-text search query. Workspace search matches current versions; public search matches only explicitly published versions in the selected public space. |
limit | No | Maximum search hits, from 1 through 50; omitted limit defaults to 20. This is a search limit, not a pagination cursor. |
Interpret the response
results contains current tenant/workspace versions and their relevance rank. Lower ranks sort first. An empty results array is a valid no-match result; results may include unpublished authoring content.
Worked examples
The following inputs and responses were captured from the local Docs worker fixture. Auth and Nexus dependencies are simulated. Identifiers, URLs and timestamps are illustrative fixture values. Discover your own identifiers and choose an appropriate test resource; copying a fixture identifier does not make it valid in your environment. For workspace-bound calls, set DOCS_WORKSPACE_ID to the identifier returned by resource discovery. Run validation and planning first; the final call requires the intended effect to be authorized.
Minimal example
Save the input as payload.json:
{
"q": "token",
"limit": 5
}
CLI:
topolo actions validate app_topolo_docs.search.query --data @payload.json --json
topolo actions plan app_topolo_docs.search.query --resource-type workspace --resource-id "$DOCS_WORKSPACE_ID" --data @payload.json --json
topolo actions call app_topolo_docs.search.query --resource-type workspace --resource-id "$DOCS_WORKSPACE_ID" --data @payload.json --json
MCP tool and arguments:
{
"tool": "topolo_read_action",
"arguments": {
"actionId": "app_topolo_docs.search.query",
"input": {
"q": "token",
"limit": 5
},
"resourceType": "workspace",
"resourceId": "<identifier returned by resource discovery>"
}
}
Captured local response · HTTP 200:
{
"query": "token",
"results": [
{
"document": {
"id": "doc_de0efe08-781e-4e60-9d7a-2a48b6dd4dd4",
"organizationId": "org_fixture",
"workspaceId": "ws_fixture",
"spaceId": "docspace_a09c96df-e507-4751-89c8-e6a99e496d0d",
"sectionId": "docsec_9c57d921-baf8-455c-89a0-5abb407cb339",
"sectionPosition": 0,
"parentId": null,
"slug": "rotate-token",
"title": "Rotate an integration token",
"summary": "Safely replace an integration token.",
"status": "published",
"sourceKind": "native",
"ownerAppId": null,
"currentVersionId": "docver_387e2601-28ef-4d73-8a60-ab3e37fdce87",
"publishedVersionId": "docver_387e2601-28ef-4d73-8a60-ab3e37fdce87",
"createdByUserId": "usr_fixture",
"createdAt": "2026-10-03T08:07:30.565Z",
"updatedAt": "2026-10-03T08:07:31.044Z",
"publishedAt": "2026-10-03T08:07:31.044Z"
},
"version": {
"id": "docver_387e2601-28ef-4d73-8a60-ab3e37fdce87",
"organizationId": "org_fixture",
"workspaceId": "ws_fixture",
"documentId": "doc_de0efe08-781e-4e60-9d7a-2a48b6dd4dd4",
"locale": "en",
"title": "Rotate an integration token",
"summary": "Safely replace an integration token.",
"bodyMarkdown": "# Rotate a token\n\nOpen credential settings, replace the token and verify a read.",
"agentGuidance": null,
"contentHash": "f14fd31c10cbbf734ad4677c8c68f7036d2f3625815ed61465ff8375acd5e0b6",
"sourceRevision": null,
"sourcePath": null,
"createdByUserId": "usr_fixture",
"createdAt": "2026-10-03T08:07:30.881Z"
},
"rank": -1.6923076923076922e-06
}
]
}
results contains current tenant/workspace versions and their relevance rank. Lower ranks sort first. An empty results array is a valid no-match result; results may include unpublished authoring content.
Workflow example
Save the input as payload.json:
{
"q": "token",
"limit": 5
}
CLI:
topolo actions validate app_topolo_docs.search.query --data @payload.json --json
topolo actions plan app_topolo_docs.search.query --resource-type workspace --resource-id "$DOCS_WORKSPACE_ID" --data @payload.json --json
topolo actions call app_topolo_docs.search.query --resource-type workspace --resource-id "$DOCS_WORKSPACE_ID" --data @payload.json --json
MCP tool and arguments:
{
"tool": "topolo_read_action",
"arguments": {
"actionId": "app_topolo_docs.search.query",
"input": {
"q": "token",
"limit": 5
},
"resourceType": "workspace",
"resourceId": "<identifier returned by resource discovery>"
}
}
Captured local response · HTTP 200:
{
"query": "token",
"results": [
{
"document": {
"id": "doc_453b15f4-06fc-4366-ae42-adf1f10d9d38",
"organizationId": "org_fixture",
"workspaceId": "ws_fixture",
"spaceId": "docspace_a0013653-dabf-4831-8c11-6405b39664ca",
"sectionId": "docsec_37f4c4e1-d416-47d7-ad57-d0a38fb678c4",
"sectionPosition": 0,
"parentId": null,
"slug": "rotate-token",
"title": "Rotate an integration token",
"summary": "Safely replace an integration token.",
"status": "published",
"sourceKind": "native",
"ownerAppId": null,
"currentVersionId": "docver_81f1572d-43ea-45fe-b0dd-0f550c94d80a",
"publishedVersionId": "docver_81f1572d-43ea-45fe-b0dd-0f550c94d80a",
"createdByUserId": "usr_fixture",
"createdAt": "2026-10-03T08:07:34.003Z",
"updatedAt": "2026-10-03T08:07:34.384Z",
"publishedAt": "2026-10-03T08:07:34.384Z"
},
"version": {
"id": "docver_81f1572d-43ea-45fe-b0dd-0f550c94d80a",
"organizationId": "org_fixture",
"workspaceId": "ws_fixture",
"documentId": "doc_453b15f4-06fc-4366-ae42-adf1f10d9d38",
"locale": "en",
"title": "Rotate an integration token",
"summary": "Safely replace an integration token.",
"bodyMarkdown": "# Rotate a token\n\nOpen credential settings, replace the token and verify a read.",
"agentGuidance": null,
"contentHash": "f14fd31c10cbbf734ad4677c8c68f7036d2f3625815ed61465ff8375acd5e0b6",
"sourceRevision": null,
"sourcePath": null,
"createdByUserId": "usr_fixture",
"createdAt": "2026-10-03T08:07:34.265Z"
},
"rank": -0.5042990213106258
}
]
}
results contains current tenant/workspace versions and their relevance rank. Lower ranks sort first. An empty results array is a valid no-match result; results may include unpublished authoring content.
Verify the result
- Compare query with q and require results.length not to exceed limit when supplied. Treat returned versions as authoring content, which may be unpublished.
Errors and recovery
-
HTTP 401 ·
authentication_required: Authenticate again or provide a valid Topolo API key. -
HTTP 403 ·
permission_denied: Grant the credential permission docs:read and the required resource binding. -
HTTP 429 ·
rate_limited: Wait for Retry-After when present, then retry without parallel duplicate calls. -
HTTP 422 ·
invalid_input: Correct the payload using inputSchema, then validate before retrying. -
HTTP 503 ·
dependency_unavailable: Retry the action. If it continues, inspect the structured error details using the request ID.
This action does not change service state.
Evidence boundary
These examples establish local handler behavior and schema validity. They do not establish runtime permission parity, a deployed development/staging result or production completion. Preserve the actual request identifier and perform the verification reads after an authorized live call.