{"openapi":"3.1.0","info":{"title":"Hedera HTS Token & NFT API","version":"1.0.0","description":"Browse the Hedera Token Service (HTS) live from the public Hedera Mirror Node — no key. The Hedera on-chain reader resolves a single token's details by id and the tokens an account holds, but it cannot browse the token universe, list the serials inside an NFT collection, or list who holds a token. This opens that. Discover and filter HTS tokens — fungible vs NFT collection, search by name; list the minted serials inside any NFT collection, each with its current owner account and decoded per-serial metadata (often an IPFS or HCS pointer) and whether it has been burned; and list the holders of any token with their decimal-adjusted balances, largest first. Every token and account is a shard.realm.num id like 0.0.107597. The discovery and NFT layer for Hedera wallets, token explorers, NFT marketplaces and analytics. Distinct from the Hedera on-chain reader (per-token-id details and per-account holdings) and from the Hedera Consensus Service topic reader. Live from the mirror node; short cache only.","contact":{"name":"PremiumApi","url":"https://www.oanor.com/by/premiumapi"}},"servers":[{"url":"https://api.oanor.com/hederatokens-api","description":"oanor gateway"}],"tags":[{"name":"Tokens"},{"name":"NFTs"},{"name":"Holders"},{"name":"Meta"}],"components":{"securitySchemes":{"oanorKey":{"type":"apiKey","in":"header","name":"x-oanor-key","description":"Get your key at https://www.oanor.com/developer/keys"}}},"security":[{"oanorKey":[]}],"paths":{"/v1/tokens":{"get":{"operationId":"get_v1_tokens","tags":["Tokens"],"summary":"Browse/search HTS tokens","description":"","parameters":[{"name":"type","in":"query","required":false,"description":"Filter: fungible or nft","schema":{"type":"string"},"example":"nft"},{"name":"name","in":"query","required":false,"description":"Search by token name","schema":{"type":"string"}},{"name":"limit","in":"query","required":false,"description":"Page size (1-100)","schema":{"type":"string"},"example":"25"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"note":"Browse the Hedera Token Service universe — every HTS token, each with its id, name, symbol, type (fungible vs NFT collection) and decimals. Filter type=fungible or type=nft, or search by name. The discovery layer the per-token-id reader can't give you. Paginate with limit.","count":25,"source":"Hedera Mirror Node","tokens":[{"name":"CPNX_name","type":"NON_FUNGIBLE_UNIQUE","symbol":"CPNX","decimals":0,"token_id":"0.0.410224"},{"name":"NFT Test New","type":"NON_FUNGIBLE_UNIQUE","symbol":"IPFS://bafkreihhpqryeflyff5tnydyrt4wu6ozlnwzwy2hxc4sm4uraamobdsej4","decimals":0,"token_id":"0.0.412040"},{"name":"Xact","type":"NON_FUNGIBLE_UNIQUE","symbol":"IPFS://bafkreigkvfjwspd2uewy4zomzsgvmzotuchfrpicv6mgqjdd5gnzeyitrm","decimals":0,"token_id":"0.0.412112"},{"name":"Xact Logo","type":"NON_FUNGIBLE_UNIQUE","symbol":"IPFS://bafkreiegpnbo6b4hhlrarwyu65lealj7l3bgtazfqs4jp3xlspskdrhy5y","decimals":0,"token_id":"0.0.421864"},{"name":"Xact Logo 2","type":"NON_FUNGIBLE_UNIQUE","symbol":"IPFS://bafkreidavsp2g2tbuxtdtvjwoqmvc2myuim2gskzwgzmay36rywrieevgq","decimals":0,"token_id":"0.0.422001"},{"name":"Xact Logo 3","type":"NON_FUNGIBLE_UNIQUE","symbol":"IPFS://bafkreignvdg5arj3nu5k3uq2cwvqde7r3hcfqhztdqoiiaqjyjouw6phuq","decimals":0,"token_id":"0.0.422011"},{"name":"Xact Logo 4","type":"NON_FUNGIBLE_UNIQUE","symbol":"IPFS://bafkreig4rmcstrlm233too6xsfdn576iip3gjfncg7ilz2ebxcylhyuewe","decimals":0,"token_id":"0.0.422018"},{"name":"Xact Logo V1","type":"NON_FUNGIBLE_UNIQUE","symbol":"IPFS://bafkreig2rjlvnj5ebm26cvhkvt6e65pppxuiiqrbb77r7yfxawhmhlpm44","decimals":0,"token_id":"0.0.428976"},{"name":"CKHU_name","type":"NON_FUNGIBLE_UNIQUE","symbol":"CKHU","decimals":0,"token_id":"0.0.439270"},{"name":"LYXW_name","type":"NON_FUNGIBLE_UNIQUE","symbol":"LYXW","decimals":0,"token_id":"0.0.439393"},{"name":"Xact Lines","type":"NON_FUNGIBLE_UNIQUE","symbol":"IPFS://bafybeia4wg2kfejt35eycteuohleluld4autifz6gyc32f3hqryymouvwe","decimals":0,"token_id":"0.0.446365"},{"name":"Xact Lines","type":"NON_FUNGIBLE_UNIQUE","symbol":"IPFS://bafybeih5cqcekukqpsitxzbatikxith3bmloztorn4sz5r7aixut5ojsuy","decimals":0,"token_id":"0.0.446369"},{"name":"Xact Lines","type":"NON_FUNGIBLE_UNIQUE","symbol":"IPFS://bafybeia4wg2kfejt35eycteuohleluld4autifz6gyc32f3hqryymouvwe","decimals":0,"token_id":"0.0.446370"},{"name":"Xact Lines","type":"NON_FUNGIBLE_UNIQUE","symbol":"IPFS://bafybeia4wg2kfejt35eycteuohleluld4autifz6gyc32f3hqryymouvwe","decimals":0,"token_id":"0.0.446383"},{"name":"Xact Lines","type":"NON_FUNGIBLE_UNIQUE","symbol":"IPFS://bafybeia4wg2kfejt35eycteuohleluld4autifz6gyc32f3hqryymouvwe","decimals":0,"token_id":"0.0.446388"},{"name":"Xact Lines","type":"NON_FUNGIBLE_UNIQUE","symbol":"IPFS://bafybeidttfjsudegpg75srnieqolisdv6ugaufaep4ayy46my7m4y2nvrm","decimals":0,"token_id":"0.0.446449"},{"name":"Xact Lines","type":"NON_FUNGIBLE_UNIQUE","symbol":"IPFS://bafybeicemxp4qlai3ctp5jvwyr4gs4gchxugmf3k277izvl3imycozuu2q","decimals":0,"token_id":"0.0.455368"},{"name":"Xact Lines","type":"NON_FUNGIBLE_UNIQUE","symbol":"IPFS://bafybeic3e2gxy5u4iiwgctyhukfuzhscneyvmvx3o3xvkxau55gvkskklq","decimals":0,"token_id":"0.0.455373"},{"name":"Xact Lines","type":"NON_FUNGIBLE_UNIQUE","symbol":"IPFS://bafybeigexmx52tahfvk4uc4sow5xatdwbw3xgeopcazhsadtnpwmoegsri","decimals":0,"token_id":"0.0.455389"},{"name":"Hashgraph Cards Logo","type":"NON_FUNGIBLE_UNIQUE","symbol":"IPFS://bafybeicgth6fmohq2vcbw6eyc4jxpebbdjl4rp5slgirt4qqfnnaxrnure","decimals":0,"token_id":"0.0.458618"},{"name":"Hashgraph Cards Logo","type":"NON_FUNGIBLE_UNIQUE","symbol":"IPFS://bafybeicgth6fmohq2vcbw6eyc4jxpebbdjl4rp5slgirt4qqfnnaxrnure","decimals":0,"token_id":"0.0.458619"},{"name":"Hashgraph Cards Logo","type":"NON_FUNGIBLE_UNIQUE","symbol":"IPFS://bafybeicgth6fmohq2vcbw6eyc4jxpebbdjl4rp5slgirt4qqfnnaxrnure","decimals":0,"token_id":"0.0.458621"},{"name":"Hashgraph Cards Logo","type":"NON_FUNGIBLE_UNIQUE","symbol":"IPFS://bafybeicgth6fmohq2vcbw6eyc4jxpebbdjl4rp5slgirt4qqfnnaxrnure","decimals":0,"token_id":"0.0.458828"},{"name":"Hashgraph Cards Logo","type":"NON_FUNGIBLE_UNIQUE","symbol":"IPFS://bafybeicgth6fmohq2vcbw6eyc4jxpebbdjl4rp5slgirt4qqfnnaxrnure","decimals":0,"token_id":"0.0.458829"},{"name":"Checkout by Xact","type":"NON_FUNGIBLE_UNIQUE","symbol":"IPFS://bafkreihlxzllbmhpia2tc5rqfuvdrlkj5mkkf74vyvdppslsjcx7bfwddy","decimals":0,"token_id":"0.0.458832"}]},"meta":{"timestamp":"2026-06-14T17:04:01.943Z","request_id":"b106869a-69a9-49ae-bb75-6ee90936e051"},"status":"ok","message":"Tokens retrieved successfully","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}},"/v1/nfts":{"get":{"operationId":"get_v1_nfts","tags":["NFTs"],"summary":"Serials inside an NFT collection","description":"","parameters":[{"name":"token_id","in":"query","required":false,"description":"NFT collection id (0.0.x); omit for the first NFT collection","schema":{"type":"string"},"example":"0.0.410224"},{"name":"limit","in":"query","required":false,"description":"Page size (1-100)","schema":{"type":"string"},"example":"25"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"nfts":[{"owner":"0.0.410226","deleted":true,"metadata":"Xhkusw==","serial_number":1,"created_timestamp":"1630615611.855620000"}],"note":"The minted serials inside one Hedera NFT collection — each serial with its current owner account, decoded per-serial metadata (often an IPFS/HCS pointer) and whether it has been burned. Pass token_id for a specific collection, or omit to use the first NFT collection on the network.","count":1,"source":"Hedera Mirror Node","token_id":"0.0.410224"},"meta":{"timestamp":"2026-06-14T17:04:02.051Z","request_id":"f623bb50-67e4-413f-a139-3f4c578ca7f8"},"status":"ok","message":"NFTs retrieved successfully","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}},"/v1/holders":{"get":{"operationId":"get_v1_holders","tags":["Holders"],"summary":"Holders of a token and their balances","description":"","parameters":[{"name":"token_id","in":"query","required":false,"description":"Token id (0.0.x); omit for the first token","schema":{"type":"string"},"example":"0.0.107594"},{"name":"limit","in":"query","required":false,"description":"Page size (1-100)","schema":{"type":"string"},"example":"25"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"note":"The holders of one HTS token and their decimal-adjusted balances, largest first — the distribution view the per-account reader can't give you. Pass token_id for a specific token, or omit to use the first token on the network.","count":1,"source":"Hedera Mirror Node","holders":[{"account":"0.0.107593","balance":0,"decimals":3,"balance_raw":"0"}],"token_id":"0.0.107594","timestamp":"1695438729.989508003"},"meta":{"timestamp":"2026-06-14T17:04:02.187Z","request_id":"2895d4ee-c1e9-43e6-a29c-7ecdf9a0ad81"},"status":"ok","message":"Holders retrieved successfully","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}},"/v1/meta":{"get":{"operationId":"get_v1_meta","tags":["Meta"],"summary":"Service metadata","description":"","parameters":[],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"sample":{"first_token":"F"},"source":"public Hedera Mirror Node (mainnet-public.mirrornode.hedera.com), keyless","service":"hederatokens-api","endpoints":{"GET /v1/meta":"This document.","GET /v1/nfts":"The serials inside an NFT collection: owner + metadata (token_id; omit for the first NFT collection).","GET /v1/tokens":"Browse/search HTS tokens (type=fungible|nft, name, limit).","GET /v1/holders":"A token's holders and decimal-adjusted balances (token_id; omit for the first token)."},"description":"Browse the Hedera Token Service (HTS) live from the public Hedera Mirror Node: discover and filter HTS tokens (fungible vs NFT, by name), list the minted serials inside any NFT collection with owner and metadata, and list the holders of any token with decimal-adjusted balances. The discovery and NFT layer for Hedera wallets, token explorers and NFT marketplaces. Live, short cache only.","upstream_status":"ok"},"meta":{"timestamp":"2026-06-14T17:04:02.300Z","request_id":"0edc9eb6-8182-4a40-bee2-af4fd3311a48"},"status":"ok","message":"Meta","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}}},"x-oanor-pricing":[{"slug":"free","name":"Free","price_cents_month":0,"monthly_call_quota":9500,"rps_limit":3,"hard_limit":true},{"slug":"starter","name":"Starter","price_cents_month":820,"monthly_call_quota":178000,"rps_limit":10,"hard_limit":true},{"slug":"pro","name":"Pro","price_cents_month":2840,"monthly_call_quota":920000,"rps_limit":25,"hard_limit":true},{"slug":"scale","name":"Scale","price_cents_month":8350,"monthly_call_quota":5800000,"rps_limit":60,"hard_limit":true}],"x-oanor-marketplace-url":"https://www.oanor.com/api/hederatokens-api"}