curl --request POST \
--url https://api.usepatchwork.co/v1/identify \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"rail": "routing_number",
"code": "021000021"
}
'{
"status": "success",
"data": {
"result": "identified",
"rail": "routing_number",
"country": "US",
"institution": {
"name": "JPMorgan Chase Bank",
"type": "bank",
"code": "021000021",
"address": {
"city": "Tampa",
"country": "US"
}
},
"reachable_rails": [
"ach",
"wire",
"rtp"
],
"identified_at": "2026-08-02T12:00:00Z"
}
}Identify an account
Resolve a bank or wallet identifier to the institution behind it, the rails that can reach it, and — on supported rails — the holder name. Charged on an identified outcome. Verifying your email starts a workspace with $20 of credit; there is no complimentary test lane.
curl --request POST \
--url https://api.usepatchwork.co/v1/identify \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"rail": "routing_number",
"code": "021000021"
}
'{
"status": "success",
"data": {
"result": "identified",
"rail": "routing_number",
"country": "US",
"institution": {
"name": "JPMorgan Chase Bank",
"type": "bank",
"code": "021000021",
"address": {
"city": "Tampa",
"country": "US"
}
},
"reachable_rails": [
"ach",
"wire",
"rtp"
],
"identified_at": "2026-08-02T12:00:00Z"
}
}Authorizations
Identify accepts a workspace API key (sk_…). Loom accepts either a short-lived session token (direct) or a workspace API key (relay).
Headers
Makes this POST safe to retry. The first call does the work and its response is stored; a retry with the same key returns that stored response with Idempotency-Replayed: true, without charging again. Same key with a different body is rejected. Keys expire after 24 hours.
255Body
Kind of identifier to resolve.
swift, iban, routing_number, sort_code, ifsc, nuban, momo, gh_bank, ke_bank, za_bank, ci_bank, eg_bank, rw_bank The identifier — ABA routing number, IBAN, sort code, SWIFT/BIC, and so on.
Account or wallet number. On holder-enabled rails (nuban, gh_bank, ke_bank, and momo in Ghana and Kenya) this also resolves the holder name. On the others it comes back with name_resolution: "not_supported".
ISO 3166-1 alpha-2 hint when the rail is ambiguous.