Free public JSON API
The derived data of this site as JSON: news ratings, signals, the scoreboard, token risk blocks, and system health. No key. No sign-up.
Quick start
Base address: https://cryptonews.org/api/cn/v1. Each answer is JSON. Each answer allows any origin (CORS), so a web page can call it.
# The scoreboard: hit rates by signal kind and by JEV impact class
curl -s https://cryptonews.org/api/cn/v1/scoreboard
# Headlines with the JEV verdict (title, outlet, link, ratings)
curl -s https://cryptonews.org/api/cn/v1/news
# Ask again only if the data changed (the server sends an ETag)
curl -si -H 'If-None-Match: "0123456789abcdef"' https://cryptonews.org/api/cn/v1/signals | head -n 1
- Every answer has the form
{"name", "generated_at", "data"}.generated_atis Unix seconds. - A value that the collector does not know is
null. We never fill a gap with a guess. - The server caches for 5 seconds (
Cache-Control: public, max-age=5, stale-while-revalidate=30). Polling faster gives you nothing new. - If a section has not been published, the answer is HTTP 503 with a JSON error. An unknown name gives HTTP 404.
- The API serves our own ratings and records. It does not serve raw prices or third-party market data.
- There is no rate limit yet. Please be kind. A limit can come later. See the terms.
- General information, not investment advice. Ratings can be wrong.
Endpoints
| Endpoint | What it returns | Now |
|---|---|---|
| GET / | The list of endpoints as JSON. | Live |
| GET /news | Headlines with the JEV verdict: impact, sentiment, category, sponsor odds, and story clusters. Title, outlet, and link only. No article text. | 4m ago |
| GET /signals | The last 300 public signals, each with the price move 1 h, 4 h, and 24 h later. | 3m ago |
| GET /scoreboard | Hit rates and average absolute moves by signal kind and by JEV impact class. | 3m ago |
| GET /health | Collector sources, JEV latency, and how the local models agree with the official one. | 53s ago |
| GET /dex | Token identity and our risk block: label, score, flags, and the JEV note. No prices and no liquidity. | 24s ago |
Sample: /scoreboard
lists cut to two
{
"name": "scoreboard",
"generated_at": 1790673292.39538,
"data": {
"by_kind": [
{
"kind": "depeg",
"signals": 1,
"1h": {
"n": 0,
"hit_rate": null,
"avg_abs_move_pct": null
},
"4h": {
"n": 0,
"hit_rate": null,
"avg_abs_move_pct": null
},
"24h": {
"n": 0,
"hit_rate": null,
"avg_abs_move_pct": null
}
},
{
"kind": "news_high_impact",
"signals": 1,
"1h": {
"n": 0,
"hit_rate": null,
"avg_abs_move_pct": null
},
"4h": {
"n": 0,
"hit_rate": null,
"avg_abs_move_pct": null
},
"24h": {
"n": 0,
"hit_rate": null,
"avg_abs_move_pct": null
}
}
],
"by_impact": [
{
"impact": "market_moving",
"signals": 1,
"1h": {
"n": 0,
"avg_abs_move_pct": null
},
"4h": {
"n": 0,
"avg_abs_move_pct": null
},
"24h": {
"n": 0,
"avg_abs_move_pct": null
}
}
],
"min_sample_for_rate": 5,
"total_signals": 2
}
}
Sample: /news
lists cut to two
{
"name": "news",
"generated_at": 1790673289.2174788,
"data": {
"items": [
{
"id": "5bebbb5dbad8cff6",
"title": "XRP Binance scarcity index hits lowest level since January 2025",
"url": "https://cryptobriefing.com/xrp-binance-scarcity-index-hits-lowest-level-since-january-2025/",
"source": "Crypto Briefing",
"source_kind": "media",
"published": 1790673237.0,
"fetched": 1790673286.3895104,
"summary": null,
"image": null,
"impact": "notable",
"impact_p": 0.71,
"sentiment": "bearish",
"sentiment_p": 0.89,
"category": "exchange",
"category_p": 0.94,
"sponsored_p": 0.14,
"assets": [
"XRP"
],
"cluster_id": "5bebbb5dbad8cff6",
"cluster_size": 1,
"cluster_sources": [
"Crypto Briefing"
],
"signal_score": 18,
"scored": true
},
{
"id": "e9faa898aa3e1bcd",
"title": "OpenAI CEO Sam Altman set for CNBC interview as prediction markets track valuation milestones",
"url": "https://cryptobriefing.com/openai-ceo-sam-altman-set-for-cnbc-interview-as-prediction-markets-track/",
"source": "Crypto Briefing",
"source_kind": "media",
"published": 1790672957.0,
"fetched": 1790673286.3895104,
"summary": null,
"image": null,
"impact": "notable",
"impact_p": 0.53,
"sentiment": "neutral",
"sentiment_p": 0.84,
"category": "other",
"category_p": 0.64,
"sponsored_p": 0.14,
"assets": [],
"cluster_id": "e9faa898aa3e1bcd",
"cluster_size": 1,
"cluster_sources": [
"Crypto Briefing"
],
"signal_score": 16,
"scored": true
}
],
"top": [
"ba4f153f41b5de21",
"60a7bc825a2731f8"
],
"counts": {
"market_moving": 7,
"notable": 147,
"routine": 53,
"promo_or_noise": 38
},
"sources": [
{
"name": "Crypto Briefing",
"items": 39
},
{
"name": "CoinGape",
"items": 23
}
]
}
}