News Calendar API Documentation

Last Updated: 02/07/2026 16:03 EST

Note: Due to a huge increase in traffic, free API usage has decreased to 1 request per day.

The Calendar API offers fast and free access to the latest Forex news events from a variety of sources, including MQL5, Forex Factory, and FxStreet. Users can retrieve data through GET requests or by utilizing our libraries.

To authenticate your GET requests, you must include your API key in the request header. You can generate and manage your API key via your profile. Additionally, you can monitor your API usage here.

Example Header:

{
  "Content-Type": "application/json",
  "Authorization": "Api-Key YOUR_API_KEY"
}
var request = URLRequest(url: URL(string: "https://www.jblanked.com/news/api/YOUR-END-POINT"))
request.addValue("Api-Key YOUR_API_KEY", forHTTPHeaderField: "Authorization")
request.addValue("application/json", forHTTPHeaderField: "Content-Type")
string headers = "Content-Type: application/json" + "\r\n" + "Authorization: Api-Key YOUR_API_KEY";

 

Rate Limit

Our API enforces a rate limit of one request per second to ensure service stability and fair usage.

Pricing and Credits

1 credit per premium use, otherwise free. Credits can be purchased via our billing page. You can monitor your API usage here.

Note: Charges will only occur if users have credits.

 

Full Library Access

Endpoints

Endpoint: https://www.jblanked.com/news/api/mql5/calendar/today/
List of today's events ordered by time from MQL5 source.

Optional URL Parameters:
- currency: USD, CAD, EUR, GBP, AUD, CHF, JPY, or NZD
- impact: High, Medium, Low, or None

Endpoint: https://www.jblanked.com/news/api/forex-factory/calendar/today/
List of today's events ordered by time from Forex Factory source.

Optional URL Parameters:
- currency: USD, CAD, EUR, GBP, AUD, CHF, JPY, or NZD
- impact: High, Medium, Low, or None

Endpoint: https://www.jblanked.com/news/api/fxstreet/calendar/today/
List of today's events ordered by time from FxStreet source.

Optional URL Parameters:
- currency: USD, CAD, EUR, GBP, AUD, CHF, JPY, or NZD
- impact: High, Medium, Low, or None

Endpoint: https://www.jblanked.com/news/api/mql5/calendar/week/
List of this week's events ordered by time from MQL5 source.

Optional URL Parameters:
- currency: USD, CAD, EUR, GBP, AUD, CHF, JPY, or NZD
- impact: High, Medium, Low, or None

Endpoint: https://www.jblanked.com/news/api/forex-factory/calendar/week/
List of this week's events ordered by time from Forex Factory source.

Optional URL Parameters:
- currency: USD, CAD, EUR, GBP, AUD, CHF, JPY, or NZD
- impact: High, Medium, Low, or None

Endpoint: https://www.jblanked.com/news/api/fxstreet/calendar/week/
List of this week's events ordered by time from FxStreet source.

Optional URL Parameters:
- currency: USD, CAD, EUR, GBP, AUD, CHF, JPY, or NZD
- impact: High, Medium, Low, or None

Endpoint: https://www.jblanked.com/news/api/mql5/calendar/range/
Parameters:
  • from - Start date (YYYY-MM-DD format)
  • to - End date (YYYY-MM-DD format)
  • currency - Currency (USD, CAD, EUR, GBP, AUD, CHF, JPY, or NZD) - Optional
  • impact - Impact (High, Medium, Low, or None) - Optional
Example: ?from=2025-09-17&to=2025-09-24&currency=USD&impact=High
Get events for a specific date range from MQL5 source.

Endpoint: https://www.jblanked.com/news/api/forex-factory/calendar/range/
Parameters:
  • from - Start date (YYYY-MM-DD format)
  • to - End date (YYYY-MM-DD format)
  • currency - Currency (USD, CAD, EUR, GBP, AUD, CHF, JPY, or NZD) - Optional
  • impact - Impact (High, Medium, Low, or None) - Optional
Example: ?from=2025-09-17&to=2025-09-24&currency=USD&impact=High
Get events for a specific date range from Forex Factory source.

Endpoint: https://www.jblanked.com/news/api/fxstreet/calendar/range/
Parameters:
  • from - Start date (YYYY-MM-DD format)
  • to - End date (YYYY-MM-DD format)
  • currency - Currency (USD, CAD, EUR, GBP, AUD, CHF, JPY, or NZD) - Optional
  • impact - Impact (High, Medium, Low, or None) - Optional
Example: ?from=2025-09-17&to=2025-09-24&currency=USD&impact=High
Get events for a specific date range from FxStreet source.

Example JSON Response:

