---
title: "POST /EXPERIMENTAL_view_access_key_list"
method: POST
path: "/EXPERIMENTAL_view_access_key_list"
---

# POST /EXPERIMENTAL_view_access_key_list

`POST /EXPERIMENTAL_view_access_key_list`

Returns all access keys for a given account.

## Request body

- JsonRpcRequestForEXPERIMENTALViewAccessKeyList
  - `id` string — JSON-RPC request id. Auto-populated; can be any string.
  - `jsonrpc` '2.0' — JSON-RPC protocol version. Always `2.0`.
  - `method` 'EXPERIMENTAL_view_access_key_list', required
  - `params` union, required
    - object
      - `block_id` union, required
        - integer
        - string
      - `account_id` string, required — NEAR Account Identifier. This is a unique, syntactically valid, human-readable account identifier on the NEAR network. [See the crate-level docs for information about validation.](index.html#account-id-rules) Also see [Error kind precedence](AccountId#error-kind-precedence). ## Examples ``` use near_account_id::AccountId; let alice: AccountId = "alice.near".parse().unwrap(); assert!("ƒelicia.near".parse::<AccountId>().is_err()); // (ƒ is not f) ```
      - `after_key` union — Pagination cursor: resume the listing strictly after this access key. Pass the `last_key` returned by the previous page.
        - string
        - unknown
      - `limit` integer, nullable — Maximum number of access keys to return in this page.
    - object
      - `finality` 'optimistic' | 'near-final' | 'final', required — Different types of finality.
      - `account_id` string, required — NEAR Account Identifier. This is a unique, syntactically valid, human-readable account identifier on the NEAR network. [See the crate-level docs for information about validation.](index.html#account-id-rules) Also see [Error kind precedence](AccountId#error-kind-precedence). ## Examples ``` use near_account_id::AccountId; let alice: AccountId = "alice.near".parse().unwrap(); assert!("ƒelicia.near".parse::<AccountId>().is_err()); // (ƒ is not f) ```
      - `after_key` union — Pagination cursor: resume the listing strictly after this access key. Pass the `last_key` returned by the previous page.
        - string
        - unknown
      - `limit` integer, nullable — Maximum number of access keys to return in this page.
    - object
      - `sync_checkpoint` 'genesis' | 'earliest_available', required
      - `account_id` string, required — NEAR Account Identifier. This is a unique, syntactically valid, human-readable account identifier on the NEAR network. [See the crate-level docs for information about validation.](index.html#account-id-rules) Also see [Error kind precedence](AccountId#error-kind-precedence). ## Examples ``` use near_account_id::AccountId; let alice: AccountId = "alice.near".parse().unwrap(); assert!("ƒelicia.near".parse::<AccountId>().is_err()); // (ƒ is not f) ```
      - `after_key` union — Pagination cursor: resume the listing strictly after this access key. Pass the `last_key` returned by the previous page.
        - string
        - unknown
      - `limit` integer, nullable — Maximum number of access keys to return in this page.

## Response `200`

- union
  - object
    - `result` RpcViewAccessKeyListResponse, required — Lists access keys
      - `block_hash` string, required
      - `block_height` integer, required
      - `keys` AccessKeyInfoView[], required
        - `access_key` AccessKeyView, required — Describes access key permission scope and nonce.
          - `nonce` integer, required — Current nonce; each transaction signed with this key must use a strictly greater value.
          - `permission` union, required — Describes the permission scope for an access key. Whether it is a function call or a full access key.
            - 'FullAccess'
            - object
              - …
            - object
              - …
            - object
              - …
        - `public_key` string, required
      - `last_key` union — Pagination cursor. When `Some`, the listing was truncated and the caller should issue another request with `after_key` set to this handle to fetch the next page. `None` means this was the last page.
        - string
        - unknown
    - `id` string, required
    - `jsonrpc` string, required
  - object
    - `error` union, required
      - object
        - `cause` union, required
          - object
            - `info` object, required
              - …
            - `name` 'METHOD_NOT_FOUND', required
          - object
            - `info` object, required
              - …
            - `name` 'PARSE_ERROR', required
        - `name` 'REQUEST_VALIDATION_ERROR', required
      - object
        - `cause` union, required
          - object
            - `info` object, required
              - …
            - `name` 'UNKNOWN_BLOCK', required
          - object
            - `info` object, required
              - …
            - `name` 'INVALID_ACCOUNT', required
          - object
            - `info` object, required
              - …
            - `name` 'UNKNOWN_ACCOUNT', required
          - object
            - `info` object, required
              - …
            - `name` 'INTERNAL_ERROR', required
        - `name` 'HANDLER_ERROR', required
      - object
        - `cause` InternalError, required
          - `info` object, required
            - `error_message` string, required
          - `name` 'INTERNAL_ERROR', required
        - `name` 'INTERNAL_ERROR', required
    - `id` string, required
    - `jsonrpc` string, required

## Changes

- **2026-08-10** `f586f4853138` — 2 info
  - added `#/components/schemas/AccessKeyPermissionView` to the `oneOf[subschema #1]/result/keys/items/access_key/permission` response property `allOf` list for the response status `200`
  - removed `subschema #1, subschema #2, subschema #3, subschema #4` from the `oneOf[subschema #1]/result/keys/items/access_key/permission` response property `oneOf` list for the response status `200`
- **2026-07-21** `cb6bdde6167d` — 3 info
  - added the new optional request property `params/after_key`
  - added the new optional request property `params/limit`
  - added the optional property `oneOf[subschema #1]/result/last_key` to the response with the `200` status
- **2026-05-21** `97b870f1f638` — 1 breaking, 1 info
  - added `subschema #2, subschema #3` to the `oneOf[subschema #2]/error/oneOf[subschema #2]/cause` response property `oneOf` list for the response status `200`
  - removed `subschema #2, subschema #3` from the `oneOf[subschema #2]/error/oneOf[subschema #2]/cause` response property `oneOf` list for the response status `200`
- …earlier changes not shown

[Full history](https://skmtc.dev/near/apis/near-protocol-json-rpc-api/changes/EXPERIMENTAL_view_access_key_list/post.md)

---

[API](https://skmtc.dev/near/apis/near-protocol-json-rpc-api.md) · [All operations](https://skmtc.dev/near/apis/near-protocol-json-rpc-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/near/near-protocol-json-rpc-api/revisions/4a6c7147e1c3/schema)
