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.
composer require fxmacrodata/fxmacrodata-php<?php
// Quickstart: latest US policy rate, release calendar and catalogue.
// USD works without a key; set FXMACRODATA_API_KEY for other currencies.
require_once __DIR__ . '/../vendor/autoload.php';
$config = FXMacroData\Configuration::getDefaultConfiguration();
$key = getenv('FXMACRODATA_API_KEY');
if ($key) {
$config->setApiKey('X-API-Key', $key);
}
$api = new FXMacroData\Api\FXMacroDataApi(new GuzzleHttp\Client(), $config);
$rates = $api->getAnnouncements('USD', 'policy_rate');
$latest = $rates->getData()[0] ?? null;
if ($latest === null) {
fwrite(STDERR, "no observations returned\n");
exit(1);
}
printf("USD policy rate: %s on %s\n", $latest->getVal(), $latest->getDate());
$api->getCalendar('USD');
$catalogue = $api->getDataCatalogue('USD');
printf("USD catalogue: %d indicators\n", count($catalogue));The same file is in this repository at examples/quickstart.php.
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.
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 |
- AnnouncementChangeEvent
- AnnouncementChangesResponse
- AnnouncementChangesScope
- AnnouncementDataPoint
- AnnouncementPredictions
- AnnouncementProvenance
- AnnouncementRemap
- AnnouncementResponse
- CBTargetEntry
- CBTargetInfo
- COTDataPoint
- COTFXOverlay
- COTPaginationInfo
- COTProvenance
- COTResponse
- CalendarReleaseRow
- CalendarResponse
- CatalogueCoverage
- CatalogueSeriesVariant
- CatalogueSupportedOptions
- CommoditiesLatestResponse
- CommodityCoverage
- CommodityCoverageSegment
- CommodityDataPoint
- CommodityLatestItem
- CommodityMissingWeekdayRange
- CommodityObservation
- CommodityResponse
- CurveAnalyticsResponse
- DataCatalogueItem
- DataQuality
- FactorDataPoint
- FactorResponse
- FinancialCoverage
- FinancialObservation
- FinancialPagination
- FinancialPriceResponse
- FinancialSource
- ForexDataPoint
- ForexPairMetadata
- ForexPointSource
- ForexProvenance
- ForexResponse
- FreemiumDelayNotice
- FreemiumWindow
- FxIntradayReferenceRatePoint
- FxIntradayReferenceRatesResponse
- FxReferencePoint
- FxReferenceResponse
- FxSessionRatePoint
- FxSessionRateResponse
- FxSource
- FxSourceLeg
- FxSourcePolicy
- FxSourceUniverseEntry
- FxSourceUniversePair
- FxSourceUniverseResponse
- FxSourcesResponse
- HTTPValidationError
- IndicatorPaginationInfo
- LatestAnnouncementItem
- LatestAnnouncementProvenance
- LatestAnnouncementValue
- LatestAnnouncementsProvenance
- LatestAnnouncementsResponse
- MarketSession
- MarketSessionOverlap
- MarketSessionsResponse
- OfficialForwardSourceSupport
- Pagination
- PointInTimeCompleteness
- PolicyFamilyEntry
- PredictionItem
- PredictionProvenance
- PredictionsResponse
- PressRelease
- PressReleaseRatePath
- PressReleasesResponse
- RateDifferentialPoint
- RateDifferentialResponse
- RateDifferentialSources
- RatePathMatch
- ReleaseDeliveryAnnouncement
- ReleaseTiming
- ResearchPanelRequest
- ResearchPanelResponse
- ResearchSeries
- RevisionEntry
- RiskSentimentAliases
- RiskSentimentComponentCoverage
- RiskSentimentComponentMetadata
- RiskSentimentPoint
- RiskSentimentResponse
- SelectedSeries
- SeriesFilters
- ServiceStatusResponse
- SourceProvenance
- ValidationError
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-php/issues.
MIT