Skip to main content

Market score +90. Market value $2.95tn, +7.8% in 30 days. 24h volume $147.1bn, +52.5% in 30 days. Dominance BTC 58.4%, ETH 11.2%. Stablecoins $312.2bn, +1.1% in 30 days. Fear and greed 73, greed

MarketRender
For developers

Free JSON API

The API returns the same readings the MarketRender pages show: the trend score of each coin and of the whole market on 4-hour, daily, weekly and monthly candles, in US dollars and against Bitcoin, the flip levels, every flip and what followed it, all computed by the published rules. It is free and needs no key: plain HTTPS GET requests answer JSON, and any web page may read it (CORS is open). Answers are cached for 60 seconds. Scores and flips change when a candle closes, every 4 hours; prices on the coin endpoints refresh about every minute.

  • No key
  • HTTPS and JSON
  • CORS open
  • Cached 60 seconds
Try it
curl https://marketrender.com/api/v1/market

Machine-readable description (OpenAPI 3.1): https://marketrender.com/api/v1/openapi.json

Endpoints

There are 7 endpoints, all GET, all under https://marketrender.com/api/v1. Parameters go in the query string; one that is not listed is ignored, and one given twice is refused. The same list, with the answer schemas, is in the OpenAPI description.

The endpoints
EndpointWhat it returns
/api/v1/marketMarket overview
/api/v1/market/scoreWhole-market trend score
/api/v1/scannerScanner
/api/v1/flips/latestLatest flips
/api/v1/flipsTrack record
/api/v1/coins/<id>One coin
/api/v1/coins/<id>/chartPrice chart

Market overview

GET/api/v1/market

The whole market, Bitcoin and the altcoins on every candle size, how many of the 100 largest coins are bullish or bearish, market-wide figures with 30 days of history, and the flips of the last 7 days.

No parameters.

Answer, trimmed
{
  "asOf": "2026-10-06T16:21:14.728Z",
  "market": {
    "id": "_market",
    "name": "Whole market",
    "symbol": "MARKET",
    "readings": {
      "1d": {
        "score": 90,
        "label": "Strong bull",
        "regime": 1,
        "direction": 1,
        "early": false,
        "barOpenTime": "2026-10-05T00:00:00.000Z"
      }
    },
    "lastWeeklyFlip": {
      "tf": "1w",
      "to": 1,
      "closedAt": "2026-09-28T00:00:00.000Z",
      "price": 506.02
    }
  },
  "marketParts": {
    "bitcoin": 98,
    "altcoins": 100,
    "breadth": 72.96
  },
  "breadth": [
    {
      "tf": "1d",
      "n": 100,
      "bull": 85,
      "neutral": 5,
      "bear": 3,
      "early": 5,
      "warmingUp": 2
    }
  ],
  "readings": {
    "fearGreed": {
      "now": 73,
      "asOf": "2026-10-06T00:00:00.000Z",
      "then": 73,
      "history": []
    }
  },
  "recentFlips": [
    {
      "tf": "1d",
      "to": 1,
      "closedAt": "2026-10-06T00:00:00.000Z",
      "price": 0.07534,
      "coinId": "mubarak",
      "name": "Mubarak",
      "symbol": "MUBARAK",
      "currentPrice": 0.07639,
      "priceAt": "2026-10-06T18:56:17.941Z",
      "priceKind": "live",
      "sincePct": 1.39
    }
  ]
}
  • Left out of the sample: bitcoin and altcoins (the same shape as market), marketVsBitcoin, the other three rows of breadth, the other readings (totalMcap, altMcap, volume24h, btcDominance, ethDominance, stableDominance, stableSupply, altseason, btcFunding, btcOpenInterest, btcSpxCorr90) and each flip's imageUrl.
  • market is the whole market (rule set market-v1.1); altcoins is an index of the scored coins' market value without Bitcoin. Their flip prices are index levels, not dollars.
  • breadth counts the 100 largest scored coins by score band; bull, neutral, bear, early and warmingUp add up to n.

Whole-market trend score

GET/api/v1/market/score

The whole-market trend score on one candle size: every scored candle since 2018 with its three parts, the breadth behind it, and every flip of the whole market with what followed.

