Zurück zum Blog

Woher beziehen Wechselkurs-APIs ihre Daten? (Und warum sie sich unterscheiden)

V
Vlado Grigirov
August 15, 2026
Currency API Exchange Rates FX Data API Integration Finexly Developer Guide

Fragen Sie fünf verschiedene Dienste jetzt sofort nach dem EUR/USD-Kurs, und Sie erhalten fünf leicht unterschiedliche Zahlen. Nicht dramatisch unterschiedlich – aber unterschiedlich in der vierten Nachkommastelle, manchmal in der dritten. Wenn Ihr Finanzteam jemals ein Ticket eröffnet hat, weil der Checkout 1,0847 anzeigte, während der Kontoauszug 1,0821 sagt, wissen Sie bereits: Das ist keine akademische Frage.

Also: Woher beziehen Wechselkurs-APIs ihre Daten? Die ehrliche Antwort lautet, dass keine API den Wechselkurs „kennt", weil es keinen einzelnen Wechselkurs zu kennen gibt. Der Devisenmarkt ist ein außerbörslicher Markt ohne zentrale Börse und ohne Schlussglocke – nur Tausende von Instituten, die einander weltweit Preise stellen. Jede API, die Sie aufrufen können, ist eine Pipeline, die diesen Markt abtastet, bereinigt und Ihnen eine Zahl übergibt. Dieser Leitfaden geht diese Pipeline Schicht für Schicht durch, erklärt genau, warum zwei Anbieter voneinander abweichen, und zeigt Ihnen, wie Sie eine Datenquelle prüfen, bevor Sie Abrechnungslogik darauf aufbauen.

Die kurze Antwort: drei Schichten zwischen Markt und Ihrem JSON

Jede Wechselkurs-API – kostenlos oder kostenpflichtig, unsere eingeschlossen – besteht aus denselben drei Schichten:

  1. Beschaffung. Rohpreise werden aus vorgelagerten Quellen bezogen: institutionelle FX-Feeds, Veröffentlichungen von Zentralbanken sowie Broker- oder Retail-Quotes.
  2. Normalisierung. Diese Rohpreise werden validiert, Ausreißer verworfen, mehrere Quellen gemischt und ein einzelner Referenzkurs pro Paar abgeleitet.
  3. Auslieferung. Der abgeleitete Kurs wird nach einem festen Takt als Snapshot festgehalten, gecacht und mit einem Zeitstempel über HTTP ausgeliefert.

Unterschiede in einer dieser drei Schichten führen zu einer anderen Zahl in Ihrem Response-Body. Die meisten Entwickler nehmen an, die Abweichung stamme aus Schicht 1. In der Praxis verursachen die Schichten 2 und 3 genauso viel davon.

Schicht 1 – Woher die Rohpreise tatsächlich stammen

Interbanken- und institutionelle Feeds

Das, was einem „echten" Wechselkurs am nächsten kommt, ist der Interbankenmarkt: die Preise, zu denen große Banken und Liquiditätsanbieter untereinander handeln. Diese Preise kommen als kontinuierliche Ströme von Bid- und Ask-Quotes von Handelsplätzen, Prime Brokern und Marktdatenanbietern.

Solche Feeds sind die Quelle mit der höchsten Genauigkeit. Sie sind auch die teuerste, weshalb kostenlose APIs sie selten als Primärquelle nutzen. Wenn ein Anbieter „Echtzeit"- oder „Sub-Minuten"-Kurse verspricht, liegt das fast immer daran, dass institutionelle Feeds am Anfang seiner Pipeline stehen.

Beachten Sie: Ein Interbanken-Feed liefert Ihnen zwei Preise, nicht einen – einen Bid und einen Ask. Der einzelne Kurs, den Sie in einer API-Antwort sehen, ist normalerweise der Mittelwert zwischen beiden. Falls Ihnen diese Unterscheidung neu ist, behandelt unser Leitfaden zum Bid-Ask-Spread beim Währungsumtausch das im Detail.

Referenzkurse der Zentralbanken

