# Wise API

> Wise returns exchange rates, transfer cost comparisons, SWIFT/BIC codes, and IBAN checks as a workflow and API.

Wise returns mid-market rates, converted amounts, and optional daily rate history for a source and destination currency pair. Compare transfer costs by entering an amount and currency pair, with an optional sending country. Search SWIFT/BIC codes by bank and country, or check an IBAN to assess its format and find bank details Wise shows.

- Page: https://fous.com/tools/wise
- Handle: `@wise`
- Category: [Finance](https://fous.com/tools/category/finance)
- Source website: https://wise.com
- Last verified: Sep 28, 2026

## Methods

### Check IBAN

Operation `check_iban`, version 1. 1 credit per completed call. Failed calls without a completed billing receipt are free; completed work can remain charged if delivery is interrupted.

Check an IBAN’s country length and check digits, then find bank details shown by Wise. A valid format does not confirm the account exists; branch names may be unavailable.

**Input**

| Field | Type | Required | Example | Description |
|---|---|---|---|---|
| `iban` | string | yes | `"DE89370400440532013000"` | IBAN as printed on an invoice or bank letter, with or without spaces; for example GB33 BUKB 2020 1555 5555 55. |

**Input schema**

```json
{
  "type": "object",
  "required": [
    "iban"
  ],
  "properties": {
    "iban": {
      "type": "string",
      "description": "IBAN as printed on an invoice or bank letter, with or without spaces; for example GB33 BUKB 2020 1555 5555 55.",
      "examples": [
        "DE89370400440532013000",
        "GB33 BUKB 2020 1555 5555 55",
        "DE8937040044053201300"
      ]
    }
  },
  "additionalProperties": false,
  "examples": [
    {
      "iban": "DE89370400440532013000"
    },
    {
      "iban": "GB33 BUKB 2020 1555 5555 55"
    },
    {
      "iban": "DE8937040044053201300"
    }
  ]
}
```

**Output**

| Field | Type | Example | Description |
|---|---|---|---|
| `valid` | boolean | `true` | Whether the IBAN passes country length and check-digit checks. |
| `reason` | string or null | `"Wrong length for Germany: expected 22 characters."` | Plain-language explanation when invalid; otherwise null. |
| `country` | string or null | `"Germany"` | Country name for the IBAN prefix, if recognized. |
| `page_url` | string | `"https://wise.com/gb/iban/checker"` | Wise checker page link. |
| `bank_code` | string or null | `"37040044"` | Bank identifier from the IBAN as shown by Wise, if available. |
| `bank_name` | string or null | `"COMMERZBANK AG"` | Bank name Wise identifies, if available. |
| `branch_name` | string or null |  | Branch name if Wise provides one. |
| `bic_swift_code` | string or null | `"COBADEFFXXX"` | BIC/SWIFT code if Wise provides one. |
| `branch_address` | string or null | `"KAISERSTRASSE 16, FRANKFURT AM MAIN, GERMANY"` | Bank or branch address shown by Wise, if available. |
| `formatted_iban` | string | `"DE89 3704 0044 0532 0130 00"` | Uppercase IBAN grouped in blocks of four. |

**Example input**

```json
{
  "iban": "DE89370400440532013000"
}
```

**Example output**

```json
{
  "valid": true,
  "reason": null,
  "country": "Germany",
  "page_url": "https://wise.com/gb/iban/checker",
  "bank_code": "37040044",
  "bank_name": "COMMERZBANK AG",
  "branch_name": null,
  "bic_swift_code": "COBADEFFXXX",
  "branch_address": "KAISERSTRASSE 16, FRANKFURT AM MAIN, GERMANY",
  "formatted_iban": "DE89 3704 0044 0532 0130 00"
}
```

### Compare transfer costs

Operation `compare_transfer_costs`, version 1. 1 credit per completed call. Failed calls without a completed billing receipt are free; completed work can remain charged if delivery is interrupted.

Compare how much recipients get from Wise and other providers for a transfer amount and currency pair. Quotes and delivery estimates are only shown where Wise publishes them.

**Input**

| Field | Type | Required | Example | Description |
|---|---|---|---|---|
| `amount` | number | yes | `1000` | Amount to send in the from currency, for example 1000. |
| `to_currency` | string | yes | `"Mexican peso"` | Currency name or three-letter code to receive, for example Mexican peso or MXN. |
| `from_currency` | string | yes | `"USD"` | Currency name or three-letter code to send, for example USD or US dollar. |
| `sending_country` | string | no | `"GB"` | Country name or two-letter code where the money is sent from, for example United States or US. Defaults to the home country of the from currency. |

**Input schema**

```json
{
  "type": "object",
  "required": [
    "amount",
    "from_currency",
    "to_currency"
  ],
  "properties": {
    "amount": {
      "type": "number",
      "description": "Amount to send in the from currency, for example 1000.",
      "exclusiveMinimum": 0,
      "examples": [
        1000,
        2000
      ]
    },
    "to_currency": {
      "type": "string",
      "description": "Currency name or three-letter code to receive, for example Mexican peso or MXN.",
      "examples": [
        "Mexican peso",
        "EUR"
      ]
    },
    "from_currency": {
      "type": "string",
      "description": "Currency name or three-letter code to send, for example USD or US dollar.",
      "examples": [
        "USD",
        "British pound"
      ]
    },
    "sending_country": {
      "type": "string",
      "default": "",
      "description": "Country name or two-letter code where the money is sent from, for example United States or US. Defaults to the home country of the from currency.",
      "examples": [
        "GB"
      ]
    }
  },
  "additionalProperties": false,
  "examples": [
    {
      "amount": 1000,
      "to_currency": "Mexican peso",
      "from_currency": "USD"
    },
    {
      "amount": 2000,
      "to_currency": "EUR",
      "from_currency": "British pound",
      "sending_country": "GB"
    }
  ]
}
```

**Output**

| Field | Type | Example | Description |
|---|---|---|---|
| `amount` | number | `1000` |  |
| `providers` | array |  |  |
| `providers[].page_url` | string | `"https://wise.com/us/compare/?sourceCurrency=USD&targetCurrency=MXN&sendAmount=1000#comparison-table"` |  |
| `providers[].transfer_fee` | number or null | `7.67` |  |
| `providers[].delivery_time` | string or null | `"1 second"` |  |
| `providers[].exchange_rate` | number or null | `17.9771` |  |
| `providers[].provider_name` | string | `"Wise"` |  |
| `providers[].recipient_gets` | number or null | `17839.22` |  |
| `providers[].quote_collected_date` | string or null | `"2026-09-28"` |  |
| `providers[].exchange_rate_markup_percent` | number or null | `0` |  |
| `to_currency` | string | `"MXN"` |  |
| `from_currency` | string | `"USD"` |  |
| `mid_market_rate` | number | `17.9771` |  |
| `sending_country` | string | `"US"` |  |

**Example input**

```json
{
  "amount": 1000,
  "to_currency": "Mexican peso",
  "from_currency": "USD"
}
```

**Example output**

```json
{
  "amount": 1000,
  "providers": [
    {
      "page_url": "https://wise.com/us/compare/?sourceCurrency=USD&targetCurrency=MXN&sendAmount=1000#comparison-table",
      "transfer_fee": 7.67,
      "delivery_time": "1 second",
      "exchange_rate": 17.9771,
      "provider_name": "Wise",
      "recipient_gets": 17839.22,
      "quote_collected_date": "2026-09-28",
      "exchange_rate_markup_percent": 0
    },
    {
      "page_url": "https://wise.com/us/compare/?sourceCurrency=USD&targetCurrency=MXN&sendAmount=1000#comparison-table",
      "transfer_fee": 1.99,
      "delivery_time": null,
      "exchange_rate": 17.7593009479,
      "provider_name": "Western Union",
      "recipient_gets": 17723.96,
      "quote_collected_date": "2026-09-26",
      "exchange_rate_markup_percent": 1.21098655
    },
    {
      "page_url": "https://wise.com/us/compare/?sourceCurrency=USD&targetCurrency=MXN&sendAmount=1000#comparison-table",
      "transfer_fee": 0,
      "delivery_time": null,
      "exchange_rate": 17.3893850244,
      "provider_name": "Wells Fargo",
      "recipient_gets": 17389.39,
      "quote_collected_date": "2026-09-25",
      "exchange_rate_markup_percent": 3.26870432
    }
  ],
  "to_currency": "MXN",
  "from_currency": "USD",
  "mid_market_rate": 17.9771,
  "sending_country": "US"
}
```

### Get exchange rate

Operation `get_exchange_rate`, version 1. 1 credit per completed call. Failed calls without a completed billing receipt are free; completed work can remain charged if delivery is interrupted.

Get Wise’s current mid-market exchange rate, converted amount, and optional daily rate history for two currencies. Historical rates are daily observations.

**Input**

| Field | Type | Required | Example | Description |
|---|---|---|---|---|
| `amount` | number | no | `100` | Amount to convert from the source currency, for example 100. |
| `history` | string | no | `"last_week"` | Period of daily rate history to return, for example last_month. |
| `to_currency` | string | yes | `"USD"` | Currency name or three-letter code, for example US dollar or USD. |
| `from_currency` | string | yes | `"British pound"` | Currency name or three-letter code, for example British pound or GBP. |

**Input schema**

```json
{
  "type": "object",
  "required": [
    "from_currency",
    "to_currency"
  ],
  "properties": {
    "amount": {
      "type": "number",
      "default": 1,
      "description": "Amount to convert from the source currency, for example 100.",
      "examples": [
        100,
        25
      ]
    },
    "history": {
      "enum": [
        "none",
        "last_week",
        "last_month",
        "last_6_months",
        "last_year",
        "last_5_years"
      ],
      "type": "string",
      "default": "none",
      "description": "Period of daily rate history to return, for example last_month.",
      "examples": [
        "last_week",
        "last_month"
      ]
    },
    "to_currency": {
      "type": "string",
      "description": "Currency name or three-letter code, for example US dollar or USD.",
      "examples": [
        "USD",
        "Japanese yen",
        "CAD"
      ]
    },
    "from_currency": {
      "type": "string",
      "description": "Currency name or three-letter code, for example British pound or GBP.",
      "examples": [
        "British pound",
        "EUR",
        "USD"
      ]
    }
  },
  "additionalProperties": false,
  "examples": [
    {
      "amount": 100,
      "history": "last_week",
      "to_currency": "USD",
      "from_currency": "British pound"
    },
    {
      "amount": 25,
      "history": "last_month",
      "to_currency": "Japanese yen",
      "from_currency": "EUR"
    },
    {
      "to_currency": "CAD",
      "from_currency": "USD"
    }
  ]
}
```

**Output**

| Field | Type | Example | Description |
|---|---|---|---|
| `history` | array |  | Daily rate observations, oldest first; empty when no history is requested. |
| `history[].date` | string | `"2026-09-21"` |  |
| `history[].rate` | number | `1.339` |  |
| `rate_time` | string | `"2026-09-28T22:57:00.652000+00:00"` | Time of the current rate, with offset. |
| `mid_market_rate` | number | `1.3254` | Units of the destination currency per one source currency unit. |
| `converted_amount` | number | `132.54` | Converted amount in the destination currency, rounded to two decimal places. |
| `to_currency_code` | string | `"USD"` | Destination currency code. |
| `to_currency_name` | string | `"United States dollar"` | Destination currency name. |
| `from_currency_code` | string | `"GBP"` | Source currency code. |
| `from_currency_name` | string | `"British pound"` | Source currency name. |
| `wise_converter_link` | string | `"https://wise.com/gb/currency-converter/gbp-to-usd-rate?amount=100"` | Wise converter page for this pair. |
| `converted_currency_code` | string | `"USD"` | Currency of the converted amount. |

**Example input**

```json
{
  "amount": 100,
  "history": "last_week",
  "to_currency": "USD",
  "from_currency": "British pound"
}
```

**Example output**

```json
{
  "history": [
    {
      "date": "2026-09-21",
      "rate": 1.339
    },
    {
      "date": "2026-09-22",
      "rate": 1.33685
    },
    {
      "date": "2026-09-23",
      "rate": 1.3343
    }
  ],
  "rate_time": "2026-09-28T22:57:00.652000+00:00",
  "mid_market_rate": 1.3254,
  "converted_amount": 132.54,
  "to_currency_code": "USD",
  "to_currency_name": "United States dollar",
  "from_currency_code": "GBP",
  "from_currency_name": "British pound",
  "wise_converter_link": "https://wise.com/gb/currency-converter/gbp-to-usd-rate?amount=100",
  "converted_currency_code": "USD"
}
```

### Search swift codes

Operation `search_swift_codes`, version 1. 1 credit per completed call. Failed calls without a completed billing receipt are free; completed work can remain charged if delivery is interrupted.

Find SWIFT/BIC codes and branch locations for a bank in a country on Wise. Branch names are shown when available; results are limited to the chosen bank.

**Input**

| Field | Type | Required | Example | Description |
|---|---|---|---|---|
| `bank` | string | yes | `"Chase"` | Bank name, such as Barclays. |
| `country` | string | yes | `"US"` | Country name or two-letter code, such as United Kingdom or GB. |
| `max_results` | integer | no | `5` | Maximum number of codes to return, such as 20. |
| `city_or_branch` | string | no | `"New York"` | Optional city, address, postcode, branch name or SWIFT code to narrow results, such as London. |

**Input schema**

```json
{
  "type": "object",
  "required": [
    "bank",
    "country"
  ],
  "properties": {
    "bank": {
      "type": "string",
      "description": "Bank name, such as Barclays.",
      "examples": [
        "Chase",
        "Barclays",
        "123 DEX LTD"
      ]
    },
    "country": {
      "type": "string",
      "description": "Country name or two-letter code, such as United Kingdom or GB.",
      "examples": [
        "US",
        "United Kingdom",
        "GB"
      ]
    },
    "max_results": {
      "type": "integer",
      "default": 20,
      "maximum": 100,
      "minimum": 1,
      "description": "Maximum number of codes to return, such as 20.",
      "x-fous-developer": true,
      "examples": [
        5,
        20
      ]
    },
    "city_or_branch": {
      "type": "string",
      "default": "",
      "description": "Optional city, address, postcode, branch name or SWIFT code to narrow results, such as London.",
      "examples": [
        "New York"
      ]
    }
  },
  "additionalProperties": false,
  "examples": [
    {
      "bank": "Chase",
      "country": "US",
      "max_results": 5,
      "city_or_branch": "New York"
    },
    {
      "bank": "Barclays",
      "country": "United Kingdom"
    },
    {
      "bank": "123 DEX LTD",
      "country": "GB",
      "max_results": 20
    }
  ]
}
```

**Output**

| Field | Type | Example | Description |
|---|---|---|---|
| `codes` | array |  | Matching bank codes, head office first. |
| `codes[].city` | string or null | `"NEW YORK"` |  |
| `codes[].address` | string or null | `"270 PARK AVENUE"` |  |
| `codes[].country` | string or null | `"United States"` |  |
| `codes[].postcode` | string or null | `"10179"` |  |
| `codes[].bank_name` | string or null | `"JPMORGAN CHASE BANK, N.A."` |  |
| `codes[].branch_name` | string or null | `"Head office"` |  |
| `codes[].swift_bic_code` | string | `"CHASUS33XXX"` | SWIFT/BIC code with 8 or 11 characters. |
| `codes[].wise_page_link` | string | `"https://wise.com/gb/swift-codes/CHASUS33XXX"` | Wise page for this code. |

**Example input**

```json
{
  "bank": "Chase",
  "country": "US",
  "max_results": 5,
  "city_or_branch": "New York"
}
```

**Example output**

```json
{
  "codes": [
    {
      "city": "NEW YORK",
      "address": "270 PARK AVENUE",
      "country": "United States",
      "postcode": "10179",
      "bank_name": "JPMORGAN CHASE BANK, N.A.",
      "branch_name": "Head office",
      "swift_bic_code": "CHASUS33XXX",
      "wise_page_link": "https://wise.com/gb/swift-codes/CHASUS33XXX"
    },
    {
      "city": "NEW YORK",
      "address": null,
      "country": "United States",
      "postcode": null,
      "bank_name": "JPMORGAN CHASE BANK, N.A.",
      "branch_name": null,
      "swift_bic_code": "CHASUS31HPQ",
      "wise_page_link": "https://wise.com/gb/swift-codes/CHASUS31HPQ"
    },
    {
      "city": "NEW YORK",
      "address": "270 PARK AVENUE",
      "country": "United States",
      "postcode": "10179",
      "bank_name": "JPMORGAN CHASE BANK, N.A.",
      "branch_name": null,
      "swift_bic_code": "CHASUS331MX",
      "wise_page_link": "https://wise.com/gb/swift-codes/CHASUS331MX"
    }
  ]
}
```

## Quick start

Replace `YOUR_API_KEY` with a Fous API key. To create one, open Developers at the bottom of Fous Studio, turn on Developer mode, then go to API keys (https://app.fous.com/keys). Change the values in `input` to run the same tool on new data.

```bash
curl 'https://api.fous.com/v1/query' \
  --fail-with-body --silent --show-error --max-time 180 \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H 'Content-Type: application/json' \
  --data-raw '{
  "api": "@wise",
  "visibility": "public",
  "operation": "check_iban",
  "version": 1,
  "input": {
    "iban": "DE89370400440532013000"
  },
  "response": {
    "format": "json"
  }
}'
```

```python
# Save as fous.py and run with python3 fous.py. No packages needed.
import json
import urllib.error
import urllib.request

api_key = "YOUR_API_KEY"

body = json.loads("{\n  \"api\": \"@wise\",\n  \"visibility\": \"public\",\n  \"operation\": \"check_iban\",\n  \"version\": 1,\n  \"input\": {\n    \"iban\": \"DE89370400440532013000\"\n  },\n  \"response\": {\n    \"format\": \"json\"\n  }\n}")
request = urllib.request.Request(
    "https://api.fous.com/v1/query",
    data=json.dumps(body).encode("utf-8"),
    headers={
        "Authorization": f"Bearer {api_key}",
        "Content-Type": "application/json",
    },
    method="POST",
)
try:
    with urllib.request.urlopen(request, timeout=180) as response:
        result = json.load(response)
except urllib.error.HTTPError as error:
    raise RuntimeError(f"HTTP {error.code}: {error.read().decode('utf-8', errors='replace')}") from error
if result.get("success") is False:
    raise RuntimeError(result.get("error", {}).get("message", "Request failed"))
print(json.dumps(result["data"]["output"], indent=2))
```

```typescript
// Save as fous.mts and run with npx tsx fous.mts.
const apiKey = "YOUR_API_KEY";

const response = await fetch("https://api.fous.com/v1/query", {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${apiKey}`,
    "Content-Type": "application/json",
  },
  signal: AbortSignal.timeout(180_000),
  body: JSON.stringify({
  "api": "@wise",
  "visibility": "public",
  "operation": "check_iban",
  "version": 1,
  "input": {
    "iban": "DE89370400440532013000"
  },
  "response": {
    "format": "json"
  }
}),
});
type ApiResult = { success: boolean; data?: { output: unknown }; error?: { message: string } };
const result: ApiResult = await response.json();
if (!response.ok || result.success === false) {
  throw new Error(result.error?.message ?? `HTTP ${response.status}`);
}
if (!result.data) throw new Error("Missing API response data");
console.log(result.data.output);
```

## Use from an AI assistant

Connect this tool to Claude Code, Claude Desktop, Cursor, VS Code, Codex and any MCP client as its own MCP server. Each method is a typed tool whose arguments are the method’s input.

- Server URL: `https://api.fous.com/mcp/tools/wise`
- Authorization: `Authorization: Bearer <Fous API key>`

