API Reference
Card Issuance API
Issue virtual cards for AI agents, manage spending limits, and track card lifecycle events — all via REST API.
Base URL: https://spur-2-scnv.polsia.app/v1
POST
/v1/cards
Issue a new virtual card
Request Body
| Parameter | Type | Required | Description |
|---|---|---|---|
| agent_id | string | required | Identifier for the agent receiving the card |
| spending_limit | number | required | Maximum spend amount for this card |
| currency | string | optional | ISO 4217 currency code (default: USD) |
| label | string | optional | Human-readable label for the card |
| metadata | object | optional | Arbitrary JSON metadata |
Example Request
curl -X POST https://spur-2-scnv.polsia.app/v1/cards \
-H "Content-Type: application/json" \
-d '{
"agent_id": "sales-agent-v3",
"spending_limit": 500.00,
"currency": "USD",
"label": "Marketing budget"
}'
Response (201)
{
"card": {
"id": "crd_8xK2mNpQ",
"agent_id": "sales-agent-v3",
"card_number": "9999 0012 3456 7890",
"cvv": "482",
"exp_month": 5,
"exp_year": 2029,
"last_four": "7890",
"spending_limit": 500.00,
"spent": 0.00,
"available": 500.00,
"currency": "USD",
"status": "active",
"label": "Marketing budget"
}
}
GET
/v1/cards
List all cards
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| agent_id | string | optional | Filter by agent ID |
| status | string | optional | Filter by status: active, frozen, cancelled |
| limit | number | optional | Max results (default 50, max 100) |
| offset | number | optional | Pagination offset (default 0) |
Example Request
curl https://spur-2-scnv.polsia.app/v1/cards?agent_id=sales-agent-v3
GET
/v1/cards/:cardId
Get card details
Returns full card details including card number, CVV, and recent lifecycle events.
Example Request
curl https://spur-2-scnv.polsia.app/v1/cards/crd_8xK2mNpQ
PATCH
/v1/cards/:cardId
Update card
Request Body
| Parameter | Type | Required | Description |
|---|---|---|---|
| status | string | optional | Set to "active", "frozen", or "cancelled" |
| spending_limit | number | optional | New spending limit |
| label | string | optional | Update the card label |
Example: Freeze a card
curl -X PATCH https://spur-2-scnv.polsia.app/v1/cards/crd_8xK2mNpQ \
-H "Content-Type: application/json" \
-d '{ "status": "frozen" }'