Die zweite große Quelle sind offizielle Veröffentlichungen von Zentralbanken. Das bekannteste Beispiel ist die Europäische Zentralbank, die an jedem TARGET-Geschäftstag gegen 16:00 Uhr MEZ Euro-Referenzkurse veröffentlicht, basierend auf einem Konzertationsverfahren zwischen europäischen Zentralbanken. Dutzende weitere Zentralbanken publizieren gleichwertige Tageskurse für ihre eigenen Währungen.

Zentralbankkurse haben zwei enorme Vorteile: Sie sind kostenlos und sie sind maßgeblich. Viele Steuerbehörden und Rechnungslegungsstandards akzeptieren sie ausdrücklich für die Berichterstattung. Deshalb baut ein Großteil des kostenlosen API-Ökosystems auf ihnen auf. Frankfurter, ein in diesem Bereich weit verbreitetes Open-Source-Projekt, verfolgt Tageskurse von 84 Zentralbanken für 201 Währungen mit Historie zurück bis 1948 – alles öffentliche, weiterverteilte Daten.

Sie haben auch zwei ernste Einschränkungen:

  • Es sind Tages-Snapshots, keine Live-Preise. Ein Referenzkurs von 16:00 Uhr MEZ sagt Ihnen nichts darüber, was um 09:00 oder 22:00 Uhr passiert ist.
  • Sie enden an Wochenenden und Feiertagen. Wenn Ihre API für einen Samstag keine Daten liefert oder den Freitagswert wiederholt, ist eine EZB-basierte Quelle die übliche Erklärung.

Retail- und Broker-Quotes

Die dritte Quelle ist die endkundenseitige Preisstellung: das, was eine Bank, ein Kartennetzwerk, ein Zahlungsdienstleister oder ein Überweisungsdienst einem Kunden tatsächlich gibt. Diese Kurse enthalten bereits einen Aufschlag – eine Marge, die auf den Marktkurs aufgeschlagen ist.

Deshalb stimmt ein Kurs auf einer Verbraucher-Vergleichsseite nicht mit dem Kurs auf Ihrem Kontoauszug überein. Es ist an keiner der beiden Stellen ein Fehler; sie messen unterschiedliche Dinge. Verbraucherseiten zeigen typischerweise den Mittelkurs, während Ihre Bank Ihnen den Mittelkurs plus ihren Spread stellt. Für die meisten Software-Anwendungsfälle wollen Sie den Mittelkurs und Ihren eigenen Aufschlag explizit anwenden – dort, wo Sie ihn sehen und prüfen können.

Schicht 2 – Wie Anbieter aus Feeds einen einzelnen Kurs machen

Sobald die Rohpreise eingehen, muss der Anbieter entscheiden, welche Zahl er veröffentlicht. Hier fallen vier Entscheidungen, und jede davon ist ein Punkt, an dem Anbieter auseinanderlaufen.

Blending. Die meisten kommerziellen APIs verlassen sich nicht auf eine einzige Vorquelle. Open Exchange Rates etwa beschreibt seine Daten als aus mehreren Anbietern gesammelt und algorithmisch gemischt. Blending glättet einen einzelnen fehlerhaften Tick, aber die Gewichtungen sind proprietär – genau deshalb stimmen zwei gemischte Feeds nie exakt überein.

Ausreißer-Filterung. Ein fehlerhafter Quote von einem Handelsplatz kann um eine Größenordnung danebenliegen. Anbieter setzen Filter ein, die Preise außerhalb eines Toleranzbandes um den Konsens verwerfen. Aggressives Filtern bedeutet stabile Kurse, aber langsamere Reaktion auf echte Bewegungen. Lockeres Filtern bedeutet schnelle Reaktion, aber gelegentliches Rauschen.

Mittelwertbildung. Ist der Vor-Feed bid/ask, veröffentlicht der Anbieter einen Mittelwert. Der einfache Mittelpunkt (bid + ask) / 2 ist Standard, aber volumengewichtete Ansätze ergeben ein leicht abweichendes Resultat.

Cross-Rate-Triangulation. Kein Anbieter bezieht alle über 30.000 möglichen Währungspaare direkt. Stattdessen werden die meisten Paare über eine Pivot-Währung berechnet – meist USD oder EUR:

GBP/JPY = (USD/JPY) / (USD/GBP)

