Checkout Page Customers API
The Customers API from Checkout Page — 2 operation(s) for customers.
The Customers API from Checkout Page — 2 operation(s) for customers.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/checkoutpage-com:checkoutpage-com-customers-api"
curl "https://apis.io/api/v1/apis?limit=25"
Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: Checkoutpage Com Customers API
version: 1.0.0
description: 'Operations tagged Customers across 2 of this provider''s published API definitions: checkoutpage-com-openapi.json, checkoutpage-com-openapi.yml. Each path carries the servers of the definition it was published in.'
servers:
- description: Production
url: https://api.checkoutpage.com
- description: Staging
url: https://checkoutpageapi-staging.onrender.com
- description: Localhost
url: https://api.checkoutpage.dev
tags:
- name: Customers
paths:
/v1/customers/:
get:
description: Returns a paginated list of your customers. The customers are sorted in order, with the most recent customers appearing first.
operationId: customers/list
parameters:
- description: The number of results per page. Minimum value is 1 and maximum is 100. Defaults to 20.
in: query
name: limit
required: false
schema:
description: The number of results per page. Minimum value is 1 and maximum is 100. Defaults to 20.
example: 20
type: string
- description: A cursor value specifying the id of a resource to start before. Retrieves items that appear after this cursor in the list. Cannot be used together with `ending_before`.
in: query
name: starting_after
required: false
schema:
allOf:
- $ref: '#/components/schemas/UniqueIdentifier'
- description: A cursor value specifying the id of a resource to start before. Retrieves items that appear after this cursor in the list. Cannot be used together with `ending_before`.
example: 507f1f77bcf86cd799439011
- description: A cursor value specifying the id of a resource to end after. Retrieves items that appear before this cursor in the list. Cannot be used together with `starting_after`.
in: query
name: ending_before
required: false
schema:
allOf:
- $ref: '#/components/schemas/UniqueIdentifier'
- description: A cursor value specifying the id of a resource to end after. Retrieves items that appear before this cursor in the list. Cannot be used together with `starting_after`.
example: 507f1f77bcf86cd799439012
- description: Case-insensitive search matched against customer name and email.
in: query
name: search
required: false
schema:
description: Case-insensitive search matched against customer name and email.
type: string
- in: query
name: createdAfter
required: false
schema:
format: date-time
type: string
- in: query
name: createdBefore
required: false
schema:
format: date-time
type: string
responses:
'200':
content:
application/json:
schema:
properties:
data:
items:
$ref: '#/components/schemas/Customer'
type: array
has_more:
description: Whether more records exist beyond the current page.
type: boolean
total:
description: Total number of records matching the query across all pages.
type: number
required:
- data
- total
- has_more
type: object
description: Customers retrieved successfully
'400':
content:
application/json:
schema:
$ref: '#/components/schemas/SellerApiErrorResponse'
description: Bad request - Invalid request parameters
'401':
content:
application/json:
schema:
$ref: '#/components/schemas/SellerApiErrorResponse'
description: Unauthorized - Missing or invalid API key
'403':
content:
application/json:
schema:
$ref: '#/components/schemas/SellerApiErrorResponse'
description: Forbidden - Insufficient permissions or validation error
'429':
content:
application/json:
schema:
$ref: '#/components/schemas/SellerApiErrorResponse'
description: Rate Limit Exceeded - Please try again later.
'500':
content:
application/json:
schema:
$ref: '#/components/schemas/SellerApiErrorResponse'
description: Internal server error
security:
- api_key_auth: []
summary: List all customers
tags:
- Customers
servers:
- description: Production
url: https://api.checkoutpage.com
- description: Staging
url: https://checkoutpageapi-staging.onrender.com
- description: Localhost
url: https://api.checkoutpage.dev
/v1/customers/:customerId:
get:
description: Returns detailed information for a specific customer.
operationId: customers/get
parameters:
- in: path
name: customerId
required: true
schema:
example: 6812fe6e9f39b6760576f01c
type: string
responses:
'200':
content:
application/json:
schema:
properties:
data:
$ref: '#/components/schemas/Customer'
required:
- data
type: object
description: Customer retrieved successfully
'400':
content:
application/json:
schema:
$ref: '#/components/schemas/SellerApiErrorResponse'
description: Bad request - Invalid request parameters
'401':
content:
application/json:
schema:
$ref: '#/components/schemas/SellerApiErrorResponse'
description: Unauthorized - Missing or invalid API key
'403':
content:
application/json:
schema:
$ref: '#/components/schemas/SellerApiErrorResponse'
description: Forbidden - Insufficient permissions or validation error
'404':
content:
application/json:
schema:
$ref: '#/components/schemas/SellerApiErrorResponse'
description: Customer not found
'429':
content:
application/json:
schema:
$ref: '#/components/schemas/SellerApiErrorResponse'
description: Rate Limit Exceeded - Please try again later.
'500':
content:
application/json:
schema:
$ref: '#/components/schemas/SellerApiErrorResponse'
description: Internal server error
security:
- api_key_auth: []
summary: Get customer details
tags:
- Customers
patch:
description: Updates the editable details of a customer. Only the fields you supply are changed; omitted fields are left as-is. The `address` and `shipping` subdocuments follow patch semantics — supply only the sub-fields you want to change, and the rest are preserved. Send `null` for any optional field (or for a whole subdocument) to clear it. The primary `email` field cannot be cleared. Requests with an empty body are rejected.
operationId: customers/update
parameters:
- in: path
name: customerId
required: true
schema:
example: 6812fe6e9f39b6760576f01c
type: string
requestBody:
content:
application/json:
schema:
additionalProperties: false
properties:
address:
additionalProperties: false
description: Billing address. Patch semantics — only the subfields you supply are changed. Send `null` to clear the whole subdocument.
properties:
city:
type: string
country:
type: string
line1:
type: string
line2:
type: string
postalCode:
type: string
state:
type: string
type:
- object
- 'null'
billingEmail:
description: Billing email address. Can be different from the primary email. Trimmed and lowercased before storage. Send `null` to clear.
format: email
type:
- string
- 'null'
companyName:
description: Customer company name. Send `null` to clear.
minLength: 1
type:
- string
- 'null'
email:
description: Primary customer email address. Trimmed and lowercased before storage. Cannot be cleared via this endpoint.
format: email
type: string
name:
description: Customer full name. Send `null` to clear.
minLength: 1
type:
- string
- 'null'
phone:
description: Customer phone number. Send `null` to clear.
minLength: 1
type:
- string
- 'null'
shipping:
additionalProperties: false
description: Shipping details. Patch semantics — only the fields you supply are changed (including nested `shipping.address` subfields). Send `null` to clear the whole subdocument.
properties:
address:
additionalProperties: false
description: Shipping address. Patch semantics — only the subfields you supply are changed. Send `null` to clear the whole subdocument.
properties:
city:
type: string
country:
type: string
line1:
type: string
line2:
type: string
postalCode:
type: string
state:
type: string
type:
- object
- 'null'
name:
description: Shipping recipient name. Send `null` to clear.
minLength: 1
type:
- string
- 'null'
phone:
description: Shipping phone number. Send `null` to clear.
minLength: 1
type:
- string
- 'null'
type:
- object
- 'null'
type: object
responses:
'200':
content:
application/json:
schema:
properties:
data:
$ref: '#/components/schemas/Customer'
required:
- data
type: object
description: Customer updated successfully
'400':
content:
application/json:
schema:
$ref: '#/components/schemas/SellerApiErrorResponse'
description: Bad request - Invalid request parameters
'401':
content:
application/json:
schema:
$ref: '#/components/schemas/SellerApiErrorResponse'
description: Unauthorized - Missing or invalid API key
'403':
content:
application/json:
schema:
$ref: '#/components/schemas/SellerApiErrorResponse'
description: Forbidden - Insufficient permissions or validation error
'404':
content:
application/json:
schema:
$ref: '#/components/schemas/SellerApiErrorResponse'
description: Customer not found
'429':
content:
application/json:
schema:
$ref: '#/components/schemas/SellerApiErrorResponse'
description: Rate Limit Exceeded - Please try again later.
'500':
content:
application/json:
schema:
$ref: '#/components/schemas/SellerApiErrorResponse'
description: Internal server error
security:
- api_key_auth: []
summary: Update a customer
tags:
- Customers
servers:
- description: Production
url: https://api.checkoutpage.com
- description: Staging
url: https://checkoutpageapi-staging.onrender.com
- description: Localhost
url: https://api.checkoutpage.dev
components:
schemas:
SellerApiErrorResponse:
additionalProperties: {}
properties:
errors:
description: Optional validation details for invalid requests.
items:
properties:
message:
type: string
param:
type: string
value: {}
required:
- param
- message
type: object
type: array
message:
description: Human-readable error message.
example: Not Found
type: string
status:
description: Indicates the request failed.
enum:
- error
example: error
type: string
type:
description: Machine-readable error category.
example: error
type: string
required:
- status
- type
- message
type: object
UniqueIdentifier:
description: Unique identifier for the ticket.
example: 65f4a1c2e4a9f3d2b1c0a9e8
pattern: ^[0-9a-fA-F]{24}$
type: string
Customer:
description: ''
properties:
address:
properties:
city:
type: string
country:
type: string
line1:
type: string
line2:
type: string
postalCode:
type: string
state:
type: string
type: object
billingEmail:
type: string
companyName:
type: string
createdAt:
format: date-time
type: string
email:
type: string
id:
type: string
name:
type: string
phone:
type: string
sellerId:
type: string
shipping:
properties:
address:
properties:
city:
type: string
country:
type: string
line1:
type: string
line2:
type: string
postalCode:
type: string
state:
type: string
type: object
name:
type: string
phone:
type: string
type: object
stripeCustomerId:
type: string
taxId:
type: string
taxIdType:
type: string
updatedAt:
format: date-time
type: string
required:
- id
- email
- sellerId
- createdAt
- updatedAt
type: object
securitySchemes:
api_key_auth:
bearerFormat: API Key
description: API key authentication. Use "Bearer YOUR_API_KEY" format.
scheme: bearer
type: http
x-refined-from:
- checkoutpage-com-openapi.json
- checkoutpage-com-openapi.yml