{"uid":"cap_SvzJSbNm9OenUOv_3Byz2","slug":"onesource-erc-721-token-holdings-lookup-39d68a93","name":"OneSource ERC-721 Token Holdings Lookup","description":"List every ERC721 NFT token_id a wallet owns in a collection via tokenOfOwnerByIndex (eth_call)","url":"https://api.onesource.io/api/chain/erc721-tokens","method":"GET","headers":{},"bodySchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["input"],"properties":{"input":{"type":"object","required":["type","method"],"properties":{"type":{"type":"string","const":"http"},"method":{"enum":["GET","HEAD","DELETE"],"type":"string"},"queryParams":{"type":"object","required":["contract","address"],"properties":{"max":{"type":"integer","maximum":1000,"minimum":1},"address":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"network":{"enum":["ethereum","sepolia","robinhood"],"type":"string","default":"ethereum"},"contract":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}}},"additionalProperties":false},"output":{"type":"object","required":["type"],"properties":{"type":{"type":"string"},"example":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"owner":{"type":"string"},"balance":{"type":"string"},"token_ids":{"type":"array","items":{"type":"string"}},"is_enumerable":{"type":"boolean"},"contract_address":{"type":"string"}},"description":"Endpoint-specific response payload"},"meta":{"type":"object","required":["endpoint","request_id"],"properties":{"endpoint":{"type":"string"},"cost_usdc":{"type":"string"},"request_id":{"type":"string"},"payment_chain":{"type":"string"},"payment_token":{"type":"string"}}},"error":{"type":["object","null"],"properties":{"code":{"type":"integer"},"message":{"type":"string"}}}}}}}}},"responseSchema":{"type":"json","example":{"data":{"owner":"0xd8da6bf26964af9d7eed9e03e53415d37aa96045","balance":"3","token_ids":["1","42","100"],"is_enumerable":true,"contract_address":"0xbc4ca0eda7647a8ab7c2061c2e118a18a936f13d"},"meta":{"endpoint":"/api/chain/erc721-tokens","cost_usdc":"0.001","request_id":"00000000abcdef01","payment_chain":"base","payment_token":"USDC"}}},"example":{"request":{"max":100,"owner":"0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045","network":"ethereum","contract":"0xbc4ca0eda7647a8ab7c2061c2e118a18a936f13d"},"response":{"data":{"owner":"0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045","balance":"1","token_ids":["940"],"is_enumerable":true,"contract_address":"0xbc4ca0eda7647a8ab7c2061c2e118a18a936f13d"},"meta":{"endpoint":"/api/chain/erc721-tokens","request_id":"7fdf0bc4c15ae9d2"}}},"exampleRequest":{"max":100,"owner":"0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045","network":"ethereum","contract":"0xbc4ca0eda7647a8ab7c2061c2e118a18a936f13d"},"tags":["x402"],"displayCostAmount":"0.008","displayCostAsset":"USDC","priceDynamic":false,"priceHint":null,"priceStatus":"priced","priceSource":"settled","requiresHandshake":false,"reviewCount":0,"rating":{"score":"0.00","successRate":"0.00","reviews":0,"stars":null,"state":"unrated"},"availabilityStatus":"unknown","priceObserved":null,"sessionDeposit":null,"pricing":{"kind":"static","summary":"$0.008/call","primary":{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.008","per":"call","confidence":"exact"},"accepted":[{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.008","per":"call","confidence":"exact"}]},"paymentMethods":[{"uid":"pm_rj-9DYUPy9Zc_Oi-g8opG","protocol":"x402","methodType":"crypto","chain":"base","mode":"charge","costAmount":"0.008","costPer":"request","priority":0,"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","unit":"request","depositMicros":null,"planRef":null}],"brandName":null,"brandSlug":null,"brandBaseUrl":null,"brandDocsUrl":null,"whatItDoes":"Returns all ERC-721 (NFT) token IDs owned by a given address for a specific contract on Ethereum mainnet or Sepolia testnet","exampleAgentPrompt":"Can you look up which BAYC NFTs (contract 0xbc4ca0eda7647a8ab7c2061c2e118a18a936f13d) are owned by 0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045 on Ethereum mainnet, up to 100 results?","exampleUseCases":null,"resultDescription":"A JSON object containing the owner address, contract address, a list of token ID strings owned by that address, and a count of total tokens returned. Example: {count: 3, owner: '0x...', tokens: ['1','42','100'], contract: '0x...'}","failureModes":["Invalid owner address format (not a valid 0x hex address) — likely 400 or validation error","Invalid contract address format — likely 400 or validation error","Contract is not an ERC-721 contract — may return empty results or error","Owner holds no tokens in this contract — returns empty token list","Network not supported or node unavailable — 5xx error","Max parameter out of range (below 1 or above 1000) — validation error","Payment not provided or insufficient — 402 Payment Required"],"whenToPreferThis":"Use this endpoint when you need to enumerate all ERC-721 token IDs held by a specific Ethereum address within a particular NFT contract. Ideal for checking NFT ownership, building NFT portfolio views, verifying access based on NFT holdings, or checking whitelist eligibility. Prefer this over general blockchain RPCs when you need clean, pre-parsed NFT holding data rather than raw RPC responses.","instructions":null,"reviewSummary":null,"reviewSummaryHighlights":null,"reviewSummaryConcerns":null,"reviewSummaryGeneratedAt":null,"activationCount":0,"lastUsedAt":null,"lastSuccessfullyRanAt":null,"lastHealthCheckAt":"2026-09-15T12:57:48.148Z","isFirstParty":false}