# Crypto Airdrops Scraper — KYC-Free Filter, Heat & Claim Links (`tactful_anvil/airdrops-io-crypto-airdrop-scraper`) Actor

Scrape airdrops.io: live, hot, retroactive & confirmed crypto airdrops with community heat, KYC/phone/social friction flags, difficulty & cost-to-farm, claim links and a 0-100 opportunity score. HTTP-only.

- **URL**: https://apify.com/tactful\_anvil/airdrops-io-crypto-airdrop-scraper.md
- **Developed by:** [Mr Zack](https://apify.com/tactful_anvil) (community)
- **Categories:** Automation, Lead generation, Developer tools
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.00 / 1,000 airdrop results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

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

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
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.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — 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

## Crypto Airdrops Scraper — Live Status, KYC-Free Filter & Heat

Scrape the **airdrops.io** directory — the airdrop board 25K farmers refresh every day — in one cheap HTTP run. Every row tells you whether a drop is worth your time *today*: live status, community **temperature**, **KYC / phone / social friction flags**, **difficulty** and **cost-to-farm** badges, the claim link, freshness, and a 0-100 **opportunity score**.

No login. No browser. No proxies. Just fast, polite HTTP requests.

### Who this is for

- **Airdrop farmers** who open latest/hot/confirmed tabs every morning and cross-check which drops are KYC-free before spending an evening on them.
- **Crypto newsletter & alpha-group operators** who need a fresh "drops worth farming this week" table without copy-pasting from the site.
- **AI agents / MCP users** — typed output schema, one call, decision-ready fields.

### Why this beats reading the site manually

1. **KYC-free filter** — `requiresKyc` / `isKycFree` per airdrop, straight from the board's requirement flags. Farm anonymously or skip.
2. **Friction in one glance** — `requiredPlatforms` (twitter, telegram, email, …), `socialRequirementCount`, `requiresPhone`.
3. **Heat + freshness** — community `temperature`, `updatedDaysAgo` from the project sitemaps, `ageDays` since listing.
4. **Effort vs reward** — the board's own `difficulty` and `costToFarm` ratings plus `stepsCount` from each guide.
5. **One honest score** — `opportunityScore` 0-100 (heat 30 + friction 25 + freshness 25 + accessibility 20). Unknowns score neutral, never bonus; ended drops are a hard 0.

### Output fields

| Field | Description |
|---|---|
| `name`, `slug`, `url` | Airdrop name and its airdrops.io page |
| `status`, `isEnded` | `ongoing` / `upcoming` / ended state |
| `temperature` | Community heat (typical 0-100, viral drops exceed it) |
| `isHot`, `isConfirmed`, `isRetroactive` | Section membership (hot / confirmed / speculative-retroactive) |
| `category`, `ticker` | Project category and token ticker |
| `requiresKyc`, `requiresPhone`, `requiredPlatforms`, `socialRequirementCount`, `isKycFree` | Friction flags (tri-state: `null` = unknown, never guessed) |
| `difficulty`, `costToFarm`, `stepsCount`, `steps` | Board ratings + step-by-step guide names |
| `actionsSummary` | What you actually have to do (from the card) |
| `publishedAt`, `modifiedAt`, `ageDays`, `updatedDaysAgo` | Freshness |
| `claimUrl`, `projectHost`, `logoUrl` | Where to start farming |
| `opportunityScore` | 0-100 composite (see above) |

### Input

- `sections` — any of `latest`, `hot`, `speculative`, `confirmed` (default: all four)
- `kycFreeOnly` — only anonymous-friendly drops
- `minTemperature` — heat floor
- `fetchDetails` + `detailLimit` — how many detail pages to enrich (cards first, then most recently updated projects; polite, 300 cap)
- `includeEnded`, `sortBy`, `maxItems`

### How to schedule this Actor (do this — it's the whole point)

Airdrop boards rot fast: a drop that was hot on Monday is closed by Friday. Schedule a run every morning and read the diff instead of twelve browser tabs:

1. Open the Actor page → **Schedules** tab → **Create new**.
2. Cron `0 7 * * *` (daily, 7 AM your time) — or `0 7 * * 1,4` twice a week if you only farm weekends.
3. Leave the default input (all four sections, `sortBy: opportunityScore`).
4. Add an integration (email, Slack, webhook, Google Sheets) on the schedule to push each morning's table wherever you plan your day.

Typical daily run: 4 section pages + sitemaps + 80 detail pages ≈ a minute of polite HTTP, ~80-130 rows.

### Fair play

Public data only, fetched politely (delays + retries with backoff, no hammering). No login walls bypassed, no personal data collected. Respect airdrops.io — they curate this data; if you build something cool on top, credit them.

### Was this Actor useful?

If it saved you a morning of tab-juggling, a ⭐ review on the Actor page genuinely helps other farmers find it. Something broken or missing a field you need? Open an **Issue** on the Actor page — issues get fixed, promise.

***

*Sibling boards by the same builder: Whop content rewards, Galxe quest rewards, Merkl DeFi rewards, Superteam Earn bounties, Immunefi / HackenProof / audit-contest bug bounties, class-action settlements, MunchEye launches, writing & art contests — the full "boards where money moves" stack is on the profile.*

# Actor input Schema

## `sections` (type: `array`):

Which airdrops.io sections to scrape: latest, hot, speculative (retroactive DeFi), confirmed. Default: all four.

## `includeEnded` (type: `boolean`):

Keep airdrops whose status is no longer ongoing/upcoming (they score a hard 0).

## `kycFreeOnly` (type: `boolean`):

Only airdrops that do NOT require identity verification — the ones farmers can enter anonymously.

## `minTemperature` (type: `integer`):

Keep only airdrops with community heat (temperature) at or above this value. Typical range 0-100; viral drops go higher.

## `fetchDetails` (type: `boolean`):

Fetch each airdrop's detail page for ticker, difficulty, cost-to-farm and step-by-step guide. Disable for a faster cards-only run.

## `detailLimit` (type: `integer`):

Max detail pages to fetch per run (section cards first, then the most recently updated projects from the sitemap). Polite crawling; 300 hard cap.

## `sortBy` (type: `string`):

Row order: opportunityScore (default), temperature, newest (by publish date), recentlyUpdated (by last modification).

## `maxItems` (type: `integer`):

Cap on rows pushed to the dataset (which is what you pay for).

## Actor input object example

```json
{
  "sections": [
    "latest",
    "hot",
    "speculative",
    "confirmed"
  ],
  "includeEnded": false,
  "kycFreeOnly": false,
  "fetchDetails": true,
  "detailLimit": 80,
  "sortBy": "opportunityScore",
  "maxItems": 1000
}
```

# Actor output Schema

## `airdrops` (type: `string`):

One row per airdrop: live status, community temperature, KYC/phone/social friction flags, difficulty & cost-to-farm, claim link, freshness and a 0-100 opportunity score.

# 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("tactful_anvil/airdrops-io-crypto-airdrop-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("tactful_anvil/airdrops-io-crypto-airdrop-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).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 tactful_anvil/airdrops-io-crypto-airdrop-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,tactful_anvil/airdrops-io-crypto-airdrop-scraper"
        }
    }
}

```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/0E5HAOOxzRvkvD7tV/builds/hffBFoxvEeVnxGYDg/openapi.json
