openapi: 3.0.0 info: title: TzKT Accounts Statistics API description: "# Introduction\r\n\r\nTzKT is the most widely used tool in Tezos that provides you with convenient and flexible access to the Tezos blockchain data, processed and indexed by its own indexer. \r\nYou can fetch all historical data via REST API, or subscribe for real-time data via WebSocket API. TzKT was built by the joint efforts of the entire Tezos community \r\nto help developers build more services and dapps on top of Tezos.\r\n\r\nTzKT Indexer and API are [open-source](https://github.com/baking-bad/tzkt), so don't be afraid to depend on the third-party service,\r\nbecause you can always clone, build and run it yourself to have full control over all the components.\r\n\r\nFeel free to contact us if you have any questions or feature requests.\r\nYour feedback is much appreciated!\r\n\r\n- Discord: https://discord.gg/aG8XKuwsQd\r\n- Telegram: https://t.me/baking_bad_chat\r\n- X: https://x.com/TezosBakingBad\r\n- Email: hello@bakingbad.dev\r\n\r\nAnd don't forget to star TzKT [on GitHub](https://github.com/baking-bad/tzkt) if you like it \U0001F60A\r\n\r\n# Get Started\r\n\r\nThere are two API services provided for public use:\r\n- **Free TzKT API** with free anonymous access;\r\n- **TzKT Pro** with paid subscriptions with increased rate limits, off-chain data, extended support and business-level SLA.\r\n\r\nYou can find more details about differences between available tiers [here](https://tzkt.io/api).\r\n\r\n## Free TzKT API\r\n\r\nFree-tier TzKT API is the best way to get started and explore available Tezos data and API functionality.\r\nIt doesn't require authorization and is free for everyone and for both commercial and non-commercial use.\r\n\r\n> #### Note: attribution required\r\nIf you use free-tier TzKT API, you **must** mention it on your website or application by placing the label\r\n\"Powered by TzKT API\", or \"Built with TzKT API\", or \"Data provided by TzKT API\" with a direct link to [tzkt.io](https://tzkt.io).\r\n\r\nIt's available for the following Tezos networks with the following base URLs:\r\n\r\n- Mainnet: `https://api.tzkt.io/` or `https://api.mainnet.tzkt.io/` ([view docs](https://api.tzkt.io))\r\n- Ghostnet: `https://api.ghostnet.tzkt.io/` ([view docs](https://api.ghostnet.tzkt.io))\r\n- Shadownet: `https://api.shadownet.tzkt.io/` ([view docs](https://api.shadownet.tzkt.io))\r\n- Seoulnet: `https://api.seoulnet.tzkt.io/` ([view docs](https://api.seoulnet.tzkt.io))\r\n- Tallinnnet: `https://api.tallinnnet.tzkt.io/` ([view docs](https://api.tallinnnet.tzkt.io))\r\n\r\n### Sending Requests\r\n\r\nTo send a request to Free TzKT API you need literally nothing. Just take the base URL of the particular network\r\n(for example, Tezos mainnet: `https://api.tzkt.io`) and append the path of the particular endpoint\r\n(for example, chain's head: `/v1/head`), that's pretty much it: \r\n\r\n```bash\r\ncurl https://api.tzkt.io/v1/head\r\n```\r\n\r\nRead through this documentation to explore available endpoints, query parameters\r\n(note, if you click on a query parameter, you will see available modes, such as `.eq`, `.in`, etc.)\r\nand response models. If you have any questions, do not hesitate to ask for support, Tezos community has always been very friendly! \U0001F609\r\n\r\n### Rate Limits\r\n\r\nPlease, refer to https://tzkt.io/api to check relevant rate limits.\r\n\r\nIf you exceed the limit, the API will respond with `HTTP 429` status code.\r\n\r\n## TzKT Pro\r\n\r\nTzKT Pro is intended for professional use, for those who seek for extended capabilities, performance, reliability and business-level SLA.\r\nTzKT Pro service is provided via paid subscriptions. Please, refer to [Pricing Plans](https://tzkt.io/api) to check available tiers.\r\n\r\nIt's available for the following Tezos networks with the following base URLs:\r\n\r\n- Mainnet: `https://pro.tzkt.io/` ([view docs](https://api.tzkt.io))\r\n- Testnets: *let us know if you need TzKT Pro for testnets*\r\n\r\n### Authorization\r\n\r\nTo access TzKT Pro you will need to authorize requests with your personal API key, that you will receive on your email after purchasing a subscription.\r\nThis can be done by adding the query string parameter `?apikey={your_key}` or by adding the HTTP header `apikey: {your_key}`.\r\n\r\nNote that you can have multiple API keys within a single subscription.\r\n\r\nKeep your API keys private, do not publish it anywhere and do not hardcode it, especially in public repositories.\r\nIf your key was compromised, just let us know and we will issue a new one.\r\n\r\nAlso note that passing the API key via HTTP headers is more secure, because in HTTPS headers are encrypted,\r\nbut query string is not, so the key can be unintentionally exposed to third parties.\r\n\r\n### Sending Requests\r\n\r\nSending a request with the API key passed as a query string parameter:\r\n\r\n```bash\r\ncurl https://pro.tzkt.io/v1/head?apikey={your_key}\r\n```\r\n\r\nSending a request with the API key passed via an HTTP header:\r\n\r\n```bash\r\ncurl https://pro.tzkt.io/v1/head \\\r\n -H 'apikey: {your_key}'\r\n```\r\n\r\n### Rate Limits\r\n\r\nPlease, refer to https://tzkt.io/api to check relevant rate limits for different pricing plans.\r\n\r\nAlso, TzKT Pro provides you with the additional HTTP headers to show the allowed limits, number of available requests\r\nand the time remaining (in seconds) until the quota is reset. Here's an example:\r\n\r\n```\r\nRateLimit-Limit: 50\r\nRateLimit-Remaining: 49\r\nRateLimit-Reset: 1\r\n```\r\n\r\nIt also sends general information about your rate limits per second and per day:\r\n\r\n```\r\nX-RateLimit-Limit-Second: 50\r\nX-RateLimit-Remaining-Second: 49\r\nX-RateLimit-Limit-Day: 3000000\r\nX-RateLimit-Remaining-Day: 2994953\r\n```\r\n\r\nIf you exceed the limit, the API will respond with `HTTP 429` status code.\r\n" contact: name: Baking Bad Team url: https://bakingbad.dev email: hello@bakingbad.dev version: 1.17.1 x-logo: url: https://tzkt.io/logo.png href: https://tzkt.io/ servers: - url: https://api.tzkt.io tags: - name: Statistics paths: /v1/statistics: get: tags: - Statistics summary: Get statistics description: Returns a list of end-of-block statistics. operationId: Statistics_Get parameters: - name: level in: query description: Filters statistics by level. schema: nullable: true oneOf: - $ref: '#/components/schemas/Int32Parameter' x-position: 1 x-tzkt-extension: query-parameter - name: timestamp in: query description: Filters statistics by timestamp. schema: nullable: true oneOf: - $ref: '#/components/schemas/TimestampParameter' x-position: 2 x-tzkt-extension: query-parameter - name: select in: query description: Specify comma-separated list of fields to include into response or leave it undefined to return full object. If you select single field, response will be an array of values in both `.fields` and `.values` modes. schema: nullable: true oneOf: - $ref: '#/components/schemas/SelectParameter' x-position: 3 x-tzkt-extension: query-parameter - name: sort in: query description: 'Sorts delegators by specified field. Supported fields: `id` (default), `level`, `cycle`, `date`.' schema: nullable: true oneOf: - $ref: '#/components/schemas/SortParameter' x-position: 4 x-tzkt-extension: query-parameter - name: offset in: query description: Specifies which or how many items should be skipped schema: nullable: true oneOf: - $ref: '#/components/schemas/OffsetParameter' x-position: 5 x-tzkt-extension: query-parameter - name: limit in: query description: Maximum number of items to return schema: type: integer format: int32 default: 100 maximum: 10000.0 minimum: 0.0 x-position: 6 - name: quote in: query description: Comma-separated list of ticker symbols to inject historical prices into response schema: default: None oneOf: - $ref: '#/components/schemas/Symbols' x-position: 7 responses: '200': description: '' content: application/json: schema: type: array items: $ref: '#/components/schemas/Statistics' /v1/statistics/daily: get: tags: - Statistics summary: Get daily statistics description: Returns a list of end-of-day statistics. operationId: Statistics_GetDaily parameters: - name: date in: query description: Filters statistics by date. schema: nullable: true oneOf: - $ref: '#/components/schemas/DateTimeParameter' x-position: 1 x-tzkt-extension: query-parameter - name: select in: query description: Specify comma-separated list of fields to include into response or leave it undefined to return full object. If you select single field, response will be an array of values in both `.fields` and `.values` modes. schema: nullable: true oneOf: - $ref: '#/components/schemas/SelectParameter' x-position: 2 x-tzkt-extension: query-parameter - name: sort in: query description: 'Sorts delegators by specified field. Supported fields: `id` (default), `level`, `cycle`, `date`.' schema: nullable: true oneOf: - $ref: '#/components/schemas/SortParameter' x-position: 3 x-tzkt-extension: query-parameter - name: offset in: query description: Specifies which or how many items should be skipped schema: nullable: true oneOf: - $ref: '#/components/schemas/OffsetParameter' x-position: 4 x-tzkt-extension: query-parameter - name: limit in: query description: Maximum number of items to return schema: type: integer format: int32 default: 100 maximum: 10000.0 minimum: 0.0 x-position: 5 - name: quote in: query description: Comma-separated list of ticker symbols to inject historical prices into response schema: default: None oneOf: - $ref: '#/components/schemas/Symbols' x-position: 6 responses: '200': description: '' content: application/json: schema: type: array items: $ref: '#/components/schemas/Statistics' /v1/statistics/cyclic: get: tags: - Statistics summary: Get cyclic statistics description: Returns a list of end-of-cycle statistics. operationId: Statistics_GetCyclic parameters: - name: cycle in: query description: Filters statistics by cycle. schema: nullable: true oneOf: - $ref: '#/components/schemas/Int32Parameter' x-position: 1 x-tzkt-extension: query-parameter - name: select in: query description: Specify comma-separated list of fields to include into response or leave it undefined to return full object. If you select single field, response will be an array of values in both `.fields` and `.values` modes. schema: nullable: true oneOf: - $ref: '#/components/schemas/SelectParameter' x-position: 2 x-tzkt-extension: query-parameter - name: sort in: query description: 'Sorts delegators by specified field. Supported fields: `id` (default), `level`, `cycle`, `date`.' schema: nullable: true oneOf: - $ref: '#/components/schemas/SortParameter' x-position: 3 x-tzkt-extension: query-parameter - name: offset in: query description: Specifies which or how many items should be skipped schema: nullable: true oneOf: - $ref: '#/components/schemas/OffsetParameter' x-position: 4 x-tzkt-extension: query-parameter - name: limit in: query description: Maximum number of items to return schema: type: integer format: int32 default: 100 maximum: 10000.0 minimum: 0.0 x-position: 5 - name: quote in: query description: Comma-separated list of ticker symbols to inject historical prices into response schema: default: None oneOf: - $ref: '#/components/schemas/Symbols' x-position: 6 responses: '200': description: '' content: application/json: schema: type: array items: $ref: '#/components/schemas/Statistics' /v1/statistics/current: get: tags: - Statistics summary: Get current statistics description: Returns statistics at the end of a head block. operationId: Statistics_GetCurrent parameters: - name: select in: query description: Specify comma-separated list of fields to include into response or leave it undefined to return full object. If you select a single field, response will be a single value in both `.fields` and `.values` modes. schema: nullable: true oneOf: - $ref: '#/components/schemas/SelectParameter' x-position: 1 x-tzkt-extension: query-parameter - name: quote in: query description: Comma-separated list of ticker symbols to inject historical prices into response schema: default: None oneOf: - $ref: '#/components/schemas/Symbols' x-position: 2 responses: '200': description: '' content: application/json: schema: $ref: '#/components/schemas/Statistics' components: schemas: QuoteShort: type: object additionalProperties: false properties: btc: type: number description: XTZ/BTC price format: double nullable: true eur: type: number description: XTZ/EUR price format: double nullable: true usd: type: number description: XTZ/USD price format: double nullable: true cny: type: number description: XTZ/CNY price format: double nullable: true jpy: type: number description: XTZ/JPY price format: double nullable: true krw: type: number description: XTZ/KRW price format: double nullable: true eth: type: number description: XTZ/ETH price format: double nullable: true gbp: type: number description: XTZ/GBP price format: double nullable: true SortParameter: type: object additionalProperties: false properties: asc: type: string description: '**Ascending** sort mode (optional, i.e. `sort.asc=id` is the same as `sort=id`). \ Specify a field name to sort by. Example: `?sort=balance`.' nullable: true desc: type: string description: '**Descending** sort mode. \ Specify a field name to sort by descending. Example: `?sort.desc=id`.' nullable: true x-tzkt-extension: query-parameter TimestampParameter: type: object additionalProperties: false properties: eq: type: string description: '**Equal** filter mode (optional, i.e. `param.eq=123` is the same as `param=123`). \ Specify a datetime value to get items where the specified field is equal to the specified value. Example: `?timestamp=2020-02-20T02:40:57Z`.' format: date-time nullable: true ne: type: string description: '**Not equal** filter mode. \ Specify a datetime value to get items where the specified field is not equal to the specified value. Example: `?timestamp.ne=2020-02-20T02:40:57Z`.' format: date-time nullable: true gt: type: string description: '**Greater than** filter mode. \ Specify a datetime value to get items where the specified field is greater than the specified value. Example: `?timestamp.gt=2020-02-20T02:40:57Z`.' format: date-time nullable: true ge: type: string description: '**Greater or equal** filter mode. \ Specify a datetime value to get items where the specified field is greater than equal to the specified value. Example: `?timestamp.ge=2020-02-20T02:40:57Z`.' format: date-time nullable: true lt: type: string description: '**Less than** filter mode. \ Specify a datetime value to get items where the specified field is less than the specified value. Example: `?timestamp.lt=2020-02-20T02:40:57Z`.' format: date-time nullable: true le: type: string description: '**Less or equal** filter mode. \ Specify a datetime value to get items where the specified field is less than or equal to the specified value. Example: `?timestamp.le=2020-02-20T02:40:57Z`.' format: date-time nullable: true in: type: array description: '**In list** (any of) filter mode. \ Specify a comma-separated list of datetimes to get items where the specified field is equal to one of the specified values. Example: `?timestamp.in=2020-02-20,2020-02-21`.' nullable: true items: type: string format: date-time ni: type: array description: '**Not in list** (none of) filter mode. \ Specify a comma-separated list of datetimes to get items where the specified field is not equal to all the specified values. Example: `?timestamp.ni=2020-02-20,2020-02-21`.' nullable: true items: type: string format: date-time x-tzkt-extension: query-parameter Statistics: type: object additionalProperties: false properties: cycle: type: integer description: Cycle at the end of which the statistics has been calculated. This field is only present in cyclic statistics. format: int32 nullable: true date: type: string description: Day at the end of which the statistics has been calculated. This field is only present in daily statistics. format: date-time nullable: true level: type: integer description: Level of the block at which the statistics has been calculated format: int32 timestamp: type: string description: Timestamp of the block at which the statistics has been calculated (ISO 8601, e.g. `2020-02-20T02:40:57Z`) format: date-time totalSupply: type: integer description: Total supply - all existing tokens (including locked vested funds and frozen funds) plus not yet activated fundraiser tokens format: int64 circulatingSupply: type: integer description: Circulating supply - all active tokens which can affect supply and demand (can be spent/transferred) format: int64 totalBootstrapped: type: integer description: Total amount of tokens initially created when starting the blockchain format: int64 totalCommitments: type: integer description: Total commitment amount (tokens to be activated by fundraisers) format: int64 totalActivated: type: integer description: Total amount of tokens activated by fundraisers format: int64 totalCreated: type: integer description: Total amount of created/issued tokens format: int64 totalBurned: type: integer description: Total amount of burned tokens format: int64 totalBanished: type: integer description: Total amount of tokens sent to the null-address, which is equivalent to burning format: int64 totalFrozen: type: integer description: Total amount of frozen tokens (frozen security deposits, frozen rewards and frozen fees) format: int64 totalRollupBonds: type: integer description: Total amount of tokens locked as rollup bonds format: int64 totalSmartRollupBonds: type: integer description: Total amount of tokens locked as smart rollup bonds format: int64 totalLost: type: integer description: 'Total amount lost due to inaccuracy of the economic protocol introduced in Oxford. This amount is literally lost, because it is no longer available for the account in any mean, but for some reason it is counted as delegated.' format: int64 totalOwnStaked: type: integer description: Total active bakers' own staked balance format: int64 totalOwnDelegated: type: integer description: Total active bakers' own delegated balance format: int64 totalExternalStaked: type: integer description: Total active bakers' external staked balance format: int64 totalExternalDelegated: type: integer description: Total active bakers' external delegated balance format: int64 totalBakingPower: type: integer description: Total active bakers' baking power format: int64 totalVotingPower: type: integer description: Total active bakers' voting power format: int64 totalBakers: type: integer description: Total number of active bakers format: int32 totalStakers: type: integer description: Total number of active bakers' stakers format: int32 totalDelegators: type: integer description: Total number of active bakers' delegators format: int32 quote: description: Injected historical quote at the time of the block at which the statistics has been calculated nullable: true oneOf: - $ref: '#/components/schemas/QuoteShort' OffsetParameter: type: object additionalProperties: false properties: el: type: integer description: '**Elements** offset mode (optional, i.e. `offset.el=123` is the same as `offset=123`). \ Skips specified number of elements. Example: `?offset=100`.' format: int32 nullable: true pg: type: integer description: '**Page** offset mode. \ Skips `page * limit` elements. This is a classic pagination. Example: `?offset.pg=1`.' format: int32 nullable: true cr: type: integer description: '**Cursor** offset mode. \ Skips all elements with the `cursor` before (including) the specified value. Cursor is a field used for sorting, e.g. `id`. Avoid using this offset mode with non-unique or non-sequential cursors such as `amount`, `balance`, etc. Example: `?offset.cr=45837`.' format: int64 nullable: true x-tzkt-extension: query-parameter DateTimeParameter: type: object additionalProperties: false properties: eq: type: string description: '**Equal** filter mode (optional, i.e. `param.eq=2020-01-01` is the same as `param=2020-01-01`). \ Specify a datetime to get items where the specified field is equal to the specified value. Example: `?timestamp=2020-02-20T02:40:57Z`.' format: date-time nullable: true ne: type: string description: '**Not equal** filter mode. \ Specify a datetime to get items where the specified field is not equal to the specified value. Example: `?timestamp.ne=2020-02-20T02:40:57Z`.' format: date-time nullable: true gt: type: string description: '**Greater than** filter mode. \ Specify a datetime to get items where the specified field is greater than the specified value. Example: `?timestamp.gt=2020-02-20T02:40:57Z`.' format: date-time nullable: true ge: type: string description: '**Greater or equal** filter mode. \ Specify a datetime to get items where the specified field is greater than equal to the specified value. Example: `?timestamp.ge=2020-02-20T02:40:57Z`.' format: date-time nullable: true lt: type: string description: '**Less than** filter mode. \ Specify a datetime to get items where the specified field is less than the specified value. Example: `?timestamp.lt=2020-02-20T02:40:57Z`.' format: date-time nullable: true le: type: string description: '**Less or equal** filter mode. \ Specify a datetime to get items where the specified field is less than or equal to the specified value. Example: `?timestamp.le=2020-02-20T02:40:57Z`.' format: date-time nullable: true in: type: array description: '**In list** (any of) filter mode. \ Specify a comma-separated list of datetimes to get items where the specified field is equal to one of the specified values. Example: `?timestamp.in=2020-02-20,2020-02-21`.' nullable: true items: type: string format: date-time ni: type: array description: '**Not in list** (none of) filter mode. \ Specify a comma-separated list of datetimes to get items where the specified field is not equal to all the specified values. Example: `?timestamp.ni=2020-02-20,2020-02-21`.' nullable: true items: type: string format: date-time x-tzkt-extension: query-parameter Symbols: type: string description: '' x-enumFlags: true x-enumNames: - None - Btc - Eur - Usd - Cny - Jpy - Krw - Eth - Gbp enum: - None - Btc - Eur - Usd - Cny - Jpy - Krw - Eth - Gbp Int32Parameter: type: object additionalProperties: false properties: eq: type: integer description: '**Equal** filter mode (optional, i.e. `param.eq=123` is the same as `param=123`). \ Specify an integer number to get items where the specified field is equal to the specified value. Example: `?balance=1234`.' format: int32 nullable: true ne: type: integer description: '**Not equal** filter mode. \ Specify an integer number to get items where the specified field is not equal to the specified value. Example: `?balance.ne=1234`.' format: int32 nullable: true gt: type: integer description: '**Greater than** filter mode. \ Specify an integer number to get items where the specified field is greater than the specified value. Example: `?balance.gt=1234`.' format: int32 nullable: true ge: type: integer description: '**Greater or equal** filter mode. \ Specify an integer number to get items where the specified field is greater than equal to the specified value. Example: `?balance.ge=1234`.' format: int32 nullable: true lt: type: integer description: '**Less than** filter mode. \ Specify an integer number to get items where the specified field is less than the specified value. Example: `?balance.lt=1234`.' format: int32 nullable: true le: type: integer description: '**Less or equal** filter mode. \ Specify an integer number to get items where the specified field is less than or equal to the specified value. Example: `?balance.le=1234`.' format: int32 nullable: true in: type: array description: '**In list** (any of) filter mode. \ Specify a comma-separated list of integers to get items where the specified field is equal to one of the specified values. Example: `?level.in=12,14,52,69`.' nullable: true items: type: integer format: int32 ni: type: array description: '**Not in list** (none of) filter mode. \ Specify a comma-separated list of integers to get items where the specified field is not equal to all the specified values. Example: `?level.ni=12,14,52,69`.' nullable: true items: type: integer format: int32 x-tzkt-extension: query-parameter SelectParameter: type: object additionalProperties: false properties: fields: type: array description: '**Fields** selection mode (optional, i.e. `select.fields=balance` is the same as `select=balance`). \ Specify a comma-separated list of fields to include into response. Example: `?select=address,balance` => `[ { "address": "asd", "balance": 10 } ]`.' nullable: true items: type: string values: type: array description: '**Values** selection mode. \ Specify a comma-separated list of fields to include their values into response. Example: `?select.values=address,balance` => `[ [ "asd", 10 ] ]`.' nullable: true items: type: string x-tzkt-extension: query-parameter x-generator: NSwag v14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0)) x-tagGroups: - name: REST API tags: - Accounts - BigMaps - Blocks - Commitments - Constants - Contracts - Cycles - Delegates - Domains - Events - Head - Helpers - Operations - Protocols - Quotes - Rewards - Rights - SmartRollups - Software - Staking - Statistics - Tickets - Tokens - Voting - name: WebSocket API tags: - Get Started - Subscriptions - Examples - name: Libraries tags: - Typescript SDK - Taquito extension