Cowdidocs

List product versions

GET
/v1/products/{productId}/versions

Returns the versions of a product, the newest first. Returns 404 when the caller offers no product with this id. Requires the org:products:read permission.

AuthorizationBearer <token>

Create a client with POST /v1/oauth/clients, then exchange its credentials for an access token. AUTHORIZATION_CODE clients act on behalf of a signed-in user and always use PKCE; CLIENT_CREDENTIALS clients act as themselves. A client may only be granted scopes its creator already holds — read the grantable list from GET /v1/oauth/clients/scopes.

In: header

Path Parameters

productId*string

The id of the product

Formatuuid

Query Parameters

size?integer

Maximum number of versions to return.

Range0 < value
Default20
after?string

Opaque cursor for the page after this one. Omit for the first page.

before?string

Opaque cursor for the page before this one. Omit for the first page.

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

application/json

curl -X GET "https://example.com/v1/products/0f6b3c2e-6b1d-4e8a-9a51-2f7c8d9e0a1b/versions?size=20"
{  "data": [    {      "id": "7c9e6679-7425-40de-944b-e07fc1f90ae7",      "product_id": "550e8400-e29b-41d4-a716-446655440000",      "version": 1,      "status": "DRAFT",      "name": "Weekly loan",      "description_template": "You pay a fixed {interest_rate} fee for {interest_period_value, plural, one{# week} other{# weeks}}.",      "ussd_description_template": "string",      "terms": {        "product": "TERM_LOAN",        "penalty_fee_configuration": {          "enabled": false        },        "block_policy": {},        "billing_strategy": "ARREARS",        "allocation_order": [          "PENALTY",          "ARREARS",          "INTEREST",          "PRINCIPAL"        ],        "grace_period": {          "value": 3,          "unit": "DAYS"        },        "payment_grace_period": {          "value": 0,          "unit": "DAYS"        },        "tenure": {          "duration": 4,          "unit": "WEEKS"        },        "interest_rate": {          "basis_points": 300,          "period": {            "value": 1,            "unit": "WEEKS"          },          "day_count_convention": "ACTUAL_365"        },        "interest_calculation_method": "FLAT_RATE",        "fixed_interest": null,        "accrual_period": null,        "billing_period": {          "value": 1,          "unit": "WEEKS"        },        "recalculation_mode": "FIXED_TENURE",        "fixed_emi_amount": null,        "interest_accrual_base": "PRINCIPAL",        "interest_billing_mode": "UPFRONT",        "can_spend_continuously": false,        "can_reborrow": false,        "can_spend_in_arrears": true,        "has_deferred_start": false      },      "published_at": "2026-10-08T10:15:30Z",      "created_at": "2026-09-01T10:15:30Z",      "resource_id": "string"    }  ],  "links": {    "next": "/v1/payees?after=eyJpZCI6MX0",    "prev": "/v1/payees?before=eyJpZCI6MX0"  }}
{  "code": "BAD_REQUEST",  "description": "Bad Request"}
{  "code": "UNAUTHORISED",  "description": "Unauthorised"}
{  "code": "FORBIDDEN",  "description": "Forbidden"}
{  "code": "BAD_REQUEST",  "description": "Invalid input"}
{  "code": "RATE_LIMIT_EXCEEDED",  "description": "Too Many Requests"}
{  "code": "INTERNAL_ERROR",  "description": "Internal Server Error"}