BitcoinDatabase.com
All posts
Buyer guides

Best Bitcoin Ordinals API for Wallet and Marketplace Teams

We called every realistic Bitcoin ordinals API on 2 September 2026 without keys. Hiro answers HTTP 410 Gone and the migration link inside that error returns 404. Xverse and Ordiscan both answer HTTP 402 Payment Required with per request payment challenges, and UniSat wants a bearer token. Four providers, four different status codes for the same refusal, and only some of them will ever answer a question that starts with an address.

By the BitcoinDatabase team

September 2026 · 8 min read

Query Console
btc
try:

Hit Run to query the Bitcoin blockchain.

Live from the chain for .

BTC

Balance trail

informational on-chain data · not financial advice

REST API · SQL · dashboards, one indexed dataset. Reading the chain ...

The short answer

The Bitcoin ordinals API market reorganized itself in 2026 and most comparison articles have not caught up. Hiro retired its Ordinals, Runes and BRC-20 APIs on 9 March 2026; calling them on 2 September 2026 returns HTTP 410 Gone, and the migration link inside that error body returns 404. The successor Hiro named, Xverse, answers HTTP 402 Payment Required with a per request payment challenge rather than a monthly key, and Ordiscan does the same. UniSat still wants a bearer token. Pick on the shape of your question: inscription id lookups are well served everywhere, holder address questions are not, and only an indexer answers them.

If you are reading this because a build broke, here is the two sentence version. Your Hiro ordinals calls are not misconfigured, and you are not missing an auth header. The endpoints are gone on purpose, and the URL the error hands you no longer exists.

We called every realistic option on 2 September 2026 from one US machine, without API keys, inside a few minutes. What follows is what actually came back rather than what the marketing pages claim.

What we called, and what came back

ProviderEndpoint calledResponseWhat the body said
Hiro, Bitcoin L1api.hiro.so/ordinals/v1/410 Gone
0.37 s
Deprecated and no longer available, plus a dead docs link
Xverseapi.secretkeylabs.io/v1/ordinals/402 Payment Required
0.59 s
A paymentauth.org problem type with a per request challengeId
Ordiscanapi.ordiscan.com/v1/inscriptions402 Payment Required
0.14 s
Pay via the x402 protocol, or get an API key
UniSatopen-api.unisat.io/v1/indexer/403 Forbidden
0.44 s
Code -2004, send an Authorization bearer token
Hiro, Stacksapi.hiro.so/extended/v1/block200 OK
0.42 s
8,902,391 Stacks blocks, entirely healthy

Four providers in one narrow niche, and four different HTTP status codes for what is conceptually the same answer: you cannot have this right now. That is worth designing around. A client that collapses everything into a generic request failed will retry forever against a 410 that will never succeed, and will treat a 402 payment challenge, which is recoverable, exactly like a 403 auth error, which is not. Handle them separately.

Is the Hiro Ordinals API deprecated?

Yes, completely. Hiro announced the deprecation of its Ordinals, Runes, BRC-20 and Bitcoin Indexer APIs effective 9 March 2026 and pointed developers at Xverse. On 2 September 2026 we called four of those endpoints, the inscriptions list, the ordinals root, the Runes etchings list and the BRC-20 token list. Every one returned HTTP 410 Gone in 0.35 to 0.37 seconds with an identical 164 byte JSON body. This is a finished shutdown, not a wind down.

Two details are easy to miss. First, 410 rather than 404 is deliberate and correct: it tells a client the resource is permanently gone, so retry logic and crawlers should give up instead of polling. Second, the dead endpoint still returns rate limit headers, ratelimit-limit: 20, so a retry loop hammering a corpse is still being counted against a quota.

Important nuance, because the 410 reads worse than it is: only Hiro's Bitcoin Layer 1 surface was retired. Its Stacks APIs are healthy. We called them the same hour and the node info endpoint reported a burn block height of 965,186, which matched the Bitcoin tip we had measured independently minutes earlier. If you build on Stacks, none of this touches you.

