Getting started
The public API is available at https://api.fenestro.io/v1. All catalogue endpoints require a tenant API token.
Make a request
curl -X POST https://api.fenestro.io/v1/brands \
-H "Authorization: Bearer fen_live_xxxxxxxxxxxx" \
-H "Content-Type: application/json" \
-d '{"name":"Reynaers Aluminium","display_order":10}'
Pagination
List endpoints accept page and page_size. Page numbers start at 1. The maximum page size is 100.
GET /v1/products?page=1&page_size=50&active=true
Configurable product workflow
| Step | Endpoint | Purpose |
|---|---|---|
| Brand | POST /v1/brands | Create or sync the manufacturer/catalogue label. |
| Category | POST /v1/categories | Create or sync the product family. |
| Product | POST /v1/products | Create the catalogue product with reference, prices, and dimensions. |
| Options | POST /v1/options | Create reusable tenant choices with pricing metadata. |
| Pricing | POST /v1/products/{product_id}/pricing-configurations | Create normalized configurator pricing rows. |
| Steps | POST /v1/products/{product_id}/steps | Create the configurator flow and attach option ids. |
| From prices | GET /v1/categories/{category_id}/from-prices | Compute catalogue card minimum prices from active steps and pricing rows. |
| Validation | GET /v1/products/{product_id}/configuration/validation | Check that the product can be safely used by tenant integrations. |
List response
{
"data": [],
"page": 1,
"page_size": 50,
"total": 0,
"total_pages": 0,
"has_more": false
}
Use Swagger UI for exact schemas and try-it-out calls. These docs explain the workflow and stable conventions.