Skip to content

Stripe: List all exchange rates

Stripe exchangeRates.getExchangeRates: arguments, response, policy and SDK examples.

← Exchange rates operations · Get started

Operation stripe.getexchangerates

Provider route: GET /v1/exchange_rates. Alter supplies the connection’s credentials and routing.

Install @alter-ai/sdk @alter-ai/stripe with npm, or alter-sdk-stripe with pip. Supply your connected customer’s grant ID and the arguments described below.

import { App } from "@alter-ai/sdk";
import { StripeIntegration } from "@alter-ai/stripe";
async function execute(input: Parameters<StripeIntegration["exchangeRates"]["getExchangeRates"]>[0]) {
const app = new App({ apiKey: process.env.ALTER_API_KEY! });
try {
const provider = new StripeIntegration(app, { grantId: process.env.PROVIDER_GRANT_ID! });
const call = await provider.exchangeRates.getExchangeRates(input);
const result = await call.wait();
return result.bodyJson();
} finally {
await app.close();
}
}
import os
from alter_sdk import App
from alter_sdk_stripe import StripeIntegration
async def execute(arguments):
async with App(api_key=os.environ["ALTER_API_KEY"]) as app:
provider = StripeIntegration(app, {"grant_id": os.environ["PROVIDER_GRANT_ID"]})
call = await provider.exchange_rates.get_exchange_rates(arguments)
result = await call.wait()
return result.body_json()
FieldTypePresenceDescription and constraints
$objectRootAdditional keys: not allowed
queryobjectOptionalAdditional keys: not allowed
query.ending_beforestringOptionalMaximum length: 5000
query.expandarrayOptional
query.expand[]stringEach itemMaximum length: 5000
query.limitintegerOptional
query.starting_afterstringOptionalMaximum length: 5000

Response media type: application/json. The table describes the pinned successful response. Referenced models link to their complete fields.

FieldTypePresenceDescription and constraints
$objectRoot
dataarrayRequired within parent
data[]ModelEach itemExpand Retrieve an exchange rate — response body
has_morebooleanRequired within parentTrue if this list has another page of items after this one that can be fetched.
objectstringRequired within parentString representing the object’s type. Objects of the same type share the same value. Always has the value `list`.
Known values: list
urlstringRequired within parentThe URL where this list can be accessed.
Maximum length: 5000
Pattern: ^/v1/exchange_rates

Referenced models: Retrieve an exchange rate — response body

Retrieve an exchange rate — response body
FieldTypePresenceDescription and constraints
$objectRoot[Deprecated] The `ExchangeRate` APIs are deprecated. Please use the [FX Quotes API](https://docs.stripe.com/payments/currencies/localize-prices/fx-quotes-api) instead.

`ExchangeRate` objects allow you to determine the rates that Stripe is currently
using to convert from one currency to another. Since this number is variable
throughout the day, there are various reasons why you might want to know the current
rate (for example, to dynamically price an item for a user with a default
payment in a foreign currency).

Please refer to our [Exchange Rates API](https://docs.stripe.com/fx-rates) guide for more details.

*[Note: this integration path is supported but no longer recommended]* Additionally,
you can guarantee that a charge is made with an exchange rate that you expect is
current. To do so, you must pass in the exchange_rate to charges endpoints. If the
value is no longer up to date, the charge won't go through. Please refer to our
[Using with charges](https://docs.stripe.com/exchange-rates) guide for more details.

-----

&nbsp;

*This Exchange Rates API is a Beta Service and is subject to Stripe's terms of service. You may use the API solely for the purpose of transacting on Stripe. For example, the API may be queried in order to:*

- *localize prices for processing payments on Stripe*
- *reconcile Stripe transactions*
- *determine how much money to send to a connected account*
- *determine app fees to charge a connected account*

*Using this Exchange Rates API beta for any purpose other than to transact on Stripe is strictly prohibited and constitutes a violation of Stripe's terms of service.*
idstringRequired within parentUnique identifier for the object. Represented as the three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html) in lowercase.
Maximum length: 5000
objectstringRequired within parentString representing the object's type. Objects of the same type share the same value.
Known values: exchange_rate
ratesobjectRequired within parentHash where the keys are supported currencies and the values are the exchange rate at which the base id currency converts to the key currency.
Additional keys: see wildcard field
rates.*JSONAdditional keys
rates.* (anyOf 1)numberAlternative
rates.* (anyOf 2)stringAlternativePattern: ^-?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$

SDK function policy ID: stripe.getexchangerates. Catalog operation: GetExchangeRates. Rules can name either ID; function rules distinguish managed calls and conservatively cover raw calls sharing the route. Existing grant permissions and policy rules apply. wait() returns an immediate result or waits for a required approval; it never approves the request itself. Persist the approval ID to resume after a restart.

Provider errors retain their response; JSON decoding raises ProviderAPIError for provider failures. ManagedOperationError identifies contract/input/retention errors. See error handling and provider-specific behavior. Sensitive input may be refused before approval storage. A decoding error never resubmits a write.

Pinned headers: {"Stripe-Version": "2026-09-30.endive"}

Official provider source

Report an issue with this page

Necessary

Required for sign-in, security, authorization, and remembering your choices.

Always active

Analytics

Helps us understand which product and documentation features are useful.

Performance diagnostics

Uses performance tracing and privacy-masked session replay to diagnose problems.

You can change these choices at any time from Cookie settings.