Crypto Calendar Scraper avatar

Crypto Calendar Scraper

Pricing

from $0.50 / 1,000 results

Go to Apify Store
Crypto Calendar Scraper

Crypto Calendar Scraper

Pricing

from $0.50 / 1,000 results

Rating

0.0

(0)

Developer

Enrique G.

Enrique G.

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Categories

Share

A high-performance data extraction engine for cryptocurrency market catalysts, scheduled token unlocks, protocol upgrades, exchange listings, and historical price impact analysis.


Overview

Crypto Calendar Scraper aggregates scheduled and historical market-moving events across decentralized protocols and centralized exchanges. It leverages structured data pipelines from verified industry sources (DeFiLlama and Coindar) to deliver normalized, production-grade JSON datasets suitable for quantitative trading systems, portfolio risk monitors, and automated market intelligence workflows.

Key Capabilities

  • Dual-Horizon Event Tracking:
    • Forward Analysis (daysAhead): Extracts upcoming token unlocks, hard forks, testnet/mainnet launches, and governance votes within a customizable time window.
    • Historical Audit (daysBack): Retrieves past catalyst executions to evaluate post-event market performance and circulating supply expansion.
  • Quantitative Price Impact Engine:
    • For historical token unlocks, the scraper computes:
      • Spot price at the exact execution timestamp (priceAtEvent).
      • Current spot market price (currentPrice).
      • Percentage price delta: ((currentPrice - priceAtEvent) / priceAtEvent) * 100.
      • Nominal token unlock volume and aggregate USD value unlocked at execution.
      • Distribution category classification (ecosystem, insiders, privatesale, community, publicsale).
  • Multi-Source Coverage:
    • DeFiLlama Feed: Tokenomics schedules, cliff releases, and linear vesting contracts across 370+ tracked protocols.
    • Coindar Feed: Protocol releases, hard forks, network upgrades, conferences, and exchange listings.
  • Deterministic Filtering:
    • Filter by specific coin tickers (e.g. ["TIA", "SOL", "ARB"]). If omitted, returns global events sorted chronologically by proximity.
    • Filter by category classification. If omitted, extracts catalysts across all operational sectors.

Input Parameters

ParameterTypeDefaultRequiredDescription
sourceString"all"NoTarget data source: "all", "defillama", or "coindar".
coinsArray<String>[]NoList of asset symbols to filter (e.g. ["BTC", "ETH", "TIA"]). When empty, queries all tracked assets.
categoriesArray<String>[]NoCatalyst categories to include (e.g. ["tokenomics", "fork", "release", "listing"]). Empty matches all categories.
daysAheadInteger60NoNumber of future days to search for upcoming events (relative to UTC execution time).
daysBackInteger0NoNumber of past days to inspect for historical events and calculate price impact metrics.
maxEventsInteger50NoMaximum number of records returned and pushed to the dataset.
coindarApiTokenString""NoOptional Coindar API v2 access token for high-rate direct querying.
proxyConfigurationObject{}NoOptional proxy configuration object. Defaults to direct connection.

Example Input Payload

{
"source": "all",
"coins": ["TIA", "SOL", "SUI"],
"categories": ["tokenomics", "release"],
"daysAhead": 30,
"daysBack": 14,
"maxEvents": 50
}

Output Dataset Schema

Each item written to the default dataset contains normalized fields adhering to the following structure:

{
"id": "defillama-past-TIA-1792945069",
"source": "defillama",
"status": "past",
"isPast": true,
"title": "[PAST] Celestia (TIA) CLIFF Unlock (insiders)",
"coinSymbol": "TIA",
"coinName": "Celestia",
"coinDisplay": "Celestia (TIA)",
"eventType": "Past Token Unlock",
"category": "insiders",
"eventDate": "2026-10-25T16:00:00.000Z",
"dateAdded": "2026-10-01T12:00:00.000Z",
"daysUntil": -7,
"daysAgo": 7,
"description": "Cliff unlock of 175,560,000 TIA allocated to Core Contributors and Early Investors.",
"sourceUrl": "https://defillama.com/unlocks/celestia",
"impactAnalysis": {
"outcome": "Price declined -3.20% since unlock ($5.8000 → $5.6144)",
"priceAtEvent": 5.80,
"currentPrice": 5.6144,
"priceChangeSinceEventPct": -3.20,
"tokensUnlocked": 175560000,
"unlockValueUsd": 1018248000,
"unlockType": "cliff",
"category": "insiders"
},
"extraMetadata": {
"unlockType": "cliff",
"tokensToUnlock": 175560000,
"unlockValueUsd": 1018248000,
"tokenPriceUsd": 5.6144,
"marketCapUsd": 2350000000
}
}

Field Definitions

  • id (string): Unique deterministic identifier for the event.
  • source (string): Originating platform (defillama or coindar).
  • status (string): Temporal status (upcoming or past).
  • isPast (boolean): Convenience flag for filtering historical vs. scheduled events.
  • title (string): Canonical event title with asset identifier and classification.
  • coinSymbol (string): Standard uppercase ticker symbol.
  • coinName (string): Project or network name.
  • coinDisplay (string): Formatted label combining name and ticker.
  • eventType (string): Specific catalyst typology (Token Unlock, Hard Fork, Listing, Milestone).
  • category (string): Sector category (tokenomics, ecosystem, insiders, fork, release).
  • eventDate (string): ISO 8601 UTC timestamp of scheduled or completed execution.
  • dateAdded (string): ISO 8601 UTC timestamp when the event was recorded.
  • daysUntil (integer): Relative days from execution time (positive for future, negative for past).
  • daysAgo (integer): Absolute days elapsed for historical records.
  • description (string): Contextual technical summary of the catalyst.
  • sourceUrl (string): Canonical reference or proof URL.
  • impactAnalysis (object, optional): Computed quantitative metrics for past events.
  • extraMetadata (object, optional): Source-specific telemetry (market cap, tokenomics volume, dilution metrics).

Programmatic Integration

Python

from apify_client import ApifyClient
client = ApifyClient("YOUR_APIFY_TOKEN")
# Trigger Actor execution
run = client.actor("egsand/crypto-calendar-scraper").call(
run_input={
"source": "all",
"coins": ["TIA", "SOL"],
"daysAhead": 30,
"daysBack": 7,
"maxEvents": 100
}
)
# Stream dataset items
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(f"[{item['status'].upper()}] {item['eventDate']} | {item['title']}")
if item.get("impactAnalysis"):
print(f" Impact: {item['impactAnalysis']['outcome']}")

Node.js / TypeScript

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({
token: 'YOUR_APIFY_TOKEN',
});
const run = await client.actor('egsand/crypto-calendar-scraper').call({
source: 'defillama',
daysAhead: 14,
maxEvents: 50,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(`Retrieved ${items.length} catalysts:`);
items.forEach((item) => {
console.log(`${item.eventDate} - ${item.title}`);
});

cURL (Synchronous REST API)

curl --request POST \
--url 'https://api.apify.com/v2/acts/egsand~crypto-calendar-scraper/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN' \
--header 'Content-Type: application/json' \
--data '{
"source": "all",
"daysAhead": 30,
"maxEvents": 50
}'