{
  "Name": "Core CPI m/m",
  "Currency": "USD",
  "Category": "Consumer Inflation Report",
  "Impact": "High",
  "Date": "2024.02.08 15:30:00",
  "Actual": 0.4,
  "Forecast": 0.4,
  "Previous": 0.2,
  "Outcome": "Actual = Forecast > Previous",
  "Strength": "Strong Data",
  "Quality": "Bad Data"
}
{
  "Name": "Core CPI m/m",
  "Currency": "USD",
  "Category": "Consumer Inflation Report",,
  "Impact": "High",
  "Date": "2024.02.08 15:30:00",
  "Actual": 0.4,
  "Forecast": 0.4,
  "Previous": 0.2,
  "Outcome": "Actual = Forecast > Previous",
  "Strength": "Strong Data",
  "Quality": "Bad Data"
}
{
  "Name": "Core CPI m/m",
  "Currency": "USD",
  "Category": "Consumer Inflation Report",,
  "Impact": "High",
  "Date": "2024.02.08 15:30:00",
  "Actual": 0.4,
  "Forecast": 0.4,
  "Previous": 0.2,
  "Outcome": "Actual = Forecast > Previous",
  "Strength": "Strong Data",
  "Quality": "Bad Data"
}

Usage: GET Requests


import Dispatch
import Foundation

if let url = URL(string: "https://www.jblanked.com/news/api/mql5/calendar/today/") {
      let apiKey = "YOUR_API_KEY"
      var request = URLRequest(url: url)
      request.addValue("Api-Key \(apiKey)", forHTTPHeaderField: "Authorization")
      request.addValue("application/json", forHTTPHeaderField: "Content-Type")

      do {
        let (dataReturned, _) = try await URLSession.shared.data(for: request)

        let decoder = JSONDecoder()
        let newsList = try decoder.decode([HistoryData].self, from: dataReturned)
       
       print(newsList)

      } catch {
        print("Error has occurred: \(error)")
      }

    }

 struct HistoryData: Decodable, Hashable {
  var Date: String
  var Actual: Double
  var Forecast: Double
  var Previous: Double
  var Outcome: String

  private enum CodingKeys: String, CodingKey {
    case Date
    case Actual
    case Forecast
    case Previous
    case Outcome
  }

  init() {
    self.Date = ""
    self.Actual = 0.0
    self.Forecast = 0.0
    self.Previous = 0.0
    self.Outcome = ""
  }
}

#include <jb-news\\news.mqh>   // get from https://github.com/jblanked/MQL-Library
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
   CRequests request;
   request.url = "https://www.jblanked.com/news/api/mql5/calendar/today/";
   request.key = "YOUR_API_KEY";

   if(!request.GET())
     {
      Print("Failed to get data from the today endpoint");
      return INIT_FAILED;
     }
   
   // print result
   Print(request.result);

  // or do something with the json data
  string firstEventName = request.loader[0]["Name"].ToStr();
   
  return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+

import requests

url: str = "https://www.jblanked.com/news/api/mql5/calendar/today/"
headers = {
    "Content-Type": "application/json",
    "Authorization": f"Api-Key YOUR_API_KEY",
}
response = requests.get(url, headers=headers)

if response.status_code == 200:
    data = response.json()
    print(data)
    print(data[0]["Name"])
else:
    print(f"Error: {response.status_code}")
    print(response.json())

Usage: Library


import Dipsatch 
import Foundation
import JBNews

let yourAPIKey: String = "YOUR-API-KEY"
let newsModel: JBNews = JBNews(yourAPIKey)

Task {
    let calendar: [HistoryData] = await newsModel.calendar()
   
   print(calendar)
}

#include <jb-news\\news.mqh> 
CJBNews jb;

int OnInit(){
  jb.api_key = "API_KEY";
      
  jb.offset = 0; // GMT-3 = 0, GMT = 3, EST = 7, PST = 10

  jb.chart();

  return INIT_SUCCEEDED;
}

from jb_news.news import CJBNews 
jb = CJBNews()
api_key = "YOUR_API_KEY_HERE" 
jb.offset = 7  # GMT-3 = 0, GMT = 3, EST = 7, PST = 10
if jb.calendar(api_key,today=True):
    for event in jb.calendar_info:
        name = event.name
        currency = event.currency 
        event_id = event.eventID 
        category = event.category 
        impact = event.impact
        date = event.date 
        actual = event.actual
        forecast = event.forecast 
        previous = event.previous 
        outcome = event.outcome 
        strength = event.strength 
        quality = event.quality 

        # print the calendar info
        print(f"Event Name: {name}\nEvent ID: {event_id}\nCurrency: {currency}\nDate: {date}\nActual: {actual}\nForecast: {forecast}\nPrevious: {previous}")