Live release feed
Sub-second macro releases for FX backtests
Point-in-time history
Official CPI, jobs, GDP, and central-bank events with point-in-time history.
$25/month 14-day free trial
Start Free Trial
How To Query Fxmacrodata Via Graphql image
Share headline card X LinkedIn Email
Download

Implementation

How-To Guides

How To Query Fxmacrodata Via Graphql

Batch multiple indicator queries, discover the full data catalogue, and retrieve release calendars in a single HTTP round-trip using the FXMacroData GraphQL endpoint — with Python and JavaScript examples.

Auch verfügbar auf English
Share article X LinkedIn Email

Am Ende dieses Leitfadens können Sie alle makroökonomischen Indikatoren abfragen, den vollständigen Katalog der verfügbaren Daten entdecken und die bevorstehenden Veröffentlichungsdaten über die FXMacroData überprüfen. Endpunkt von GraphQL mit nichts mehr als curlSie werden auch wissen, wie Sie mehrere Abfragen in eine einzige Hin- und Rückreise bündeln können, damit Ihre Skripte schlank und schnell bleiben.

Voraussetzungen für den Einsatz

Voraussetzungen

  • - Das ist ein ... FXMacroData-API-Schlüssel USD-Indikatoren und der Datensatz sind kostenlos ohne Schlüssel; alle anderen Währungen benötigen einen Schlüssel. Die Daten werden von der Agentur für Datensicherheit erfasst.
  • curl (oder jeder HTTP-Client) für die ersten Testanrufe
  • Python 3.9+ mit dem requests Diepip install requests) für die Python-Beispiele
  • Node.js 18+ für die JavaScript-Beispiele
  • Grundlegende Kenntnisse der GraphQL-Abfrage-Syntax (Feldliste in lockigen Klammern)

Warum GraphQL statt REST?

Die FXMacroData REST API bedient jeden Indikator an seinem eigenen Endpunkt eine Hin- und Rückreise pro Währung/Indikatorkombination. GraphQL ermöglicht es Ihnen, genau die benötigten Felder zu deklarieren und mehrere unabhängige Abfragen in eine einzige HTTP-Anfrage zu kombinieren. und der Leitzins des GBP und Die Kommission hat die Kommission aufgefordert, die für beide Währungen anstehenden Veröffentlichungskalender zu ändern, d. h. eine POST statt vier GET-Anfragen zu erstellen.

Die GraphQL-Oberfläche spiegelt die öffentlichen REST-Endpunkte genau wider: dieselben Authentifizierungsregeln, dieselben Daten und dieselben Feldnamen nur über eine einzige POST /api/v1/graphql Endpunkt mit einem JSON-Körper.

- Das ist ein Info-Aufruf .

GraphQL-Endpunkt auf einen Blick

  • URL: https://fxmacrodata.com/api/v1/graphql
  • Verfahren: Nachrichten
  • Schreiber: ?api_key=YOUR_API_KEY Abfrageparameter
  • Inhaltstyp: application/json
  • Freier Zugang: USD-Indikatoren und dataCatalogue - Ich weiß . calendar (keinerlei Schlüssel erforderlich)
  • Abfragefelder: announcements- Ich weiß . dataCatalogue- Ich weiß . calendar

Schritt 1 Senden Sie Ihre erste GraphQL-Abfrage

Jede GraphQL-Anfrage ist ein JSON-Objekt mit einem query Start mit einer kostenlosen USD-Inflationsabfrage kein API-Schlüssel erforderlich:

curl -s -X POST "https://fxmacrodata.com/api/v1/graphql" \
  -H "Content-Type: application/json" \
  -d '{
    "query": "{ announcements(currency: \"USD\", indicator: \"inflation\") { currency indicator data { date val pctChange } } }"
  }'

Die Antwort ist ein Standard GraphQL JSON in einem data Umschlag:

{
  "data": {
    "announcements": {
      "currency": "USD",
      "indicator": "inflation",
      "data": [
        { "date": "2025-01-01", "val": 3.0, "pctChange": null },
        { "date": "2025-02-01", "val": 2.8, "pctChange": -6.67 },
        { "date": "2025-03-01", "val": 2.4, "pctChange": -14.29 }
      ]
    }
  }
}

Für jede andere Währung als USD fügen Sie Ihren API-Schlüssel als Abfrageparameter auf der Endpunkt-URL an:

https://fxmacrodata.com/api/v1/graphql?api_key=YOUR_API_KEY
Tipp-Aufruf .
Tipp: pctChange ist die Veränderung von Monat zu Monat (oder von Zeitraum zu Zeitraum) im Vergleich zum vorherigen Datenpunkt. null Denn es gibt keinen vorherigen Wert, mit dem man vergleichen kann.