Das heißt: Der Kurs für ein exotisches Paar erbt Rundung und Timing von zwei anderen Paaren. Anbieter, die auf USD pivotieren, und solche, die auf EUR pivotieren, landen beim selben Cross bei unterschiedlichen Zahlen. Die Mechanik behandeln wir unter Cross-Wechselkurse erklärt.

Schicht 3 – Wie der Kurs in Ihren Code gelangt

Die letzte Schicht ist diejenige, die Entwickler am stärksten kontrollieren und am wenigsten bedenken.

Die Aktualisierungsfrequenz ist der größte einzelne Unterschied zwischen Anbietern und zwischen Preisstufen. Kostenlose Pläne aktualisieren häufig ein- oder zweimal täglich. Kostenpflichtige Stufen aktualisieren stündlich, alle zehn Minuten oder alle 60 Sekunden. Zwei APIs mit identischen Daten weichen allein deshalb ab, weil eine um 14:00 und die andere um 14:47 einen Snapshot gezogen hat.

Caching verschärft das. Die meisten APIs sitzen hinter einem CDN, und die meisten gut gebauten Clients cachen zusätzlich lokal. Addieren Sie einen 15-Minuten-Edge-Cache zu einem 10-Minuten-Refresh, und Ihre Anwendung arbeitet möglicherweise mit einem 25 Minuten alten Kurs. Für die Preisanzeige ist das in Ordnung, für die Abwicklung eines Geschäfts nicht – die praktische Frage lautet immer: Wie alt ist zu alt für genau diesen Vorgang? Unser Leitfaden zu Caching und Fehlerbehandlung bei Währungs-APIs erklärt, wie Sie diese Fenster dimensionieren.

Zeitstempel sind Ihre Verteidigung. Jede ernsthafte API gibt den Zeitpunkt zurück, zu dem der Kurs erfasst wurde. Lesen Sie ihn. Gehen Sie nicht davon aus, dass der Moment des Antwortempfangs der Moment ist, in dem der Kurs galt:

const MAX_AGE_SECONDS = 900; // 15 minutes

async function getRate(base, symbol) {
  const res = await fetch(
    `https://api.finexly.com/v1/latest?base=${base}&symbols=${symbol}`,
    { headers: { Authorization: `Bearer ${process.env.FINEXLY_API_KEY}` } }
  );

  const data = await res.json();
  const ageSeconds = Math.floor(Date.now() / 1000) - data.timestamp;

  if (ageSeconds > MAX_AGE_SECONDS) {
    throw new Error(`Rate is ${ageSeconds}s old — refusing to price on stale data`);
  }

  return { rate: data.rates[symbol], ageSeconds };
}

Hier die zugrunde liegende Anfrage und eine repräsentative Antwortstruktur:

curl "https://api.finexly.com/v1/latest?base=USD&symbols=EUR,GBP,JPY" \
  -H "Authorization: Bearer YOUR_API_KEY"
{
  "success": true,
  "base": "USD",
  "timestamp": 1755244800,
  "rates": {
    "EUR": 0.9241,
    "GBP": 0.7863,
    "JPY": 147.2150
  }
}

Alle Parameter- und Endpunktdetails finden Sie in der Finexly-API-Dokumentation.

Warum zwei APIs für dasselbe Paar unterschiedliche Zahlen liefern

Fasst man die drei Schichten zusammen, ergeben sich sechs Ursachen für Abweichungen, grob nach Schadenspotenzial geordnet:

  1. Unterschiedliche Snapshot-Zeitpunkte. Die mit Abstand häufigste Ursache. Kein Feed ist fehlerhaft; sie haben schlicht zu verschiedenen Momenten hingeschaut.
  2. Unterschiedliche Quellenmischungen. Ein zentralbankbasierter und ein interbankenbasierter Kurs messen per Definition zwei verschiedene Dinge.
  3. Mittelkurs versus aufgeschlagener Kurs. Ein Anbieter gibt Ihnen den Marktmittelpunkt, ein anderer einen Endkundenpreis mit bereits enthaltenem Spread.
  4. Unterschiedliche Pivot-Währungen bei Crosses. USD- und EUR-basierte Triangulation ergeben für dasselbe Nicht-USD-Paar unterschiedliche Ergebnisse.
  5. Präzision und Rundung. Sechs auf vier Nachkommastellen gekürzt oder als inverse Paare veröffentlichte und zurückinvertierte Kurse erzeugen beide Drift.
  6. Vergessene Caching-Schichten. Ihr CDN, der HTTP-Cache Ihres Frameworks und Ihre eigene Redis-Schicht addieren jeweils Alter.

