Page
Library
Module
Module type
Parameter
Class
Class type
Source
OCaml client for the FXMacroData API — official-source forex and macroeconomic data: central-bank announcements, macroeconomic indicator time series, economic release calendars, CFTC Commitment of Traders positioning, commodities, and FX spot-rate history across 18 catalogue currencies (AUD, BRL, CAD, CHF, CNH, CNY, DKK, EUR, GBP, ILS, JPY, NGN, NOK, NZD, PEN, SEK, THB, USD).
opam install fxmacrodatalet () =
let client = Fxmacrodata.create () in
match
Lwt_main.run
(Fxmacrodata.macro_indicator client ~currency:"usd"
~indicator:"inflation_rate" ~start_date:"2026-01-01" ())
with
| Ok rows -> Printf.printf "Fetched %d rows\n" (List.length rows)
| Error e -> prerr_endline (Fxmacrodata.Error.to_string e)Run the bundled example:
dune exec examples/latest_announcements.exeFree-tier endpoints work without a key. For keyed access, pass the key explicitly or set an environment variable — resolution order is ~api_key argument, then FXMACRODATA_API_KEY, then FXMD_API_KEY:
let client = Fxmacrodata.create ~api_key:"YOUR_KEY" ()The key is sent as an X-API-Key header by default; use ~auth_mode:Fxmacrodata.Query to send it as an api_key query parameter instead.
Typed helpers (all return (_, Fxmacrodata.Error.t) result Lwt.t; dates are YYYY-MM-DD strings):
Function | Endpoint |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Any other endpoint of the public API is reachable through the generic escape hatch:
Fxmacrodata.get_json client ~path:"/v1/market_sessions" ()get_data is the same but returns the top-level data array of the response, which is the shape most time-series endpoints use.
Start with data_catalogue to discover the exact indicator slugs available for a currency.
opam install . --deps-only --with-test
dune build
dune testTests run fully offline against an injected stub HTTP function.
MIT