API Documentation
Economic Calendar REST API - Get real-time economic news with AI-powered analysis for traders.
Overview
Forex Calendar Pro provides real-time economic calendar data scraped from financial sources, with optional AI-powered analysis for traders. The API supports multiple timezones, impact filtering, and intelligent caching.
Base URL
https://api.forex-calendar.proTelegram Notifications
Pro users can receive a daily digest of economic news via Telegram before the trading day starts.
Find the bot
Search for @ForexCalendarProBot on Telegram
Get your ID
Send /start to the bot
Save your ID
Enter your Telegram ID in the application dashboard and save
Configure
From the dashboard: enable Telegram notifications and choose the types of announcements you want to receive
Enjoy
Receive your daily briefing and list of economic announcements every day
Authentication
Use the X-API-Key header to authenticate requests:
curl -H "X-API-Key: your_api_key" https://api.forex-calendar.pro/api/announcementsTo get your API key, go to the dashboard
DashboardPlans & Access Levels
| Feature | Free | Basic | Pro |
|---|---|---|---|
| /api/announcements (NY TZ) | |||
| /api/announcements (All TZ) | |||
| /api/announcements/week | |||
| /api/account/usage | |||
| /api/briefing/daily | |||
| /api/announcements/analyze | |||
| /api/notifications/settings | |||
| Telegram Daily Digest | |||
| AI Response Language | — | — |
Endpoints
/Returns API information and available endpoints.
/api/announcementsGet today's economic news with impact filtering.
/api/announcements/weekFree+Get all news for the current week.
/api/briefing/dailyProGet an AI-generated daily briefing for traders.
/api/announcements/analyzeProGet AI analysis of a specific economic news item.
/api/account/usageFree+Get your account usage and rate limit status.
/api/notifications/settingsBasic+Get or update your notification preferences.
/api/healthHealth check endpoint.
GET /api/announcements
Get today's economic news.
| Parameter | Type | Default | Description |
|---|---|---|---|
impact | string | high,medium | Filter by impact level |
tz | string | ny | Timezone code (Pro only) |
{
"lastUpdated": "2025-12-23T10:30:00.000Z",
"eventsCount": 5,
"timezone": "Paris",
"events": [
{
"date": "Mon Dec 23",
"time": "2:30pm",
"currency": "USD",
"impact": "high",
"event": "GDP q/q",
"actual": "2.1%",
"forecast": "2.0%",
"previous": "1.8%",
"originalTime": "8:30am",
"timezone": "Paris"
}
]
}GET /api/announcements/week
Get all news for the current week. Requires Free plan or higher.
| Parameter | Type | Default | Description |
|---|---|---|---|
impact | string | all | Filter by impact level |
Response format is the same as /api/announcements
{
"lastUpdated": "2025-12-25T15:02:57.863Z",
"eventsCount": 3,
"timezone": "New York",
"events": [
{
"date": "Tue Dec 23",
"time": "8:30am",
"currency": "CAD",
"impact": "high",
"event": "GDP m/m",
"actual": "-0.3%",
"forecast": "-0.3%",
"previous": "0.2%",
"originalTime": "8:30am",
"timezone": "New York"
},
{
"date": "Tue Dec 23",
"time": "8:30am",
"currency": "USD",
"impact": "high",
"event": "Prelim GDP q/q",
"actual": "4.3%",
"forecast": "3.3%",
"previous": "3.8%",
"originalTime": "8:30am",
"timezone": "New York"
},
{
"date": "Wed Dec 24",
"time": "8:30am",
"currency": "USD",
"impact": "high",
"event": "Unemployment Claims",
"actual": "214K",
"forecast": "224K",
"previous": "224K",
"originalTime": "8:30am",
"timezone": "New York"
}
]
}GET /api/briefing/daily
Get an AI-generated daily briefing for traders. Requires Pro plan.
| Timezones | AI Response Language |
|---|---|
| paris | French |
| frankfurt | German |
| london, ny, dubai, mumbai, singapore, sydney | English |
| tokyo | Japanese |
| hongkong | Chinese |
{
"date": "2025-12-25",
"eventsCount": 14,
"briefing": {
"summary": "A mixed bag of economic data today, with Japan's Housing Starts y/y surprising with a -8.5% decline...",
"key_events": [
"12:00am | JPY | LOW | Housing Starts y/y",
"6:50pm | JPY | LOW | Prelim Industrial Production m/m",
"6:50pm | JPY | LOW | Retail Sales y/y"
],
"market_movers": [
"JPY: Housing Starts y/y (-8.5%) deviated significantly from forecast (0.2%)",
"JPY: Prelim Industrial Production m/m and Retail Sales y/y may also have a significant impact"
],
"risk_windows": [
"6:50pm | JPY | LOW | Prelim Industrial Production m/m",
"6:50pm | JPY | LOW | Retail Sales y/y"
],
"currencies_in_focus": [
"JPY: Surprising economic data and bank holidays will impact JPY pairs",
"CHF: Bank holiday will lead to reduced trading volumes"
],
"recommendation": "Focus on JPY pairs and be cautious of potential market volatility...",
"volatility_forecast": "medium"
},
"events": [
{ "date": "Thu Dec 25", "time": "12:00am", "currency": "JPY", "impact": "low", "event": "Housing Starts y/y", "actual": "-8.5%", "forecast": "0.2%", "previous": "3.2%" },
{ "date": "Thu Dec 25", "time": "All Day", "currency": "CHF", "impact": "holiday", "event": "Bank Holiday", "actual": "", "forecast": "", "previous": "" },
{ "date": "Thu Dec 25", "time": "All Day", "currency": "EUR", "impact": "holiday", "event": "French Bank Holiday", "actual": "", "forecast": "", "previous": "" },
"..."
],
"language": "English",
"generatedAt": "2025-12-25T15:05:15.245Z"
}GET /api/announcements/analyze
Get AI analysis of a specific economic news item. Requires Pro plan.
| Parameter | Type | Required | Description |
|---|---|---|---|
| announcement | string | Yes | Today's news title (the 'announcement' field returned by /api/announcements) |
currency | string | No | Filter by currency |
tz | string | No | Timezone for language selection |
{
"announcement": {
"date": "Thu Dec 25",
"time": "All Day",
"currency": "EUR",
"impact": "holiday",
"event": "German Bank Holiday",
"actual": "",
"forecast": "",
"previous": ""
},
"analysis": {
"explanation": "A German Bank Holiday may cause reduced market liquidity and trading volumes in the EUR...",
"importance": "This announcement is important for Forex traders as it can impact EUR price movements.",
"scenarios": {
"above_forecast": "If the holiday results in a significant increase in economic activity, the EUR may strengthen...",
"below_forecast": "If the holiday leads to a decrease in economic activity, the EUR may weaken..."
},
"pairs_to_watch": ["EUR/USD", "EUR/GBP", "EUR/JPY", "EUR/CHF"],
"risk_level": "medium",
"trading_tip": "Consider scaling back positions or adjusting stop-loss levels ahead of the holiday..."
},
"language": "English",
"generatedAt": "2025-12-25T15:06:33.662Z"
}GET /api/account/usage
Get your account usage and rate limit status. Requires Free plan or higher.
{
"plan": "pro",
"email": "user@example.com",
"language": "en",
"telegramConfigured": true,
"usage": {
"requestsToday": 45,
"requestsLimit": 100,
"resetAt": "2025-12-23T11:00:00.000Z"
},
"createdAt": "2025-01-15T10:00:00.000Z",
"lastUsedAt": "2025-12-23T10:30:00.000Z"
}GET /api/notifications/settings
Get or update your notification preferences. Requires Basic plan or higher.
{
"telegramEnabled": true,
"telegramId": "123456789",
"impactLevels": ["high", "medium"],
"alertDelay": 15,
"language": "en"
}Timezones
| Code | City | UTC Offset |
|---|---|---|
| ny | New York (default) | -5 |
| paris | Paris | +1 |
| frankfurt | Frankfurt | +1 |
| london | London | +0 |
| dubai | Dubai | +4 |
| mumbai | Mumbai | +5:30 |
| singapore | Singapore | +8 |
| hongkong | Hong Kong | +8 |
| tokyo | Tokyo | +9 |
| sydney | Sydney | +11 |
Impact Levels
high
Major market-moving news (NFP, Interest Rates, GDP)
medium
Moderate impact news
low
Minor news with limited market impact
holiday
Bank holidays
Caching
| Cache | Duration | Invalidation |
|---|---|---|
| News (Today) | Until midnight | Cron at 5 AM UTC |
| News (Week) | Until Monday | Cron on Mondays at 5 AM UTC |
| AI Briefing | Daily | When new results are published |
| AI Analysis | Daily | Per announcement |
Error Responses
Daily Quotas
Each API key has a daily request quota based on your plan:
| Plan | Daily quota |
|---|---|
| Free | 100 requests/day |
| Basic | 2 000 requests/day |
| Pro | 5 000 requests/day |
Quota resets at midnight UTC. The Basic plan uses a shared key, so its quota is shared across all Basic users.
When the quota is exceeded, the API returns a 429 error:
{
"error": "Daily quota exceeded",
"message": "You have exceeded your daily quota of 100 requests (free plan). Quota resets at midnight UTC.",
"quota": {
"limit": 100,
"used": 100,
"plan": "free",
"resetsAt": "2026-07-21T00:00:00.000Z"
},
"upgrade": "https://forex-calendar.pro/upgrade"
}Every response includes quota headers:
X-RateLimit-Limit: 100
X-RateLimit-Remaining: 42
X-RateLimit-Reset: 2026-07-21T00:00:00.000ZUsage Examples
JavaScript (Fetch)
const response = await fetch('https://api.forex-calendar.pro/api/announcements?impact=high', {
headers: { 'X-API-Key': 'your_api_key' }
});
const data = await response.json();Python
import requests
headers = {'X-API-Key': 'your_api_key'}
response = requests.get(
'https://api.forex-calendar.pro/api/announcements',
params={'impact': 'high,medium'},
headers=headers
)
data = response.json()cURL
curl -H "X-API-Key: your_api_key" \
"https://api.forex-calendar.pro/api/announcements?impact=all"Need help? Contact us at wdltradingapi@gmail.com
Back to Home