Taproot Holdings API

Developer documentation

Base URL

https://72.62.211.95.sslip.io

Authentication

All wallet holdings endpoints require an API token. Send it as a bearer token.

Authorization: Bearer YOUR_API_TOKEN
curl -H "Authorization: Bearer YOUR_API_TOKEN" \
  "https://72.62.211.95.sslip.io/inscriptions/bc1pa87c62894smdl3g3kal2qdw92hp49qr3q3rlgeclrxah3x8jcguqtpendq"

Do not put API tokens in public frontend code. If you are building a public website, call this API from your own backend.

Check Wallet Holdings

GET /inscriptions/{taprootAddress}
GET /address/{taprootAddress}/inscriptions
GET /inscriptions?address={taprootAddress}
curl -H "Authorization: Bearer YOUR_API_TOKEN" \
  "https://72.62.211.95.sslip.io/inscriptions/bc1pa87c62894smdl3g3kal2qdw92hp49qr3q3rlgeclrxah3x8jcguqtpendq"
{
  "address": "bc1pa87c62894smdl3g3kal2qdw92hp49qr3q3rlgeclrxah3x8jcguqtpendq",
  "count": 924,
  "inscriptionIds": [
    "49cb17757327277c4ff5bc2471103aa9e29b923996f41407091acfe32477482di0"
  ],
  "source": "https://ordinals.com/address/bc1pa87c62894smdl3g3kal2qdw92hp49qr3q3rlgeclrxah3x8jcguqtpendq"
}

Filter By Collection

Use collection to return only inscriptions that belong to a configured collection.

GET /inscriptions/{taprootAddress}?collection=lunatics
curl -H "Authorization: Bearer YOUR_API_TOKEN" \
  "https://72.62.211.95.sslip.io/inscriptions/bc1pa87c62894smdl3g3kal2qdw92hp49qr3q3rlgeclrxah3x8jcguqtpendq?collection=lunatics"
{
  "count": 19,
  "totalAddressCount": 924,
  "collection": {
    "name": "Lunatics",
    "slug": "lunatics",
    "itemCount": 3333
  },
  "inscriptionIds": [
    "a7728650494b3248c9ae858ea75ea6db5645326a314610f6e741931e48955349i485"
  ]
}

Include Content Types

Add contentType=true to include content metadata for each returned inscription. This performs extra metadata lookups and can be slower for large wallets.

GET /inscriptions/{taprootAddress}?collection=lunatics&contentType=true
{
  "count": 19,
  "inscriptionIds": [
    "a7728650494b3248c9ae858ea75ea6db5645326a314610f6e741931e48955349i485"
  ],
  "inscriptions": [
    {
      "id": "a7728650494b3248c9ae858ea75ea6db5645326a314610f6e741931e48955349i485",
      "contentType": "text/html;charset=utf-8",
      "contentLength": 231,
      "number": 92311126
    }
  ]
}

Refresh Cache

Use refresh=true to force a fresh ordinals.com lookup.

GET /inscriptions/{taprootAddress}?collection=lunatics&refresh=true

JavaScript Example

const token = process.env.HOLDINGS_API_TOKEN;
const address = "bc1pa87c62894smdl3g3kal2qdw92hp49qr3q3rlgeclrxah3x8jcguqtpendq";

const response = await fetch(
  `https://72.62.211.95.sslip.io/inscriptions/${address}?collection=lunatics`,
  {
    headers: {
      authorization: `Bearer ${token}`,
    },
  },
);

if (!response.ok) {
  const error = await response.json().catch(() => ({}));
  throw new Error(error.error?.message || `HTTP ${response.status}`);
}

const holdings = await response.json();
console.log(holdings.count, holdings.inscriptionIds);

Python Example

import requests

token = "YOUR_API_TOKEN"
address = "bc1pa87c62894smdl3g3kal2qdw92hp49qr3q3rlgeclrxah3x8jcguqtpendq"

response = requests.get(
    f"https://72.62.211.95.sslip.io/inscriptions/{address}",
    params={"collection": "lunatics"},
    headers={"Authorization": f"Bearer {token}"},
    timeout=30,
)
response.raise_for_status()

holdings = response.json()
print(holdings["count"])

Errors

{
  "error": {
    "code": "api_token_required",
    "message": "API token is required."
  }
}
Status Code Meaning
400invalid_addressThe address is not valid Bech32/Bech32m.
400not_taprootThe address is valid Bitcoin but is not Taproot.
401api_token_requiredNo API token was sent.
401invalid_api_tokenThe API token is missing, revoked, or incorrect.
404collection_not_foundThe requested collection does not exist.
502ordinals_bad_responseordinals.com returned an unexpected response.
504ordinals_timeoutordinals.com did not respond before timeout.

Notes

  • Supported wallet addresses are mainnet Taproot addresses beginning with bc1p.
  • Responses are JSON and include content-type: application/json; charset=utf-8.
  • The API supports HEAD on holdings endpoints when you only need headers.
  • Token usage is logged by the API administrator, including request path, status, IP address, and likely country.