wise.com APIwise.com ↗
Get live Wise.com exchange rates, transfer fees, currency conversion, and historical rate data via a structured JSON API. 7 endpoints covering all major pairs.
curl -X GET 'https://api.parse.bot/scraper/e12755f4-6de3-4592-9b84-358de36519b2/get_exchange_rate?source=USD&target=EUR' \ -H 'X-API-Key: $PARSE_API_KEY'
Get the current mid-market exchange rate between two currencies, including 48-hour percentage change.
| Param | Type | Description |
|---|---|---|
| sourcerequired | string | Source currency code (e.g. USD, GBP, EUR) |
| targetrequired | string | Target currency code (e.g. EUR, USD, GBP) |
{
"type": "object",
"fields": {
"timestamp": "integer — Unix timestamp in milliseconds of the rate",
"mid_market_rate": "number — current mid-market exchange rate",
"source_currency": "string — source currency code",
"target_currency": "string — target currency code",
"percentage_change_48h": "number — percentage change over last 48 hours",
"rate_guarantee_duration": "string — description of rate guarantee duration"
},
"sample": {
"data": {
"timestamp": 1778772847039,
"mid_market_rate": 0.856384,
"source_currency": "USD",
"target_currency": "EUR",
"percentage_change_48h": 0.4709,
"rate_guarantee_duration": "Usually 24-48 hours depending on the route"
},
"status": "success"
}
}About the wise.com API
This API exposes 7 endpoints covering Wise.com's exchange rates, transfer fees, and currency data. Use get_exchange_rate to fetch the current mid-market rate between any two currencies along with a 48-hour percentage change, or call convert_currency to get the exact recipient amount and total fee for a specific send amount. All responses return structured JSON fields ready to consume without parsing HTML.
Exchange Rates and Conversion
The get_exchange_rate endpoint takes a source and target currency code and returns the current mid-market rate (mid_market_rate), a Unix millisecond timestamp, and percentage_change_48h — useful for displaying rate movement to users. The convert_currency endpoint adds fee context: given an amount, source, and target, it returns recipient_receives, total_fee, pay_in_method, pay_out_method, and potential_savings (the estimated savings versus a traditional bank, or null if unavailable).
Transfer Fees and Pricing Options
get_transfer_fee goes deeper than a single conversion quote. For a given send amount and currency pair, it returns a pricing_options array where each object covers a distinct pay_in_method and pay_out_method combination, along with total_fee, variable_fee, fixed_fee, exchange_rate, recipient_amount, and an estimate field. This lets you compare, for example, the cost difference between paying by card versus bank transfer for the same corridor.
Currency Coverage and Historical Data
list_supported_currencies returns every currency Wise supports, each record including code, symbol, name, countryKeywords, and supportsDecimals. Use get_currency_pairs with a base code to retrieve the full list of available conversion pairs as an available_pairs array. get_currency_details returns a richer record for a single currency: currency_name, currency_symbol, description, and an exchange_rate_table array showing from_rate and to_rate against major currencies.
Historical Rates
get_exchange_rate_history accepts a period parameter (1D, 1W, 1M, 6M, 1Y, or 5Y) plus source and target codes. It returns a data_points array of timestamped rate objects, the current_rate, and a percentage_change over the selected window — enough to render a simple rate chart or build a volatility signal.
- Display live mid-market rates and 48-hour movement in a currency converter widget using
get_exchange_rate. - Compare transfer costs across pay-in and pay-out method combinations using the
pricing_optionsarray fromget_transfer_fee. - Show users how much a recipient will receive after fees for a given send amount using
convert_currency. - Render a historical rate chart for any currency pair over 1D to 5Y periods using
get_exchange_rate_historydata points. - Populate a currency selector dropdown with codes, names, symbols, and decimal support flags from
list_supported_currencies. - Build a currency detail page with cross-rates to major currencies using the
exchange_rate_tablefromget_currency_details. - Check which target currencies are available for a given base currency before presenting transfer options using
get_currency_pairs.
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 250 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does Wise have an official developer API?+
What does `get_transfer_fee` return that `convert_currency` does not?+
get_transfer_fee returns a pricing_options array covering multiple pay-in and pay-out method combinations in a single call. Each entry breaks the fee into variable_fee and fixed_fee components, so you can see the cost structure for bank transfer versus card versus other methods side by side. convert_currency returns a single quote for the default method combination along with a potential_savings estimate.How fresh is the exchange rate data?+
get_exchange_rate response includes a timestamp field in Unix milliseconds reflecting when the rate was recorded. Wise updates its mid-market rates continuously during market hours, but the exact refresh cadence visible through the API depends on when the underlying rate data is updated on Wise's public pages. For time-sensitive applications, re-query frequently and compare timestamp values.Does the API expose Wise account balances, transaction history, or recipient details?+
Can I retrieve exchange rates for exotic or less common currency pairs?+
get_currency_pairs with your base code to check which target currencies are available before querying rates or fees. list_supported_currencies gives the full set of currency codes Wise recognizes, though not every combination has an active transfer corridor. If a corridor you need is missing, you can fork the API on Parse and revise it to surface additional data points.