Eine nützliche Faustregel: Bei Hauptpaaren ist eine Abweichung von wenigen Basispunkten (0,01 % = 1 bp) zwischen zwei seriösen Mittelkursquellen normal und zu erwarten. Eine Abweichung von 50 bp oder mehr bedeutet, dass eine der beiden veraltet, aufgeschlagen oder defekt ist – und Sie sollten vor dem Release herausfinden, welche.

Wie Sie eine Wechselkurs-API prüfen, bevor Sie ihr vertrauen

Nehmen Sie die Genauigkeitsversprechen eines Anbieters nicht auf Treu und Glauben hin. Lassen Sie diese Prüfung eine Woche lang gegen die Quelle laufen, die Ihr Finanzteam als maßgeblich betrachtet:

import os
import requests
from datetime import datetime, timezone

FINEXLY_URL = "https://api.finexly.com/v1/latest"
HEADERS = {"Authorization": f"Bearer {os.environ['FINEXLY_API_KEY']}"}


def get_rate(base: str, symbol: str) -> dict:
    r = requests.get(
        FINEXLY_URL,
        headers=HEADERS,
        params={"base": base, "symbols": symbol},
        timeout=5,
    )
    r.raise_for_status()
    data = r.json()
    return {
        "rate": data["rates"][symbol],
        "captured_at": datetime.fromtimestamp(data["timestamp"], tz=timezone.utc),
    }


def basis_points(a: float, b: float) -> float:
    """Difference between two rates, in basis points."""
    return abs(a - b) / ((a + b) / 2) * 10_000


primary = get_rate("EUR", "USD")
reference = 1.0839  # whatever your accounting source published

diff = basis_points(primary["rate"], reference)
print(f"Finexly: {primary['rate']}  captured {primary['captured_at']:%H:%M UTC}")
print(f"Reference: {reference}")
print(f"Delta: {diff:.1f} bp  ->  {'OK' if diff < 25 else 'INVESTIGATE'}")

Drei Dinge, auf die Sie in den Ergebnissen achten sollten:

  • Ist die Differenz stabil oder driftet sie? Ein konstanter Versatz deutet auf einen systematischen Aufschlag hin. Ein zufälliger auf Timing.
  • Springt die Differenz zu bestimmten Uhrzeiten? Das deutet auf den Snapshot-Zeitpunkt hin, meist rund um ein Veröffentlichungsfenster einer Zentralbank.
  • Was passiert am Wochenende? Friert Ihre Quelle am Freitagnachmittag ein und läuft am Montag wieder an, ist sie zentralbankbasiert – planen Sie Ihre Montags-Abstimmung entsprechend.

Sie können die Triangulation auch prüfen, indem Sie einen Cross direkt abrufen und ihn über USD berechnen; beide sollten auf ein bis zwei Basispunkte übereinstimmen.

Die richtige Datenquelle für Ihren Anwendungsfall

Es gibt keine universell „beste" Quelle – nur die richtige Quelle für das, was Sie bauen.

AnwendungsfallWas Sie brauchenAkzeptables Alter
Preisanzeige für KäuferMittelkurs, eigener Aufschlag obendraufStunden
SaaS-Abo-AbrechnungMittelkurs, ein Snapshot pro Abrechnungslauf, mit der Rechnung gespeichertStunden, aber muss dokumentiert sein
Buchhaltung und SteuerreportingZentralbank-Referenzkurs für das konkrete DatumTäglich, per Definition
Analytics und DashboardsKonsistente historische Zeitreihe aus einer QuelleTäglich
Auszahlungen und ÜberweisungenFrischer Mittelkurs mit explizitem ToleranzbandMinuten
Trading und HedgingEchte Bid/Ask aus einem institutionellen FeedSekunden
Zwei praktische Regeln gelten für alle Fälle. Erstens: Speichern Sie immer den tatsächlich verwendeten Kurs zusammen mit der Transaktion, samt Zeitstempel und Quelle – ihn später zu rekonstruieren ist unmöglich, und Prüfer werden danach fragen. Zweitens: Verwenden Sie eine Quelle pro führendem System. Anbieter zwischen Checkout und Hauptbuch zu mischen garantiert Cent-Abweichungen, die sechs Monate später niemand erklären kann.

