BlockTicker API Documentation
A free REST API for live crypto prices, forex rates, the Fear & Greed Index, and aggregated trading signals from 14+ premium financial sources. No authentication required for the public tier.
Getting Started
All endpoints live under https://blockticker.io/wp-json/blockticker/v1. Every response is JSON. CORS is enabled with Access-Control-Allow-Origin: * so you can call directly from browser-side code.
Smoke test it right now from your terminal:
# Get the API root — lists all endpoints
curl https://blockticker.io/wp-json/blockticker/v1/const res = await fetch('https://blockticker.io/wp-json/blockticker/v1/'); const data = await res.json(); console.log(data);
import requests res = requests.get('https://blockticker.io/wp-json/blockticker/v1/') print(res.json())
https://blockticker.io/wp-json/blockticker/v1/ — it always returns a self-describing catalog of every endpoint with current rate limits.Authentication & Rate Limits
No authentication is required. Include an API key only if you need the higher rate tier.
| Tier | Rate limit | How to authenticate |
|---|---|---|
| Public | 60 requests/min per IP | None — use the API directly |
| Standard | 600 requests/min per key | Send X-BT-API-Key header (or ?api_key= query param) |
Every response carries rate-limit headers so your client can self-regulate without parsing the body:
X-BT-RateLimit-Limit— your tier's per-minute ceilingX-BT-RateLimit-Remaining— requests left in the current windowX-BT-RateLimit-Reset— Unix timestamp when the window resets
Authenticated request example:
curl -H "X-BT-API-Key: btk_yourkeyhere" \
https://blockticker.io/wp-json/blockticker/v1/prices/crypto?limit=5const res = await fetch('https://blockticker.io/wp-json/blockticker/v1/prices/crypto?limit=5', { headers: { 'X-BT-API-Key': 'btk_yourkeyhere' } }); const data = await res.json();
res = requests.get( 'https://blockticker.io/wp-json/blockticker/v1/prices/crypto?limit=5', headers={'X-BT-API-Key': 'btk_yourkeyhere'} )
Need an API key or higher rate limits? Reach out and we'll get back to you within 24 hours.
Contact Us →Response Envelope
Every successful response wraps the payload in a stable { data, meta } structure.
{
"data": // the actual response — shape varies by endpoint
[ ... ],
"meta": {
"api_version": "v1",
"generated_at": "2026-04-19T10:30:00+00:00",
"source": "CoinGecko",
"rate_limit": {
"limit": 60,
"remaining": 58,
"reset": "2026-04-19T10:31:00+00:00",
"tier": "public"
},
"docs_url": "https://blockticker.io/wp-json/blockticker/v1/"
}
}Error Handling
Errors return a non-2xx status code with a JSON body following WordPress REST conventions.
| Status | Meaning |
|---|---|
| 200 | Success |
| 404 | Resource not found (e.g. unknown coin symbol) |
| 429 | Rate limit exceeded — see X-BT-RateLimit-Reset header |
| 500 | Server error — please retry or report |
{
"code": "rate_limit_exceeded",
"message": "Rate limit exceeded (60 requests/minute). Reset at 10:31:00 UTC.",
"data": { "status": 429 }
}GET/prices/cryptoList crypto prices
Returns the top N cryptocurrencies by market cap with price, volume, market cap, and 24h/7d changes. Cached 60 seconds. Source: CoinGecko.
| Parameter | Description |
|---|---|
| limit | Number of coins to return (1-500, default 50) |
| symbol | Filter by ticker symbol (e.g. btc, eth) |
curl https://blockticker.io/wp-json/blockticker/v1/prices/crypto?limit=5
const res = await fetch('https://blockticker.io/wp-json/blockticker/v1/prices/crypto?limit=5'); const { data, meta } = await res.json();
res = requests.get('https://blockticker.io/wp-json/blockticker/v1/prices/crypto?limit=5') data = res.json()['data']
GET/prices/crypto/{symbol}Single coin lookup
Returns a single coin by ticker symbol or CoinGecko ID. Same shape as items in the list endpoint. Returns 404 if the symbol isn't in our cached top-500.
curl https://blockticker.io/wp-json/blockticker/v1/prices/crypto/btc/btc
const res = await fetch('https://blockticker.io/wp-json/blockticker/v1/prices/crypto/btc/btc'); const { data, meta } = await res.json();
res = requests.get('https://blockticker.io/wp-json/blockticker/v1/prices/crypto/btc/btc') data = res.json()['data']
GET/prices/forexList forex pair rates
Returns all tracked forex pair rates with 24h change percentage. Cached 5 minutes. Source: ECB / Frankfurter.app, with multi-source failover for exotic pairs.
curl https://blockticker.io/wp-json/blockticker/v1/prices/forex
const res = await fetch('https://blockticker.io/wp-json/blockticker/v1/prices/forex'); const { data, meta } = await res.json();
res = requests.get('https://blockticker.io/wp-json/blockticker/v1/prices/forex') data = res.json()['data']
GET/prices/forex/{pair}Single forex pair
Returns a single forex pair. Accepts both compact (EURUSD) and slashed (EUR/USD) formats — case-insensitive.
curl https://blockticker.io/wp-json/blockticker/v1/prices/forex/EURUSD/EURUSD
const res = await fetch('https://blockticker.io/wp-json/blockticker/v1/prices/forex/EURUSD/EURUSD'); const { data, meta } = await res.json();
res = requests.get('https://blockticker.io/wp-json/blockticker/v1/prices/forex/EURUSD/EURUSD') data = res.json()['data']
GET/fear-greedFear & Greed Index
The current Crypto Fear & Greed Index — a 0-100 sentiment indicator. 0-24 extreme fear · 25-49 fear · 50 neutral · 51-74 greed · 75-100 extreme greed.
curl https://blockticker.io/wp-json/blockticker/v1/fear-greed
const res = await fetch('https://blockticker.io/wp-json/blockticker/v1/fear-greed'); const { data, meta } = await res.json();
res = requests.get('https://blockticker.io/wp-json/blockticker/v1/fear-greed') data = res.json()['data']
GET/signalsLatest trading signals
Returns the latest trading signals aggregated from FXStreet, DailyFX, CoinDesk and others. Each signal includes title, source, category and a deep-link to the original analysis.
| Parameter | Description |
|---|---|
| limit | Number of signals (1-100, default 20) |
curl https://blockticker.io/wp-json/blockticker/v1/signals?limit=10
const res = await fetch('https://blockticker.io/wp-json/blockticker/v1/signals?limit=10'); const { data, meta } = await res.json();
res = requests.get('https://blockticker.io/wp-json/blockticker/v1/signals?limit=10') data = res.json()['data']
GET/newsLatest financial news
Returns the latest financial news headlines from 14+ premium sources. Each item includes title, source, category, image URL, and a link to the original article.
| Parameter | Description |
|---|---|
| limit | Number of articles (1-50, default 20) |
| category | Filter by category slug (e.g. crypto, forex) |
curl https://blockticker.io/wp-json/blockticker/v1/news?limit=10
const res = await fetch('https://blockticker.io/wp-json/blockticker/v1/news?limit=10'); const { data, meta } = await res.json();
res = requests.get('https://blockticker.io/wp-json/blockticker/v1/news?limit=10') data = res.json()['data']
Attribution Requirements
When you display data from this API publicly (web, app, dashboard), please credit BlockTicker with a backlink. We don't enforce this technically — we trust you. It helps us keep the API free.
Suggested attribution:
<!-- Where you display the data --> <p>Data via <a href="https://blockticker.io">BlockTicker</a></p>
Per the original sources, you should also surface their names where appropriate:
- Crypto prices: CoinGecko
- Forex rates: European Central Bank via Frankfurter.app
- Fear & Greed: Alternative.me
- News & signals: 14+ sources including CoinDesk, Reuters, FXStreet, DailyFX (each item links back to the original)