What replaced the Hiro Ordinals API?

Hiro named Xverse, and Xverse serves ordinals data from api.secretkeylabs.io under a /v1/ordinals/ prefix, with endpoints keyed by address and by transaction. That address key matters more than it sounds, and we will come back to it.

The awkward part of the migration is the pointer. The 410 body politely includes a documentation_url aimed at Hiro's ordinals migration guide. We followed it and got HTTP 404, and the parent ordinals documentation page 404s too, while the docs root still loads normally. Both pages were removed along with the product. So the machine readable breadcrumb inside the error leads nowhere, which is exactly the situation where an engineer burns an afternoon assuming the fault is local. It is not. We wrote the full teardown on our Hiro Ordinals API alternative page, and there is a separate comparison of what Xverse covers as an ordinals API.

Why do ordinals APIs return HTTP 402?

Because a real chunk of this niche has moved to pay per call. HTTP 402 Payment Required sat unused in the spec for decades and is now showing up in production: Xverse returns it with a paymentauth.org problem type and a unique challengeId per request, and Ordiscan returns it citing the x402 protocol. Instead of buying a monthly key, your client settles a small payment per request, which suits automated agents that would rather not manage credentials.

It is a reasonable model, and it changes your cost profile in a way worth planning for. A flat monthly plan caps your downside; per call billing turns API access into a variable line item that moves with traffic, and a retry storm against a failing dependency becomes a bill rather than just an error rate. If you go this route, put a real-time alert on that budget line before you ship, not after the first surprising invoice. Cap retries, and back off hard on 402s you have not funded.

Can you query Bitcoin ordinals by address?

Sometimes, and this is the single question that should drive your choice. Ordinals indexers vary enormously in whether a holder address is a first class key or an afterthought. Xverse exposes an address UTXO endpoint. UniSat indexes BRC-20 by holder. Ordiscan is strongest on inscription identity.

Node providers, by contrast, cannot do it at all. We measured that separately: no managed Bitcoin RPC endpoint can answer what an address holds, because Bitcoin Core keeps no address index, and the one Core call that could sweep for it is disabled on shared infrastructure. QuickNode's own ordinals product is keyed by inscription id, block, sat and rune, not by holder, which is documented on our QuickNode Bitcoin API comparison. If you want the underlying measurement, it is in our Bitcoin RPC node provider comparison.

One more caveat that catches teams late: BRC-20 balances are not protocol state. They exist only as the output of an indexer applying a set of rules to inscriptions. Two reputable providers can therefore report different balances for the same address and both be defensible. If your product shows a user a number, decide now which indexer is your source of truth and say so in the interface.

Which Bitcoin ordinals API is best for wallet and marketplace teams?

There is no single winner, so match the tool to the question you are actually asking.

Your questionBest fitWhy
What is this inscription, and what is its content?Ordiscan or XverseBoth key cleanly on inscription id and serve content lookups
What does this wallet hold right now?Xverse or UniSatAddress and holder are first class keys, which node RPC never offers
Which addresses hold this collection, and how did that change?A queryable indexCohort and history questions need joins, not per item endpoints
Mint, etch or manage an inscription orderXverseIt covers the write side, which read only analytics tools do not
Broadcast a transaction or read your own mempoolA node providerWrites belong to node infrastructure, not to an index
Stacks contract or block dataHiroStill live, still fast, and now where Hiro is focused

Most production stacks end up running two of these rather than one. A node provider handles writes, an index handles reads, and the mistake is expecting either to cover the other. Our own position is the read side: we serve address history from the 2009 genesis block over REST, plus SQL and dashboards over the indexed chain, which grows with every new block, which you can try on the Bitcoin ordinals API page or against raw outputs on the Bitcoin UTXO data page. We do not mint, etch or broadcast, and we would rather say that plainly than let you find out in week three.

How much does a Bitcoin ordinals API cost?

