Products
A product represents something a customer can buy in your Subscord store (e.g. a membership tier). Each product has one or more product options (also known as "tiers" or "plans") that define duration, price, and billing behavior.
Products and their options are managed in the dashboard. The API exposes them read-only.
GET /v1/products
List products for the server.
Tier: B · Auth: required · Idempotent: N/A
Query parameters
| Parameter | Type | Description |
|---|---|---|
active | boolean | Filter by active state. Omit to return all products. |
limit | integer | Page size (max 100, default 50). |
cursor | string | Pagination cursor from a previous response. |
Request
curl "https://subscord.com/api/v1/products?active=true&limit=25" \
-H "Authorization: Bearer ssk_live_..."Response — 200 OK
{
"data": [
{
"id": "42",
"name": "Premium",
"description": "Access to all premium channels.",
"imageUrl": "https://cdn.subscord.com/products/42.png",
"active": true,
"purchaseLimit": null,
"options": [
{
"id": "101",
"name": "Monthly",
"durationDays": 30,
"price": 999,
"currency": "USD",
"active": true,
"recurring": true,
"isFreeTrialOption": false
},
{
"id": "102",
"name": "7-Day Free Trial",
"durationDays": 7,
"price": 0,
"currency": "USD",
"active": true,
"recurring": false,
"isFreeTrialOption": true
}
]
}
],
"nextCursor": null
}GET /v1/products/{productId}
Returns a single product, including all of its product options.
Tier: A · Auth: required · Idempotent: N/A
Path parameters
| Parameter | Type | Description |
|---|---|---|
productId | integer | The product ID. |
Request
curl https://subscord.com/api/v1/products/42 \
-H "Authorization: Bearer ssk_live_..."Response — 200 OK
Same shape as a single entry in the list response above.
Errors
| Status | Code | When |
|---|---|---|
| 400 | invalid_request | productId is not a positive integer. |
| 404 | not_found | No product with that ID exists for this server. |
Field reference
Product
| Field | Type | Description |
|---|---|---|
id | string | Product ID. |
name | string | Product display name. |
description | string | null | Description shown in the store. |
imageUrl | string | null | URL of the product image. |
active | boolean | Whether the product is currently purchasable. |
purchaseLimit | integer | null | Maximum number of times this product can be purchased across all customers (null = unlimited). |
options | array | One or more product options (see below). |
Product option
| Field | Type | Description |
|---|---|---|
id | string | Product option ID. |
name | string | Option display name (e.g. "Monthly", "Annual"). |
durationDays | integer | null | Length of the subscription period, in days. null for some legacy or special options. |
price | integer | Price in the currency's minor units (e.g. 999 = $9.99). See Conventions. |
currency | string | ISO 4217 currency code. |
active | boolean | Whether this option is purchasable. |
recurring | boolean | true if this option auto-renews. |
isFreeTrialOption | boolean | true if this option represents a free trial. |