2026-11-13 UTC
☰ Menu
◆ open data

A free JSON API for trending cryptocurrencies

Four endpoints, no key, no sign-up, no rate limit. The same numbers that build every page on this site, rebuilt once a day and served as plain JSON under CC BY 4.0 — you only have to name the source.

Endpoints4
Coins today30
Markets43
Coin files47

What this API is

One request to trending.json returns 30 coins, about 38.2 kB over the wire. There are 28 fields per coin, and the shape does not change between runs. Of the 43 markets in countries.json, 27 are live today and contribute 144 rows. The category endpoint holds 14 sectors; Layer 1 chains has the most trending members (28). 47 coins have their own file this run; 110 older files stay in place with trending: false.

The first record in today's file is Bitcoin (BTC) with a trend score of 85 out of 100. 23 of the 30 coins have enough price history for a technical signal; the rest return "signal": "none". Of the coins in the file, 5 score in the high hype band and 18 in the low one. Median 24-hour change sits at -1.6% and 8 coins are positive. The oldest continuous entry is Bitcoin with 58 days behind it.

Geographically, Pudgy Penguins is the broadest name in the file with 16 markets. The longest national list today is Indonesia with 25 coins. Per-coin files include up to 30 days of rank history, drawn from 59 daily snapshots kept since the archive opened. The complete dataset is 781.3 kB today — small enough to copy in full every morning.

Endpoints

No key, no headers, no POST. Every file is a static GET.

EndpointReturnsRecordsSize
/api/trending.jsonGlobal top 30: rank, coin, symbol, trend score, country count, signal, hype risk, price, 24h3038.2 kB
/api/countries.jsonEvery national market and the coins trending inside it, in list order4375.3 kB
/api/categories.jsonSector categories: members, trending members, median 24h move, combined market cap145.9 kB
/api/index.jsonEndpoint catalogue and the slug list for today42.1 kB
/api/coin/<slug>.jsonOne coin in full: score breakdown, hype-risk breakdown, indicators, country positions, 30 days of rank history47one file each

Slugs match the site URLs: /coin/pepe/ is /api/coin/pepe.json. A coin only gets a file once it has a page, so unresolved and single-day entries are in trending.json but not in /api/coin/.

Field reference

Percentages are fractions. 0.042 means +4.2%.

FieldTypeMeaning
rankintegerPosition in today's global trending list, 1 = highest interest.
idstring / nullCoinGecko id, the primary key of this dataset. Null when the upstream identity could not be resolved.
slugstringURL slug used by both the site page and the per-coin file.
symbolstringTicker, upper case. Not unique — several projects share a ticker, so join on id.
trend_scoreinteger 0–100Combined interest score: CoinGecko rank, two CoinMarketCap lists, country spread and Binance Hot membership.
countriesintegerHow many national lists the coin appears on today.
country_slugsarrayWhich markets those are, matching the slug field of countries.json.
days_on_listinteger / nullConsecutive days on a trending list. 1 means it arrived today.
rank_changeinteger / nullYesterday's rank minus today's. Positive means it climbed. Null when there is no comparable snapshot.
confirmedbooleanTrue when at least two independent upstream sources list the coin.
sourcesobjectWhich of the three upstream lists the coin came from.
signalstringstrong_buy, buy, neutral, sell, strong_sell or none. A summary of the daily technical model, not advice.
technical_scoreinteger / nullShare of passed technical checks, 0–100. Null when there is too little price history.
limited_databoolean / nullTrue when the model ran without real high/low data, so Supertrend, ADX and breakout checks were skipped.
hype_riskobjectscore 0–100 and level low / medium / high, from six transparent criteria.
price_usdnumber / nullLatest price in US dollars.
change_24h / change_7d / change_30dnumber / nullPrice change as a fraction over the last 1, 7 and 30 days.
market_cap_usd / volume_24h_usdnumber / nullMarket capitalisation and 24-hour traded volume in dollars.
historyarrayPer-coin files only: date, rank, trend score, country count and price for up to 30 days.

Example response

Real output from /api/trending.json, trimmed to the meta block and the first coin.

{
    "meta": {
        "generated": "2026-11-13T00:37:31+00:00",
        "date": "2026-11-13",
        "dataset": "Global trending cryptocurrencies, top 30",
        "license": "CC BY 4.0",
        "attribution_url": "https://cryptotrendsmap.com/",
        "update_frequency": "once a day, 00:35 UTC"
    },
    "coins": [
        {
            "rank": 1,
            "id": "bitcoin",
            "slug": "bitcoin",
            "name": "Bitcoin",
            "symbol": "BTC",
            "url": "https://cryptotrendsmap.com/coin/bitcoin/",
            "api_url": "https://cryptotrendsmap.com/api/coin/bitcoin.json",
            "trend_score": 85,
            "countries": 6,
            "country_slugs": [
                "australia",
                "india",
                "indonesia",
                "japan",
                "netherlands",
                "thailand"
            ],
            "days_on_list": 58,
            "rank_change": 1,
            "new_entry": false,
            "confirmed": true,
            "sources": {
                "coingecko": true,
                "coinmarketcap": true,
                "binance_hot": true
            },
            "signal": "strong_sell",
            "signal_label": "Strong sell",
            "technical_score": 10,
            "technical_checks": 10,
            "limited_data": false,
            "hype_risk": {
                "score": 0,
                "level": "low"
            },
            "price_usd": 71096,
            "change_24h": -0.038266,
            "change_7d": -0.056915,
            "change_30d": -0.145002,
            "market_cap_usd": 1430208086613,
            "volume_24h_usd": 27709274206,
            "market_cap_rank": 1
        }
    ]
}

Refresh, caching and CORS

The whole dataset is rebuilt once a day at 00:35 UTC and does not change in between; the generated and date fields in every file tell you which run you are holding. Polling more often than daily only costs you bandwidth. Files are served with Access-Control-Allow-Origin: * and a one-hour cache, so browser code can fetch them directly.

Nothing is ever deleted. When a coin leaves the trending list its file stays where it was and flips to "trending": false, and a market that stops publishing keeps its entry with has_data: false. Consumers see the gap instead of a missing key or a 404.

Attribution

Published under CC BY 4.0. Use it in an app, a paper, a dashboard or a newsletter; the one condition is a visible credit with a working link. This line is enough:

Data from Crypto Trends Map (https://cryptotrendsmap.com/)

If you would rather show the numbers than fetch them, the embeddable widget carries the credit for you.

Questions

Do I need an API key?

No. There is no key, no account and no rate limit. The endpoints are static JSON files on a CDN-friendly host, so a GET is all it takes.

How often does the data change?

Once a day. Collection runs at 00:35 UTC and every file is rewritten from scratch in the same run, so the whole dataset is always internally consistent.

Can I use it commercially?

Yes, under CC BY 4.0: keep a visible credit with a link back to cryptotrendsmap.com. You do not need to ask first.

Is trending a buy signal?

No. Trending measures search and page-view interest, and the technical signal is a summary of ten mechanical checks on daily closes. Neither is a forecast and neither is financial advice.

Why is a coin missing from /api/coin/?

A coin gets its own file once it has held a page — two days on the list or three countries. Before that it appears in trending.json only, because a single day of data would not fill the fields.

What happens to old files?

They stay. Coin files switch to trending: false and keep their history, so links and mirrors made months ago still resolve.