Help improve docs quality by sharing anonymous interaction telemetry (no PII or token data).

Customers API Reference

REST schemas and generated examples for customer and subscription lifecycle operations.

Mock API reference used by the interactive docs explorer.

OpenAPI versionContract versionREST base path
3.1.02026-03-15/api/v1

Servers

URLEnvironment
https://app.monetizekit.app/api/v1Development environment
https://app.monetizekit.app/api/v1Staging environment
https://app.monetizekit.app/api/v1Production environment

customers operations

List customers

GET /customers — Lists customers in the active workspace.

Operation ID: customers.list.

Required scopes: customers:view.

Parameters

NameInRequiredDescriptionSchemaExample
pagequerynoOne-based page number.{ "type": "integer" }1
pageSizequerynoNumber of records per page.{ "type": "integer" }25

Responses

200 — Success

{
  "type": "object",
  "required": [
    "data",
    "total",
    "page",
    "pageSize",
    "totalPages",
    "hasNext",
    "hasPrev"
  ],
  "properties": {
    "data": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "id",
          "name",
          "email"
        ],
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "email": {
            "type": "string"
          }
        }
      }
    },
    "total": {
      "type": "integer"
    },
    "page": {
      "type": "integer"
    },
    "pageSize": {
      "type": "integer"
    },
    "totalPages": {
      "type": "integer"
    },
    "hasNext": {
      "type": "boolean"
    },
    "hasPrev": {
      "type": "boolean"
    }
  }
}
{
  "data": [
    {
      "id": "cust_001",
      "name": "Acme Corp",
      "email": "ops@acme.test"
    }
  ],
  "total": 1,
  "page": 1,
  "pageSize": 25,
  "totalPages": 1,
  "hasNext": false,
  "hasPrev": false
}

Create customer

POST /customers — Creates a customer profile.

Operation ID: customers.create.

Required scopes: customers:create.

Request schema

{
  "type": "object",
  "required": [
    "name",
    "email"
  ],
  "properties": {
    "name": {
      "type": "string"
    },
    "email": {
      "type": "string"
    }
  }
}

Request example

{
  "name": "Acme Project",
  "email": "ops@acme.test"
}

Responses

201 — Created

{
  "type": "object",
  "required": [
    "id",
    "name",
    "email"
  ],
  "properties": {
    "id": {
      "type": "string"
    },
    "name": {
      "type": "string"
    },
    "email": {
      "type": "string"
    }
  }
}
{
  "id": "cust_445",
  "name": "Acme Project",
  "email": "ops@acme.test"
}

subscriptions.create

POST /api/v1/subscriptions

ContractValue
Success statuses201
Required scopessubscriptions:write
Request fieldscancelAt, currentPeriodEnd, currentPeriodStart, customerId, planId, status, stripeSubscriptionId, trialEnd
Response fieldscurrentPeriodEnd, currentPeriodStart, customerId, id, planId, planName, status
curl --request POST 'https://app.monetizekit.app/api/v1/subscriptions' \
  --header 'Authorization: Bearer <api-key>' \
  --header 'Content-Type: application/json' \
  --data '{"cancelAt":"<cancelAt>","currentPeriodEnd":"<currentPeriodEnd>","currentPeriodStart":"<currentPeriodStart>","customerId":"<customerId>","planId":"<planId>","status":"<status>","stripeSubscriptionId":"<stripeSubscriptionId>","trialEnd":"<trialEnd>"}'

Loading OpenAPI contract...

Was this page helpful?