Parameters of /api/v1/market/score
ParameterAllowed valuesIf left outWhat it does
tf4h1d1w1M1dCandle size: 4-hour, daily, weekly or monthly. Case matters: 1M is a month, and 1m is refused.
Answer, trimmed
{
  "asOf": "2026-10-06T16:21:14.728Z",
  "tf": "1d",
  "readings": {
    "1d": {
      "score": 90,
      "label": "Strong bull",
      "regime": 1,
      "direction": 1,
      "early": false,
      "barOpenTime": "2026-10-05T00:00:00.000Z"
    }
  },
  "bars": [
    {
      "openTime": "2026-10-05T00:00:00.000Z",
      "score": 90,
      "state": 1,
      "level": 510.83,
      "early": false,
      "bitcoin": 98,
      "altcoins": 100,
      "breadth": 72.96
    }
  ],
  "breadth": [
    {
      "openTime": "2026-10-05T00:00:00.000Z",
      "bullPct": 94.39,
      "abovePct": 78.57,
      "n": 196
    }
  ],
  "record": {
    "rules": "market-v1.1",
    "tf": "1d",
    "flips": [
      {
        "closedAt": "2026-08-22T00:00:00.000Z",
        "to": 1,
        "after7": -0.99,
        "after30": 5.24
      }
    ]
  }
}
  • Left out of the sample: sparks (the newest candles of each size, for small charts), the other readings, and most of record, which has the same shape as the track record below.
  • bars and breadth are oldest first and run from 2018. The daily answer is large, about 800 KB; the weekly and monthly ones are much smaller.
  • state is the whole market's side on that candle (1 bullish, −1 bearish). level is the close of an index of every scored coin by market value, not a price in dollars.

Scanner

GET/api/v1/scanner

Every scored coin with its trend score on each candle size, its price and its weekly flip level, 50 rows a page.

Parameters of /api/v1/scanner
ParameterAllowed valuesIf left outWhat it does
inusdbtcusdThe quote: prices and trends in US dollars or against Bitcoin.
filterallbullishbearishflippedallWhich coins: all, bullish or bearish on weekly candles, or flipped on daily or weekly candles in the last 7 days.
qText, at most 64 charactersNo searchKeeps the coins whose name or symbol contains this text (not case-sensitive).
pageA whole number from 1 to 10,0001Which page of 50 rows.
sortrank4h1d1w1MfliplevelrankThe order: market-cap rank, the trend score of one candle size, the date of the last weekly flip, or the distance to the weekly flip level.
dirascdescasc for rank, desc for the other columnsThe order: ascending or descending.
Answer, trimmed
{
  "asOf": "2026-10-06T16:21:14.728Z",
  "query": {
    "quote": "USD",
    "filter": "all",
    "search": "",
    "page": 1,
    "pageSize": 50,
    "sort": "rank",
    "dir": "asc"
  },
  "total": 261,
  "rows": [
    {
      "rank": 1,
      "coinId": "bitcoin",
      "name": "Bitcoin",
      "symbol": "BTC",
      "imageUrl": "https://coin-images.coingecko.com/coins/images/1/large/bitcoin.png?1696501400",
      "price": 85538,
      "priceAt": "2026-10-06T18:56:17.941Z",
      "priceKind": "live",
      "readings": {
        "1d": {
          "score": 98,
          "label": "Strong bull",
          "regime": 1,
          "direction": 1,
          "early": false,
          "barOpenTime": "2026-10-05T00:00:00.000Z"
        }
      },
      "lastWeeklyFlip": {
        "tf": "1w",
        "to": 1,
        "closedAt": "2026-09-07T00:00:00.000Z",
        "price": 80341.83
      },
      "toFlipLevelPct": 28.03,
      "vsBtc30dPct": null,
      "inMarketScore": true
    }
  ],
  "breadth": {
    "tf": "1d",
    "n": 100,
    "bull": 85,
    "neutral": 5,
    "bear": 3,
    "early": 5,
    "warmingUp": 2
  },
  "marketCount": 200
}
  • readings has one entry per candle size (4h, 1d, 1w, 1M); the sample keeps the daily one.
  • total is the number of rows that match the filter and the search, before paging.
  • toFlipLevelPct is the price against the weekly flip level: positive above it.

Latest flips

GET/api/v1/flips/latest

Every coin's flips over a recent period, newest first, with how long each trend lasted and the price change since, 50 rows a page.