**Tools**

- `check_iban`: Check IBAN. 1 credit per completed call. Failed calls without a completed billing receipt are free; completed work can remain charged if delivery is interrupted.
- `compare_transfer_costs`: Compare transfer costs. 1 credit per completed call. Failed calls without a completed billing receipt are free; completed work can remain charged if delivery is interrupted.
- `get_exchange_rate`: Get exchange rate. 1 credit per completed call. Failed calls without a completed billing receipt are free; completed work can remain charged if delivery is interrupted.
- `search_swift_codes`: Search swift codes. 1 credit per completed call. Failed calls without a completed billing receipt are free; completed work can remain charged if delivery is interrupted.
- `fous_get_run`: the result of a run that was still going, by its `request_id`. Free.

Claude Code:

```bash
claude mcp add --scope user --transport http fous-wise https://api.fous.com/mcp/tools/wise --header "Authorization: Bearer ${FOUS_API_KEY:?Set FOUS_API_KEY to your Fous API key}"
```

To give the assistant every tool, connect `https://api.fous.com/mcp`: it finds one with `fous_search_tools` and runs it with `fous_run_tool`. Setup for other clients: https://fous.com/llms-full.txt.

## Use cases

- Convert amounts between two currencies.
- Review daily exchange rate history.
- Compare recipient amounts and transfer costs across providers.
- Find a bank’s SWIFT/BIC code and branch location.
- Check an IBAN’s format and identify available bank details.

