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

ParameterValuesDefault
timeframe10m 1h 3h 12h 24h 3d 7d 30d 3m 6m ytd 1y 2y 5y all24h
exchangeaverage coinbase kraken bitstamp gemini binanceaverage
{
  "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.

Get Fast Bitcoin

iPhone, iPad, Mac, Apple TV, and Apple Watch.