Skip to content

Add FXMacroData release-calendar integration - #90

Open
roberttidball wants to merge 3 commits into
LLMQuant:masterfrom
roberttidball:agent/add-fxmacrodata-integration-20260708
Open

Add FXMacroData release-calendar integration#90
roberttidball wants to merge 3 commits into
LLMQuant:masterfrom
roberttidball:agent/add-fxmacrodata-integration-20260708

Conversation

@roberttidball

Copy link
Copy Markdown

Summary

  • add a read-only FXMacroData integration for official-source macro release-calendar data
  • use the public https://fxmacrodata.com/api/v1/calendar/{currency} endpoint with optional FXMACRODATA_API_KEY
  • support event-risk workflows by exposing release names, dates, timestamps, market tiers, and source metadata

Validation

  • git diff --check
  • Python helpers: python -m py_compile on changed .py files where applicable
  • TypeScript repos: native build/type checks where applicable
  • Live smoke: FXMacroData USD calendar helper returned a locally limited set of public top-tier rows

Note: R is not installed in this local environment, so R package changes were reviewed but not executed with R CMD check.

@keli-wen keli-wen added type: feature Adds a new capability or observable behavior area: preprocess Deterministic acquisition, parsing, cleaning, and source handling impact: live-network Changes or depends on real public-network behavior or smoke tests labels Jul 14, 2026
roberttidball and others added 3 commits August 26, 2026 12:32
Switches the base URL from the undocumented fxmacrodata.com/api/v1
alias to the published api.fxmacrodata.com/v1 host, so the client
matches the public API reference.
The fetch layer documents that every function is async and returns a frozen
dataclass, leaving interpretation to the format layer. This fetcher returned
the raw JSON dict instead, so it did not satisfy that contract.

It now returns a frozen RawCalendar holding frozen CalendarRelease rows,
matching how fetch_rss_feed returns RawFeed and FeedItem. The response
envelope (currency, timezone, data quality) is preserved as metadata so the
format layer does not need a second request.

Row fields now match the documented calendar response: release, name,
announcement_datetime_utc, announcement_datetime_local,
release_date_confirmed, event_importance, market_tier, source and source_url.

The API key is sent as the X-API-Key header rather than a query parameter,
so it is not captured in request or proxy access logs.
@roberttidball
roberttidball force-pushed the agent/add-fxmacrodata-integration-20260708 branch from 546637d to ee69ce8 Compare August 26, 2026 02:35
@roberttidball
roberttidball marked this pull request as ready for review August 26, 2026 02:42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area: preprocess Deterministic acquisition, parsing, cleaning, and source handling impact: live-network Changes or depends on real public-network behavior or smoke tests type: feature Adds a new capability or observable behavior

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants