Skip to main content
POST
/
catalog
/
products
Create a product
curl --request POST \
  --url https://api.kelviq.com/api/v1/catalog/products/ \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "name": "ParityDeals",
  "description": "",
  "identifier": "parity-deals",
  "imageKeys": [
    "tmp/108713b0-1f81-42cf-a16c-c83b1d4d4148/web-app-manifest-512x512.png"
  ],
  "taxCode": "saas"
}
'
{
  "id": "762f0098-a8ef-4eed-b08b-f02043771b76",
  "identifier": "parity-deals",
  "name": "ParityDeals",
  "description": "",
  "createdBy": "Geo Jacob",
  "modifiedOn": "2026-05-20T10:54:41.324224Z",
  "images": [
    {
      "id": "2e025341-0f78-42cc-b814-8f059ac53339",
      "name": "web-app-manifest-512x512.png",
      "image": "https://cdn.kelviq.com/media/staging/organizations/6/products/762f0098-a8ef-4eed-b08b-f02043771b76/f318dec5767c498482d9e5dffe8a3332/web-app-manifest-512x512.png",
      "ordering": 0,
      "thumbnail": true,
      "enabled": true
    }
  ],
  "taxCode": "saas"
}

Documentation Index

Fetch the complete documentation index at: https://docs.kelviq.com/llms.txt

Use this file to discover all available pages before exploring further.

Authorizations

Authorization
string
header
required

The Server API Key obtained from the kelviq application. Pass as a Bearer token in the Authorization header. Example: 'Authorization: Bearer YOUR_API_KEY'

Body

application/json

Payload to create a new product.

name
string
required
Example:

"ParityDeals"

taxCode
enum<string>
required

Tax code for the product. Must be one of the supported values.

Available options:
saas,
saas_business,
software,
videocontent,
informationservice,
ebook,
digitalgraphic,
videogame,
eservice,
training
Example:

"saas"

identifier
string

Optional URL-safe slug. Auto-generated from name if not supplied.

Example:

"parity-deals"

description
string
Example:

""

imageKeys
string[]

Temporary S3 keys (e.g. tmp/<uuid>/<filename>) returned by the upload endpoint. They will be moved into permanent storage and attached as ProductImage records.

Example:
[
"tmp/108713b0-1f81-42cf-a16c-c83b1d4d4148/web-app-manifest-512x512.png"
]

Response

Product created.

A product in the catalog. Each product can have multiple plans, images and files.

id
string<uuid>
read-only
Example:

"0d65f7c0-7e91-4f56-9b32-13a9a6a7c1de"

identifier
string

Human-readable, URL-safe slug. Auto-generated from name if omitted on create.

Example:

"pro-suite"

name
string
Example:

"Pro Suite"

description
string
Example:

"Premium tools for growing teams."

taxCode
enum<string>

Tax code for the product. Must be one of the supported values.

Available options:
saas,
saas_business,
software,
videocontent,
informationservice,
ebook,
digitalgraphic,
videogame,
eservice,
training
Example:

"saas"

createdBy
string
read-only

Display name of the user who created the product.

Example:

"Jane Smith"

modifiedOn
string<date-time>
read-only
Example:

"2025-04-12T08:21:14.910Z"

images
object[]
read-only