> For the complete documentation index, see [llms.txt](https://docs.solanavibestation.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.solanavibestation.com/api-reference/rewind/methods/getrewindcoverage.md).

# getRewindCoverage

## getRewindCoverage — Covered slot range and gap list

> Returns the covered slot range for this API key and the non-complete ranges inside it.\
> \
> \*\*Parameters\*\* — omitted, \`\[]\`, or \`\[config]\`. \`config\` accepts:\
> \
> \- \`fromSlot\` (optional) — list only gaps at or after this slot.\
> \- \`toSlot\` (optional) — list only gaps at or before this slot. \`fromSlot > toSlot\` is \`-32602\`.\
> \
> Both bounds only filter the \`gaps\` list; \`earliestSlot\` and \`latestSlot\` always describe the whole window.<br>

```json
{"openapi":"3.0.3","info":{"title":"Rewind RPC: getRewindCoverage","version":"1.0.0"},"tags":[{"name":"Rewind","description":"Historical account state, per-write change history, and historical simulation."}],"servers":[{"url":"https://rewind.solanavibestation.com","description":"Rewind service (all tiers routed by API key)"}],"security":[{},{"AuthHeader":[]},{"URLParameter":[]}],"components":{"securitySchemes":{"AuthHeader":{"type":"apiKey","in":"header","name":"Authorization","description":"Pass `Authorization: <api-key>` on each request."},"URLParameter":{"type":"apiKey","in":"query","name":"api_key","description":"Pass `?api_key=<api-key>` on the URL."}},"schemas":{"JsonRpcEnvelope":{"type":"object","required":["jsonrpc","id"],"properties":{"jsonrpc":{"type":"string","enum":["2.0"]},"id":{"oneOf":[{"type":"string"},{"type":"integer"}]}}},"CoverageResult":{"type":"object","required":["earliestSlot","latestSlot","gaps"],"properties":{"earliestSlot":{"type":"integer","format":"int64","nullable":true,"description":"Oldest covered slot for this API key (already reflects the plan's coverage window). Positions below it are refused with `-32015`. `null` on an empty archive."},"latestSlot":{"type":"integer","format":"int64","nullable":true,"description":"Newest slot whose coverage is **final**. Trails the chain by a few minutes because the newest slots may still be committing. Reads above it still work up to the newest ingested slot, and are refused with `-32014` beyond that. `null` if nothing is final yet."},"gaps":{"type":"array","description":"Holes in `[earliestSlot, latestSlot]` as contiguous ranges with a `status`. Reads a gap could have changed are refused with `-32018`. Slots skipped by their leader produced no block, so they are not gaps and are not listed. Filtered by `fromSlot` / `toSlot` when given.","items":{"$ref":"#/components/schemas/GapRange"}}}},"GapRange":{"type":"object","required":["fromSlot","toSlot","status"],"properties":{"fromSlot":{"type":"integer","format":"int64"},"toSlot":{"type":"integer","format":"int64"},"status":{"type":"string","enum":["partial","missing","unknown"],"description":"`partial` — slot incomplete. `missing` — slot not ingested. `unknown` — no record of the slot."}}},"JsonRpcErrorResponse":{"type":"object","required":["jsonrpc","id","error"],"properties":{"jsonrpc":{"type":"string","enum":["2.0"]},"id":{"oneOf":[{"type":"string"},{"type":"integer"}]},"error":{"$ref":"#/components/schemas/JsonRpcError"}}},"JsonRpcError":{"type":"object","required":["code","message"],"description":"- `-32602` Invalid params (including `fromSlot > toSlot`).\n- `-32603` Internal error.\n- `-32005` Node is unhealthy with `data.reason: \"starting\"` — the service has not yet loaded its gap list (for example just after a restart). It never answers from an unloaded list, because an empty list would read as \"no gaps\". Retry shortly.\n","properties":{"code":{"type":"integer"},"message":{"type":"string"},"data":{"type":"object","additionalProperties":true}}}},"responses":{"UnauthorizedError":{"description":"Authentication required or invalid.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JsonRpcErrorResponse"}}}},"ForbiddenError":{"description":"Insufficient permissions for the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JsonRpcErrorResponse"}}}},"TooManyRequestsError":{"description":"Rate limit exceeded for this tier.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JsonRpcErrorResponse"}}}},"InternalServerError":{"description":"Unexpected server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JsonRpcErrorResponse"}}}}}},"paths":{"/":{"post":{"operationId":"getRewindCoverage","summary":"getRewindCoverage — Covered slot range and gap list","tags":["Rewind"],"description":"Returns the covered slot range for this API key and the non-complete ranges inside it.\n\n**Parameters** — omitted, `[]`, or `[config]`. `config` accepts:\n\n- `fromSlot` (optional) — list only gaps at or after this slot.\n- `toSlot` (optional) — list only gaps at or before this slot. `fromSlot > toSlot` is `-32602`.\n\nBoth bounds only filter the `gaps` list; `earliestSlot` and `latestSlot` always describe the whole window.\n","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["jsonrpc","id","method"],"properties":{"jsonrpc":{"type":"string","enum":["2.0"]},"id":{"oneOf":[{"type":"string"},{"type":"integer"}]},"method":{"type":"string","enum":["getRewindCoverage"]},"params":{"type":"array","minItems":0,"maxItems":1,"items":{"type":"object","properties":{"fromSlot":{"type":"integer","format":"int64","description":"List only gaps at or after this slot."},"toSlot":{"type":"integer","format":"int64","description":"List only gaps at or before this slot."}}}}}}}}},"responses":{"200":{"description":"Coverage snapshot.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/JsonRpcEnvelope"},{"type":"object","required":["result"],"properties":{"result":{"$ref":"#/components/schemas/CoverageResult"}}}]}}}},"400":{"description":"Malformed JSON."},"401":{"$ref":"#/components/responses/UnauthorizedError"},"403":{"$ref":"#/components/responses/ForbiddenError"},"429":{"$ref":"#/components/responses/TooManyRequestsError"},"500":{"$ref":"#/components/responses/InternalServerError"}}}}}}
```