Parameters of /api/v1/flips/latest
ParameterAllowed valuesIf left outWhat it does
inusdbtcusdThe quote: flips of the US-dollar trend or of the trend against Bitcoin.
period7d30d90d1y7dHow far back: 7, 30 or 90 days, or a year.
tobothbullbearbothFlips to bullish, to bearish, or both.
tfday-up4h1d1w1Mallday-upCandle size: one size, all of them, or day-up (daily, weekly and monthly, leaving out the many short 4-hour flips).
topall20100200allOnly the 20, 100 or 200 largest coins by market value, or every scored coin.
coinA CoinGecko coin idEvery coinOnly this coin's flips.
qText, at most 64 charactersNo searchKeeps the coins whose name or symbol contains this text (not case-sensitive).
pageA whole number from 1 to 10,0001Which page of 50 rows.
sortclosedranklastedchangeclosedThe order: when the flip candle closed, market-cap rank, how long the trend lasted, or the price change from the flip.
dirascdescasc for rank, desc for the other columnsThe order: ascending or descending.
Answer, trimmed
{
  "asOf": "2026-10-06T16:21:14.728Z",
  "query": {
    "quote": "USD",
    "period": "7d",
    "to": "both",
    "candles": "day-up",
    "size": "all",
    "coin": null,
    "search": "",
    "page": 1,
    "pageSize": 50,
    "sort": "closed",
    "dir": "desc"
  },
  "since": "2026-09-29T18:57:29.937Z",
  "total": 29,
  "counts": {
    "total": 29,
    "bull": 17,
    "bear": 12,
    "ongoing": 29,
    "undone": 0
  },
  "rows": [
    {
      "tf": "1d",
      "to": 1,
      "closedAt": "2026-10-06T00:00:00.000Z",
      "price": 0.07534,
      "coinId": "mubarak",
      "name": "Mubarak",
      "symbol": "MUBARAK",
      "rank": 355,
      "inMarketScore": false,
      "ongoing": true,
      "nextClosedAt": null,
      "lastedBars": 0,
      "untilNextPct": 1.39,
      "currentPrice": 0.07639,
      "priceAt": "2026-10-06T18:56:17.941Z",
      "priceKind": "live",
      "after7": null,
      "after30": null
    }
  ]
}
  • Left out of the sample: each row's imageUrl.
  • untilNextPct is the change from the flip price to the next flip's price, or to the current price while the trend is still on (ongoing). after7 and after30 stay null until 7 and 30 days have passed.
  • In the query object, tf is called candles and top is called size.

Track record

GET/api/v1/flips

Every recorded flip of one coin on one candle size, with the price change 7, 30 and 90 days later, how long each trend lasted, and the same figures for ordinary days to compare with.

Parameters of /api/v1/flips
ParameterAllowed valuesIf left outWhat it does
coinA CoinGecko coin idbitcoinThe coin. The whole market's record is in the market score answer instead.
inusdbtcusdThe quote: the US-dollar trend or the trend against Bitcoin.
tf4h1d1w1M1wCandle size: 4-hour, daily, weekly or monthly. Case matters: 1M is a month, and 1m is refused.
Answer, trimmed
{
  "asOf": "2026-10-06T16:21:14.728Z",
  "coin": {
    "id": "bitcoin",
    "name": "Bitcoin",
    "symbol": "BTC",
    "rank": 1,
    "exchange": "Binance"
  },
  "quote": "USD",
  "tf": "1w",
  "rules": "flip-line-v1.0",
  "flips": [
    {
      "closedAt": "2026-09-07T00:00:00.000Z",
      "to": 1,
      "price": 80341.83,
      "scoreAfter": 37,
      "scoreBefore": -6,
      "pastLinePct": 0.75,
      "scoreAgreedAfter": 0,
      "after7": -4.36,
      "after30": null,
      "after90": null,
      "reversed3": false,
      "lastedBars": 4,
      "ongoing": true,
      "untilNextPct": 7.7
    }
  ],
  "bull": {
    "count": 5,
    "median7": 5.51,
    "median30": 7.68,
    "median90": 22.5,
    "horizons": [
      {
        "days": 7,
        "judged": 5,
        "median": 5.51,
        "interval": {
          "lower": -4.36,
          "upper": 12.57,
          "coverage": 0.9375
        },
        "ordinary": {
          "lower": -6.5,
          "upper": 8.75
        }
      }
    ],
    "reversed3": {
      "count": 1,
      "of": 5
    }
  },
  "baseline": {
    "since": "2018-02-05T00:00:00.000Z",
    "horizons": [
      {
        "days": 7,
        "median": 0.48,
        "n": 3159
      }
    ]
  },
  "flipsPerYear": 1.15,
  "outcomesHidden": null
}
  • Left out of the sample: bear (the same shape as bull), source, btcMarket, sameDates, the coin's imageUrl and adjustments, and the 30- and 90-day rows of horizons and baseline.
  • flips are newest first. after7, after30 and after90 are percent changes from the flip price; null until that many days have passed.
  • interval is a range for the median of the flips; ordinary is the range the median of as many ordinary days usually falls in, to compare with. baseline is the median change after any day.
  • reversed3 is true when the next flip came within 3 candles.

