# CryptoSlate Scraper (`dadhalfdev/cryptoslate-scraper`) Actor

Want to track the latest breaking news in the crypto space? This CryptoSlate scraper makes it super easy. Just choose a category (News, Analysis, asset-specific feeds like Bitcoin, Ethereum, Solana, XRP, DeFi, ETFs, and more), and the scraper will extract up to 250 full articles.

- **URL**: https://apify.com/dadhalfdev/cryptoslate-scraper.md
- **Developed by:** [Marco Rodrigues](https://apify.com/dadhalfdev) (community)
- **Categories:** News, Other
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $3.00 / 1,000 results

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

## 📰 CryptoSlate Scraper

Want to track the latest breaking news, analysis, and narrative shifts across the crypto space? This **[CryptoSlate](https://cryptoslate.com/)** scraper makes it super easy!

Just **choose your favorite section or topic** (News, Analysis, asset-specific feeds like Bitcoin, Ethereum, Solana, XRP, DeFi, ETFs, and more), and the scraper will extract full articles, neatly packing headlines, full text, sentiment, and author details into a CSV or JSON file.

![CryptoSlate Website](https://i.postimg.cc/25TGNyJZ/Screenshot-From-2026-03-23-22-29-24.png)

### 💡 Perfect for...

- **Trading & Market Desks:** Track breaking headlines, sentiment markers, and narrative shifts around major tokens, ETFs, and macro trends.
- **Sentiment & NLP Pipelines:** Leverage the pre-extracted `sentiment` tag directly from CryptoSlate or run your own LLMs on full article bodies to score fear/greed.
- **Crypto Bots & Alerts:** Feed fresh URLs, subtitles, and author data into Telegram/Discord bots or trading assistants.
- **Data Analysts:** Download clean, structured data for visualizations, dashboards, or predictive market models.
- **📚 RAG Systems:** Chunk `content` and metadata into vector stores so agents can answer "What is the sentiment on ETFs according to CryptoSlate?" with citations.
- **🔗 AI Workflows:** Integrate seamlessly with LangChain, OpenClaw, Claude Code, and other AI frameworks that need structured news data.

### ✨ Why you'll love this scraper

- 🎯 **Editorial Sections:** Choose from CryptoSlate areas like News, Analysis, Regulation, Exchanges, **Bitcoin**, **Ethereum**, **Solana**, **XRP**, DeFi, Legal, Trading, Investments, Stablecoins, ETF, Mining, Technology, Adoption, or Price Watch. The scraper automatically maps them to the right listing URLs.
- ⚙️ **Deep Content Extraction:** Extracts not just the headline, but the full article body, reading time, and formatted ISO-8601 publication dates.
- 📊 **Built-in Sentiment:** Automatically captures CryptoSlate's native sentiment label (e.g., Bullish, Bearish, Neutral) for each article.
- 👤 **Author & Editor Insights:** Pulls the author's name, profile URL, and even their **X (Twitter) and LinkedIn** social links. Also extracts the editor's details.
- 📢 **Promoted Content Flagging:** Intelligently identifies sponsored/promoted articles, setting an `is_promoted` flag.
- 🧹 **Smart Filtering (Pay Only For What You Get):** The scraper intentionally skips non-article pages (like generic "Guides") that are mixed into the feed. Because of this, if you request 100 articles, you might receive 70 valid articles (and you only pay for the 70 returned results).

### 📦 What's inside the data?

For every single article, you will get:
- **Core Details:** `url`, `title`, `subtitle`, `date`, `reading_time`
- **Categorization:** `category`, `sub_category`, `is_promoted` (Boolean string indicator)
- **Market Data:** `sentiment` (e.g., Bullish, Bearish)
- **Content:** `content` (Full main-body text)
- **Author Details:** `author_name`, `author_url`, `author_x` (Twitter link), `author_linkedin`
- **Editor Details:** `editor_name`, `editor_url`

### 🚀 Quick start

1. **Go to the actor** on Apify (or run it locally with the Apify SDK).
2. **Choose your `category`** (the CryptoSlate area you care about, e.g., News, Analysis, Bitcoin, Ethereum, ETF).
3. **Set `max_articles`** (how many articles you want to scrape, up to 100). *Note: Due to the scraper skipping guides and thin content, you may receive fewer results than requested. You only pay for what you receive.*
4. **Click Start** and let it run! 🗞️ Once it's done, you can export your data as a CSV, Excel spreadsheet, or JSON file.

---

#### Tech details for developers 🧑‍💻

**Input Example:**
```json
{
  "category": "Bitcoin",
  "max_articles": 20
}
````

**Output Example:**

```json
{
  "url": "https://cryptoslate.com/crypto-hacks-dont-end-when-the-money-is-gone/",
  "title": "Why crypto hacks don’t end and continue even when the money is gone",
  "subtitle": "A crypto exploit can empty a wallet in minutes, but the full damage often unfolds for months. Tokens keep falling, treasuries shrink, hiring freezes set in, and projects that survive the theft can still lose their future in the aftermath.",
  "date": "2026-03-22T20:25:54+00:00",
  "content": "A crypto hack never ends when the wallet is drained. The theft lands first, fast and visible, and then a slower collapse starts to work through the rest of the project.\n\nThe token keeps sliding, the treasury shrinks with it, hiring plans get cut back, product deadlines move, partners pull away, and the company that was supposed to recover spends months fighting...",
  "is_promoted": false,
  "category": "Analysis",
  "sub_category": null,
  "reading_time": " 4 min read",
  "sentiment": " Negative ",
  "author_name": " Andjela Radmilac ",
  "author_url": "https://cryptoslate.com/author/andjela-radmilac/",
  "author_x": "https://x.com/andjelaradmilac",
  "author_linkedin": "https://www.linkedin.com/in/andjelaradmilac/",
  "editor_name": " Liam 'Akiba' Wright ",
  "editor_url": "https://cryptoslate.com/author/liam-akiba-wright/"
}
```

**Parameters:**

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `category` | string | No | CryptoSlate feed to scrape: `News`, `Web3`, `Analysis`, `Regulation`, `Exchanges`, `Bitcoin`, `Ethereum`, `Solana`, `XRP`, `DeFi`, `Legal`, `Trading`, `Investments`, `Stablecoins`, `ETF`, `Mining`, `Technology`, `Adoption`, `Price Watch`. Default: `News`. |
| `max_articles` | integer | No | Target number of articles to collect. Due to filtering of guides and thin content, actual output count may be lower. Min 10, max 250, default 100. |

# Actor input Schema

## `category` (type: `string`):

The category of articles to be scraped.

## `max_articles` (type: `integer`):

The maximum number of articles to be scraped.

## Actor input object example

```json
{
  "category": "News",
  "max_articles": 100
}
```

# Actor output Schema

## `overview` (type: `string`):

Table view of scraped CryptoSlate articles using the dataset 'overview' view.

## `results` (type: `string`):

All scraped CryptoSlate articles from the default dataset without view transformation.

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {};

// Run the Actor and wait for it to finish
const run = await client.actor("dadhalfdev/cryptoslate-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {}

# Run the Actor and wait for it to finish
run = client.actor("dadhalfdev/cryptoslate-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{}' |
apify call dadhalfdev/cryptoslate-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=dadhalfdev/cryptoslate-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "CryptoSlate Scraper",
        "description": "Want to track the latest breaking news in the crypto space? This CryptoSlate scraper makes it super easy. Just choose a category (News, Analysis, asset-specific feeds like Bitcoin, Ethereum, Solana, XRP, DeFi, ETFs, and more), and the scraper will extract up to 250 full articles.",
        "version": "0.1",
        "x-build-id": "rkt7dIlq3W8nUYUlR"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/dadhalfdev~cryptoslate-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-dadhalfdev-cryptoslate-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/dadhalfdev~cryptoslate-scraper/runs": {
            "post": {
                "operationId": "runs-sync-dadhalfdev-cryptoslate-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/dadhalfdev~cryptoslate-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-dadhalfdev-cryptoslate-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "required": [
                    "category"
                ],
                "properties": {
                    "category": {
                        "title": "Category",
                        "enum": [
                            "News",
                            "Web3",
                            "Analysis",
                            "Regulation",
                            "Exchanges",
                            "Bitcoin",
                            "Ethereum",
                            "Solana",
                            "XRP",
                            "DeFi",
                            "Legal",
                            "Trading",
                            "Investments",
                            "Stablecoins",
                            "ETF",
                            "Mining",
                            "Technology",
                            "Adoption",
                            "Price Watch"
                        ],
                        "type": "string",
                        "description": "The category of articles to be scraped.",
                        "default": "News"
                    },
                    "max_articles": {
                        "title": "Maximum Number of Articles",
                        "minimum": 10,
                        "maximum": 250,
                        "type": "integer",
                        "description": "The maximum number of articles to be scraped.",
                        "default": 100
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
