Get account cards
GET /v2/api-gateway/accounts/{id}/cards
Lists the cards funded by this account, newest first. Only cards funded by this account are returned; an account that funds no card yields an empty list with pagination.total 0.
Request
Authentication: your API key in the x-api-key header.
Path parameters
| Field | Type | Description |
|---|---|---|
id required | string, uuid | Account UUID |
Query parameters
| Field | Type | Description |
|---|---|---|
page | number | Min 1 |
per_ | number | Min 1. A value above 100 is not rejected: it is silently reduced to 100, and pagination.per_ in the response reports the size actually applied — read it back rather than assuming the value you sent. |
include_ | boolean | Include deleted, expired and marked-as-used cards (true/false). Excluded by default. |
current_ | number | Page number, starting at 1 — the canonical spelling, accepted on every paginated endpoint and matching pagination.current_ in the response. page means the same thing and keeps working; if both are sent, current_ wins. |
Example request
cURL
curl --request GET \
--url 'https://api.themooncard.com/v2/api-gateway/accounts/8d2cd518-5ef2-4280-91e8-63b1a0e672e7/cards' \
--header 'x-api-key: YOUR_API_KEY'Responses
200 Success
| Field | Type | Description |
|---|---|---|
cards required | array of object, nullable | |
cards[]. required | string | Card id. |
cards[]. required | string, nullable | Current balance, "0.00" style string, or null. |
cards[]. required | string, nullable | Balance including pending holds, or null. |
cards[]. required | string, date-time, nullable | Expiration as an ISO-8601 timestamp, or null when unknown. |
cards[]. required | string | Expiration formatted for display, e.g. "12/29". |
cards[]. required | string, nullable | Spendable balance, or null. |
cards[]. required | integer | 1 when the card is terminated, otherwise 0.One of: 0, 1 |
cards[]. required | string | Card product this card was issued from. |
cards[]. required | string | Full card number. |
cards[]. required | string, nullable | Card verification value, or null when not available. |
cards[]. required | string | Token to reference this card in support requests. |
cards[]. required | integer | 1 when the card is frozen, otherwise 0.One of: 0, 1 |
cards[]. required | integer | 1 when the card is activated, otherwise 0.One of: 0, 1 |
cards[]. required | object | The key-value data you stored on this card, returned exactly as you sent it. An empty object when you never set any — it is never null. |
cards[]. required | string, nullable | Card type, e.g. "virtual" or "physical"; null when unknown. |
pagination required | object | |
pagination. required | integer | Total number of items across all pages. |
pagination. required | integer | Number of the last page (0 when there are no items). |
pagination. required | integer, nullable | Previous page number, or null on the first page. |
pagination. required | integer, nullable | Next page number, or null on the last page. |
pagination. required | integer | Page size that was applied. |
pagination. required | integer | 1-based current page. |
pagination. required | integer | 1-based index of the first item on this page (0 when empty). |
pagination. required | integer | 1-based index of the last item on this page (0 when empty). |
JSON
{
"cards": [
{
"id": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
"balance": "25.50",
"true_balance": "25.50",
"expiration": "2029-12-31T23:59:59Z",
"display_expiration": "12/29",
"available_balance": "25.50",
"terminated": 0,
"card_product_id": "a8358b18-be77-41b7-af4d-f4e9760cba86",
"pan": "4111111111111111",
"cvv": "123",
"support_token": "ST-8QK2-4M7D",
"frozen": 0,
"activated": 1,
"metadata": {
"order_id": "ORD-10294"
},
"card_type": "VIRTUAL"
}
],
"pagination": {
"total": 1,
"last_page": 1,
"prev_page": null,
"next_page": null,
"per_page": 10,
"current_page": 1,
"from": 1,
"to": 1
}
}400 Error
Validation failed (errors[] lists each offending field) or a domain rule rejected the request ({ message, code }).
The body is the standard error object: see Errors.
401 Error
Missing or invalid credentials, e.g. { "message": "Invalid API Key", "code": "UNAUTHORIZED" }.
The body is the standard error object: see Errors.
500 Error
Unexpected server error. Body is { message: "Internal server error", code: "INTERNAL_.
The body is the standard error object: see Errors.
Last updated June 5, 2026