API reference

Products & prices

Stripe-style product / price split. A Product is a thing you sell; a Price attaches currency, amount, optional recurrence and tax rate to it. One product can carry many prices (monthly vs annual vs one-off). Both ship public ids (prod_xxx / price_xxx) for sharable links.

Create a product with prices

POST/v1/productsscope: products:write

The nested prices array creates Price rows in the same transaction. Each Price can be one-off or recurring.

Body parameters

namerequired

string

Product display name.
description

string

Free-form, max 2000 chars.
images

string[]

Public URLs (R2 / your CDN). Max 8.
active

boolean

Default true. Inactive products hide from checkout but stay queryable.
prices

array

Optional price points. Each `{unitAmount, currency, recurring?, interval?, intervalCount?, taxBps?}`.
curl https://baynoy.com/api/v1/products \
  -H "Authorization: Bearer sk_live_…" \
  -d '{
    "name": "Consultation",
    "description": "60-minute video call",
    "prices": [
      {"unitAmount": 12000, "currency": "USD"},
      {"unitAmount": 9900, "currency": "USD", "recurring": true, "interval": "month"}
    ]
  }'
Response
{
  "ok": true,
  "data": {
    "id": "1a2b3c4d-...",
    "publicId": "prod_abcdef1234567890",
    "name": "Consultation",
    "description": "60-minute video call",
    "images": [],
    "active": true,
    "prices": [
      {
        "id": "5e6f7a8b-...",
        "publicId": "price_zyxwvu9876543210",
        "unitAmount": 12000,
        "currency": "USD",
        "recurring": false,
        "taxBps": 0
      }
    ],
    "createdAt": "2026-05-27T12:34:56.789Z"
  }
}