One coin

GET/api/v1/coins/<id>

One coin's price, trend score and flip level on every candle size, in US dollars and against Bitcoin, with its last 12 weekly flips and long-term figures.

Parameters of /api/v1/coins/<id>
ParameterAllowed valuesIf left outWhat it does
id in the pathA CoinGecko coin id, as in the address of its coin page (bitcoin, ethereum, solana)RequiredThe coin.
inusdbtcusdThe quote of the weeklyFlips list. Both usd and btc views are always in the answer.
Answer, trimmed
{
  "asOf": "2026-10-06T16:21:14.728Z",
  "coin": {
    "id": "bitcoin",
    "name": "Bitcoin",
    "symbol": "BTC",
    "imageUrl": "https://coin-images.coingecko.com/coins/images/1/large/bitcoin.png?1696501400",
    "rank": 1,
    "exchange": "Binance",
    "adjustments": []
  },
  "usd": {
    "quote": "USD",
    "source": null,
    "price": 85538,
    "priceAt": "2026-10-06T18:56:17.941Z",
    "priceKind": "live",
    "readings": {
      "1d": {
        "score": 98,
        "label": "Strong bull",
        "regime": 1,
        "direction": 1,
        "early": false,
        "barOpenTime": "2026-10-05T00:00:00.000Z"
      }
    },
    "flipLevels": {
      "1w": {
        "tf": "1w",
        "direction": 1,
        "level": 66811.57,
        "distancePct": 28.03
      }
    },
    "lastWeeklyFlip": {
      "tf": "1w",
      "to": 1,
      "closedAt": "2026-09-07T00:00:00.000Z",
      "price": 80341.83
    }
  },
  "btc": null,
  "btcMarket": null,
  "returns": [
    {
      "days": 30,
      "coinPct": 7.43,
      "bitcoinPct": 7.43,
      "vsBitcoinPct": null
    }
  ],
  "weeklyFlips": [
    {
      "tf": "1w",
      "to": 1,
      "closedAt": "2026-09-07T00:00:00.000Z",
      "price": 80341.83,
      "scoreAfter": 37,
      "scoreBefore": -6,
      "lastedWeeks": 4,
      "ongoing": true,
      "untilNextPct": 7.7
    }
  ]
}
  • Left out of the sample: longView (moving averages, all-time high, drawdown), the 90-day row of returns, and the other candle sizes of readings and flipLevels.
  • btc has the same shape as usd. It is null for Bitcoin itself; for another coin, source says whether its Bitcoin price comes from its own market against Bitcoin (native) or from its dollar price divided by Bitcoin's (ratio).
  • flipLevels gives, for each candle size, the price that would flip the trend and the price's distance from it in percent: positive above it.

Price chart

GET/api/v1/coins/<id>/chart

The newest candles of one coin with its flip level under each candle and the flips among them: what the chart on the coin page draws.

Parameters of /api/v1/coins/<id>/chart
ParameterAllowed valuesIf left outWhat it does
id in the pathA CoinGecko coin id, as in the address of its coin page (bitcoin, ethereum, solana)RequiredThe coin.
inusdbtcusdThe quote: candles in US dollars or against Bitcoin.
tf4h1d1w1M1wCandle size: 4-hour, daily, weekly or monthly. Case matters: 1M is a month, and 1m is refused.
Answer, trimmed
{
  "tf": "1w",
  "quote": "USD",
  "candles": [
    {
      "openTime": "2026-09-28T00:00:00.000Z",
      "open": 84472.01,
      "high": 87220,
      "low": 82563,
      "close": 86530
    }
  ],
  "level": [
    {
      "openTime": "2026-09-28T00:00:00.000Z",
      "value": 66811.57,
      "direction": 1
    }
  ],
  "flips": [
    {
      "openTime": "2026-08-31T00:00:00.000Z",
      "to": 1,
      "price": 80341.83
    }
  ],
  "wave": [
    {
      "openTime": "2026-09-28T00:00:00.000Z",
      "wt1": 52.59,
      "wt2": 46.47
    }
  ]
}
  • Every list is oldest first and covers the same candles: the newest 120 for 4-hour and daily, 104 for weekly and 60 for monthly.
  • Here a flip is named by its candle's open time (openTime): the weekly flip above opened on 31 August and closed on Sunday 6 September.
  • wave is a momentum line drawn under the chart; it is empty against Bitcoin and on monthly candles. Bitcoin has no chart against itself, so ?in=btc answers 404 for bitcoin.

