For developers
Free Bitcoin price API
Four JSON endpoints with the live BTC/USD price from five exchanges, price history, and the Market Signal. There is no API key and no sign-up.
Base URL
https://2o3dagx3sd.execute-api.us-east-2.amazonaws.com/prod
All endpoints use GET and return JSON. The responses have no CORS headers, so call them from a server, a script, or an app, not from a script in a web page of another site.
Live prices
GET /v1/prices
The last trade price on each exchange and the mean of the five, in US dollars.
curl https://2o3dagx3sd.execute-api.us-east-2.amazonaws.com/prod/v1/prices
{
"prices": {
"bitstamp": 77905.34,
"kraken": 77897.3,
"coinbase": 77882.3,
"gemini": 77914.76,
"binance": 77912.81,
"average": 77902.5
},
"timestamp": "2026-11-04T06:51:29.326Z"
}
Price history
GET /v1/historical?timeframe=24h&exchange=average
| Parameter | Values | Default |
|---|---|---|
timeframe | 10m 1h 3h 12h 24h 3d 7d 30d 3m 6m ytd 1y 2y 5y all | 24h |
exchange | average coinbase kraken bitstamp gemini binance | average |
{
"exchange": "average",
"timeframe": "24h",
"startPrice": 76473.09,
"highPrice": 77942.10,
"lowPrice": 75767.36,
"percentChange": 1.85,
"chartData": [
{ "timestamp": "2026-11-03T07:00:00.000Z", "price": 76473.09 },
...
]
}
Market Signal
GET /v1/market-pulse?days=30
The current Market Signal score, its zone, its five inputs, and one score per day for the last days days (1 to 1825). The score updates every 15 minutes.
{
"score": 56,
"label": "Greed",
"trendLabel": "Unclear",
"contextLabel": "Drifting",
"timestamp": "2026-11-04T06:50:15.445Z",
"components": {
"shortTermMomentum": 52.84,
"midTermTrend": 70.62,
"longTermTrend": 31.03,
"volumeLevel": 40.49,
"volumeTrend": 85.68
},
"history": [
{ "timestamp": "2026-10-05T00:00:00.000Z", "score": 59, "price": 85841.90 },
...
]
}
Historical context
GET /v1/insights
The history behind the current score. The response has these objects:
contextBacktest. Each past day with the same zone and trend as now, and the average return and win rate after 1, 7, 30, and 90 days and 1 year.patterns. Each past day with a score in the same range as now, and the returns after it.backtest. Each Extreme Fear day and the returns after it. The Extreme Fear page uses it.trend,volatility,divergence,streaks. The trend label, the realized volatility, a short-term against long-term divergence check, and the zone streaks.dailyScores. One score per day for the last 2 years.
Signal badge
GET https://fastbitcoin.app/badge/signal.svg?theme=dark&size=md
A live SVG image of the Signal for your site or README. Get the embed code.
Fair use
- Cache the responses. Prices change every few seconds. The Signal changes every 15 minutes. Do not send more than 1 request per second from one app or server.
- Link to us. When you show the data, add a link to fastbitcoin.app.
- Stable fields. We keep the endpoints backward compatible. New fields can appear in a response.
- Limits. We can limit or block traffic that affects the service.
- No warranty. The data can be late or wrong. Do not use it as the only source for trades.
Questions or a higher limit: support@bitcoin-price.app.
More Bitcoin price tools
Embed the Signal
A free live Signal badge for websites and READMEs.
Open Embed the SignalData and method
The five exchanges, how the average is made, and how often each number updates.
Open Data and methodMarket Signal
Today's 0 to 100 score of Bitcoin momentum, trend, and volume, with its history.
Open Market Signal