Public API (v1)
Free public endpoints for blacklist checks and collection currency prices, consumed by CounterTrader and other community tools. No auth required. Attribution required.
Base URL & policy
https://www.countertools.io/api/v1Auth: none for Tier 1 endpoints (this page). Other endpoints require a COUNTERTOOLS Claim β see /claim.
Rate limit: 60 requests/minute/IP. 429 with
Retry-After on exceed. Higher rate limits available for known integrated consumers β contact bradley@countertools.io for credentials.Caching:
Cache-Control: public, max-age=300, stale-while-revalidate=900. Respect it.Attribution: Link to https://www.countertools.io in any UI surfacing data from this API.
SLA: None. Best-effort. Designed to fail gracefully (
503 + Retry-After: 30 when the backing DB is unreachable).The CounterTrader Telegram bot consumes this API directly. If you're building anything that would put sustained load on the platform, ping us on Telegram before launch so we can plan capacity together.
GET /api/v1/blacklist
Paginated list of community-curated, signed-message-reported, admin-approved blacklisted addresses. Cursor-based pagination; default 50, max 200.
curl 'https://www.countertools.io/api/v1/blacklist?limit=50'
# Response:
{
"entries": [
{
"address": "1...",
"category": "scam", // scam | phishing | rugpull | impersonation | stolen_assets | compromised | other
"reason": "Curated short description.",
"evidenceUrl": "https://...", // optional
"firstReportedAt": "2026-05-15T...",
"confirmedAt": "2026-05-17T..."
},
...
],
"cursor": "base64...", // null when no more pages
"total": 11
}/api/blacklist and /api/blacklist/{address} (un-versioned) are deprecated as of 2026-05-25 and will be removed on 2026-09-30. Use /api/v1/blacklist* for new integrations. Legacy responses carry RFC 8594 headers: Deprecation: true, Sunset: Mon, 30 Sep 2026 23:59:59 GMT, Link: <https://www.countertools.io/api/v1/blacklist>; rel="successor-version".GET /api/v1/blacklist/{address}
Single-address status check. Returns the entry if blacklisted, or a NOT_LISTED marker.
curl 'https://www.countertools.io/api/v1/blacklist/1FnM7akSCD8G3fRQHCUEXRCfL35gptsPZB'
# Response β listed address:
{
"status": "APPROVED",
"address": "1...",
"category": "scam",
"reason": "...",
"evidenceUrl": "https://...",
"firstReportedAt": "...",
"confirmedAt": "..."
}
# Response β not listed:
{
"status": "NOT_LISTED",
"address": "1..."
}GET /api/v1/currencies
List of public collection currencies: XCP plus the 9 official currencies (PEPECASH, BITCRYSTALS, BITCORN, BOBOCASH, DANKMEMECASH, MAFIACASH, WILLCOIN, RUSTBITS, COCOCASH). Headline price fields only β methodology fields stay internal.
curl https://www.countertools.io/api/v1/currencies
# Response shape:
{
"success": true,
"data": {
"currencies": [
{
"assetName": "PEPECASH",
"displayName": "Pepe Cash",
"priceUSD": 0.008085,
"priceBTC": 0.00000008,
"priceXCP": 0.004324,
"change24h": 0.012, // % as decimal (0.012 = +1.2%); null if snapshot >48h old
"volume24hUSD": 1245.67, // 24h trading volume across venues, USD; null if snapshot >48h old
"circulatingSupply": 691392758.41,
"marketCapUSD": 5588509.27, // priceUSD * circulatingSupply
"confidence": "HIGH", // HIGH | MEDIUM | LOW | null
"lastUpdated": "2026-05-26T03:14:22Z" // ISO 8601 of most recent snapshot
},
...
]
}
}lastUpdated field reflects the most recent price snapshot generated for the asset. When the most recent snapshot is older than 48 hours, change24h and volume24hUSD are returned as null rather than computed from stale data. Some currencies may show limited historical coverage while we improve our backfill β see the price-history note below.GET /api/v1/currencies/{asset}
Single currency. Same headline-only shape as /api/v1/currencies. Returns 404 if the asset is not in the public-currency allowlist.
curl https://www.countertools.io/api/v1/currencies/PEPECASH
# Response:
{
"success": true,
"data": {
"currency": {
"assetName": "PEPECASH",
"displayName": "Pepe Cash",
"priceUSD": 0.008085,
"priceBTC": 0.00000008,
"priceXCP": 0.004324,
"change24h": 0.012,
"volume24hUSD": 1245.67,
"circulatingSupply": 691392758.41,
"marketCapUSD": 5588509.27,
"confidence": "HIGH",
"lastUpdated": "2026-05-26T03:14:22Z"
}
}
}GET /api/v1/currencies/{asset}/price-history
Time-series of daily median prices for charting. Source is AssetPriceSnapshot, one row per asset per day.
| period | max points | sampling |
|---|---|---|
7d | up to 7 | daily |
30d (default) | up to 30 | daily |
90d | up to 90 | daily |
1y | up to 365 | daily |
all | cap = 1000 most recent (β2.7 years) | daily |
curl 'https://www.countertools.io/api/v1/currencies/PEPECASH/price-history?period=30d'
# Response:
{
"success": true,
"data": {
"asset": "PEPECASH",
"period": "30d",
"samplingInterval": "daily", // currently always 'daily'; reserved for future hourly
"points": [
{ "timestamp": "2026-04-26T00:00:00Z", "priceUSD": 0.00781 },
{ "timestamp": "2026-04-27T00:00:00Z", "priceUSD": 0.00794 },
...
]
}
}{ points: [] } for assets with no snapshots; partial coverage is reflected as fewer points than the period implies.GET /api/v1/stats
Protocol-level snapshot: block height, last-block transaction count, dispenser-derived prices for the most liquid assets, active-dispenser count.
curl https://www.countertools.io/api/v1/stats
# Response:
{
"success": true,
"data": {
"btcPrice": 94250, // USD
"xcpPriceSats": 3350,
"xcpPriceUSD": 3.157, // (xcpPriceSats / 1e8) * btcPrice
"pepecashPriceSats": 15,
"givekudosPriceSats": 5,
"activeDispensers": 1842,
"blockHeight": 875423,
"lastBlockTxCount": 421
},
"timestamp": "2026-05-26T03:14:22Z"
}Premium endpoints
Asset-level, address-level, collection-level, portfolio, orderbook, dispenser, OpenSea-bridge, and discovery endpoints power the site and are not part of the public API. Access via a Claimed COUNTERTOOLS address β see /claim.
Versioning & contract
/api/v1/* paths are stable. Breaking changes ship at /api/v2. Sub-fields may be added; existing fields will not be removed without a version bump. The legacy un-versioned /api/blacklist paths are advisory-deprecated (RFC 8594 headers) and will sunset 2026-09-30.
Terms
- Free for any use, including commercial use.
- Attribution required β link to https://www.countertools.io in any UI surfacing data from this API.
- Rate-limited (60 requests/minute/IP). Higher rate limits available for known integrated consumers β contact bradley@countertools.io.
- No SLA. Best-effort. The API may fail with
503+Retry-Afterduring outages β design your consumer accordingly.
Need an endpoint that isn't here?