curl --request GET \
--url https://api.qfex.com/calendarimport requests
url = "https://api.qfex.com/calendar"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://api.qfex.com/calendar', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.qfex.com/calendar",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.qfex.com/calendar"
req, _ := http.NewRequest("GET", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.qfex.com/calendar")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.qfex.com/calendar")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body{
"earnings": [
{
"body": "<string>",
"eps_actual": 123,
"eps_estimate": 123,
"id": "<string>",
"metadata": {},
"report_date": "2023-12-25",
"revenue_actual": 123,
"revenue_estimate": 123,
"symbol": "<string>",
"title": "<string>"
}
],
"economic": {
"events": [
{
"actual": "<unknown>",
"consensus": "<unknown>",
"country": "<string>",
"data_stale": true,
"date": "2023-12-25",
"id": "<string>",
"impact": "<string>",
"last_verified_at": "<string>",
"name": "<string>",
"period": "<string>",
"prior": "<unknown>",
"release_at_utc": "2023-11-07T05:31:56Z",
"release_stage": "<string>",
"series_code": "<string>",
"source_name": "<string>",
"source_url": "<string>",
"status": "<string>",
"unit": "<string>",
"url": "<string>"
}
],
"fetchedAt": "2023-11-07T05:31:56Z",
"stale": true
},
"$schema": "https://api.qfex.com/contracts/2026-10-30/schemas/CalendarData.json"
}{
"$schema": "https://api.qfex.com/contracts/2026-10-30/schemas/ErrorModel.json",
"detail": "Property foo is required but is missing.",
"errors": [
{
"location": "<string>",
"message": "<string>",
"value": "<unknown>"
}
],
"instance": "https://example.com/error-log/abc123",
"status": 400,
"title": "Bad Request",
"type": "https://example.com/errors/example"
}Earnings and Economic Calendar
Return company earnings and economic events for an inclusive date range of up to 93 days. No authentication is required. Earnings use report dates; economic events use their stored calendar dates. For timezone-aware weekly displays, include one extra date on either side and group exact release timestamps in the desired timezone. Unknown release times remain null. Economic sync freshness is returned separately from earnings. Earnings metadata omits source attribution fields, including nested release-time sources. Pin api_version=2026-10-29 to retain the historical metadata.
curl --request GET \
--url https://api.qfex.com/calendarimport requests
url = "https://api.qfex.com/calendar"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://api.qfex.com/calendar', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.qfex.com/calendar",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.qfex.com/calendar"
req, _ := http.NewRequest("GET", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.qfex.com/calendar")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.qfex.com/calendar")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body{
"earnings": [
{
"body": "<string>",
"eps_actual": 123,
"eps_estimate": 123,
"id": "<string>",
"metadata": {},
"report_date": "2023-12-25",
"revenue_actual": 123,
"revenue_estimate": 123,
"symbol": "<string>",
"title": "<string>"
}
],
"economic": {
"events": [
{
"actual": "<unknown>",
"consensus": "<unknown>",
"country": "<string>",
"data_stale": true,
"date": "2023-12-25",
"id": "<string>",
"impact": "<string>",
"last_verified_at": "<string>",
"name": "<string>",
"period": "<string>",
"prior": "<unknown>",
"release_at_utc": "2023-11-07T05:31:56Z",
"release_stage": "<string>",
"series_code": "<string>",
"source_name": "<string>",
"source_url": "<string>",
"status": "<string>",
"unit": "<string>",
"url": "<string>"
}
],
"fetchedAt": "2023-11-07T05:31:56Z",
"stale": true
},
"$schema": "https://api.qfex.com/contracts/2026-10-30/schemas/CalendarData.json"
}{
"$schema": "https://api.qfex.com/contracts/2026-10-30/schemas/ErrorModel.json",
"detail": "Property foo is required but is missing.",
"errors": [
{
"location": "<string>",
"message": "<string>",
"value": "<unknown>"
}
],
"instance": "https://example.com/error-log/abc123",
"status": 400,
"title": "Bad Request",
"type": "https://example.com/errors/example"
}Query Parameters
First report/event date, inclusive (YYYY-MM-DD).
Last report/event date, inclusive. Maximum 93 days per request.
Published API contract date. Omit or use latest for the latest contract; explicit dates stay pinned. Applies to request validation and response format.
"2026-10-30"