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

NameTypeRequiredDescription
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

NameTypeRequiredDescription
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

NameTypeRequiredDescription
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

NameTypeRequiredDescription
id integer Required Resource ID

Request Body

NameTypeRequiredDescription
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

NameTypeRequiredDescription
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

NameTypeRequiredDescription
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();