Less predictably than it used to. The monthly key model still exists at UniSat and at indexers that sell plans, and pricing there behaves the way SaaS pricing normally does. The pay per call providers are the change: your bill tracks request volume directly, with no published monthly figure to anchor on, so the honest answer to what it costs is that it depends on your traffic shape and your retry policy. The Bitcoin ordinals API page sets the billing models side by side and covers when self-hosting the ord indexer starts to pay off.

Whichever model you pick, budget for the migration itself. Hiro gave notice and named a successor, which is better behavior than most deprecations get, and teams still got caught because the endpoint kept working right up until it did not.

What we did not measure

Being clear about the limits, because a comparison that hides them is not worth much. We called these endpoints without API keys, so we measured the unauthenticated surface: what a new integrator hits on day one, not what a paying customer sees. Response times came from a single US machine on one morning and should be read as rough magnitudes, not benchmarks. We did not evaluate data accuracy, index completeness or how quickly each provider reflects a new inscription, all of which matter enormously and none of which can be judged from a status code. And we did not test Xverse or Ordiscan behind a funded payment channel, so we cannot speak to their behavior once you are actually paying.

What the measurement does settle is the part teams get wrong first: which of these endpoints still exist, what they return when you have no credentials, and which of them will ever answer a question that starts with an address.

Query the Bitcoin blockchain yourself

Pull balances, UTXOs, transactions, on-chain metrics and fund flows from the Bitcoin blockchain by REST API, SQL and dashboards. Address history since 2009, new blocks within seconds, no node to run.

Keep reading

More from the BitcoinDatabase blog

Buyer guides

Best Bitcoin Address Labeling API for Compliance and Analytics Teams

We queried nine public Bitcoin address APIs with the same five heavily reported addresses on 6 September 2026. Six answered without a key, exactly one returned a cluster id, and not a single one returned an entity name. WalletExplorer clusters for free but its label field was null on all five, and it put two cold addresses of the same exchange into two different clusters, because common input ownership can only merge addresses that actually co-spend. Clustering is chain arithmetic you can compute yourself. Attribution is off-chain evidence, and that is the half you are really paying for.

Read
Buyer guides

Best Bitcoin Sanctions Screening API for Fintech Compliance Teams

We parsed the OFAC SDN list ourselves on 4 September 2026 and checksum-validated every Bitcoin address in it. The authoritative XML carries 532. The CSV published the same day yields 252, because its remarks column is capped at 1,000 characters and cuts long address lists off mid-string. Hydra Market alone loses 105 of its 117 addresses. One entry filed as Bitcoin is a Tron address, there is not a single Taproot address on the list, and two SDN entries hold 99.46 percent of the 9,305.64 BTC still sitting on sanctioned addresses.

Read
Buyer guides

Bitcoin RPC Node Providers Compared for Wallet and Exchange Teams

We called three public Bitcoin RPC endpoints and ran the same 31 Core methods against each. Every address method failed on every provider, and the one call that could have answered was blocked on one, timed out on another and rate limited on the third. They also disagree on how to say no: -32601, HTTP 501 with -32701, and a bare HTTP 429. One returned HTTP 200 with an empty result for a call that should not exist on mainnet.

Read
Buyer guides

Best Bitcoin Dust Attack Detection Tools for Exchanges and Wallet Teams

Bitcoin has five dust limits, not one, from 294 to 546 satoshis by script type. We fetched every output of two recent blocks, 12,958 spendable outputs, and found zero below threshold: dust attacks send the smallest amount that will still relay, computed per recipient script type. Plus what a real 20 address spray cost (1,125 satoshis), why Bitcoin Core release 30 made it ten times cheaper, and pricing visibility checked first-hand across four screening vendors.

Read

Query the whole Bitcoin blockchain

BitcoinDatabase indexes the public Bitcoin blockchain block by block and returns balances, UTXOs, transactions, on-chain metrics and fund flows by REST API, SQL and dashboards, with no node to run.

REST + SQL + dashboards · address history since 2009 · new blocks within seconds

Informational on-chain data only · not financial, investment or legal advice · AML features are compliance tooling to support your own review.