CryptoIntel API
These are the JSON routes the site itself runs on. They return what the pages show, from the same caches.
Available Endpoints
/api/newsArticles from every feed, newest first, with keyword sentiment and ticker tags. Filters run across the whole pool, then the result is paged.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| tickers | string | No | One symbol, e.g. BTC |
| name | string | No | Coin name, used with tickers for coins outside the built-in list |
| search | string | No | Text to find in titles and summaries |
| section | string | No | Category slug, e.g. defi, etf, regulation, macro |
| page | number | No | Page number (default 1) |
| limit | number | No | Articles per page (default 30, max 200) |
Response
{ data: Article[], total, total_pages, pool, sources: { name, ok, count }[], updated }/api/coinsMarket data for the top 500 coins from CoinGecko, cached for 15 minutes.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| per_page | number | No | How many coins (default 100, max 500) |
| id | string | No | One CoinGecko id, e.g. bitcoin. Returns { coin } |
| sparkline | 1 | No | Include the 7-day price line (one point every 2 hours) |
Response
{ coins: Coin[], total, timestamp }/api/pricesPrice, 24h change and market cap for a list of symbols.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| symbols | string | No | Comma-separated, e.g. BTC,ETH,SOL |
Response
{ prices: { symbol, price, change24h, marketCap }[], timestamp }/api/market-statsGlobal market cap, volume, BTC and ETH dominance from CoinGecko, plus today's Fear & Greed Index.
Response
{ totalMarketCap, totalVolume24h, btcDominance, ethDominance, activeCryptos, fearGreedIndex, fearGreedLabel, marketCapChange24h }/api/fear-greedDaily Fear & Greed Index history from alternative.me, oldest first.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| days | number | No | Days of history (default 30, max 90) |
Response
{ points: { date, value, label }[] }/api/sentimentAI read of one article by openai/gpt-oss-120b. Errors come back as { error } with a 4xx or 5xx status.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| title | string | Yes | Headline |
| text | string | No | Article text, first 1,500 characters are used |
Response
{ sentiment, score (-100 to 100), confidence, summary, impactedAssets, marketImpact }/api/sentiment/batchAI read of up to 15 headlines at once. Each server instance keeps an answer for 10 minutes per headline set.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| articles | { title }[] | Yes | Headlines to read |
| focus | string | No | An asset name, to judge sentiment toward that asset |
Response
{ overallSentiment, overallScore, bullishPercent, bearishPercent, neutralPercent, topThemes, marketMood, analyzed }/api/statusLive check of every upstream: each news feed, CoinGecko, alternative.me and the AI model.
Response
{ checked, services: { name, group, status, detail }[] }Authentication
There are no API keys yet. The routes are open, the same as when the site calls them. Go easy on them, they sit on free upstream tiers.
curl "https://www.cryptointel.site/api/news?tickers=BTC&limit=5"
Planned Access Tiers
Keys and rate limits aren't built. This is the plan for when they are.
Free
100 requests/day
Pro
10,000 requests/day
Enterprise
Custom limits
Get Started
Planning to build on this data? Request access and say what you need.