REST API v1
Requests
Manage requests via the REST API
List Requests
Retrieve a paginated list of requests.
GET /api/v1/requestsRequired Scope: requests:read
Query Parameters:
| Parameter | Type | Default | Description |
|---|---|---|---|
page | integer | 1 | Page number |
per_page | integer | 25 | Results per page (1-100) |
search | string | Search filter | |
sort_by | string | Field to sort by | |
sort_direction | string | desc | Sort direction (asc or desc) |
contact_id | integer | Filter by contact ID | |
status | string | Comma-separated list of statuses to filter by (e.g. new,responded). Options: new, responded, overdue, rejected, archived |
curl https://app.bluesuite.com/api/v1/requests?page=1&per_page=10&contact_id=42&status=new,responded \
-H "Authorization: Bearer wk_YOUR_API_KEY"{
"success": true,
"data": [
{
"id": 1,
"number": 1001,
"name": "Window cleaning inquiry",
"status": "new",
"contact_id": 42,
"property_id": 7,
"details": "Looking for a quote on window cleaning",
"requested_on": "2025-03-10T09:00:00.000Z",
"created_at": "2025-03-10T09:00:00.000Z"
}
],
"pagination": {
"page": 1,
"per_page": 10,
"total_pages": 3
}
}Create Request
Create a new request. The number is auto-generated.
POST /api/v1/requestsRequired Scope: requests:write
Request Body:
| Field | Type | Required | Description |
|---|---|---|---|
name | string | No | Name or title of the request |
contact_id | integer | No | ID of the associated contact |
property_id | integer | No | ID of the associated property |
assignee_id | string (UUID) | No | ID of the assigned team member |
details | string | No | Request details or description |
assessment | string | No | Internal assessment notes |
requested_on | string (ISO 8601) | No | Date the request was made |
status | string | No | One of: new, responded, overdue, rejected, archived. Defaults to new |
data | any | No | Additional data |
custom_fields | any | No | Custom field values |
curl -X POST https://app.bluesuite.com/api/v1/requests \
-H "Authorization: Bearer wk_YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "Window cleaning inquiry",
"contact_id": 42,
"details": "Looking for a quote on exterior window cleaning",
"status": "new"
}'{
"success": true,
"data": {
"id": 1,
"number": 1001,
"name": "Window cleaning inquiry",
"contact_id": 42,
"details": "Looking for a quote on exterior window cleaning",
"status": "new",
"workspace_id": 123,
"created_at": "2025-03-10T09:00:00.000Z"
}
}Get Request
Retrieve a single request by ID.
GET /api/v1/requests/:idRequired Scope: requests:read
curl https://app.bluesuite.com/api/v1/requests/1 \
-H "Authorization: Bearer wk_YOUR_API_KEY"{
"success": true,
"data": {
"id": 1,
"number": 1001,
"name": "Window cleaning inquiry",
"status": "new",
"contact_id": 42,
"property_id": 7,
"assignee_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"details": "Looking for a quote on exterior window cleaning",
"assessment": null,
"requested_on": "2025-03-10T09:00:00.000Z",
"workspace_id": 123,
"created_at": "2025-03-10T09:00:00.000Z"
}
}Update Request
Update an existing request. All fields are optional -- only include the fields you want to change.
PUT /api/v1/requests/:idRequired Scope: requests:write
Request Body:
All fields from Create Request are accepted. Only provided fields will be updated.
curl -X PUT https://app.bluesuite.com/api/v1/requests/1 \
-H "Authorization: Bearer wk_YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"assignee_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"assessment": "Customer needs exterior cleaning for 12 windows"
}'{
"success": true,
"data": {
"id": 1,
"number": 1001,
"name": "Window cleaning inquiry",
"status": "new",
"contact_id": 42,
"assignee_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"assessment": "Customer needs exterior cleaning for 12 windows",
"workspace_id": 123,
"created_at": "2025-03-10T09:00:00.000Z"
}
}Delete Request
Delete a request by ID.
DELETE /api/v1/requests/:idRequired Scope: requests:write
curl -X DELETE https://app.bluesuite.com/api/v1/requests/1 \
-H "Authorization: Bearer wk_YOUR_API_KEY"{
"success": true,
"data": {
"deleted": true
}
}Update Request Status
Update only the status of a request.
PUT /api/v1/requests/:id/statusRequired Scope: requests:write
Request Body:
| Field | Type | Required | Description |
|---|---|---|---|
status | string | Yes | One of: new, responded, overdue, rejected, archived |
curl -X PUT https://app.bluesuite.com/api/v1/requests/1/status \
-H "Authorization: Bearer wk_YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"status": "responded"
}'{
"success": true,
"data": {
"id": 1,
"number": 1001,
"name": "Window cleaning inquiry",
"status": "responded",
"workspace_id": 123
}
}