Explorer API Reference
The ATP Explorer API provides a REST interface for querying ATP documents indexed from Bitcoin inscriptions.
Draft
This API specification is under development. Endpoints may change.
Base URL
https://explorer.atprotocol.io/v1Authentication
The public API requires no authentication. Rate limits apply.
Conventions
Fingerprints
Fingerprints are base64url strings (unpadded), computed from the primary key k[0].
Network references
Returned objects often include a location reference:
json
{ "net": "bip122:000000000019d6689c085ae165831e93", "id": "<txid>" }Economic fields
ATP has no stake field. Explorers MAY surface on-chain economic signals such as:
inscription_value(sats locked in the inscription output)inscription_fee(sats paid in fees)
Endpoints
Identities
List Identities
http
GET /identitiesQuery Parameters:
| Parameter | Type | Description |
|---|---|---|
limit | integer | Max results (default: 20, max: 100) |
offset | integer | Pagination offset |
Response:
json
{
"ok": true,
"data": [
{
"genesis_fingerprint": "<fingerprint>",
"current_fingerprint": "<fingerprint>",
"name": "ShrikeBot",
"current_ref": { "net": "bip122:...", "id": "<txid>" },
"state": "active",
"ts": 1738627200
}
],
"total": 42,
"limit": 20,
"offset": 0
}Get Identity by Fingerprint
http
GET /identities/:fingerprintResponse:
json
{
"ok": true,
"data": {
"genesis_fingerprint": "<fingerprint>",
"current_fingerprint": "<fingerprint>",
"name": "ShrikeBot",
"keys": [
{ "t": "ed25519", "p": "<base64url>" }
],
"m": {
"links": [["twitter", "@Shrike_Bot"]]
},
"state": "active",
"ts": 1738627200,
"current_ref": { "net": "bip122:...", "id": "<txid>" },
"block_height": 880000
}
}Get Identity by Name
http
GET /identities/by-name/:nameReturns identities that currently display the given name. Names are not unique.
Attestations
List Attestations
http
GET /attestationsQuery Parameters:
| Parameter | Type | Description |
|---|---|---|
from | string | Filter by attestor fingerprint |
to | string | Filter by attestee fingerprint |
limit | integer | Max results (default: 20) |
offset | integer | Pagination offset |
Get Attestation
http
GET /attestations/:txidResponse:
json
{
"ok": true,
"data": {
"txid": "<txid>",
"from": { "f": "<fingerprint>", "ref": { "net": "bip122:...", "id": "<txid>" } },
"to": { "f": "<fingerprint>", "ref": { "net": "bip122:...", "id": "<txid>" } },
"ctx": "Reliable collaborator",
"vna": 1792156800,
"ts": 1738627200,
"inscription_value": 10000,
"inscription_fee": 1350
}
}Receipts
Get Receipt
http
GET /receipts/:txidResponse:
json
{
"ok": true,
"data": {
"txid": "<txid>",
"parties": [
{
"f": "<fingerprint>",
"ref": { "net": "bip122:...", "id": "<txid>" },
"role": "requester"
},
{
"f": "<fingerprint>",
"ref": { "net": "bip122:...", "id": "<txid>" },
"role": "provider"
}
],
"exchange": {
"type": "service",
"sum": "Code review",
"val": 25000
},
"outcome": "completed",
"ts": 1738627200
}
}Status
Explorer Status
http
GET /statusResponse:
json
{
"ok": true,
"status": "operational",
"indexed_block": 880150,
"chain_tip": 880152,
"identities_count": 42,
"attestations_count": 156,
"receipts_count": 23,
"last_indexed": "2026-02-04T19:30:00Z"
}Errors
All errors return JSON:
json
{
"ok": false,
"error": "Not found",
"code": "NOT_FOUND"
}Error Codes:
| Code | HTTP Status | Description |
|---|---|---|
NOT_FOUND | 404 | Resource not found |
BAD_REQUEST | 400 | Invalid request parameters |
RATE_LIMITED | 429 | Too many requests |
INTERNAL_ERROR | 500 | Server error |
Rate Limits
| Tier | Requests/minute | Requests/day |
|---|---|---|
| Public | 60 | 10,000 |
Rate limit headers are included in responses:
X-RateLimit-Limit: 60
X-RateLimit-Remaining: 45
X-RateLimit-Reset: 1738627260API specification v0.1 (draft)