> For the complete documentation index, see [llms.txt](https://gitbook-docs.coinmetrics.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://gitbook-docs.coinmetrics.io/cm-api-spec/atlas/blockchain-explorer-job/balance-updates.md).

# Balance updates

Creates asynchronous job for retrieving balance updates data. Both `start_*` and `end_*` parameters must be specified (time or height).\
Use the /jobs endpoint to poll job's status. The result file when downloaded will contain a newline-delimited JSON stream of BlockchainJobBalanceUpdate objects.

```json
{"openapi":"3.0.2","info":{"title":"Coin Metrics API v4","version":"4.0.0"},"tags":[{"name":"Blockchain Explorer Job","description":"Endpoints for creating async jobs for blockchain entities.\n\nSchema definitions of results of Blockchain Explorer Job endpoints.\n\n**Endpoints on this page:**\n- `PUT /blockchain-job/account-balances` — Account balances\n- `PUT /blockchain-job/balance-updates` — Balance updates\n- `PUT /blockchain-job/transactions` — Transactions"}],"servers":[{"url":"https://api.coinmetrics.io/v4"},{"url":"wss://api.coinmetrics.io/v4"},{"url":"https://community-api.coinmetrics.io/v4"}],"security":[{"api_key":[]}],"components":{"securitySchemes":{"api_key":{"description":"Coin Metrics API key can be specified as `?api_key=` query parameter.","in":"query","name":"api_key","type":"apiKey"}},"schemas":{"BlockchainJobBalanceUpdatesRequest":{"properties":{"assets":{"$ref":"#/components/schemas/BlockchainJobAssets"},"accounts":{"$ref":"#/components/schemas/BlockchainJobAccounts"},"start_time":{"$ref":"#/components/schemas/BlockchainJobStartTime"},"end_time":{"$ref":"#/components/schemas/BlockchainJobEndTime"},"start_height":{"$ref":"#/components/schemas/BlockchainJobStartHeight"},"end_height":{"$ref":"#/components/schemas/BlockchainJobEndHeight"},"start_slot":{"$ref":"#/components/schemas/BlockchainJobStartSlot"},"end_slot":{"$ref":"#/components/schemas/BlockchainJobEndSlot"}},"required":["assets","accounts"]},"BlockchainJobAssets":{"description":"Comma separated list of assets, or wildcard (*) for all supported assets.","items":{"$ref":"#/components/schemas/AssetId"}},"AssetId":{"description":"Unique name of the asset.","type":"string"},"BlockchainJobAccounts":{"description":"Account ids. For ETH_CL, this can either be a validator public key or a validator index.","type":"array","items":{"$ref":"#/components/schemas/BlockchainJobAccount"}},"BlockchainJobAccount":{"description":"Account id. For ETH_CL, this can either be a validator public key or a validator index.","type":"string"},"BlockchainJobStartTime":{"description":"Start of the time interval.<br/> Multiple formats of ISO 8601 are supported: `2006-01-20T00:00:00Z`, `2006-01-20T00:00:00.000Z`, `2006-01-20T00:00:00.123456Z`, `2006-01-20T00:00:00.123456789Z`, `2006-01-20`, `20060120`.<br/> Inclusive by default. Mutually exclusive with `start_height`/`end_height` and `start_slot`/`end_slot`.<br/> When specified, `end_time` parameter is mandatory.<br/> UTC timezone by default. `Z` suffix is optional.","type":"string","format":"date-time"},"BlockchainJobEndTime":{"description":"End of the time interval.<br/> Multiple formats of ISO 8601 are supported: `2006-01-20T00:00:00Z`, `2006-01-20T00:00:00.000Z`, `2006-01-20T00:00:00.123456Z`, `2006-01-20T00:00:00.123456789Z`, `2006-01-20`, `20060120`.<br/> Inclusive by default. Mutually exclusive with `start_height`/`end_height` and `start_slot`/`end_slot`.<br/> When specified, `start_time` parameter is mandatory.<br/> UTC timezone by default. `Z` suffix is optional.","type":"string","format":"date-time"},"BlockchainJobStartHeight":{"description":"The start height indicates the beginning block height for the set of data that are returned.<br/> Inclusive by default. Mutually exclusive with `start_time`/`end_time` and `start_slot`/`end_slot`.<br/> When specified, `end_height` parameter is mandatory.<br/> Not compatible with requests containing more than one asset.<br />","type":"integer","format":"int64"},"BlockchainJobEndHeight":{"description":"The end height indicates the ending block height for the set of data that are returned.<br/> Inclusive by default. Mutually exclusive with `start_time`/`end_time` and `start_slot`/`end_slot`.<br/> When specified, `start_height` parameter is mandatory.<br/> Not compatible with requests containing more than one asset.<br />","type":"integer","format":"int64"},"BlockchainJobStartSlot":{"description":"The start slot indicates the beginning slot for the set of data that are returned.<br/> Inclusive by default. Mutually exclusive with `start_time`/`end_time` and `start_height`/`end_height`.<br/> When specified, `end_slot` parameter is mandatory.<br/> Not compatible with requests containing more than one asset.<br />","type":"integer","format":"int64"},"BlockchainJobEndSlot":{"description":"The end slot indicates the ending slot for the set of data that are returned.<br/> Inclusive by default. Mutually exclusive with `start_time`/`end_time` and `start_height`/`end_height`.<br/> When specified, `start_slot` parameter is mandatory.<br/> Not compatible with requests containing more than one asset.<br />","type":"integer","format":"int64"},"CreatedJobDetailsResponse":{"properties":{"job_id":{"type":"string","description":"Job ID."},"job_url":{"type":"string","description":"Job URL."}},"required":["job_id","job_url"]},"ErrorResponse":{"properties":{"error":{"$ref":"#/components/schemas/ErrorObject"}},"required":["error"],"type":"object"},"ErrorObject":{"properties":{"type":{"description":"Error type string. Can be used for error identification.","type":"string"},"message":{"description":"Human-friendly error description. Can be amended without prior notification. Do not use for error identification in your code.","type":"string"}},"required":["type","description"],"type":"object"}},"responses":{"CreatedJobDetails":{"description":"Details of just created job.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreatedJobDetailsResponse"}}}},"Unauthorized":{"description":"Requested resource requires authorization.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"BlockchainForbidden":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Requested resource is not available with supplied credentials."}}},"paths":{"/blockchain-job/balance-updates":{"put":{"summary":"Balance updates","description":"Creates asynchronous job for retrieving balance updates data. Both `start_*` and `end_*` parameters must be specified (time or height).<br/> Use the [/jobs](#operation/getJobById) endpoint to poll job's status. The result file when downloaded will contain a newline-delimited JSON stream of [BlockchainJobBalanceUpdate](#schema/BlockchainJobBalanceUpdate) objects.","operationId":"putBlockchainJobBalanceUpdates","tags":["Blockchain Explorer Job"],"requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/BlockchainJobBalanceUpdatesRequest"}}}},"responses":{"200":{"$ref":"#/components/responses/CreatedJobDetails"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/BlockchainForbidden"}}}}}}
```


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## 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, and the optional `goal` query parameter:

```
GET https://gitbook-docs.coinmetrics.io/cm-api-spec/atlas/blockchain-explorer-job/balance-updates.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
