Skip to main content
PATCH
/
api
/
product
/
{productId}
Update a product
curl --request PATCH \
  --url https://api.suby.fi/api/product/{productId} \
  --header 'Content-Type: application/json' \
  --header 'X-Suby-Api-Key: <api-key>' \
  --data '
{
  "status": "CANCELLED",
  "priceCents": "1499",
  "frequencyInDays": 30,
  "supply": 200
}
'
{
  "success": true,
  "data": {
    "id": "pro_abc123",
    "name": "Premium Monthly Subscription",
    "description": "Monthly premium membership with exclusive features",
    "status": "ACTIVE",
    "platform": "WEB",
    "frequencyInDays": 30,
    "priceCents": "999",
    "currency": "EUR",
    "supply": 100,
    "imageUrl": "https://example.com/product.png",
    "createdAt": "2026-01-15T10:30:00.000Z",
    "paymentMethods": [
      "CRYPTO",
      "CARD"
    ],
    "acceptedAssets": [
      {
        "symbol": "USDC",
        "decimals": 6
      }
    ],
    "acceptedChains": [
      {
        "id": 8453,
        "name": "Base"
      }
    ],
    "discordGuildId": "123456789012345678",
    "discordRoleId": "987654321098765432",
    "discordRemindersId": "111222333444555666",
    "telegramGroupId": "-1001234567890"
  }
}

Authorizations

X-Suby-Api-Key
string
header
required

API key authentication. Include your API key in the X-Suby-Api-Key header:

X-Suby-Api-Key: your_api_key_here

Path Parameters

productId
string
required

Unique identifier of the product to update

Body

application/json
status
enum<string>

Set the product status. Can only toggle between these two values:

  • ACTIVECANCELLED: Cancels the product
  • CANCELLEDACTIVE: Reactivates the product
Available options:
ACTIVE,
CANCELLED
Example:

"CANCELLED"

priceCents
string

New price in cents as a string. Must be a positive integer. Updated in the product's original currency (cannot switch currency). Cannot be changed for recurring card (AUTO_DEBIT) subscriptions. Minimum 200 cents if product has card payments enabled. One-time products can always be updated, even with AUTO_DEBIT

Example:

"1499"

frequencyInDays
integer | null

New billing frequency in days. Cannot be changed for products with card (AUTO_DEBIT) payments. Set to null to convert a subscription to a one-time product

Required range: x >= 1
Example:

30

supply
integer

New maximum number of subscriptions allowed (minimum 1)

Required range: x >= 1
Example:

200

Response

Product updated successfully

success
boolean
Example:

true

data
object

Product configuration and details. The response shape adapts based on the product's platform:

  • WEB/INVOICE: Base fields only
  • DISCORD: Base fields + discordGuildId, discordRoleId, discordRemindersId
  • TELEGRAM: Base fields + telegramGroupId