Earnings Calendar Streaming

The Trading Economics API streaming endpoint can be used to receive live earnings calendar data utilizing a persistent web socket connection. Streaming data from the API consists of making an authorization request and leaving the socket open to continually receive data. You can authorize using your API client credentials (key/secret). Then you will be able to subscribe to our streaming channel.

Get live earnings

import tradingeconomics as te
import json
te.login('you_private_key')

def on_message(ws, message):
    print(json.loads(message))

te.subscribe('earnings')
te.run(on_message)

Clone the repository

git clone https://github.com/tradingeconomics/tradingeconomics-js

Access the folder

cd tradingeconomics-js/Examples/stream-nodejs/

Install dependencies

npm install

In app.js file, set-up your client key and secret. Then subscribe to earnings calendar.

Client = new te_client({
    url: 'wss://stream.tradingeconomics.com/',
    key: 'API_CLIENT_KEY', // <--
    secret: 'API_CLIENT_SECRET' // <--
    //reconnect: true
});

Client.subscribe('earnings')
using System.Net.WebSockets;
using System.Text;

try
{
    using (var cws = new ClientWebSocket())
    {
        await cws.ConnectAsync(new Uri($"wss://stream.tradingeconomics.com/?client='your_private_key'"), CancellationToken.None);

        if (cws.State == WebSocketState.Open)
        {
            var buffer = new ArraySegment<byte>(Encoding.UTF8.GetBytes(@"{""topic"": ""subscribe"", ""to"": """ + "earnings" + @""" }"));
            await cws.SendAsync(buffer, WebSocketMessageType.Binary, true, CancellationToken.None);
        }

        await Task.Delay(1024);

        while (cws.State == WebSocketState.Open)
        {
            var buffer = new ArraySegment<byte>(new byte[1024]);
            var result = await cws.ReceiveAsync(buffer, CancellationToken.None);
            if (result.MessageType == WebSocketMessageType.Close)
            {
                await cws.CloseAsync(WebSocketCloseStatus.NormalClosure, string.Empty, CancellationToken.None);
            }

            Console.WriteLine($"Receiving: {Encoding.UTF8.GetString(buffer.Array, 0, result.Count).Trim()}");
        }
    }
}
catch (Exception e)
{
    Console.WriteLine($"Error with message: {e.Message}");
}
{"event":"Aena Earnings","country":"Spain","category":"Earnings","actual":"2.33","previous":"2.68","date":"2023-12-31T00:00:00.000Z","fiscalTag":"FY2023Q4                 ","fiscalReference":"Q4","calendarReference":"2023-12-31T00:00:00.000Z","importance":2,"teforecast":"2.42","consensus":"2.42","currency":"EUR","symbol":"AENA:SM","topic":"earnings"}'

Response fields

FieldTypeDescriptionExample
eventstringName of the earnings event“Aena Earnings”
countrystringCountry of the company“Spain”
categorystringType of release (e.g., Earnings, Revenue)“Earnings”
actualstringReported value for the current period“2.33”
previousstringValue from the prior period (revised if applicable)“2.68”
datestringRelease date and time in UTC“2023-12-31T00:00:00.000Z”
FiscalTagstringFiscal year and quarter identifier“FY2023Q4”
FiscalReferencestringFiscal period in short format“Q4”
CalendarReferencestringCalendar quarter end date in UTC“2023-12-31T00:00:00.000Z”
importancenumberIndicator of importance: 1 = low, 2 = medium, 3 = high2
teforecaststringTrading Economics proprietary projection“2.42”
consensusstringConsensus forecast from analysts“2.42”
currencystringCurrency of reported values“EUR”
symbolstringUnique Trading Economics symbol“AENA:SM”
topicstringSubscribed topic identifier“earnings”