CryptoPanic Public News Feed Scraper
Pricing
from $0.43 / 1,000 item processeds
CryptoPanic Public News Feed Scraper
Export public CryptoPanic news headlines, publisher links, timestamps, visible summaries and raw currency labels from the latest feed or supplied news URLs.
Pricing
from $0.43 / 1,000 item processeds
Rating
0.0
(0)
Developer
Automation Lab
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Share
Export cryptopanic news as structured public news snapshots for recurring market research and article triage. Collect the anonymous latest feed or supply public CryptoPanic article URLs. Each record contains a headline, news ID, publisher label and link, publication timestamp, visible summary, raw currency labels and CryptoPanic URL.
This Actor is a public headline exporter, not a sentiment scoring service. Its anonymous SSR route does not expose community vote totals. Vote fields are null and sentimentAvailable is false. No premium PanicScore, private API token, account login or historical completeness is included.
Who is it for?
- Analysts maintaining a source-attributed crypto news reading queue.
- Researchers comparing recurring headline snapshots with separate market-price datasets.
- Editorial teams reviewing linked publisher stories before publication.
- Data engineers loading small news snapshots into a spreadsheet or warehouse.
Results reflect what CryptoPanic displays, including social posts and occasional non-crypto business headlines. They are not financial advice or verified factual reporting.
Why use this Actor?
The product keeps source evidence rather than inventing a sentiment label. Stable news IDs make external deduplication straightforward. Raw currency labels preserve ambiguous names such as Talus (US) instead of assuming US means US stocks. Publisher links lead to the original source; summaries contain only the text shown by CryptoPanic.
The route uses lightweight anonymous HTML requests through Apify datacenter proxy with a reusable run session. Proxy usage is paid by the operator and included in Actor pricing; you do not supply a separate key. It does not download publisher article bodies, images, videos or browser assets. Two inputs provide a small, predictable contract without unsupported coin filters or historical search claims.
Getting started
- Open the Actor and keep the default input for a latest-feed snapshot.
- Set
maxItemsbetween 1 and 50. Start with 10. - Run the Actor and open its default dataset.
- Export JSON, CSV or Excel using Apify dataset export.
- For repeat use, schedule runs in Apify and deduplicate by
newsIddownstream.
Example latest-feed input:
{ "maxItems": 10 }
Example supplied-page input:
{"startUrls": [{ "url": "https://cryptopanic.com/news/33472499/Robinhood-pushes-US-stocks-toward-cryptos-247-model-with-weekend-trading" }],"maxItems": 1}
Input parameters
| Parameter | Default | Behavior |
|---|---|---|
startUrls | [] | Up to 50 public news article URLs. Empty means latest feed; nonempty replaces discovery. |
maxItems | 10 | Global unique-record cap after news-ID deduplication; integer 1–50. |
Supplied URLs must use https://cryptopanic.com/news/<numeric-id>/<headline>. Query strings, fragments, credentials, other hosts, currency pages and category URLs are rejected. Unknown input fields are rejected rather than silently ignored. URL sources support GET only; custom methods, payloads, headers and userData are rejected.
Input order is preserved. Duplicate news IDs are fetched once even if their headline slugs differ. The limit is global, not per URL. Zero and unlimited are not supported. A user-configured billing limit can stop output earlier.
What data is extracted?
| Field | Meaning |
|---|---|
newsId | Numeric news ID represented as a string. |
headline | Public headline with normalized whitespace. |
canonicalUrl | Public CryptoPanic article URL. |
publisher | Displayed source label, including any Feed or X prefix; nullable. |
publisherUrl | Original link from “Read full story”; nullable. |
publishedAt | Publication time in UTC ISO 8601; nullable. |
summary | Visible CryptoPanic summary; nullable and often truncated. |
currencyLabels | Array of raw displayed labels and public currency-page URLs. |
sentimentAvailable | Always false for the supported SSR route. |
bullishVotes, bearishVotes | Null: unavailable, not zero. |
observedAt | UTC snapshot observation time. |
Currency labels are source associations, not verified ticker mappings. An empty array means the article page displayed none. Missing publisher links or summaries remain null; they are not replaced with guessed values.
Example output
A supplied-page run returned this source record (summary shortened here for readability):
{"newsId": "33472499","headline": "Robinhood pushes US stocks toward crypto’s 24/7 model with weekend trading","canonicalUrl": "https://cryptopanic.com/news/33472499/Robinhood-pushes-US-stocks-toward-cryptos-247-model-with-weekend-trading","publisher": "Feed - Cryptopolitan.Com","publisherUrl": "https://www.cryptopolitan.com/robinhood-pushes-us-stocks-toward-cryptos-24-7-model-with-weekend-trading/","publishedAt": "2026-09-30T04:06:01.000Z","summary": "On September 29, Robinhood announced that it intends to allow clients to participate in trading in a selection of US stocks and ETFs around the clock during weekends...","currencyLabels": [{ "label": "Talus (US)", "url": "https://cryptopanic.com/news/talus/" }],"sentimentAvailable": false,"bullishVotes": null,"bearishVotes": null,"observedAt": "2026-10-02T06:11:09.558Z"}
Coverage and limitations
The latest mode exports the finite anonymous feed currently served by CryptoPanic; it does not paginate historical archives. A 50-record cap does not imply the source has 50 current records. Publication order and coverage come from the source, not a comprehensive market-news index.
Supplied pages allow revisiting known public stories, not discovering all past stories. Deleted, inaccessible or changed pages can fail. The Actor does not fetch full publisher content or bypass publisher paywalls.
No keyword, coin, category, language, date-range or sentiment filters are implemented. Apply downstream filters yourself without treating raw currency labels as normalized asset IDs. No alerts, trading decisions or derived sentiment are generated.
How much does it cost to export CryptoPanic news?
Pay-per-event pricing charges a $0.0005 start fee per run plus one item event per successfully accepted news record. Publisher links, summaries and currency labels are included in that record; there are no separate enrichment charges.
| Plan tier | Price per news record |
|---|---|
| FREE | $0.000828 |
| BRONZE | $0.00072 |
| SILVER | $0.0005616 |
| GOLD | $0.000432 |
| PLATINUM | $0.000432 |
| DIAMOND | $0.000432 |
Spend tiers follow your qualifying aggregate monthly Apify Store spend, not volume on this Actor. These are estimated Actor charges, not payout guarantees.
Estimated BRONZE example totals, including the start fee:
| Unique records per execution | Number of executions | Estimated aggregate total |
|---|---|---|
| 1 | 1 | $0.00122 |
| 10 | 1 | $0.0077 |
| 20 | 1 | $0.0149 |
| 10 | 2 | $0.0154 |
Each run has its own start fee. Charges apply to records accepted during the run; duplicate input IDs and failed pages do not produce item charges.
Apify's displayed live pricing is authoritative. Set a maximum total charge appropriate to your intended record count. A failed run can retain already-produced records and their charges.
Reliability and failure behavior
Requests have a 20-second timeout and at most three attempts for transient transport failures, rate limits, server errors or empty responses. A blocked or transiently failed session is retired before retrying with a fresh datacenter identity. Healthy sessions are reused. There is no residential or browser fallback. Deterministic HTTP errors and unexpected HTML structures fail rather than masquerading as successful empty datasets.
Article fetches are sequential. If a later page fails, earlier accepted rows can remain in the dataset; inspect the run status before treating the snapshot as complete. A changed anonymous feed structure is an upstream compatibility failure, not proof there was no news.
Integrations
Use Apify schedules for recurring snapshots. Store newsId, publishedAt and observedAt in a warehouse so ingestion time stays separate from publication time. Compare IDs between runs to identify new headlines.
Send results through Make, Zapier or an Apify webhook to a spreadsheet or article-review queue. Use publisherUrl for human source checking. Downstream NLP can analyze the visible headline and summary, but its labels are your analysis—not CryptoPanic community sentiment.
Join news snapshots to separate market datasets only with independently verified asset mapping. Preserve the original currency labels so ambiguous associations can be reviewed.
API usage
Keep your Apify token in an environment variable. Do not place it in shared datasets or source files.
cURL
curl -X POST \-H "Authorization: Bearer $APIFY_TOKEN" \-H 'Content-Type: application/json' \-d '{"maxItems":10}' \'https://api.apify.com/v2/acts/automation-lab~cryptopanic-crypto-news-sentiment/run-sync-get-dataset-items'
JavaScript
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('automation-lab/cryptopanic-crypto-news-sentiment').call({ maxItems: 10 });const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
Python
import osfrom apify_client import ApifyClientclient = ApifyClient(os.environ['APIFY_TOKEN'])run = client.actor('automation-lab/cryptopanic-crypto-news-sentiment').call(run_input={'maxItems': 10})items = client.dataset(run['defaultDatasetId']).list_items().itemsprint(items)
MCP use
Connect a compatible MCP client with authorized Apify access:
claude mcp add --transport http apify \"https://mcp.apify.com?tools=automation-lab/cryptopanic-crypto-news-sentiment"
Equivalent HTTP client configuration for Claude Desktop, Cursor and VS Code:
{"mcpServers": {"apify": {"url": "https://mcp.apify.com?tools=automation-lab/cryptopanic-crypto-news-sentiment"}}}
Example prompt: “Export up to ten current CryptoPanic public news records and show their publisher links. Do not interpret unavailable vote fields as neutral sentiment.” Tool availability depends on the hosted service and your access permissions.
Legality and responsible use
Use only public pages you are authorized to access. Review CryptoPanic's terms and applicable law, and respect reasonable request volumes. Publisher content and headlines may carry copyright; public availability does not grant redistribution rights. This Actor is independent and not endorsed by CryptoPanic.
The runtime uses no AI provider. Apify stores datasets and logs under your account's retention settings; delete runs and their storage in Console when no longer needed. No cross-run caches or cookies are retained. Apify datacenter proxy receives the public target URL and response traffic; no private source account or credentials are used. Report reproducible problems through the Actor's Apify issue interface.
Failed operations send sanitized diagnostic input, exceptions and actor/build/run IDs to our private GlitchTip service for repair. Secret fields and URL queries are removed and reports are retained for 30 days.
FAQ and troubleshooting
Why are vote fields null? The anonymous SSR pages do not expose them. Null means unavailable, not zero or neutral. Premium scores and derived sentiment are outside the contract.
Why did I receive fewer records than maxItems? The current feed is finite, supplied IDs are deduplicated, or your billing limit stopped further records. Check logs and status for upstream failures.
Why is US associated with Talus? That is the source's raw displayed currency label. The Actor deliberately does not reinterpret it as geography or a stock ticker.
Can I export all historical news? No. You can revisit supplied public article URLs, but the Actor does not discover or promise complete archives.
Why did a URL fail validation? Use a public numeric-ID article URL on cryptopanic.com without query parameters or fragments. Currency and filter URLs are not supported.
What if the run fails after producing rows? Treat it as an incomplete snapshot. Keep its existing rows if useful and inspect the error before scheduling another run.
Related Actors
- CoinGecko Crypto Market Data provides separate market-price context, not news.
- CoinPaprika Crypto Market Data Exporter provides separate asset and market records.
Use these as complementary sources; this Actor does not perform an automatic cross-source join.