Products
Products represent the software applications you distribute. Each product has a unique code and a key prefix that determines how its license keys are formatted.
Create Product
POST
/productsCreate a new product. Requires API Key auth with products:write scope.
Request Body
| Parameter | Type | Required | Description |
|---|---|---|---|
| name | string | Required | Product name (1-255 characters) |
| code | string | Required | Unique product code (1-50 chars, alphanumeric, hyphens, underscores) |
| description | string | Optional | Product description (max 1000 characters) |
| keyPrefix | string | Optional | License key prefix (2-10 uppercase letters, default: LIC) |
| metadata | object | Optional | Arbitrary key-value metadata |
Request
{
"name": "Desktop App Pro",
"code": "desktop-app-pro",
"description": "Professional desktop application with advanced features",
"keyPrefix": "DSK",
"metadata": { "category": "productivity" }
}201Product created
json
{
"data": {
"id": "d9e5f0a1-4c82-5e6f-a023-9b7c4d8e5f60",
"name": "Desktop App Pro",
"code": "desktop-app-pro",
"description": "Professional desktop application with advanced features",
"keyPrefix": "DSK",
"accountId": "a0b1c2d3-7f15-8192-d356-ce0f1a2b3c4d",
"licensesCount": 42,
"createdAt": "2026-01-10T08:00:00.000Z",
"updatedAt": "2026-01-10T08:00:00.000Z",
"deletedAt": null,
"metadata": {}
}
}List Products
GET
/productsList all products with cursor-based pagination. Requires API Key auth with products:read scope.
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| cursor | uuid | Optional | Pagination cursor from previous response |
| limit | integer | Optional | Results per page (1-100, default 25) |
Request
GET /api/v1/products?limit=25200Paginated list
json
{
"data": [
{
"id": "d9e5f0a1-4c82-5e6f-a023-9b7c4d8e5f60",
"name": "Desktop App Pro",
"code": "desktop-app-pro",
"keyPrefix": "DSK",
"licensesCount": 42,
"createdAt": "2026-01-10T08:00:00.000Z",
"updatedAt": "2026-01-10T08:00:00.000Z",
"deletedAt": null,
"metadata": {}
}
],
"pagination": {
"nextCursor": null,
"hasMore": false
}
}Key Prefix
The key prefix determines how license keys look. For example, a prefix of
DSK produces keys like DSK-A1B2-C3D4-E5F6-G7H8. Choose a short, memorable prefix for your product.Product Code
The product code is immutable after creation and must be unique within your account. Use lowercase alphanumeric characters, hyphens, and underscores.