Products

Create Product

Create a new trade product. The product will be associated with the organization of the API key.

POST
/v1/products

Authorization

bearerAuth
AuthorizationBearer <token>

Bearer token authentication for API access.

In: header

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Pricing configuration. Shape depends on pricingType: NONE (no pricing), FIXED (single price), RANGE (min/max price).

Pricing configuration. Shape depends on pricingType: NONE (no pricing), FIXED (single price), RANGE (min/max price).

Response Body

application/json

application/json

application/json

application/json

application/json

curl -X POST "https://example.com/v1/products" \  -H "Content-Type: application/json" \  -d '{    "name": "Premium Granite Countertop",    "description": "High-quality granite countertop with polished finish",    "response": "Our premium granite countertops are...",    "faqs": [      {        "question": "What materials do you use?",        "answer": "We use high-quality granite sourced locally."      }    ],    "tradeCategoryId": 2,    "pricingType": "NONE"  }'
{  "product": {    "id": 456,    "name": "Premium Granite Countertop",    "description": "High-quality granite countertop with polished finish",    "tradeCategoryId": 2,    "pricingType": "FIXED",    "price": 299.99,    "maxPrice": 499.99,    "isDisclosePrice": true,    "faqs": [      {        "question": "What materials do you use?",        "answer": "We use high-quality granite sourced locally."      }    ],    "isActive": true,    "createdAt": "2023-01-01T00:00:00.000Z",    "updatedAt": "2023-01-20T14:00:00.000Z"  }}
{  "success": false,  "message": "Bad request",  "error": {    "status": 400,    "message": "Bad request"  }}
{  "success": false,  "message": "Invalid or expired token",  "error": {    "status": 401,    "message": "Invalid or expired token"  }}
{  "success": false,  "message": "Conflict",  "error": {    "status": 409,    "message": "Conflict"  }}
{  "success": false,  "message": "Internal server error",  "error": {    "status": 500,    "message": "Internal server error"  }}