# getBlocksWithLimit

## getBlocksWithLimit — Confirmed blocks starting at slot

> Returns a list of confirmed blocks starting at the given slot. This method provides an efficient way to retrieve a range of sequential block slots, which is useful for block explorers, analytics tools, and applications that need to process historical blockchain data in batches. Important : The limit must be no more than 500,000 blocks higher than the start\_slot.\
> \*\*Parameters\*\*\
> \
> 0\. \`startSlot\` (required) — Start slot.\
> 1\. \`limit\` (required) — Maximum number of blocks (max 500,000).\
> 2\. \`config\` (optional) — Optional configuration object. Every field is optional; omit the entire object to use defaults.<br>

```json
{"openapi":"3.0.3","info":{"title":"Solana RPC: getBlocksWithLimit","version":"1.0.0"},"tags":[{"name":"Block","description":"Solana RPC block method."}],"servers":[{"url":"https://public.rpc.solanavibestation.com","description":"Public endpoint (rate-limited, no auth)"},{"url":"https://lite.rpc.solanavibestation.com","description":"Lite tier"},{"url":"https://basic.rpc.solanavibestation.com","description":"Basic tier"},{"url":"https://ultra.rpc.solanavibestation.com","description":"Ultra tier"},{"url":"https://elite.rpc.solanavibestation.com","description":"Elite tier"},{"url":"https://epic.rpc.solanavibestation.com","description":"Epic tier"},{"url":"https://basic.swqos.solanavibestation.com","description":"Basic tier with Stake-Weighted QoS"},{"url":"https://ultra.swqos.solanavibestation.com","description":"Ultra tier with Stake-Weighted QoS"},{"url":"https://elite.swqos.solanavibestation.com","description":"Elite tier with Stake-Weighted QoS"}],"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":{"Commitment":{"type":"string","enum":["processed","confirmed","finalized"],"default":"finalized","description":"How finalized a block is at query time:\n- `processed`: most recent block, may be skipped\n- `confirmed`: block confirmed by supermajority of cluster\n- `finalized`: block finalized by the cluster (>2/3 stake)"},"JsonRpcEnvelope":{"type":"object","required":["jsonrpc","id"],"description":"Base envelope of every JSON-RPC 2.0 response.","properties":{"jsonrpc":{"type":"string","enum":["2.0"]},"id":{"oneOf":[{"type":"string"},{"type":"integer"}],"description":"Echoed request id."}}},"JsonRpcErrorResponse":{"type":"object","required":["jsonrpc","id","error"],"description":"JSON-RPC 2.0 error response.","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":"Structured JSON-RPC error.","properties":{"code":{"type":"integer","description":"Numeric error code per JSON-RPC 2.0 spec. Common values:\n- `-32700` Parse error\n- `-32600` Invalid Request\n- `-32601` Method not found\n- `-32602` Invalid params\n- `-32603` Internal error\n- `-32003` Unauthorized\n- `-32005` Too Many Requests\n- `-32015` Transaction version not supported\n"},"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":"getBlocksWithLimit","summary":"getBlocksWithLimit — Confirmed blocks starting at slot","tags":["Block"],"description":"Returns a list of confirmed blocks starting at the given slot. This method provides an efficient way to retrieve a range of sequential block slots, which is useful for block explorers, analytics tools, and applications that need to process historical blockchain data in batches. Important : The limit must be no more than 500,000 blocks higher than the start_slot.\n**Parameters**\n\n0. `startSlot` (required) — Start slot.\n1. `limit` (required) — Maximum number of blocks (max 500,000).\n2. `config` (optional) — Optional configuration object. Every field is optional; omit the entire object to use defaults.\n","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["jsonrpc","id","method","params"],"properties":{"jsonrpc":{"type":"string","enum":["2.0"],"description":"JSON-RPC protocol version."},"id":{"oneOf":[{"type":"string"},{"type":"integer"}],"description":"Request identifier echoed back in the response."},"method":{"type":"string","enum":["getBlocksWithLimit"],"description":"Must be `getBlocksWithLimit`."},"params":{"type":"array","description":"Positional parameters. Each item below corresponds to one position in the array, in order.","minItems":2,"maxItems":3,"items":{"anyOf":[{"title":"startSlot","type":"integer","format":"int64"},{"title":"limit","type":"integer","format":"int64","maximum":500000},{"title":"config (optional)","type":"object","description":"Optional configuration object. Every field is optional; omit the entire object to use defaults.","properties":{"commitment":{"$ref":"#/components/schemas/Commitment"},"minContextSlot":{"type":"integer","format":"int64","description":"Minimum slot at which the request can be evaluated. The RPC node will reject the request with a `MinContextSlotNotReached` error if its current root is below this value. Use this for read-after-write consistency in multi-step workflows."}}}]}}}}}}},"responses":{"200":{"description":"Successful `getBlocksWithLimit` response.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/JsonRpcEnvelope"},{"type":"object","required":["result"],"properties":{"result":{"type":"array","items":{"type":"integer","format":"int64"}}}}]}}}},"401":{"$ref":"#/components/responses/UnauthorizedError"},"403":{"$ref":"#/components/responses/ForbiddenError"},"429":{"$ref":"#/components/responses/TooManyRequestsError"},"500":{"$ref":"#/components/responses/InternalServerError"}}}}}}
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.solanavibestation.com/developers/solana-rpc/http-methods/getblockswithlimit.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
