CryptoPanic APIcryptopanic.com ↗
Access CryptoPanic news posts and real-time market sentiment scores via API. Filter by bullish/bearish signals, currency, and panic period.
What is the CryptoPanic API?
This API exposes 4 endpoints covering CryptoPanic's news feed and market sentiment data. Use get_posts to retrieve the full news feed with filters for sentiment type, currency, and panic score period, or call get_sentiment_score to get a 0–100 sentiment index derived from 24-hour price changes across top cryptocurrencies, along with a human-readable label and per-coin price summaries.
curl -X GET 'https://api.parse.bot/scraper/ecb68b09-4535-49a6-820a-dae8d17408a2/get_posts' \ -H 'X-API-Key: $PARSE_API_KEY'
Typed, relational, agent-ready
A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.
- Fully typed · autocompletes
- Objects link to objects
- Typed errors & pagination
Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:
uv add parse-sdk uv run parse init uv run parse add --marketplace cryptopanic-com-api
uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.
"""CryptoPanic Market Sentiment: real-time crypto market mood in one call."""
from parse_apis.cryptopanic_market_sentiment_api import CryptoPanic, SentimentUnavailable
client = CryptoPanic()
# Fetch the current market sentiment report
try:
report = client.sentimentreports.get()
except SentimentUnavailable as exc:
print(f"Sentiment data unavailable: {exc}")
raise
# Read the headline numbers
print(f"Score: {report.sentiment_score}/100 — {report.sentiment_label}")
print(f"Avg 24h change: {report.average_24h_change}%")
# Walk the per-currency breakdown
for perf in report.market_summary[:5]:
print(f" {perf.code} ({perf.title}): ${perf.price_usd} 24h {perf.change_24h:+.2f}%")
print("exercised: sentimentreports.get / SentimentReport fields / CurrencyPerformance fields")
Retrieve a list of news posts from CryptoPanic. Supports filtering by sentiment type, currency, and panic score period.
| Param | Type | Description |
|---|---|---|
| filter | string | Filter by type: bullish, bearish, hot, rising, important, lol, saved |
| currency | string | Filter by currency code (e.g., BTC, ETH) |
| panic_period | string | Include panic score for period: 1h, 6h, 24h |
{
"fields": {
"next": "string",
"count": "integer",
"results": "array"
},
"sample": {
"next": null,
"count": 1,
"results": [
{
"id": 123,
"kind": "news",
"title": "Market sentiment is turning bullish",
"votes": {
"bullish": 10,
"important": 2
},
"currencies": [
{
"code": "BTC",
"title": "Bitcoin"
}
],
"published_at": "2026-02-22T10:00:00Z"
}
]
}
}About the CryptoPanic API
News Feed Endpoints
The get_posts endpoint returns a paginated list of news items from CryptoPanic. You can filter by filter (values: bullish, bearish, hot, rising, important, lol, saved), by currency (e.g., BTC, ETH), and optionally include a panic score for a chosen time window via panic_period (1h, 6h, or 24h). The response includes a count, a next cursor for pagination, and a results array of post objects. For focused use cases, get_bullish_posts and get_bearish_posts are dedicated convenience endpoints that accept an optional currency parameter and return the same results array pre-filtered to the relevant sentiment.
Sentiment Score Endpoint
get_sentiment_score takes no inputs and returns a single aggregated view of current market mood. The sentiment_score field is a 0–100 index where 50 is neutral, values above 50 indicate bullish conditions, and values below 50 indicate bearish conditions. The sentiment_label field maps the score to one of five plain-language categories: Extremely Bullish, Bullish, Neutral, Bearish, or Extremely Bearish. The average_24h_change field gives the mean percentage price change across the top cryptocurrencies surveyed, and market_summary is an array of objects each containing code, title, change_24h, and price_usd for individual coins.
Coverage Notes
The news endpoints reflect the CryptoPanic feed as it stands at request time — there is no built-in date-range filtering or historical post retrieval. Pagination is cursor-based using the next field in the response. Currency filtering applies to all three news endpoints and accepts standard ticker symbols.
The CryptoPanic API is a managed, monitored endpoint for cryptopanic.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when cryptopanic.com changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official cryptopanic.com API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Build a crypto dashboard that displays the current sentiment label and score alongside live coin prices from
get_sentiment_score. - Alert system that triggers notifications when
get_bearish_postsreturns new posts for a specific currency like BTC or ETH. - Aggregate bullish news signals across multiple coins by looping
get_bullish_postswith differentcurrencyvalues. - Track the
average_24h_changefield over time to chart short-term market mood shifts. - Filter the
get_postsfeed byhotorrisingto surface trending stories for a crypto news digest. - Use
market_summaryfromget_sentiment_scoreto rank coins bychange_24hand highlight movers in a portfolio tool. - Combine
panic_periodvalues (1h, 6h, 24h) fromget_poststo compare how panic scores evolve across timeframes.
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does CryptoPanic have an official developer API?+
What does `get_sentiment_score` actually measure?+
market_summary array shows individual code, change_24h, and price_usd values for each coin included. The sentiment_label field translates the numeric score into one of five categories from Extremely Bearish to Extremely Bullish.Can I retrieve historical news posts or filter by date range?+
get_posts, get_bullish_posts, get_bearish_posts) return the current feed and support cursor-based pagination via the next field, but no date-range or timestamp filter parameters are exposed. You can fork this API on Parse and revise it to add a date-filtering endpoint if historical retrieval is needed.Is there an endpoint for portfolio data or price alerts from CryptoPanic?+
How does pagination work in the news endpoints?+
get_posts response includes a next string field containing the cursor for the next page of results, alongside a count integer indicating total matching posts. Pass the next value in your subsequent request to page through the feed. The convenience endpoints get_bullish_posts and get_bearish_posts return a results array but do not surface pagination fields directly.