openapi: 3.2.0 info: title: Immutable zkEVM nft owners API version: 1.0.0 description: Immutable Multi Rollup API contact: name: Immutable API Support email: support@immutable.com url: https://support.immutable.com servers: - url: https://api.sandbox.immutable.com tags: - name: nft owners description: NFT Owner Endpoints x-displayName: nft owners paths: /v1/chains/{chain_name}/collections/{contract_address}/nfts/{token_id}/owners: get: x-public: true description: List NFT owners by token ID tags: - nft owners operationId: ListNFTOwners summary: List NFT owners by token ID parameters: - name: contract_address in: path description: The address of contract required: true schema: type: string example: '0x8a90cab2b38dba80c64b7734e58ee1db38b8992e' - name: token_id in: path description: An `uint256` token id as string required: true schema: type: string example: '1' - name: chain_name description: The name of chain in: path required: true schema: $ref: '#/components/schemas/ChainName' examples: testnet: value: imtbl-zkevm-testnet summary: Immutable zkEVM Public Testnet - name: page_cursor in: query description: Encoded page cursor to retrieve previous or next page. Use the value returned in the response. required: false schema: $ref: '#/components/schemas/PageCursor' - name: page_size description: Maximum number of items to return in: query required: false schema: $ref: '#/components/schemas/PageSize' responses: '200': description: 200 response content: application/json: schema: $ref: '#/components/schemas/ListNFTOwnersResult' '400': $ref: '#/components/responses/BadRequest' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServerError' /v1/chains/{chain_name}/nft-owners: get: x-public: true description: List all NFT owners on a chain tags: - nft owners operationId: ListAllNFTOwners summary: List all NFT owners parameters: - name: chain_name description: The name of chain in: path required: true schema: $ref: '#/components/schemas/ChainName' examples: testnet: value: imtbl-zkevm-testnet summary: Immutable zkEVM Public Testnet - name: from_updated_at in: query description: Datetime to use as the oldest updated timestamp schema: type: string example: '2022-08-16T17:43:26.991388Z' format: date-time - name: page_cursor in: query description: Encoded page cursor to retrieve previous or next page. Use the value returned in the response. required: false schema: $ref: '#/components/schemas/PageCursor' - name: page_size description: Maximum number of items to return in: query required: false schema: $ref: '#/components/schemas/PageSize' responses: '200': description: 200 response content: application/json: schema: $ref: '#/components/schemas/ListNFTOwnersResult' '400': $ref: '#/components/responses/BadRequest' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServerError' /v1/chains/{chain_name}/collections/{contract_address}/owners: get: x-public: true description: List owners by contract address tags: - nft owners operationId: ListOwnersByContractAddress summary: List owners by contract address parameters: - name: contract_address in: path description: The address of contract required: true schema: type: string example: '0x8a90cab2b38dba80c64b7734e58ee1db38b8992e' - name: chain_name description: The name of chain in: path required: true schema: $ref: '#/components/schemas/ChainName' examples: testnet: value: imtbl-zkevm-testnet summary: Immutable zkEVM Public Testnet - name: account_address in: query required: false description: List of account addresses to filter by schema: type: array maxItems: 30 items: type: string example: '0xe9b00a87700f660e46b6f5deaa1232836bcc07d3' - name: from_updated_at in: query description: Datetime to use as the oldest updated timestamp required: false schema: type: string example: '2022-08-16T17:43:26.991388Z' format: date-time - name: page_cursor in: query description: Encoded page cursor to retrieve previous or next page. Use the value returned in the response. required: false schema: $ref: '#/components/schemas/PageCursor' - name: page_size description: Maximum number of items to return in: query required: false schema: $ref: '#/components/schemas/PageSize' responses: '200': description: 200 response content: application/json: schema: $ref: '#/components/schemas/ListCollectionOwnersResult' '400': $ref: '#/components/responses/BadRequest' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServerError' components: schemas: BasicAPIError: type: object properties: message: type: string description: Error Message maxLength: 1024 pattern: ^[\x20-\x7E]*$ example: all fields must be provided link: type: string format: uri description: Link to IMX documentation that can help resolve this error maxLength: 2048 example: https://docs.x.immutable.com/reference/#/ trace_id: type: string description: Trace ID of the initial request maxLength: 64 pattern: ^[a-zA-Z0-9_-]+$ example: e47634b79a5cd6894ddc9639ec4aad26 required: - message - link - trace_id Chain: type: object description: The chain details properties: id: type: string description: The id of chain example: eip155:13372 name: type: string description: The name of chain example: imtbl-zkevm-testnet required: - id - name ListNFTOwnersResult: type: object properties: result: description: List of nft owners type: array items: $ref: '#/components/schemas/NFTOwner' page: $ref: '#/components/schemas/Page' required: - result - page PageCursor: type: string description: Encoded page cursor to retrieve previous or next page. Use the value returned in the response. example: ewogICJ0eXBlIjogInByZXYiLAogICJpdGVtIjogewogICAgImlkIjogNjI3NTEzMCwKICAgICJjcmVhdGVkX2F0IjogIjIwMjItMDktMTNUMTc6MDQ6MTIuMDI0MTI2WiIKICB9Cn0= APIError400: allOf: - $ref: '#/components/schemas/BasicAPIError' - type: object properties: code: type: string description: Error Code enum: - VALIDATION_ERROR example: VALIDATION_ERROR details: type: - object - 'null' description: Additional details to help resolve the error required: - code - details NFTOwner: type: object properties: chain: $ref: '#/components/schemas/Chain' contract_address: type: string description: The address of NFT contract example: '0x5a019874f4fae314b0eaa4606be746366e661306' token_id: type: string description: An `uint256` token id as string example: '1' account_address: type: string description: The account address of the owner of the NFT example: '0x5a019874f4fae314b0eaa4606be746366e661306' balance: type: string description: The amount of owned tokens (uint256 as string) example: '1' updated_at: type: string format: date-time example: '2022-08-16T17:43:26.991388Z' description: When the NFT owner was last updated required: - chain - contract_address - token_id - account_address - balance ListCollectionOwnersResult: type: object properties: result: description: List of NFT owners type: array items: $ref: '#/components/schemas/NFTWithOwner' page: $ref: '#/components/schemas/Page' required: - result - page NFTWithOwner: type: object properties: chain: $ref: '#/components/schemas/Chain' contract_address: type: string description: The address of NFT contract example: '0x5a019874f4fae314b0eaa4606be746366e661306' token_id: type: string description: An `uint256` token id as string example: '1' account_address: type: string description: The account address of the owner of the NFT example: '0x5a019874f4fae314b0eaa4606be746366e661306' balance: type: string description: The amount of owned tokens (uint256 as string) example: '1' updated_at: type: string format: date-time example: '2022-08-16T17:43:26.991388Z' description: When the owner last changed for the given NFT required: - chain - contract_address - token_id - account_address - balance - updated_at ChainName: type: string description: The name of chain example: imtbl-zkevm-testnet Page: type: object description: Pagination properties properties: previous_cursor: type: - string - 'null' description: First item as an encoded string example: ewogICJ0eXBlIjogInByZXYiLAogICJpdGVtIjogewogICAgImlkIjogNjI3NTEzMCwKICAgICJjcmVhdGVkX2F0IjogIjIwMjItMDktMTNUMTc6MDQ6MTIuMDI0MTI2WiIKICB9Cn0= next_cursor: type: - string - 'null' description: Last item as an encoded string example: ewogICJ0eXBlIjogInByZXYiLAogICJpdGVtIjogewogICAgImlkIjogNjI3NTEzMCwKICAgICJjcmVhdGVkX2F0IjogIjIwMjItMDktMTNUMTc6MDQ6MTIuMDI0MTI2WiIKICN9Cn0= required: - previous_cursor - next_cursor APIError404: allOf: - $ref: '#/components/schemas/BasicAPIError' - type: object properties: code: type: string description: Error Code enum: - RESOURCE_NOT_FOUND example: RESOURCE_NOT_FOUND details: type: - object - 'null' description: Additional details to help resolve the error required: - code - details APIError500: allOf: - $ref: '#/components/schemas/BasicAPIError' - type: object properties: code: type: string description: Error Code enum: - INTERNAL_SERVER_ERROR example: INTERNAL_SERVER_ERROR details: type: - object - 'null' description: Additional details to help resolve the error required: - code - details PageSize: type: integer format: int32 description: Maximum number of items to return minimum: 1 default: 200 maximum: 200 example: 10 responses: BadRequest: description: Bad Request (400) content: application/json: schema: $ref: '#/components/schemas/APIError400' InternalServerError: description: Internal Server Error (500) content: application/json: schema: $ref: '#/components/schemas/APIError500' NotFound: description: The specified resource was not found (404) content: application/json: schema: $ref: '#/components/schemas/APIError404' securitySchemes: BearerAuthWithClient: type: http scheme: bearer bearerFormat: JWT BearerAuth: type: http scheme: bearer bearerFormat: JWT ImmutableApiKey: x-go-name: ImmutableApiKey type: apiKey in: header name: x-immutable-api-key OktaBearerAuth: type: http scheme: bearer bearerFormat: JWT