GET /customers/:id/accounts
List every account attached to a single end-user customer. UNIONs fiat + crypto rows, sorted by (created_at desc, id desc) and clamped to limit (default 50, max 200).
For an org-wide view across all customers, see GET /accounts instead. For an in-flight creation request, see GET /customers/:id/accounts/requests.
Query params
| Param | Type | Notes |
|---|---|---|
kind | "fiat" | "crypto" | Narrow to one kind. |
origin | "external" | "virtual" | Narrow to one origin. |
currency | string | number | Match by currency name ("USDC") or numeric id. |
rail | string | number | Match 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. |
limit | integer (1–200, default 50) | Page size. |
cursor | string | Opaque cursor from the prior page's next_cursor. |
Response 200
{
"accounts": [
{
"id": "5e3a…",
"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. On the last page it is absent.
Each entry is an Account. Branch on kind to dispatch on the shape of details.
Errors
403 (customer belongs to a different org), 404 (unknown customer id).
Example: USDC-capable external accounts
curl "$SEISMIC_ORCHESTRATION_URL/v0/customers/2f10…/accounts?kind=crypto&origin=external¤cy=USDC&status=active" \
-H "Api-Key: $SEISMIC_ORCHESTRATION_API_KEY"