## FAQ

### Can I run it with my own inputs?

Yes. Change the inputs in Studio and press Run, or send new inputs from your code, or ask a connected AI assistant.

### Can I call this Wise tool as an API?

Yes. Send a POST request to /v1/query with your Fous API key and the inputs, and get JSON back.

### How much does it cost?

Each completed run costs 1 credit. Failed runs without a completed receipt are free; completed work can remain charged if delivery is interrupted. With pay as you go, a credit costs 1¢. Monthly plans cost less per credit.

### Do I need a Wise account?

No. You only need a Fous account.

### How current is the data?

Fous gets the data from wise.com when you run it. Some results are reused for up to 24 hours, and results that use your account or key are never reused. It was last verified on Sep 28, 2026.

### What is the mid-market rate between two currencies?

Use Get exchange rate with the source and destination currencies to see the current mid-market rate.

### How much might a recipient get from different providers?

Use Compare transfer costs with an amount, currency pair, and optional sending country.

### Does an IBAN pass its format checks?

Use Check iban to check the country length and check digits. A valid format does not confirm the account exists.

## Related

- [XE API](https://fous.com/tools/xe.md): XE returns currency conversions and mid-market rates, including current displayed rates for information and published historical daily rates for available UTC dates.
- [European Central Bank API](https://fous.com/tools/european-central-bank.md): The European Central Bank provides official euro reference rates and informational currency conversions using the latest preceding published rates when needed, plus current key interest rates and optionally earlier changes.
- [Google Finance API](https://fous.com/tools/google-finance.md): Google Finance returns possibly delayed prices and figures, indexes, up to four movers timed by oldest quote, currency conversions, and up to five financial periods.
- [US Treasury API](https://fous.com/tools/us-treasury.md): US Treasury provides official daily interest rates and national debt figures for requested or latest available dates, plus quarterly reporting exchange rates using the latest preceding quarter when needed.
- [Coinbase API](https://fous.com/tools/coinbase.md): Coinbase provides public cryptocurrency prices and market overviews, including changing spot, buy, and sell quotes and 24-hour statistics; unavailable page facts may be missing.
- [EU VIES API](https://fous.com/tools/eu-vies.md): European Commission service for checking EU VAT numbers.
- [Apple Store API](https://fous.com/tools/apple-store.md): Apple Store shows current public-store prices and configurations, compares prices across up to 15 countries at latest ECB rates, checks local pickup without reservations, and lists currently shown refurbished products.
- [Trading Economics API](https://fous.com/tools/trading-economics.md): Trading Economics provides economic indicators, market data and country statistics, including country overviews, latest reported country comparisons and current commodity prices reflecting reported trading days.
- [All Finance tools](https://fous.com/tools/category/finance)
