Checkout Page Customers API

The Customers API from Checkout Page — 2 operation(s) for customers.

GitHub OpenAPI

Operations 3

GET /v1/customers/ List all customers #
GET /v1/customers/:customerId Get customer details #
PATCH /v1/customers/:customerId Update a customer #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • 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.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/checkoutpage-com:checkoutpage-com-customers-api"
All apis
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.

Get an API 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 Specification

checkoutpage-com-customers-api-openapi.yml Raw ↑
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