Schritt 2 Entdecken Sie verfügbare Indikatoren mit dataCatalogue

Vor der Abfrage eines bestimmten Indikators können Sie die API fragen, welche Daten sie für jede Währung hat. dataCatalogue Die Abfrage gibt alle verfügbaren Indikatorschlümpfe, ihren menschlich lesbaren Namen, ihre Einheit, ihre Frequenz und die Frage zurück, ob die Zentralbank eine offizielle Prognose für sie veröffentlicht.

curl -s -X POST "https://fxmacrodata.com/api/v1/graphql" \
  -H "Content-Type: application/json" \
  -d '{
    "query": "{ dataCatalogue(currency: \"EUR\") { currency indicators { slug name unit frequency hasOfficialForecast } } }"
  }'

Beispiel für die Antwort (verkürzt):

{
  "data": {
    "dataCatalogue": {
      "currency": "EUR",
      "indicators": [
        { "slug": "inflation",    "name": "Inflation (CPI)", "unit": "%",    "frequency": "monthly",   "hasOfficialForecast": false },
        { "slug": "policy_rate",  "name": "Policy Rate",     "unit": "%",    "frequency": "irregular",  "hasOfficialForecast": true  },
        { "slug": "gdp",          "name": "GDP Growth",      "unit": "%",    "frequency": "quarterly", "hasOfficialForecast": false },
        { "slug": "unemployment", "name": "Unemployment",    "unit": "%",    "frequency": "monthly",   "hasOfficialForecast": false }
      ]
    }
  }
}

Die ... slug Die Werte sind die exakten Zeichenfolgen , die Sie als indicator Ich werde später weitermachen . announcements Sie können den vollständigen Indikatorkatalog interaktiv im Datendokumente der API- Ich weiß .


Schritt 3 Historische Daten mit optionalen Datumsfiltern abrufen

Die ... announcements Abfrage akzeptiert optional startDate Und ... endDate Argumente in YYYY-MM-DD Sie können auch das Zentralbankziel neben der Reihe anfordern, die nützlich ist, wenn Sie die Live-Lese gegen das offizielle Zinsziel vergleichen.

