List spending pools
curl --request GET \
--url https://api.lightspark.com/grid/2025-10-13/spending-pools \
--header 'Authorization: Basic <encoded-value>'const options = {method: 'GET', headers: {Authorization: 'Basic <encoded-value>'}};
fetch('https://api.lightspark.com/grid/2025-10-13/spending-pools', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));val client = OkHttpClient()
val request = Request.Builder()
.url("https://api.lightspark.com/grid/2025-10-13/spending-pools")
.get()
.addHeader("Authorization", "Basic <encoded-value>")
.build()
val response = client.newCall(request).execute(){
"data": [
{
"id": "SpendingPool:019542f5-b3e7-1d02-0000-000000000007",
"customerId": "Customer:019542f5-b3e7-1d02-0000-000000000001",
"name": "Marketing",
"currency": "USD",
"limitType": "RECURRING",
"limitAmount": 500000,
"allowedPaymentTypes": [
"CARDS",
"CRYPTO_SENDS"
],
"requiresAdminApproval": false,
"isArchived": false,
"usage": {
"spent": 125000,
"remaining": 375000,
"dailySpent": 2500,
"monthlySpent": 125000,
"periodStart": "2026-11-01",
"periodEnd": "2026-12-01"
},
"createdAt": "2026-11-02T17:32:28Z",
"updatedAt": "2026-11-02T17:32:28Z",
"period": "MONTH",
"perTransactionLimit": 50000,
"dailyLimit": 100000,
"monthlyLimit": 400000
}
],
"hasMore": true,
"nextCursor": "<string>"
}{
"code": "INVALID_INPUT",
"reason": "<string>",
"details": {
"errors": [
{
"field": "identifier",
"constraint": {
"format": "email",
"pattern": "^\\d{5}(-\\d{4})?$",
"enum": [
"SSN",
"ITIN",
"NON_US_TAX_ID"
],
"minLength": 1,
"maxLength": 500
},
"message": "Value is not one of the allowed enum members."
}
],
"missingRequirements": [
"SUPPORTING_PROOF"
],
"refusalReason": "AGENT_POLICY_DENIED",
"missingFields": [
"PHONE_NUMBER"
]
}
}{
"code": "UNAUTHORIZED",
"reason": "<string>",
"details": {}
}{
"code": "FORBIDDEN",
"reason": "<string>",
"details": {
"refusalReason": "AGENT_POLICY_DENIED",
"permission": "ISSUE_CARDS",
"policyDenialReason": "DAILY_LIMIT_EXCEEDED"
}
}{
"code": "TRANSACTION_NOT_FOUND",
"reason": "<string>",
"details": {}
}{
"code": "GRID_SWITCH_ERROR",
"reason": "<string>",
"details": {}
}Agent Management
List spending pools
Retrieve a paginated list of the platform’s spending pools, with their current usage.
GET
/
spending-pools
List spending pools
curl --request GET \
--url https://api.lightspark.com/grid/2025-10-13/spending-pools \
--header 'Authorization: Basic <encoded-value>'const options = {method: 'GET', headers: {Authorization: 'Basic <encoded-value>'}};
fetch('https://api.lightspark.com/grid/2025-10-13/spending-pools', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));val client = OkHttpClient()
val request = Request.Builder()
.url("https://api.lightspark.com/grid/2025-10-13/spending-pools")
.get()
.addHeader("Authorization", "Basic <encoded-value>")
.build()
val response = client.newCall(request).execute(){
"data": [
{
"id": "SpendingPool:019542f5-b3e7-1d02-0000-000000000007",
"customerId": "Customer:019542f5-b3e7-1d02-0000-000000000001",
"name": "Marketing",
"currency": "USD",
"limitType": "RECURRING",
"limitAmount": 500000,
"allowedPaymentTypes": [
"CARDS",
"CRYPTO_SENDS"
],
"requiresAdminApproval": false,
"isArchived": false,
"usage": {
"spent": 125000,
"remaining": 375000,
"dailySpent": 2500,
"monthlySpent": 125000,
"periodStart": "2026-11-01",
"periodEnd": "2026-12-01"
},
"createdAt": "2026-11-02T17:32:28Z",
"updatedAt": "2026-11-02T17:32:28Z",
"period": "MONTH",
"perTransactionLimit": 50000,
"dailyLimit": 100000,
"monthlyLimit": 400000
}
],
"hasMore": true,
"nextCursor": "<string>"
}{
"code": "INVALID_INPUT",
"reason": "<string>",
"details": {
"errors": [
{
"field": "identifier",
"constraint": {
"format": "email",
"pattern": "^\\d{5}(-\\d{4})?$",
"enum": [
"SSN",
"ITIN",
"NON_US_TAX_ID"
],
"minLength": 1,
"maxLength": 500
},
"message": "Value is not one of the allowed enum members."
}
],
"missingRequirements": [
"SUPPORTING_PROOF"
],
"refusalReason": "AGENT_POLICY_DENIED",
"missingFields": [
"PHONE_NUMBER"
]
}
}{
"code": "UNAUTHORIZED",
"reason": "<string>",
"details": {}
}{
"code": "FORBIDDEN",
"reason": "<string>",
"details": {
"refusalReason": "AGENT_POLICY_DENIED",
"permission": "ISSUE_CARDS",
"policyDenialReason": "DAILY_LIMIT_EXCEEDED"
}
}{
"code": "TRANSACTION_NOT_FOUND",
"reason": "<string>",
"details": {}
}{
"code": "GRID_SWITCH_ERROR",
"reason": "<string>",
"details": {}
}Authorizations
API token authentication using format <api token id>:<api client secret>
Query Parameters
Filter by customer ID
Filter by archived status. Omitted, pools of both are returned.
Maximum number of results to return (default 20, max 100)
Required range:
1 <= x <= 100Cursor for pagination (returned from previous request)
Response
Successful operation
Was this page helpful?