Services
Services in the BlueSuite REST API
Maintain the service/product catalog used in quote, job, and invoice line items. List services with search/pagination or id_in, a comma-separated list of service IDs. Creating a catalog service does not add it to existing quotes or jobs.
See line items for how quantities, prices, and catalog references are used in documents.
GET /api/v1/services
GET /api/v1/servicesRequired scopes: services:read.
Query parameters
| Field | Type / accepted values | Required | Details |
|---|---|---|---|
page | integer | No | Page number, starting at 1. Default: 1. |
per_page | integer | No | Records per page, from 1 to 100. Default: 25. minimum: 1. maximum: 100. |
search | string | No | Search text. maxLength: 100. |
sort_by | string | No | Sort column. See the supported columns below when listed. |
sort_direction | "asc", "desc" | No | Sort direction. Default: "desc". |
id_in | string | No | Comma-separated record IDs. |
Response
200 with { "success": true, "data": [...], "pagination": { "page": 1, "per_page": 25, "total_pages": 1 } }.
See response conventions and errors.
POST /api/v1/services
POST /api/v1/servicesRequired scopes: services:write.
JSON body
| Field | Type / accepted values | Required | Details |
|---|---|---|---|
name | string | Yes | minLength: 1. |
description | string or null | No | |
price | number | No | Default: 0. |
sku | string or null | No | |
type | "service", "product" | No | Default: "service". |
taxable | boolean | No | Default: true. |
image_path | string or null | No |
Unknown body fields are rejected. Conditional requirements are explained above.
Response
201 with { "success": true, "data": ... }. The data contains the result of the operation.
See response conventions and errors.
GET /api/v1/services/:id
GET /api/v1/services/:idRequired scopes: services:read.
Path parameters: id. Use positive integer record IDs from this workspace.
Response
200 with { "success": true, "data": ... }. The data contains the result of the operation.
See response conventions and errors.
PUT /api/v1/services/:id
PUT /api/v1/services/:idRequired scopes: services:write.
Path parameters: id. Use positive integer record IDs from this workspace.
JSON body
| Field | Type / accepted values | Required | Details |
|---|---|---|---|
name | string | No | minLength: 1. |
description | string or null | No | |
price | number | No | Default: 0. |
sku | string or null | No | |
type | "service", "product" | No | Default: "service". |
taxable | boolean | No | Default: true. |
image_path | string or null | No |
Unknown body fields are rejected. Conditional requirements are explained above.
Response
200 with { "success": true, "data": ... }. The data contains the result of the operation.
See response conventions and errors.
DELETE /api/v1/services/:id
DELETE /api/v1/services/:idRequired scopes: services:write.
Path parameters: id. Use positive integer record IDs from this workspace.
No request body.
Response
200 with { "success": true, "data": ... }. The data contains the result of the operation.