Falls Sie noch Optionen evaluieren: Unser Vergleich von kostenlosen und kostenpflichtigen Währungs-APIs zeigt, was sich beim Aufstieg in höhere Stufen ändert, und die Seite Preispläne zeigt, wo Aktualisierungsfrequenz und Anfragelimits liegen. Für eine schnelle manuelle Kontrolle eines Paares nutzt der Währungsrechner denselben zugrunde liegenden Feed wie die API.

Häufig gestellte Fragen

Woher beziehen kostenlose Währungs-APIs ihre Daten?

Fast immer aus Zentralbankveröffentlichungen, meist den täglichen Euro-Referenzkursen der Europäischen Zentralbank, manchmal gemischt mit einigen weiteren öffentlichen Quellen. Deshalb aktualisieren kostenlose Stufen typischerweise einmal täglich, überspringen Wochenenden und decken weniger exotische Währungen ab als kostenpflichtige.

Warum weicht der Wechselkurs meiner API von dem bei Google ab?

Google zeigt einen Mittelkurs als Referenz, der ein Snapshot und kein kontinuierlicher Live-Preis ist, und er wird nicht zwingend im selben Moment wie Ihr API-Aufruf erhoben. Eine kleine Abweichung ist normal. Eine große bedeutet meist, dass einer der beiden ein aufgeschlagener Endkundenkurs statt eines Mittelkurses ist.

Welchen Wechselkurs sollte ich für Buchhaltung und Steuerreporting verwenden?

Verwenden Sie den offiziellen Referenzkurs der zuständigen Zentralbank für das Transaktionsdatum – das erwarten die meisten Steuerbehörden. Holen Sie ihn über einen Historien-Endpunkt mit explizitem Datum, statt einen Live-Kurs wiederzuverwenden, und speichern Sie ihn mit dem Transaktionsdatensatz.

Ist eine Echtzeit-Wechselkurs-API wirklich Echtzeit?

Im wörtlichen Sinn selten. „Echtzeit" bedeutet üblicherweise, dass der Anbieter in kurzen Intervallen aktualisiert – 60 Sekunden ist in der höchsten Stufe verbreitet – nicht, dass er Tick für Tick streamt. Prüfen Sie den Zeitstempel in der Antwort und das dokumentierte Aktualisierungsintervall, nicht den Marketingtext.

Kann ich Wechselkurse statt über eine API einfach scrapen?

Können Sie, aber Sie erben jeden Fehlerfall der Seite, die Sie scrapen: Layout-Änderungen, Rate Limiting, keine Zeitstempel, keine historische Nachbefüllung und häufig einen Verstoß gegen die Nutzungsbedingungen. Die vollständige Abwägung haben wir unter Währungs-API versus Web Scraping behandelt.

Bauen Sie auf einem Feed, den Sie prüfen können

Zu wissen, woher Ihre Wechselkursdaten stammen, ist der Unterschied zwischen einem Währungsbug, den Sie in einem Satz erklären können, und einem, der eine Entwicklerwoche verschlingt. Stellen Sie jedem Anbieter vor der Integration drei Fragen: Was sind die Quellen, wie oft wird aktualisiert, und trägt jede Antwort einen Erfassungszeitstempel?

Bereit, Wechselkurse zu integrieren, die Sie wirklich prüfen können? Holen Sie sich Ihren kostenlosen Finexly-API-Schlüssel – ohne Kreditkarte. Starten Sie mit 1.000 kostenlosen Anfragen pro Monat über 170+ Währungen, mit zeitgestempelten Antworten und historischen Daten ab dem ersten Tag.

Vlado Grigirov

Senior Currency Markets Analyst & Financial Strategist

Vlado Grigirov is a senior currency markets analyst and financial strategist with over 14 years of experience in foreign exchange markets, cross-border finance, and currency risk management. He has wo...

View full profile →

Diesen Artikel teilen