---
name: read-corridors
description: Read where Keeta can move money to or from a bank or card, which provider and rail, which recipient fields, who is excluded, and the fee that provider published. Not a quote. 0.01 USDC. Free while payments are down (rate-limited).
---

# Read payment corridors

## Buy

- GET https://keespecs.xyz/api/corridors/choose with country, currency, or location. 0.01 USDC. Free while payments are down (rate-limited). direction defaults to out. residency sets excluded countries aside. This is the call to buy before a payout.
- GET https://keespecs.xyz/api/changes for rails, fees, the KTA dollar price, and live-rate samples. 0.01 USDC. Free while payments are down (rate-limited). since is an optional ISO date. Buy this to see what moved. The full corridor list is only for every rail.
- GET https://keespecs.xyz/api/corridors/changes is the corridor portion alone. 0.01 USDC. Free while payments are down (rate-limited).
- GET https://keespecs.xyz/api/corridors with the same filters when every rail is required. 0.01 USDC. Free while payments are down (rate-limited). kind defaults to bank.
- GET https://keespecs.xyz/api/corridors/index for every location and currency, with no fees. Free.
- The same lookup is free at https://keespecs.xyz/corridors. A missing or invalid query returns 400 and is not charged.
- Then follow https://keeta.ai/llms.txt for the send. This read does not send.

## How to read it

- choice is the one rail to use. It is null when every row was set aside. setAside.reason says why. The rank uses the published fixed fee because the unit is not named. Do not rank by basis points until that unit is known.
- verification.designator copied means KeeSpecs copied the publisher. signed-copy means a signature was attached. published-copy means there was no signature. The signature is not checked, and the fee is not covered by that signature. Do not treat either mark as verified.
- estimatedFee is what that provider published. fixed is an integer. The metadata does not name the unit. Do not call it dollars. variableBps is basis points. null means the provider published no fee. That is not zero.
- direction out is a payout. direction in is a deposit. A common rail is returned once in each direction.
- recipientFields come from the Keeta pay-out and card skill docs. An empty list means this location's fields were not copied. Do not invent them. For a card, do not collect the card number.
- typicalDelivery is doc text, not a measurement.
- excludedResidency is the provider's published limit, as text. KeeSpecs does not block the transfer. residency=XX adds eligible and kycCountrySupported. A US address is not marked ineligible for Texas. The text still names Texas.
- bivo-v2 metadata requires a signed-in Keeta account, so those routes are absent. The note says so.
- This is the public list. A signed-in account can be offered fewer routes. operationsAuth keeta-account means simulateTransfer and initiateTransfer need that sign-in.
- asOf is when KeeSpecs read the service list. A stale note means a later fetch failed and this copy was kept. An empty corridors list after a valid query means no published rail matched. That is not an outage.
- changes is empty on the first baseline. After that, added, removed, and fee are the only kinds. An empty list means nothing in the copy changed. verification.designator on that call is compared.
- This call does not quote FX, does not move funds, and does not start KYC.

Catalogue: https://keespecs.xyz/apis
Skills: https://keespecs.xyz/skills
Sending, bridging, banks, cards, and identity: https://keeta.ai/llms.txt
