Public integrations
Four things are genuinely public and stable enough to build on.
1. The read endpoints
Section titled “1. The read endpoints”Thirteen verified GET operations, described in the
OpenAPI reference. Fetch the document from
/openapi/core-public-read.json
and generate a client from it.
Respect the rate limits, read RateLimit-Remaining, and back off on a 429.
Send a User-Agent that identifies your application, so a problem can be
traced back to you rather than to an anonymous caller.
2. The status contract
Section titled “2. The status contract”/health and /indexer-health are the endpoints to poll if you want to show
Core’s state in your own interface. They are declared as this component’s
status sources in
docs.manifest.json,
which is how the Bitcoin Universe documentation portal picks them up.
If you surface them, surface them honestly:
- Show the marketplace profile, not just
ok: true. - Show
lastSuccess: nullas “never read”, not as a zero. - Keep
staleanddisagreeingapart.
3. The capability snapshot
Section titled “3. The capability snapshot”The protocol registry snapshot behind every protocol page on this site is
committed here at
src/data/capability-snapshot.json.
It carries its own provenance block naming the exact Core commit it was
generated from, and it is the right source for a question like “can this
protocol be traded”. Its authoritative home is the ecosystem-registry package
in bitcoinuniverseio/docs-platform; the copy here is pinned so this site’s
pages cannot drift from what they claim.
4. Published schemas
Section titled “4. Published schemas”Core serves the Ordinals collection manifest schema and an example from its own origin:
https://www.bitcoinuniverse.io/schemas/ordinals-collection-manifest-v1.jsonhttps://www.bitcoinuniverse.io/examples/ordinals-collection-manifest-v1.example.json
A future incompatible format will use another schemaVersion rather than
changing this one, so a validator pinned to v1 stays correct.
Deep links into Core
Section titled “Deep links into Core”Core’s routes are stable enough to link to:
| Destination | Route |
|---|---|
| A protocol’s market | /trade/<protocol> |
| A protocol’s index | /index/<protocol> |
| The address view | /portfolio?mode=explore&address=<address> |
| An inscription | /explorer/inscription/<id> |
| The Ordex order book, filtered | /ordex?group=<family>&protocol=<protocol> |
| Protocol coverage | /coverage |
Ordex filter state travels in the query string, so a link you share restores the same view.
Rules for an honest integration
Section titled “Rules for an honest integration”- Do not present a capability Core does not have. The support matrix is the list. A protocol Core cannot trade should not appear tradable in your interface because you linked to Core.
- Do not turn an error into a zero. If a read fails, say so. This is the single easiest way for an integration to be more misleading than the product it wraps.
- Do not cache a health answer. It carries
no-storefor a reason. - Quote
X-Request-Idwhen reporting a problem. - Do not scan or load-test production. See the reader boundary.
What is not available
Section titled “What is not available”There is no public write API, no public order-submission endpoint, and no API key programme. Operator access uses separate authenticated private paths that are deliberately not documented here.
If you need something that does not exist, open an issue and describe the problem rather than the endpoint you imagine solving it.