Products
Create, update, and manage products in your catalog. Import and export product data in bulk.
All Products endpoints require JWT authentication via the
Authorization: Bearer <token> header. Some endpoints require Admin role.Core Endpoints
GET
/products
List products
Admin Required
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| page | integer | Optional | Page number for pagination. Default: 1 |
| per_page | integer | Optional | Number of results per page (max 100). Default: 25. Max: 100 |
| search | string | Optional | Search term to filter results |
| category | string | Optional | |
| is_active | boolean | Optional |
Code Examples
curl -X GET "https://crm.revorbit.com/api/products" \ -H "Authorization: Bearer YOUR_JWT_TOKEN"
const response = await fetch(
"https://crm.revorbit.com/api/products",
{
method: "GET",
headers: {
"Authorization": "Bearer YOUR_JWT_TOKEN",
}
}
);
const data = await response.json();
POST
/products
Create product
Admin Required
Request Body
| Name | Type | Required | Description |
|---|---|---|---|
| name | string | Required | |
| sku | string | Optional | |
| description | string | Optional | |
| unit_price | number | Required | |
| unit | string | Optional | |
| category | string | Optional | |
| is_active | boolean | Optional |
Code Examples
curl -X POST "https://crm.revorbit.com/api/products" \
-H "Authorization: Bearer YOUR_JWT_TOKEN" \
-H "Content-Type: application/json" \
-d '{"name":"...","sku":"...","description":"...","unit_price":1,"unit":"...","category":"...","is_active":true}'const response = await fetch(
"https://crm.revorbit.com/api/products",
{
method: "POST",
headers: {
"Authorization": "Bearer YOUR_JWT_TOKEN",
"Content-Type": "application/json"
},
body: JSON.stringify(
{
"name": "...",
"sku": "...",
"description": "...",
"unit_price": 1,
"unit": "...",
"category": "...",
"is_active": true
}
)
}
);
const data = await response.json();
GET
/products/list
List products (simple)
JWT Required
Lightweight product list for dropdowns (id, name, price).
Code Examples
curl -X GET "https://crm.revorbit.com/api/products/list" \ -H "Authorization: Bearer YOUR_JWT_TOKEN"
const response = await fetch(
"https://crm.revorbit.com/api/products/list",
{
method: "GET",
headers: {
"Authorization": "Bearer YOUR_JWT_TOKEN",
}
}
);
const data = await response.json();
GET
/products/{id}
Get product
Admin Required
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| id | integer | Required | Resource ID |
Code Examples
curl -X GET "https://crm.revorbit.com/api/products/{id}" \
-H "Authorization: Bearer YOUR_JWT_TOKEN"const response = await fetch(
"https://crm.revorbit.com/api/products/{id}",
{
method: "GET",
headers: {
"Authorization": "Bearer YOUR_JWT_TOKEN",
}
}
);
const data = await response.json();
PUT
/products/{id}
Update product
Admin Required
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| id | integer | Required | Resource ID |
Request Body
| Name | Type | Required | Description |
|---|---|---|---|
| name | string | Required | |
| sku | string | Optional | |
| description | string | Optional | |
| unit_price | number | Required | |
| unit | string | Optional | |
| category | string | Optional | |
| is_active | boolean | Optional |
Code Examples
curl -X PUT "https://crm.revorbit.com/api/products/{id}" \
-H "Authorization: Bearer YOUR_JWT_TOKEN" \
-H "Content-Type: application/json" \
-d '{"name":"...","sku":"...","description":"...","unit_price":1,"unit":"...","category":"...","is_active":true}'const response = await fetch(
"https://crm.revorbit.com/api/products/{id}",
{
method: "PUT",
headers: {
"Authorization": "Bearer YOUR_JWT_TOKEN",
"Content-Type": "application/json"
},
body: JSON.stringify(
{
"name": "...",
"sku": "...",
"description": "...",
"unit_price": 1,
"unit": "...",
"category": "...",
"is_active": true
}
)
}
);
const data = await response.json();
DELETE
/products/{id}
Delete product
Admin Required
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| id | integer | Required | Resource ID |
Code Examples
curl -X DELETE "https://crm.revorbit.com/api/products/{id}" \
-H "Authorization: Bearer YOUR_JWT_TOKEN"const response = await fetch(
"https://crm.revorbit.com/api/products/{id}",
{
method: "DELETE",
headers: {
"Authorization": "Bearer YOUR_JWT_TOKEN",
}
}
);
const data = await response.json();
GET
/products/export
Export products
Admin Required
Code Examples
curl -X GET "https://crm.revorbit.com/api/products/export" \ -H "Authorization: Bearer YOUR_JWT_TOKEN"
const response = await fetch(
"https://crm.revorbit.com/api/products/export",
{
method: "GET",
headers: {
"Authorization": "Bearer YOUR_JWT_TOKEN",
}
}
);
const data = await response.json();
GET
/products/template
Get import template
Admin Required
Code Examples
curl -X GET "https://crm.revorbit.com/api/products/template" \ -H "Authorization: Bearer YOUR_JWT_TOKEN"
const response = await fetch(
"https://crm.revorbit.com/api/products/template",
{
method: "GET",
headers: {
"Authorization": "Bearer YOUR_JWT_TOKEN",
}
}
);
const data = await response.json();
POST
/products/import
Import products
Admin Required
Request Body
| Name | Type | Required | Description |
|---|---|---|---|
| file | file | Optional |
Code Examples
curl -X POST "https://crm.revorbit.com/api/products/import" \ -H "Authorization: Bearer YOUR_JWT_TOKEN" \ -F "file=@/path/to/file"
const response = await fetch(
"https://crm.revorbit.com/api/products/import",
{
method: "POST",
headers: {
"Authorization": "Bearer YOUR_JWT_TOKEN",
}
}
);
const data = await response.json();