Crypto Calendar Scraper
Pricing
from $0.50 / 1,000 results
Crypto Calendar Scraper
Pricing
from $0.50 / 1,000 results
Rating
0.0
(0)
Developer
Enrique G.
Maintained by CommunityActor 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.
- Forward Analysis (
- 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).
- Spot price at the exact execution timestamp (
- For historical token unlocks, the scraper computes:
- 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.
- Filter by specific coin tickers (e.g.
Input Parameters
| Parameter | Type | Default | Required | Description |
|---|---|---|---|---|
source | String | "all" | No | Target data source: "all", "defillama", or "coindar". |
coins | Array<String> | [] | No | List of asset symbols to filter (e.g. ["BTC", "ETH", "TIA"]). When empty, queries all tracked assets. |
categories | Array<String> | [] | No | Catalyst categories to include (e.g. ["tokenomics", "fork", "release", "listing"]). Empty matches all categories. |
daysAhead | Integer | 60 | No | Number of future days to search for upcoming events (relative to UTC execution time). |
daysBack | Integer | 0 | No | Number of past days to inspect for historical events and calculate price impact metrics. |
maxEvents | Integer | 50 | No | Maximum number of records returned and pushed to the dataset. |
coindarApiToken | String | "" | No | Optional Coindar API v2 access token for high-rate direct querying. |
proxyConfiguration | Object | {} | No | Optional 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 (defillamaorcoindar).status(string): Temporal status (upcomingorpast).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 ApifyClientclient = ApifyClient("YOUR_APIFY_TOKEN")# Trigger Actor executionrun = client.actor("egsand/crypto-calendar-scraper").call(run_input={"source": "all","coins": ["TIA", "SOL"],"daysAhead": 30,"daysBack": 7,"maxEvents": 100})# Stream dataset itemsfor 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}'