# getBlockProduction

Returns recent block production information from the current or previous epoch.

This method will use `30` [Compute Units](/v1/about/billing.md).

***

## **Parameters**

* `object` *optional.* Configuration object containing the following fields:
  * `commitment` string. The level of commitment required for the query. The options include:
    * `finalized` string.
      * The node will query the most recent block confirmed by the supermajority of the cluster as having reached maximum lockout, meaning the cluster has recognized this block as finalized.
    * `confirmed` string.
      * The node will query the most recent block that has been voted on by the supermajority of the cluster.
    * `processed` string.
      * The node will query its most recent block. Note that the block may not be complete.
  * `range` array. The slot range to return block production for. If parameter is not provided, the default value is current epoch.
    * `firstSlot` string. The first slot to return block production information for (inclusive).
    * `lastSlot` string. The last slot to return block production information for (inclusive). If the parameter is not provided, the default value is highest slot.
  * `identity` string. The results for this validator identity encoded in base-58.

## Returns

* `result` The custom object with the following fields:
  * `context`. The additional context to retrieve the block production information.
    * `apiVersion`. The API version.
    * `slot`. The slot number to retrieve block production information.
  * `value`. Information about the block production in the specified slot range.
    * `byIdentity`. A dictionary of validator identities, as base-58 encoded strings. Value is a two element array containing the number of leader slots and the number of blocks produced.
    * `range`. The block production slot range.
      * `firstSlot`. The first slot of the block production information (inclusive).
      * `lastSlot`. The last slot of the block production information (inclusive).

```bash
// Result
{
	"jsonrpc": "2.0",
	"result": {
		"context": {
			"apiVersion": "2.1.11",
			"slot": 319939588
		},
		"value": {
			"byIdentity": {
				"138KHwTqKNWGLoo8fK5i8UxYtwoC5tC8o7M9rY1CDEjT": [
					16,
					16
				],
				...
			},
			"range": {
				"firstSlot": 319680000,
				"lastSlot": 319939588
			}
		}
	},
	"id": 1
}


```

{% tabs %}
{% tab title="mainnet" %}

<pre class="language-bash"><code class="lang-bash"><strong>curl https://mainnet.solana.validationcloud.io/v1/&#x3C;YOUR_API_KEY_HERE> \
</strong>    -X POST \
    -H "Content-Type: application/json" \
    -d '{"jsonrpc":"2.0","id":1, "method":"getBlockProduction"}'
</code></pre>

{% endtab %}

{% tab title="devnet" %}

```bash
curl https://devnet.solana.validationcloud.io/v1/<YOUR_API_KEY_HERE> \
    -X POST \
    -H "Content-Type: application/json" \
    -d '{"jsonrpc":"2.0","id":1, "method":"getBlockProduction"}'
```

{% endtab %}
{% endtabs %}


---

# 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.validationcloud.io/v1/solana/http-methods/getblockproduction.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.