Reading the fields

Field names are the same in every answer. These are the ones most easily misread.

score
The trend score, from −100 (strongly bearish) to 100 (strongly bullish), worked out by the published score rules. label is its band in words: Strong bull, Bull, Neutral, Bear or Strong bear.
direction
The trend the pages show: 1 bullish (the candle closed above its flip line), -1 bearish (below it), null while not settled. A flip is a change of direction. The score and the direction come from different rules, so a coin can have a bear score and a bullish direction.
regime
The score rule's own bullish (1) or bearish (−1) call, with a buffer so small moves do not switch it. It is kept for the API and not shown on the pages; for the whole market it equals direction. For the trend the site shows, read direction.
early
True when the score rests on too little history to compare with a mature one: 4-hour and daily candles before 200 candles of history, weekly candles before the 60th week. The pages print "early" beside such a score.
tf
The candle size: 4h, 1d, 1w (Monday to Sunday) and 1M (a calendar month). All times are UTC, and only closed candles count.
barOpenTimeopenTimeclosedAt
Times are ISO 8601 in UTC. A reading or a candle is named by its open time. A flip is named by the close time of its candle (closedAt), because that is when it became known; the chart answer gives the flip candle's openTime instead. The pages date a flip by the candle's last day: a weekly flip with closedAt 2026-09-07T00:00:00Z is the week ending Sunday 6 September.
in=btcquotesource
With in=btc, prices, scores, flip levels and flips are measured against Bitcoin instead of the US dollar: the coin's price in bitcoin, from its own market against Bitcoin where its exchange has one (source: "native") or its dollar price divided by Bitcoin's ("ratio"). Bitcoin itself has no price against Bitcoin.
pricepriceKindpriceAt
live: the last price from the coin's exchange, read about every minute and used while under 10 minutes old. close: the close of the newest scored candle. Scores and the record use candle closes only.
sincePctafter7
Percentages are plain percents: 12.5 means 12.5%. Changes after a flip are measured from the close of the flip candle.
null
Not known yet, such as the change 30 days after a flip that is 10 days old. It never stands for 0.
rules
The published rule set behind a record: flip-line-v1.0 in US dollars, flip-line-v1.1 against Bitcoin, market-v1.1 for the whole market. A published rule set is never edited; a change gets a new name.

Errors

A request that fails answers with an HTTP status and a JSON body of the same shape every time.

{
  "error": "bad_request",
  "message": "tf must be 4h, 1d, 1w or 1M."
}
Error codes
StatuserrorWhen
400bad_requestA parameter has a value it does not accept, or is given twice. The message says which and what it accepts.
404not_foundThere is no such coin, or no data for it in that quote or on that candle size.
503unavailableThe data cannot be read right now. Try again in a minute; this answer is never cached.

Fair use

  • There is no key and no hard limit today.
  • Cache answers for at least 60 seconds: they do not change faster. Poll no more than about once a minute; scores and flips change only after a 4-hour candle closes.
  • If you need bulk history, write to [email protected] rather than paging through every endpoint.
  • Fields may be added. Existing fields under /v1 will not be renamed or removed without notice on this page.

Using the data

  • You may use the API and show its figures in your own non-commercial projects, with a visible credit and a link to marketrender.com.
  • Commercial use, resale, or republishing large parts of the data needs written permission: write to [email protected].
  • The market figures include data from CoinGecko. Where you show them, credit "Powered by CoinGecko" too.
  • The terms of use apply, and every data source is credited on the attribution page.

The readings describe how prices have trended under fixed rules. They are not investment advice and not recommendations. See the disclaimer.