List Custom Fields
List custom-field definitions for a product checkout form, a product waitlist
form, or a variant checkout override. The envelope is { items, pagination }.
Items come back in order — see Order.
Default per_page is 25. A page past the last page returns empty items and
the requested current_page.
An empty variant list means inherit the product checkout fields — see Collections.
Request
Live:
GET /products/{productId}/custom-fieldsGET /products/{productId}/waitlist-custom-fieldsGET /product-variants/{id}/custom-fields
Draft (same item shape; overlay collection):
GET /products/{productId}/draft/custom-fieldsGET /products/{productId}/draft/waitlist-custom-fieldsGET /products/{productId}/draft/variants/{id}/custom-fields
Path Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
productId | string | Yes | Product UUID (product-nested paths). |
id | string | Yes | Variant UUID (variant-nested paths). |
Query Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
page | integer | No | 1 | Page number. |
per_page | integer | No | 25 | Items per page (min 1, max 100). |
Example Request
curl -X GET "https://cart.easy.tools/api/v1/products/0632bef5-c308-42cd-9cba-89a7a4f722bb/custom-fields" \
-H "Authorization: Bearer YOUR_API_TOKEN"
Response
Success Response (200)
{
"items": [
{
"name": "size",
"type": "select",
"label": "Size",
"placeholder": null,
"enabled": true,
"required": true,
"order": 0,
"validation": null,
"options": [
{ "value": "s", "label": "S" },
{ "value": "m", "label": "M" }
],
"sync_easymail": false
}
],
"pagination": {
"current_page": 1,
"total_pages": 1,
"per_page": 25,
"total": 1
}
}
See Custom Field Object.
Pagination Object
| Field | Type | Description |
|---|---|---|
current_page | integer | Requested page. |
total_pages | integer | Total pages (at least 1). |
per_page | integer | Page size. |
total | integer | Total fields in the collection. |
Error Responses
Bad Request (400)
{
"message": "Invalid product ID"
}
Returned when the path UUID is malformed.
Not Found Error (404)
{
"message": "Product with ID 0632bef5-c308-42cd-9cba-89a7a4f722bb not found"
}
Unauthorized Error (401)
{
"message": "Unauthenticated."
}
Forbidden Error (403)
{
"message": "This action is unauthorized."
}