Skip to content
Logo

GET /accounts

List every account the org has attached across all of its end-user customers. UNIONs fiat + crypto rows, sorted by (created_at desc, id desc) and clamped to limit (default 50, max 200).

For per-customer listings, GET /customers/:id/accounts is the more direct path.

Query params

ParamTypeNotes
customer_idstring?Narrow to a single customer.
kind"fiat" | "crypto"Narrow to one kind.
origin"external" | "virtual"Narrow to one origin.
currencystring | numberMatch by currency name ("USDC") or numeric id.
railstring | numberMatch by rail name ("base") or numeric id.
status"pending" | "active" | "failed" | "closed"Match exactly. pending / failed return only the virtual accounts still being provisioned (or whose provisioning failed). closed returns retired accounts, which carry no details. See Account.status.
limitinteger (1–200, default 50)Page size.
cursorstringOpaque cursor from the prior page's next_cursor.

Response 200

{
  "accounts": [
    {
      "id": "5e3a…",
      "customer_id": "2f10…",
      "kind": "fiat",
      "shape": "us",
      "origin": "external",
      "currency": "USD",
      "rails": ["ach", "wire"],
      "status": "active",
      "created_at": "2026-04-22T08:10:00Z",
      "updated_at": "2026-04-22T08:10:00Z",
      "details": {
        "account_number": "0123456789",
        "routing_number": "021000021",
        "ach_routing_number": "021000021",
        "fedwire_routing_number": "021000021",
        "bank_name": "JPMorgan Chase Bank",
        "account_holder_name": "Acme Inc.",
        "bank_address": {
          "line1": "270 Park Avenue",
          "city": "New York",
          "state": "NY",
          "postal_code": "10017",
          "country": "US"
        }
      }
    },
    {
      "id": "5e3b…",
      "customer_id": "2f10…",
      "kind": "crypto",
      "shape": "evm",
      "origin": "external",
      "currency": "USDC",
      "rails": ["base"],
      "status": "active",
      "created_at": "2026-04-23T10:25:00Z",
      "updated_at": "2026-04-23T10:25:00Z",
      "details": {
        "address": "0x742d35Cc6634C0532925a3b844Bc9e7595f8b840"
      }
    }
  ]
}

When more pages remain, next_cursor is set. Each entry is an Account: branch on kind to dispatch on the shape of details. Virtual entries also carry balance / available_balance / balance_as_of once Seismic's first balance sync lands (the examples above are external-origin, so they never do).

Example

curl "$SEISMIC_ORCHESTRATION_URL/v0/accounts?customer_id=2f10…&kind=fiat" \
  -H "Api-Key: $SEISMIC_ORCHESTRATION_API_KEY"