Docs

List customers

Returns a paginated list of customers.

GET /customers

Returns a paginated list of customers. Use the query parameters to page through results.

By default, Paddle returns customers that are active. Use the status query parameter to return customers that are archived.

Requires customer.read permission.

Query parameters

idarray
Return only the IDs specified. Use a comma-separated list to get multiple entities.
afterstring
Return entities after the specified Paddle ID when working with paginated endpoints. Used in the meta.pagination.next URL in responses for list operations.
per_pageinteger
Default: 50

Set how many entities are returned per page. Paddle returns the maximum number of results if a number greater than the maximum is requested. Check meta.pagination.per_page in the response to see how many were returned.

Default: 50; Maximum: 200.

Max: 200
emailarray
Return entities that exactly match the specified email address. Use a comma-separated list to specify multiple email addresses. Recommended for precise matching of email addresses.
Items: max 100
order_bystring
Default: id[DESC]

Order returned entities by the specified field and direction ([ASC] or [DESC]). For example, ?order_by=id[ASC].

Valid fields for ordering: id.

statusarray
Default: active
Return entities that match the specified status. Use a comma-separated list to specify multiple status values.
Values
  • active
    Return entities where the status is active. Returned entities can be used in Paddle and are returned when listing entities.
  • archived
    Return entities where the status is archived. Returned entities can't be used for billing and aren't returned when listing entities.
searchstring
Return entities that match a search query. Searches id, name, and email fields. Use the email query parameter for precise matching of email addresses.
Max length: 100

Response (200)

dataarrayrequired
idstringrequired
Example: ctm_01grnn4zta5a1mf02jjze7y2ys
Unique Paddle ID for this customer entity, prefixed with ctm_.
Pattern: ^ctm_[a-z\d]{26}$
namestring | nullrequired
Full name.
Max length: 1024
emailstring (email)required
Example: test@paddle.com
Email address for this customer.
Length: 1–320
marketing_consentbooleanrequired
Default: false
Whether this customer opted into marketing from you. false unless customers check the marketing consent box when using Paddle Checkout. Set automatically by Paddle.
statusstringrequired
Default: active
Whether this entity can be used in Paddle.
Values
  • active
    Entity is active and can be used.
  • archived
    Entity is archived, so can't be used.
custom_dataobject | nullrequired
Example: {"customer_reference_id":"abcd1234"}
Your own structured key-value data.
localestringrequired
Default: en
Valid IETF BCP 47 short form locale tag. If omitted, defaults to en.
created_atstring (date-time)required
Example: 2024-10-12T07:20:50.52Z
RFC 3339 datetime string of when this entity was created. Set automatically by Paddle.
updated_atstring (date-time)required
Example: 2024-10-13T07:20:50.52Z
RFC 3339 datetime string of when this entity was updated. Set automatically by Paddle.
import_metaobject | nullrequired
Import information for this entity. null if this entity is not imported.
external_idstring | null
Example: 9b95b0b8-e10f-441a-862e-1936a6d818ab
Reference or identifier for this entity from the provider where it was imported from.
Length: 1–200
imported_fromstringrequired
Example: paddle_classic
Name of the platform or provider where this entity was imported from.
Length: 1–200
metaobjectrequired
Information about this response.
request_idstringrequired
Example: b15ec92e-8688-40d4-a04d-f44cbec93355
Unique ID for the request relating to this response. Provide this when contacting Paddle support about a specific request.
paginationobjectrequired
Keys used for working with paginated results.
per_pageintegerrequired
Number of entities per page for this response. May differ from the number requested if the requested number is greater than the maximum.
nextstring (uri)required
URL containing the query parameters of the original request, along with the after parameter that marks the starting point of the next page. Always returned, even if has_more is false.
has_morebooleanrequired
Whether this response has another page.
estimated_totalinteger
Example: 999
Estimated number of entities for this response.
Response
{
"data": [
{
"id": "ctm_01hv6y1jedq4p1n0yqn5ba3ky4",
"status": "active",
"custom_data": null,
"name": "Jo Brown-Anderson",
"email": "jo@example.com",
"marketing_consent": false,
"locale": "en",
"created_at": "2024-04-11T15:57:24.813Z",
"updated_at": "2024-04-11T15:59:56.658719Z",
"import_meta": null
},
{
"id": "ctm_01h844q4mznqpgqgm6evgw1w63",
"status": "active",
"custom_data": null,
"name": "Jamie Price",
"email": "jamie@example.com",
"marketing_consent": false,
"locale": "en",
"created_at": "2023-08-18T10:58:05.087Z",
"updated_at": "2024-04-11T15:55:02.727195Z",
"import_meta": null
},
{
"id": "ctm_01h844p3h41s12zs5mn4axja51",
"status": "active",
"custom_data": null,
"name": "Alex Wilson",
"email": "alex@example.com",
"marketing_consent": false,
"locale": "en",
"created_at": "2023-08-18T10:57:31.172Z",
"updated_at": "2024-04-11T15:55:19.492484Z",
"import_meta": null
},
{
"id": "ctm_01hrffh7gvp29kc7xahm8wddwa",
"status": "active",
"custom_data": null,
"name": "Sam Miller",
"email": "sam@example.com",
"marketing_consent": false,
"locale": "en",
"created_at": "2024-03-08T16:49:53.691Z",
"updated_at": "2024-04-11T16:03:57.924146Z",
"import_meta": null
}
],
"meta": {
"request_id": "913dee78-d496-4d13-a93e-09d834c208dd",
"pagination": {
"per_page": 50,
"next": "https://api.paddle.com/customers?after=ctm_01h8441jn5pcwrfhwh78jqt8hk",
"has_more": false,
"estimated_total": 4
}
}
}

Was this page helpful?