page.corvus.getOps
Read ops for the requested `blockIds` in forward cursor order, strictly after `cursor`.
Details · query
| Kind | query |
|---|---|
| Authority | corvus.page |
| Indexed |
Checks
Valid Lint pass{
"$type": "com.atproto.lexicon.schema",
"defs": {
"main": {
"description": "Read ops for the requested `blockIds` in forward cursor order, strictly after `cursor`.",
"errors": [
{
"description": "The supplied cursor is malformed or beyond the server's current high-water.",
"name": "InvalidCursor"
}
],
"output": {
"encoding": "application/json",
"schema": {
"properties": {
"cursor": {
"description": "Cursor of the last op in `ops`. Pass this as `cursor` on the next call to continue paginating. Omitted when `ops` is empty (caller is caught up to the server's high-water for these blocks).",
"type": "integer"
},
"ops": {
"description": "Ops for the requested blocks with cursor strictly greater than the input `cursor`, in ascending cursor order. Up to `limit` entries. Shape is identical to a live `page.corvus.subscribeOps#op` frame.",
"items": {
"ref": "page.corvus.subscribeOps#op",
"type": "ref"
},
"type": "array"
}
},
"required": [
"ops"
],
"type": "object"
}
},
"parameters": {
"properties": {
"blockIds": {
"description": "The explicit set of block ids to read ops for. No transitive walk — only ops whose `blockId` is in this set are returned.",
"items": {
"format": "at-uri",
"type": "string"
},
"type": "array"
},
"cursor": {
"description": "Server-assigned cursor (exclusive) to resume from. Omitted = start from cursor 0 (every op the server has for the requested blocks). Same semantic as `page.corvus.subscribeOps#main.cursor`.",
"type": "integer"
},
"includeDids": {
"description": "The dids of the users to include.",
"items": {
"format": "did",
"type": "string"
},
"type": "array"
},
"limit": {
"default": 500,
"description": "Maximum number of ops to return in this page.",
"maximum": 1000,
"minimum": 1,
"type": "integer"
}
},
"required": [
"blockIds"
],
"type": "params"
},
"type": "query"
}
},
"description": "Paginated forward read of an op log scoped to an explicit block set. Pull-based alternative to opening a `page.corvus.subscribeOps` WebSocket at `cursor: 0` — same op shape, same cursor semantics, just delivered as a query page instead of a live tail. Each entry is a `page.corvus.subscribeOps#op` so live and historical paths feed the same applier.\n\nLike `subscribeOps`, this query does NOT walk graph relations. Callers fetch ops for the blocks they care about and follow refs explicitly with subsequent calls.",
"id": "page.corvus.getOps",
"lexicon": 1
}