Skip to content

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

FXMacroData SDK for Go

Client for the FXMacroData API: macroeconomic announcements with release timestamps, release calendars, FX reference rates, rate differentials, yield curves, COT positioning and commodities, sourced from central banks and statistics offices across 22 currencies.

USD endpoints work without an API key. Other currencies need a subscription.

Install

go get github.com/fxmacrodata/fxmacrodata-go

Quickstart

// Quickstart: latest US policy rate, release calendar and catalogue.
// USD works without a key; set FXMACRODATA_API_KEY for other currencies.
package main

import (
	"context"
	"fmt"
	"os"

	fxmacrodata "github.com/fxmacrodata/fxmacrodata-go"
)

func main() {
	client := fxmacrodata.NewAPIClient(fxmacrodata.NewConfiguration())
	ctx := context.Background()
	if key := os.Getenv("FXMACRODATA_API_KEY"); key != "" {
		ctx = context.WithValue(ctx, fxmacrodata.ContextAPIKeys, map[string]fxmacrodata.APIKey{
			"APIKeyHeader": {Key: key},
		})
	}

	rates, _, err := client.FXMacroDataAPI.GetAnnouncements(ctx, "USD", "policy_rate").Execute()
	if err != nil {
		fmt.Fprintln(os.Stderr, "announcements:", err)
		os.Exit(1)
	}
	if len(rates.Data) == 0 {
		fmt.Fprintln(os.Stderr, "announcements: no observations returned")
		os.Exit(1)
	}
	latest := rates.Data[0]
	fmt.Printf("USD policy rate: %.2f on %s\n", latest.GetVal(), latest.Date)

	if _, _, err := client.FXMacroDataAPI.GetCalendar(ctx, "USD").Execute(); err != nil {
		fmt.Fprintln(os.Stderr, "calendar:", err)
		os.Exit(1)
	}

	catalogue, _, err := client.FXMacroDataAPI.GetDataCatalogue(ctx, "USD").Execute()
	if err != nil {
		fmt.Fprintln(os.Stderr, "catalogue:", err)
		os.Exit(1)
	}
	fmt.Printf("USD catalogue: %d indicators\n", len(*catalogue))
}

The same file is in this repository at examples/quickstart/main.go.

Authentication

The key is sent in the X-API-Key header and never in the URL. The quickstart reads it from the FXMACRODATA_API_KEY environment variable.

API reference

All URIs are relative to https://api.fxmacrodata.com

Class Method HTTP request Description
FXMacroDataAPI GetAnnouncementChanges Get /v1/announcements/changes Poll recent live announcement release changes
FXMacroDataAPI GetAnnouncements Get /v1/announcements/{currency}/{indicator} Get macroeconomic indicator data
FXMacroDataAPI GetCalendar Get /v1/calendar/{currency} Get upcoming economic data release dates
FXMacroDataAPI GetCommodities Get /v1/commodities/{indicator} Get commodity indicator data
FXMacroDataAPI GetCot Get /v1/cot/{currency} Get CFTC Commitment of Traders (COT) data
FXMacroDataAPI GetCurves Get /v1/curves/{currency} Get curve analytics by currency
FXMacroDataAPI GetDataCatalogue Get /v1/data_catalogue/{currency} Get Currently Available Macroeconomic Indicators
FXMacroDataAPI GetFactor Get /v1/factors/{currency}/{factor} Get a precomputed FX factor for one currency
FXMacroDataAPI GetFinancialPrices Get /v1/financial_prices/{currency} Official financial prices and yield curves
FXMacroDataAPI GetForex Get /v1/forex/{base}/{quote} Get FX spot rates
FXMacroDataAPI GetFxIntradayReferenceRates Get /v1/fx/intraday-reference-rates/{base}/{quote} Get subscriber intraday FX reference rates
FXMacroDataAPI GetFxReferenceRates Get /v1/fx/reference-rates/{base}/{quote} Get timestamped official FX reference rates
FXMacroDataAPI GetFxSessionRates Get /v1/fx/session-rates/{base}/{quote} Get official FX session-close reference rates
FXMacroDataAPI GetFxSourceUniverse Get /v1/fx/source-universe List public FX reference-rate pair universe
FXMacroDataAPI GetFxSources Get /v1/fx/sources List public FX reference-rate sources
FXMacroDataAPI GetHealth Get /v1/health Ping the API
FXMacroDataAPI GetLatestAnnouncements Get /v1/announcements/{currency}/latest Get latest values for all indicators in a currency
FXMacroDataAPI GetLatestCommodities Get /v1/commodities/latest Get latest values for all commodity indicators
FXMacroDataAPI GetMarketSessions Get /v1/market_sessions FX market session timetable
FXMacroDataAPI GetPredictionCoverage Get /v1/predictions/coverage Which forecast publishers cover which currency (no API key)
FXMacroDataAPI GetPredictionCoverageForCurrency Get /v1/predictions/coverage/{currency} Per-indicator forecast coverage for one currency (no API key)
FXMacroDataAPI GetPredictions Get /v1/predictions/{currency}/{indicator} List predictions for one indicator of a currency
FXMacroDataAPI GetPressReleases Get /v1/press-releases/{currency} Recent central bank press releases
FXMacroDataAPI GetRateDifferentials Get /v1/rate_differentials/{base}/{quote} Get pair rate differentials
FXMacroDataAPI GetRiskSentiment Get /v1/risk_sentiment Global risk-on / risk-off indicator
FXMacroDataAPI Ping Get /v1/ping Ping the API
FXMacroDataAPI ResearchPanel Post /v1/research/panel Build a panel of values known at each decision time

Documentation For Models

Versioning

This client is generated from the FXMacroData OpenAPI specification, so it tracks the API one to one. Report problems at https://github.com/fxmacrodata/fxmacrodata-go/issues.

Licence

MIT

Releases

Packages

Used by

Contributors