Enhance documentation
canvas.find
Find accessible canvases and existing creation destinations with bounded, permission-checked continuations.
canvas.find
query read
Use when current canvas state is missing from the task context.
Before calling
- Authenticate as the accountable Enhance person.
- Use only resource identifiers returned by an earlier capability result or supplied by the person.
Input
Show complete JSON Schema
{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"collection":{"default":"everything","anyOf":[{"type":"string","const":"own"},{"type":"string","const":"everything"},{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}]},"title":{"type":"string","minLength":1},"includeDestinations":{"default":true,"type":"boolean"},"limit":{"default":25,"type":"integer","exclusiveMinimum":0,"maximum":50},"cursor":{"type":"string","minLength":1,"maxLength":16384}},"additionalProperties":false}
Example
Show example input
{
"collection": "everything",
"includeDestinations": true,
"limit": 25
}
Result
Returns a typed canvas.find result from the Enhance API without transport-specific prose.
items(required): Returned field items.returnedCount(required): Returned field returnedCount.totalAvailable(required): Returned field totalAvailable.nextCursor(required): Returned field nextCursor.complete(required): Returned field complete.sourceTruncated(required): Returned field sourceTruncated.warnings(required): Returned field warnings.
Show complete result JSON Schema
{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"items":{"maxItems":50,"type":"array","items":{"oneOf":[{"type":"object","properties":{"kind":{"type":"string","const":"canvas"},"canvasRef":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"title":{"type":"string","minLength":1},"organisationId":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}]},"accessState":{"type":"string","enum":["invite-only","link-view","link-comment","link-edit"]},"viewerCan":{"type":"object","properties":{"read":{"type":"boolean"},"comment":{"type":"string","enum":["yes","sign-in","no"]},"edit":{"default":"no","type":"string","enum":["yes","sign-in","no"]},"grants":{"default":[],"type":"array","items":{"type":"object","properties":{"source":{"type":"string","enum":["direct","team","link"]},"accessLevel":{"type":"string","enum":["owner","can-edit","can-comment","can-view"]}},"required":["source","accessLevel"],"additionalProperties":false}},"grantableAccessLevels":{"default":[],"type":"array","items":{"type":"string","enum":["can-edit","can-comment","can-view"]}},"share":{"type":"boolean"},"manage":{"type":"boolean"},"readHistory":{"default":false,"type":"boolean"}},"required":["read","comment","edit","grants","grantableAccessLevels","share","manage","readHistory"],"additionalProperties":false},"openPath":{"type":"string"}},"required":["kind","canvasRef","title","organisationId","accessState","viewerCan","openPath"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"destination"},"destination":{"oneOf":[{"type":"object","properties":{"kind":{"type":"string","const":"personal"}},"required":["kind"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"team"},"organisationId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"required":["kind","organisationId"],"additionalProperties":false}]},"name":{"type":"string"}},"required":["kind","destination","name"],"additionalProperties":false}]}},"returnedCount":{"type":"integer","minimum":0,"maximum":9007199254740991},"totalAvailable":{"type":"integer","minimum":0,"maximum":9007199254740991},"nextCursor":{"anyOf":[{"type":"string"},{"type":"null"}]},"complete":{"type":"boolean"},"sourceTruncated":{"type":"object","properties":{"canvases":{"type":"boolean"},"destinations":{"type":"boolean"}},"required":["canvases","destinations"],"additionalProperties":false},"warnings":{"type":"array","items":{"type":"string"}}},"required":["items","returnedCount","totalAvailable","nextCursor","complete","sourceTruncated","warnings"],"additionalProperties":false}
Example result
Show example result
{
"items": [
{
"kind": "destination",
"destination": {
"kind": "personal"
},
"name": "Personal"
}
],
"returnedCount": 1,
"totalAvailable": 1,
"nextCursor": null,
"complete": true,
"sourceTruncated": {
"canvases": false,
"destinations": false
},
"warnings": []
}
Recovery
- BAD_REQUEST: correct the named fields and call again.
- UNAUTHORIZED: restore Enhance authentication, then retry once.
- FORBIDDEN or NOT_FOUND: check the supplied resource and selection; do not substitute unrelated content. Ask for corrected access or scope if needed.
- CONFLICT: read the current resource, merge the intended change, and retry with its version.
- INTERNAL: run Enhance diagnostics, report the failure, and stop repeating the call.
Continue with
- Use the returned identifiers and version in the next canvas operation.
Versions
Compatibility: caeccf52caa616b8f21b596351e8f5e28de897e417e67aac303e63f256ebcf1f.
Minimum tested versions: Enhance CLI and MCP runtime 0.1.40, plugin 1.0.38, Node.js 24. No older floor is published.