curl -s -X POST "https://fxmacrodata.com/api/v1/graphql?api_key=YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "query": "query { announcements(currency: \"AUD\", indicator: \"policy_rate\", startDate: \"2024-01-01\") { currency indicator hasOfficialForecast cbTarget { description current { effectiveFrom target } } data { date val announcementDatetime } } }"
  }'

Die Antwort zeigt:

{
  "data": {
    "announcements": {
      "currency": "AUD",
      "indicator": "policy_rate",
      "hasOfficialForecast": true,
      "cbTarget": {
        "description": "RBA cash rate target band",
        "current": { "effectiveFrom": "2023-11-07", "target": 4.35 }
      },
      "data": [
        { "date": "2024-02-06", "val": 4.35, "announcementDatetime": 1707199200 },
        { "date": "2024-03-19", "val": 4.35, "announcementDatetime": 1710813600 }
      ]
    }
  }
}

announcementDatetime ist ein Unix-Zeitstempel (Sekunden, UTC) der offiziellen Veröffentlichung. AUD-Leistungsdokumente- Ich weiß .


Schritt 4 Abfrage des Veröffentlichungskalenders

Die ... calendar Die Abfrage gibt die geplanten UTC-Ankündigungszeiten für jede kommende Indikatorveröffentlichung für eine bestimmte Währung zurück. indicator Die Ergebnisse sind auf einen Indikator beschränkt.

curl -s -X POST "https://fxmacrodata.com/api/v1/graphql?api_key=YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "query": "{ calendar(currency: \"GBP\", indicator: \"inflation\") { currency data { release announcementDatetime } } }"
  }'
{
  "data": {
    "calendar": {
      "currency": "GBP",
      "data": [
        { "release": "inflation", "announcementDatetime": 1745917200 }
      ]
    }
  }
}

Konvertieren . announcementDatetime zu einer für den Menschen lesbaren UTC-Zeit in Python mit datetime.utcfromtimestamp(1745917200), oder in JavaScript mit new Date(1745917200 * 1000).toISOString()Die Einzelheiten des GBP-Inflationsindicators finden Sie in der GBP-Inflationsaufschlüsse- Ich weiß .


Schritt 5 Mehrfache Abfragen in einer Anfrage

Der größte praktische Vorteil von GraphQL ist die Fähigkeit, mehrere unabhängige Abfragen in einem einzigen HTTP POST zu benennen und zu senden. data Antwortobjekt.

curl -s -X POST "https://fxmacrodata.com/api/v1/graphql?api_key=YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "query": "query MultiIndicator { eurInflation: announcements(currency: \"EUR\", indicator: \"inflation\") { currency indicator data { date val } } gbpRate: announcements(currency: \"GBP\", indicator: \"policy_rate\") { currency indicator data { date val } } audCalendar: calendar(currency: \"AUD\") { currency data { release announcementDatetime } } }"
  }'

Die Antwort enthält alle drei Ergebnisse in einer Nutzlast:

{
  "data": {
    "eurInflation": { "currency": "EUR", "indicator": "inflation", "data": [ ... ] },
    "gbpRate":      { "currency": "GBP", "indicator": "policy_rate", "data": [ ... ] },
    "audCalendar":  { "currency": "AUD", "data": [ ... ] }
  }
}
Tipp-Aufruf .
Tipp: Batching ist besonders wertvoll in serverlosen und Edge-Umgebungen, in denen die Verbindungsüberlast teuer ist. Ein POST ersetzt drei aufeinanderfolgende REST-Anrufe und die Antwort kommt nach einem einzigen DNS + TLS-Handshake.

Schritt 6 Python-Client

Das nachstehende Muster umhüllt GraphQL-Anfragen in einen kleinen Helfer, so dass Ihr Anwendungscode lesbar bleibt.

import requests

GRAPHQL_URL = "https://fxmacrodata.com/api/v1/graphql"
API_KEY = "YOUR_API_KEY"   # leave empty for free USD/catalogue endpoints

def gql(query: str) -> dict:
    """Send a GraphQL query and return the parsed `data` object."""
    params = {"api_key": API_KEY} if API_KEY else {}
    resp = requests.post(
        GRAPHQL_URL,
        params=params,
        json={"query": query},
        headers={"Content-Type": "application/json"},
        timeout=15,
    )
    resp.raise_for_status()
    payload = resp.json()
    if "errors" in payload:
        raise RuntimeError(f"GraphQL errors: {payload['errors']}")
    return payload["data"]


# ── Discover indicators for AUD ──────────────────────────────────────────────
catalogue = gql('{ dataCatalogue(currency: "AUD") { indicators { slug name frequency } } }')
for ind in catalogue["dataCatalogue"]["indicators"]:
    print(f"  {ind['slug']:25s}  {ind['name']}  ({ind['frequency']})")

# ── Fetch EUR inflation + GBP policy rate in one round-trip ─────────────────
batch = gql('''
query {
  eurInflation: announcements(currency: "EUR", indicator: "inflation") {
    currency indicator data { date val pctChange }
  }
  gbpRate: announcements(currency: "GBP", indicator: "policy_rate") {
    currency indicator data { date val }
  }
}
''')

eur_latest = batch["eurInflation"]["data"][-1]
gbp_latest = batch["gbpRate"]["data"][-1]
print(f"EUR CPI   {eur_latest['date']}: {eur_latest['val']}%  ({eur_latest['pctChange']:+.2f}% MoM)")
print(f"GBP Rate  {gbp_latest['date']}: {gbp_latest['val']}%")

Schritt 7 JavaScript / Node.js-Client

Der Einheimische . fetch Die API (Node.js 18+) verarbeitet GraphQL-Anfragen mit minimalem Boilerplate. Das Muster spiegelt den Python-Helfer oben wider.

const GRAPHQL_URL = "https://fxmacrodata.com/api/v1/graphql";
const API_KEY = "YOUR_API_KEY"; // set to "" for free USD/catalogue endpoints

async function gql(query) {
  const url = API_KEY ? `${GRAPHQL_URL}?api_key=${API_KEY}` : GRAPHQL_URL;
  const resp = await fetch(url, {
    method: "POST",
    headers: { "Content-Type": "application/json" },
    body: JSON.stringify({ query }),
  });
  if (!resp.ok) throw new Error(`HTTP ${resp.status}`);
  const payload = await resp.json();
  if (payload.errors) throw new Error(JSON.stringify(payload.errors));
  return payload.data;
}

// Batched query: EUR inflation + calendar
const data = await gql(`
  query {
    eurInflation: announcements(currency: "EUR", indicator: "inflation") {
      data { date val pctChange }
    }
    eurCalendar: calendar(currency: "EUR", indicator: "inflation") {
      data { release announcementDatetime }
    }
  }
`);

const latest = data.eurInflation.data.at(-1);
const nextRelease = data.eurCalendar.data[0];

console.log(`EUR CPI ${latest.date}: ${latest.val}% (${latest.pctChange > 0 ? "+" : ""}${latest.pctChange?.toFixed(2)}% MoM)`);
if (nextRelease) {
  const dt = new Date(nextRelease.announcementDatetime * 1000).toISOString();
  console.log(`Next EUR inflation release: ${dt}`);
}

Schritt 8 Fehler mit Anmut behandeln

GraphQL gibt HTTP 200 zurück, auch wenn ein Abfragefeld fehlschlägt. errors Sie werden neben irgendeinem Teil angeordnet. data Überprüfen Sie, ob dieses Array vor der Verwendung der Antwort ein fehlgeschlagener Alias in einer gepachteten Abfrage die anderen Aliases nicht daran hindert, Daten zurückzugeben.

payload = resp.json()

# Partial success: some aliases may have data, others may have errors
if "errors" in payload:
    for err in payload["errors"]:
        print(f"[GraphQL error] {err.get('message')} — path: {err.get('path')}")

data = payload.get("data") or {}
if "eurInflation" in data and data["eurInflation"]:
    process(data["eurInflation"])
- Das ist ein Info-Aufruf .
Häufige Fehler:
  • Nicht unterstützte Währung die errors Das Array enthält eine Nachricht wie "Nicht unterstützte Währung: XYZ"Überprüfen Sie Ihren Währungscode mit dem API-Dokumentation- Ich weiß .
  • Nicht gültiger Indikator laufen dataCatalogue Erstmals eine Abfrage, um zu bestätigen, dass die Indikator-Slug für Ihre Zielwährung existiert.
  • Fehler bei der Authentifizierung HTTP 401 oder GraphQL-Fehler, der einen ungültigen Schlüssel anführt. api_key wird der URL beigefügt, nicht dem JSON-Body.

Zusammenfassung .

Was Sie erreicht haben

  • ✓ Ihre erste GraphQL-Abfrage an https://fxmacrodata.com/api/v1/graphql
  • ✓ Verwendet dataCatalogue um jeden verfügbaren Indikator für eine Währung zu entdecken
  • ✓ Filterte historische Daten mit ✓ startDate Und ... endDate Argumente
  • ✓ Erhaltene Zeitstempel für die bevorstehende Veröffentlichung mit der ✓ calendar Abfrage
  • ✓ Mehrfache unabhängige Abfragen in einem einzigen HTTP POST mit benannten Aliasen zusammengefasst
  • ✓ Eingebettete wiederverwendbare GraphQL-Helferfunktionen in Python und JavaScript
  • ✓ Teilfehler behandelt, ohne gültige Daten aus anderen Aliasen zu entfernen

Nächste Schritte

Jetzt, da Sie den GraphQL-Endpunkt fließend abfragen können, werden einige natürliche Erweiterungen Ihre Integration produktionsbereit machen:

  • Planen Sie Abfragen um die Freigabezeiten. Kombinieren Sie die calendar Die Datenbank wird in der Regel mit dem in Wie man die Release Calendar API verwendet, um Indikator-Abrufe zu planen wachst kurz vor jeder Ankündigung auf und feuern du deinen announcements Die Daten werden in dem Moment abgerufen, in dem neue Daten veröffentlicht werden.
  • Entdecken Sie das gesamte Schema interaktiv. Wenn Sie Zugang zu einer Entwicklungsumgebung mit ENABLE_GRAPHIQL=true- Ich bin nicht hier . /api/v1/graphql Sie können die integrierte GraphiQL IDE mit automatischer Ausfüllung und Inline-Dokumentation für jedes Feld verwenden.
  • Erweitern Sie Ihre Abdeckung auf mehr Währungen. Lauf . dataCatalogue für jede der unterstützten Währungen USD, EUR, GBP, AUD, CAD, JPY, CHF und NZD um ein vollständiges Bild davon zu erhalten, welche Daten im gesamten G8-Flex-Universum verfügbar sind.

Das FXMacroData Team

Blogroll

AI Answer-Ready

Key Facts

Page
How To Query FXmacrodata Via Graphql
Section
Articles
Canonical URL
https://fxmacrodata.com/de/artikel/how-to-query-fxmacrodata-via-graphql
Source
FXMacroData editorial and official publisher references
Last Updated
2026-06-15 11:01 UTC

Provenance And Trust

Cite the canonical URL and source field above. Where available, this page maps to official publisher releases and timestamped updates.

Quick Q&A

What is this page about? This page explains How To Query FXmacrodata Via Graphql with directly usable context for trading, research, and API workflows.

What source should be cited? Use the canonical URL and the listed source field; cite official publisher references when available.

How fresh is this content? The last updated value above reflects the page metadata or latest available data timestamp.

Can this be used in AI assistants? Yes. This section is intentionally structured for retrieval and citation in chat assistants.

Prompt Packs

Use these in ChatGPT, Claude, Gemini, Mistral, Perplexity, or Grok for consistent source-aware outputs.