Services
Manage saved products and services via the REST API
Products and services are reusable line items that can be added to quotes, jobs, and invoices. They store a default name, price, description, and tax status so you don't have to re-enter them each time.
List Services
Retrieve a paginated list of saved products and services.
GET /api/v1/servicesRequired Scope: services:read
Query Parameters:
| Parameter | Type | Default | Description |
|---|---|---|---|
page | integer | 1 | Page number |
per_page | integer | 25 | Results per page (1-100) |
search | string | Search by name or description | |
sort_by | string | Field to sort by | |
sort_direction | string | desc | Sort direction (asc or desc) |
id_in | string | Comma-separated list of service IDs to filter by (e.g. 1,2,3) |
curl https://app.bluesuite.com/api/v1/services?search=window \
-H "Authorization: Bearer wk_YOUR_API_KEY"{
"success": true,
"data": [
{
"id": 1,
"name": "Exterior Window Cleaning",
"description": "Per window",
"price": 25.00,
"sku": null,
"type": "service",
"taxable": true,
"workspace_id": 123,
"created_at": "2025-03-01T10:00:00.000Z"
}
],
"pagination": {
"page": 1,
"per_page": 25,
"total_pages": 1
}
}Create Service
Create a new saved product or service.
POST /api/v1/servicesRequired Scope: services:write
Request Body:
| Field | Type | Required | Description |
|---|---|---|---|
name | string | Yes | Service or product name |
description | string | No | Description |
price | number | No | Default price. Defaults to 0 |
sku | string | No | SKU or product code |
type | string | No | service or product. Defaults to service |
taxable | boolean | No | Whether the item is taxable. Defaults to true |
curl -X POST https://app.bluesuite.com/api/v1/services \
-H "Authorization: Bearer wk_YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "Gutter Cleaning",
"description": "Standard gutter cleaning per linear foot",
"price": 3.50,
"type": "service",
"taxable": true
}'{
"success": true,
"data": {
"id": 5,
"name": "Gutter Cleaning",
"description": "Standard gutter cleaning per linear foot",
"price": 3.50,
"sku": null,
"type": "service",
"taxable": true,
"workspace_id": 123,
"created_at": "2025-03-15T12:00:00.000Z"
}
}Get Service
Retrieve a single product or service by ID.
GET /api/v1/services/:idRequired Scope: services:read
curl https://app.bluesuite.com/api/v1/services/5 \
-H "Authorization: Bearer wk_YOUR_API_KEY"{
"success": true,
"data": {
"id": 5,
"name": "Gutter Cleaning",
"description": "Standard gutter cleaning per linear foot",
"price": 3.50,
"sku": null,
"type": "service",
"taxable": true,
"workspace_id": 123,
"created_at": "2025-03-15T12:00:00.000Z"
}
}Update Service
Update an existing product or service. All fields are optional -- only include the fields you want to change.
PUT /api/v1/services/:idRequired Scope: services:write
Request Body: Same fields as Create Service. All fields are optional.
curl -X PUT https://app.bluesuite.com/api/v1/services/5 \
-H "Authorization: Bearer wk_YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"price": 4.00,
"description": "Standard gutter cleaning per linear foot (updated)"
}'{
"success": true,
"data": {
"id": 5,
"name": "Gutter Cleaning",
"description": "Standard gutter cleaning per linear foot (updated)",
"price": 4.00,
"sku": null,
"type": "service",
"taxable": true,
"workspace_id": 123,
"created_at": "2025-03-15T12:00:00.000Z"
}
}Delete Service
Delete a product or service by ID.
DELETE /api/v1/services/:idRequired Scope: services:write
curl -X DELETE https://app.bluesuite.com/api/v1/services/5 \
-H "Authorization: Bearer wk_YOUR_API_KEY"{
"success": true,
"data": {
"deleted": true
}
}