Customers


The /data/customers endpoint provides full CRUD operations for raw customer records. This endpoint focuses on the raw fields of customers (name, email, country, currency, status, trial and paid dates) and is intended for import/export and bulk operations, not derived metrics like MRR or subscription status.


List customers

Retrieve all customer records for the authenticated account.

Request


GET /data/customers

Query parameters

ParameterTypeRequiredDescription
limitnumberNoMaximum number of records to return.

Response

Status: 200 OK

{
"result": {
"count": 2,
"list": [
{
"id": "cus_123",
"name": "Acme Corp",
"email": "[email protected]",
"created_date": "2025-10-01T12:00:00.000Z",
"country": "US",
"trial_started": "2025-09-01T12:00:00.000Z",
"paid_started": "2025-09-15T12:00:00.000Z",
"cancel_date": null,
"status": "active",
"currency": "USD",
"data_source": "xxxx-aaaa-bbb"
}
]
}
}

Retrieve single customer

GET /data/customers/{id}

Response

{
"id": "cus_456",
"name": "Beta LLC",
"email": "[email protected]",
"country": "US",
"currency": "usd",
"status": "active",
"trial_started": "2025-10-01T00:00:00Z",
"paid_started": "2025-10-15T00:00:00Z",
"cancel_date": null,
"created_date": "2025-10-01T12:00:00.000Z",
"trial_end_date": "2025-04-08T20:52:41.000Z",
"overdue_date": null,
"custom_variables": {
"owner": "Matt",
"channel": "google-ads"
},
"status": "active",
"data_source": "xxxbbbaa-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"cancel_reason": null,
"current_mrr": {
"usd": 4900
}
}

Create customer + bulk insert

Create one or multiple customer records. To bulk insert, provide an array of customer objects in the request body.

Request

POST /data/customers
Content-Type: application/json

Body (single)

{
"id": "cus_456",
"name": "Beta LLC",
"email": "[email protected]",
"created_date": "2025-10-01T00:00:00Z",
"country": "US",
"trial_started": "2025-10-01T00:00:00Z",
"data_source": "xxxx-aaaa-bbb"
}

Body (bulk)

[
{
"id": "cus_456",
"name": "Beta LLC",
"email": "[email protected]",
"created_date": "2025-10-01T00:00:00Z",
"country": "US",
"data_source": "xxxx-aaaa-bbb"
},
{
"id": "cus_789",
"name": "Gamma Inc",
"email": "[email protected]",
"created_date": "2025-10-01T00:00:00Z",
"country": "GB",
"trial_started": "2025-10-01T00:00:00Z",
"data_source": "xxxx-aaaa-bbb"
}
]

Response

Status: 201 Created

{
"result": {
"count": 2,
"list": [
{ "id": "cus_456" },
{ "id": "cus_789" }
]
}
}

Update customer

Update an existing customer by ID. Only the fields included will be updated, the rest will be kept as they are.

The custom_variables object works the same way, and will be merged with the existing ones (the new ones taking precedence).

PUT /data/customers/{id}
Content-Type: application/json

Body

{
"name": "Beta LLC Updated",
"email": "[email protected]",
"custom_variables": {
"owner": "John",
"channel": "paid-ads"
}
}

Response

Status: 200 OK

{
"success": true,
"result": {
"id": "cus_456",
"name": "Beta LLC Updated",
"email": "[email protected]",
"country": "US",
"currency": "usd",
"status": "active",
"trial_started": "2025-10-01T00:00:00Z",
"paid_started": "2025-10-15T00:00:00Z",
"cancel_date": null,
"created_date": "2025-10-01T12:00:00.000Z",
"trial_end_date": "2025-04-08T20:52:41.000Z",
"overdue_date": null,
"custom_variables": {
"owner": "Matt",
"channel": "google-ads",
"billing-id": "dcksdfkjn34"
},
"status": "active",
"data_source": "xxxbbbaa-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"cancel_reason": null,
"current_mrr": {
"usd": 4900
}
}
}

Delete customer

Delete a customer by ID.

DELETE /data/customers/{id}

Response

Status: 200 OK

{
"success": true,
"id": "cus_456"
}