Wer schon einmal versucht hat, den Wise-Wechselkurs im eigenen Produkt anzuzeigen, hat vermutlich festgestellt, dass die Wise Wechselkurs-API nicht ganz das ist, was man erwartet hat. Wise veröffentlicht wirklich hervorragende Mittelkursdaten und stellt sie über einen REST-Endpunkt bereit – aber sie liegt hinter einem Partner-Onboarding, sie lebt in einer Zahlungs-API statt in einer Marktdaten-API, und der Kurs, den Sie zurückbekommen, ist bewusst nicht der Preis, den Ihre Nutzer zahlen.
Dieser Leitfaden zeigt genau, was Wise bereitstellt, wie die Authentifizierung funktioniert, was jeder Endpunkt tatsächlich liefert und welche fünf strukturellen Grenzen darüber entscheiden, ob Wise die richtige Quelle für Ihr Projekt ist. Und er beantwortet ehrlich die Frage, um die es den meisten eigentlich geht: Wenn Sie einfach nur verlässliche Mittelkurse in einer App brauchen – ist Wise dafür das richtige Werkzeug?
Was die Wise Wechselkurs-API wirklich ist
Wise ist ein Geldtransfer-Unternehmen. Seine API – unter dem Namen Wise Platform – ist dafür gebaut, Geld zu bewegen: Quotes erstellen, Empfänger anlegen, Überweisungen finanzieren, Salden abstimmen, Karten ausgeben. Wechselkurse tauchen dort auf, weil man ohne sie keine Überweisung bepreisen kann, nicht weil Wise Marktdaten verkauft.
Diese Einordnung erklärt fast alle Überraschungen, auf die Entwickler stoßen. Kurse sind ein kleines Modul innerhalb einer Zahlungsplattform und auf die Währungsrouten beschränkt, die Wise tatsächlich bedient.
Drei getrennte Oberflächen, drei unterschiedliche Zugangswege
Die größte Verwirrungsquelle: „Die Wise-Kurs-API" bezeichnet mindestens drei verschiedene Dinge.
GET /rates– der Exchange-Rates-Endpunkt. Liefert Wises Mittelkurs für ein Währungspaar, aktuell oder historisch. Das ist es, was die meisten meinen.POST /quotes– der Quotes-Endpunkt. Liefert eine bepreiste Überweisung: Kurs, Gebühr, geschätzte Laufzeit und einen Ablaufzeitpunkt für den Kurs.GET /comparisons– der Comparison-Endpunkt. Liefert geschätzte Preis- und Geschwindigkeitsdaten für Wise und konkurrierende Anbieter und Banken auf einer Route.
Alle drei stehen in derselben Referenz, nutzen unterschiedliche Authentifizierungsverfahren und beantworten sehr unterschiedliche Fragen. Der Griff zum falschen Endpunkt ist die übliche Ursache für „Warum weicht dieser Kurs von dem auf wise.com ab?".
Wie man Zugang zu Wise-Kursdaten bekommt
Es gibt keinen Self-Service-API-Key. Der Zugang teilt sich in zwei Wege:
Platform-Partner. Sie durchlaufen das Onboarding als Wise-Platform-Partner und authentifizieren sich mit OAuth 2.0 (Client ID und Client Secret), um ein Token zu erhalten. Die /rates-Referenz merkt an, dass der Endpunkt „nur Bearer-Authentifizierung für Nicht-Affiliate-Partner" unterstützt, per User Token oder Personal Token.
Affiliate-Partner. Sie treten dem Wise-Affiliate-Programm bei und schreiben anschließend an partnerwise@wise.com, um Zugangsdaten anzufordern. Wise prüft die Anfrage und stellt bei Freigabe Basic-Auth-Zugangsdaten aus, die genau zwei Endpunkte freischalten: Exchange Rates List und Get Temporary Quote. Mehr nicht.
Hier trennen sich die Wege. Wenn Sie eine Vergleichsseite, ein Widget für einen Reiseblog oder eine Fintech-Marketingseite bauen, ist der Affiliate-Weg für Sie gemacht. Wenn Sie ein Produktfeature bauen – Mehrwährungspreise, Rechnungsstellung, einen Umrechner, einen internen Report – bitten Sie ein Payments-Partnerteam um Freigabe für Marktdaten, und das will keine der beiden Seiten aus dieser Beziehung.
Beachten Sie außerdem: Wise verankert die API-Version im URL-Pfad. Produktion ist https://api.wise.com/2026Q3/rates, Sandbox https://api.wise-sandbox.com/2026Q3/rates. Ältere Affiliate-Dokumentation verweist weiterhin auf /v1/rates unter api.transferwise.com. Versionen im Pfad bedeuten, dass Ihre Integration still altert, sofern niemand das Upgrade verantwortet.
Den Wise-Rates-Endpunkt aufrufen
Sobald Sie ein Token haben, ist der Endpunkt sauber und gut entworfen. Vier Aufrufformen sind dokumentiert:
# Latest rates for every supported currency
curl -X GET 'https://api.wise.com/2026Q3/rates' \
-H 'Authorization: Bearer <YOUR_TOKEN>'
# Latest rate for a single pair
curl -X GET 'https://api.wise.com/2026Q3/rates?source=EUR&target=USD' \
-H 'Authorization: Bearer <YOUR_TOKEN>'
# Rate at a specific historical moment
curl -X GET 'https://api.wise.com/2026Q3/rates?source=EUR&target=USD&time=2019-02-13T14:53:01' \
-H 'Authorization: Bearer <YOUR_TOKEN>'
# A time series, grouped by day, hour or minute
curl -X GET 'https://api.wise.com/2026Q3/rates?source=EUR&target=USD&from=2019-02-13&to=2019-03-13&group=day' \
-H 'Authorization: Bearer <YOUR_TOKEN>'Die Antwort ist ein Array, ein Objekt pro Intervall:
[
{
"rate": 1.166,
"source": "EUR",
"target": "USD",
"time": "2018-08-31T10:43:31+0000"
}
]Zwei Details sind erwähnenswert. Erstens akzeptiert group die Werte day, hour oder minute – minutengenaue Historie ist ungewöhnlich großzügig und für Backtesting wirklich nützlich. Zweitens ist die Antwort immer ein Array, auch bei einem einzelnen Paar; parsen Sie entsprechend:
import requests
TOKEN = "<YOUR_TOKEN>"
BASE = "https://api.wise.com/2026Q3"
def wise_rate(source: str, target: str) -> float:
r = requests.get(
f"{BASE}/rates",
params={"source": source, "target": target},
headers={"Authorization": f"Bearer {TOKEN}"},
timeout=10,
)
r.raise_for_status()
payload = r.json()
if not payload:
raise LookupError(f"No rate returned for {source}/{target}")
return payload[0]["rate"] # array, even for one pair
print(wise_rate("EUR", "USD"))Noch eine gut dokumentierte Falle: Wenn Sie time und from/to in derselben Anfrage senden, gewinnen die Bereichsparameter und time wird ignoriert. Das verursachte einen langlebigen Bug im Wise-Node von n8n, der einen Upstream-Patch brauchte. Senden Sie das eine oder das andere, niemals beides.
Der Mittelkurs ist nicht der Preis, den Ihre Nutzer zahlen
Wises /rates-Endpunkt liefert den Mittelkurs (Mid-Market Rate) – die Mitte zwischen An- und Verkaufspreis am Interbankenmarkt. Das ist der „echte" Kurs, und damit wirbt Wise. Es ist zugleich per Definition ein Kurs, zu dem niemand handelt.
Wenn Sie wissen wollen, was eine Überweisung tatsächlich kostet, brauchen Sie /quotes:
curl -X POST 'https://api.wise.com/2026Q3/quotes' \
-H 'Authorization: Bearer <YOUR_TOKEN>' \
-H 'Content-Type: application/json' \
-d '{
"sourceCurrency": "GBP",
"targetCurrency": "USD",
"sourceAmount": 100
}'Die Quote-Antwort enthält die Felder, die Preislogik wirklich braucht: rate, rateType (z. B. FIXED), rateExpirationTime, eine fee-Aufschlüsselung, feePercentage und ein paymentOptions-Array mit estimatedDelivery je Einzahlungsmethode. Sie liefert außerdem notices – Wises eigenes dokumentiertes Beispiel warnt, dass ein Kunde maximal drei offene Überweisungen mit garantiertem Kurs halten kann, bevor weitere auf den Live-Kurs zurückfallen.
Die praktische Konsequenz: Eine Quote ist ein kurzlebiges, zustandsbehaftetes Objekt, das an eine Überweisung gebunden ist – keine Kursabfrage, die Sie im Takt pollen können. Wenn Ihr Anwendungsfall „den heutigen USD-Preis auf einer Preisseite anzeigen" lautet, sind Quotes die falsche Primitive und Rates die richtige. Wenn er „dem Nutzer exakt sagen, was ankommt" lautet, überschätzen Rates allein den Betrag. Diese Verwechslung ist eine häufige Quelle der Rundungs- und Abstimmungsdifferenzen, die wir im Leitfaden zu Währungsrundung und Nachkommastellen beschreiben.
Was die Comparison-API wirklich liefert
Der Comparison-Endpunkt ist der interessanteste und am meisten missverstandene Teil der Plattform. Er liefert anbieterweise Preis- und Geschwindigkeitsschätzungen für Banken und Transferdienste auf einer Route:
curl -X GET 'https://api.wise.com/2026Q3/comparisons?sourceCurrency=GBP&targetCurrency=EUR&sendAmount=10000&filter=POPULAR'Bevor Sie darauf etwas bauen, lesen Sie Wises eigene Methodikhinweise genau. Wise gibt an, beworbene Kurse und Gebühren von Websites Dritter zu erheben, daraus den Aufschlag jedes Anbieters auf den Mittelkurs zum Erhebungszeitpunkt zu berechnen und diesen gespeicherten Aufschlag anschließend auf den aktuellen Mittelkurs anzuwenden, um die Zahl zu erzeugen, die Sie erhalten. Die Erhebung läuft etwa einmal pro Stunde.
Anders gesagt: Wettbewerberpreise aus diesem Endpunkt sind modellierte Schätzungen aus stündlichen Erhebungen, keine Live-Quotes. Wise sagt das klar – das spricht für den Anbieter –, aber es bedeutet, dass die Daten für alles ungeeignet sind, wo Sie für die Zahl des Wettbewerbers geradestehen müssten. Wise beschränkt die Schätzungen zudem auf Ein- und Auszahlung ausschließlich per Banküberweisung und weist darauf hin, dass viele Anbieter Karten- und Bargeldtransaktionen sehr abweichend bepreisen.
Strukturell ist die Antwort denormalisiert: Ein Anbieter kann mehrere Quotes für dasselbe Währungspaar liefern, weil Preis und Laufzeit je Zielland variieren. Sie erhalten ein providers-Array, jeweils mit einem quotes-Array – das auf eine Kennzahl je Anbieter zu reduzieren, ist Ihre Aufgabe, nicht die der API.
Fünf Grenzen, die Sie vor dem Bauen auf Wise-Kursen kennen sollten
- Zugang ist eine Geschäftsbeziehung, keine Registrierung. Affiliate-Freigabe oder Platform-Onboarding stehen vor jedem Kursaufruf. Es gibt kein Dashboard, in dem Sie in dreißig Sekunden einen Key erzeugen.
- Die Abdeckung folgt den Transferrouten. Wise unterstützt die Währungen, in denen es Geld bewegen kann. Ein dedizierter Datenanbieter deckt die Währungen ab, die er bepreisen kann – eine größere Menge. Finexly deckt über 170 Währungen ab, darunter solche, für die kein Transferkorridor existiert.
- Kurse sind ein Modul in einer Zahlungs-API. Drumherum liegen Quotes, Empfänger, KYC, Karten und Webhooks. Das ist eine große, sicherheitskritische Integration, die man pflegen muss, wenn man eigentlich nur eine Zahl wollte.
- Kein veröffentlichtes Kontingent. Die
/rates-Referenz dokumentiert eine429-Antwort, nennt aber kein öffentliches Anfragelimit – Sie dimensionieren also gegen eine unbekannte Grenze. Vergleichen Sie das mit einem expliziten Modell mit Headern in jeder Antwort. - Zwei Währungen pro Aufruf.
/ratesnimmt genau einsourceund eintarget. Preise in acht Währungen bedeuten acht Aufrufe oder einen Volltabellen-Abruf mit clientseitigem Filtern.
Nichts davon ist ein Fehler. So sieht eine Zahlungs-API aus, wenn man sie als Daten-API benutzt.
Wann Wise die richtige Wahl ist – und wann nicht
| Ihr Anwendungsfall | Beste Wahl | Warum |
|---|---|---|
| Vergleichsseite oder Affiliate-Content „Banken vs. Wise" | Wise Comparison API | Es ist die einzige Quelle dafür, und der Affiliate-Weg existiert genau dafür |
| Tatsächlich Geld über Wise senden | Wise Quotes + Transfers | Sie brauchen das bepreiste, ablaufende Quote-Objekt |
| Den Wise-Markenkurs zeigen, weil Nutzer danach fragen | Wise /rates | Die Markenzuordnung ist der ganze Zweck |
| Mehrwährungspreise, Checkout oder Umrechner | Dedizierte Währungs-API | Sie brauchen Breite, einen sofortigen Key und einen einfachen Vertrag |
| Rechnungsstellung, Billing und Umsatzreporting | Dedizierte Währungs-API | Sie brauchen eine stabile historische Reihe und einen Prüfpfad |
| Backtesting oder Analytics | Beides | Wises Minutenhistorie ist stark; eine Daten-API ist leichter zu bekommen |
Stattdessen eine dedizierte Wechselkurs-API nutzen
Eine Daten-API dreht den Kompromiss um: kein Onboarding-Gespräch, breitere Abdeckung, ein explizites Kontingent und eine Antwort, in der nichts außer dem Kurs steht.
curl -H "Authorization: Bearer YOUR_API_KEY" \
"https://api.finexly.com/v1/rate?from=EUR&to=USD"{ "pair": "EUR_USD", "rate": 1.0852 }Preise in mehreren Währungen sind ein einziger Roundtrip statt eines Aufrufs je Paar:
const apiKey = process.env.FINEXLY_API_KEY;
async function priceTable(base, quotes) {
const q = quotes.map((c) => `${base}_${c}`).join(',');
const res = await fetch(`https://api.finexly.com/v1/convert?q=${q}`, {
headers: { Authorization: `Bearer ${apiKey}` },
});
if (!res.ok) throw new Error(`Finexly ${res.status}`);
return res.json();
}
const rates = await priceTable('USD', ['EUR', 'GBP', 'JPY', 'CAD', 'AUD']);
// { "USD_EUR": { "rate": 0.9215 }, "USD_GBP": { "rate": 0.7892 }, ... }Und wenn Sie den umgerechneten Betrag statt des Multiplikators wollen, lassen Sie die API rechnen, damit Rundung an genau einer Stelle passiert:
import requests
def convert(amount, src, dst, api_key):
r = requests.get(
"https://api.finexly.com/v1/convert-amount",
params={"from": src, "to": dst, "amount": amount},
headers={"Authorization": f"Bearer {api_key}"},
timeout=10,
)
r.raise_for_status()
return r.json()["result"]
print(convert(100, "USD", "EUR", "YOUR_API_KEY"))Jede Antwort trägt X-RateLimit-Limit, X-RateLimit-Used und X-RateLimit-Units, das Kontingent ist also beobachtbar statt geraten. Kurse aktualisieren sich jede Minute während der Handelszeiten. Der kostenlose Tarif bietet 1.000 Anfragen pro Monat bei 10 Anfragen pro Minute, bezahlte Pläne starten bei 6,99 $/Monat für 3.500 Anfragen und reichen bis 100.000 im Professional-Plan – die vollständige Aufschlüsselung steht auf der Preisseite.
Kurz zum Volumen: 1.000 Anfragen im Monat klingen nach wenig, bis man cached. Ein einzelner Job, der die komplette Kurstabelle alle fünfzehn Minuten aktualisiert, verbraucht rund 2.900 Aufrufe im Monat; alle sechzig Minuten etwa 730. Caching macht Ihr Aufrufvolumen zu einer Funktion der Zeit statt des Traffics – genau das macht einen kleinen Tarif in jeder Größenordnung tragfähig. Die Muster stehen in Caching und Fehlerbehandlung für Währungs-APIs.
Migration von Wise /rates
Wenn Sie eine bestehende Integration umziehen, ist die Zuordnung fast eins zu eins:
| Wise | Entsprechung | Hinweis |
|---|---|---|
GET /rates | GET /v1/currencies, dann /v1/rate | Wises nacktes /rates liefert alles; Währungsliste einmal abrufen |
GET /rates?source=X&target=Y | GET /v1/rate?from=X&to=Y | Liefert ein Objekt, kein einelementiges Array |
| Mehrere Paare, mehrere Aufrufe | GET /v1/convert?q=X_Y,X_Z | Eine Anfrage |
Manuelles amount * rate | GET /v1/convert-amount | Rundung serverseitig |
?time= historischer Punkt | Historischer Endpunkt | Erfordert einen bezahlten Plan; siehe den Leitfaden zu historischen Kursen |
| Basic- oder OAuth-Token | Authorization: Bearer | Key aus dem Dashboard, kein Freigabeschritt |
Zum Schluss: Bitte scrapen Sie wise.com nicht. Mehrere Marktplatz-Angebote versprechen genau das, und sie sind fragil, rechtlich trüb und brechen beim ersten Markup-Wechsel der Seite. Wenn Sie speziell die Wise-Zahl brauchen, gehen Sie den Affiliate-Weg und holen Sie sie sauber aus der API. Wenn Sie eine Zahl brauchen, nehmen Sie eine API, die dafür gebaut ist. Unser Vergleich kostenloser Währungs-APIs und der Leitfaden zu Frankfurter-Alternativen behandeln die Optionen ohne Key ausführlicher.
Häufig gestellte Fragen
Ist die Wise Wechselkurs-API kostenlos? Für den Rates-Endpunkt gibt es keinen veröffentlichten Preis pro Anfrage, aber der Zugang ist nicht offen. Sie müssen freigegebener Wise-Platform-Partner oder freigegebener Affiliate-Partner sein, was eine Bewerbung und Prüfung bedeutet statt eines Anmeldeformulars. Für die meisten Projekte kostet es Zeit, nicht Geld.
Kann ich die Wise-API ohne Konto nutzen?
Nein. Beide dokumentierten Wege verlangen Zugangsdaten – Bearer-Tokens für Platform-Partner, Basic-Auth mit Client ID und Secret für Affiliates. Der einzige Endpunkt, dessen dokumentiertes Beispiel keinen Authorization-Header zeigt, ist /comparisons; darauf Produktionstraffic zu bauen, wäre unklug.
Liefert die Wise-API denselben Kurs wie wise.com?
/rates liefert den Mittelkurs, also die Kennzahl, mit der Wise wirbt. Der Betrag, den ein Kunde tatsächlich erhält, kommt aus /quotes und enthält die Wise-Gebühr. Wenn Ihre Zahlen nicht zur Website passen, vergleichen Sie fast sicher einen Mittelkurs mit einer bepreisten Quote.
Wie weit reicht die historische Kursdatenhistorie von Wise zurück?
Der Endpunkt akzeptiert beliebige from/to-Zeitstempel mit Gruppierung nach day, hour oder minute; Wise nennt in der Referenz kein festes frühestes Datum – testen Sie also den konkret benötigten Zeitraum, statt Abdeckung anzunehmen.
Was ist die beste Alternative zur Wise Wechselkurs-API? Das hängt davon ab, was Sie ersetzen. Für Wettbewerbspreisvergleiche gibt es keine Alternative – Wises Comparison API ist einzigartig. Für Mittelkurse in einem Produkt gibt Ihnen eine dedizierte Währungsdaten-API mehr Abdeckung, sofortige Keys und ein explizites Kontingent. Vergleichen Sie die Optionen auf unserer API-Vergleichsseite.
Darf ich den Wise-Kurs meinen Nutzern rechtlich zeigen? Als freigegebener Affiliate oder Platform-Partner ja, im Rahmen dieser Vereinbarung. Die öffentliche Website zu scrapen, um dieselben Zahlen zu bekommen, ist etwas anderes und nichts, worauf wir ein Geschäft aufbauen würden.
Bereit, das Partner-Onboarding zu überspringen und einfach Kurse zu bekommen? Holen Sie sich Ihren kostenlosen Finexly-API-Key – ohne Kreditkarte. Starten Sie mit 1.000 kostenlosen Anfragen pro Monat über 170+ Währungen und erweitern Sie erst, wenn Ihr Traffic es tut. Sie können die Kurse auch zuerst im Browser mit unserem Währungsrechner ausprobieren.
Explore More
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 →