BlueSuite API
REST API v1

Requests

Manage requests via the REST API

List Requests

Retrieve a paginated list of requests.

GET /api/v1/requests

Required Scope: requests:read

Query Parameters:

ParameterTypeDefaultDescription
pageinteger1Page number
per_pageinteger25Results per page (1-100)
searchstringSearch filter
sort_bystringField to sort by
sort_directionstringdescSort direction (asc or desc)
contact_idintegerFilter by contact ID
statusstringComma-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/requests

Required Scope: requests:write

Request Body:

FieldTypeRequiredDescription
namestringNoName or title of the request
contact_idintegerNoID of the associated contact
property_idintegerNoID of the associated property
assignee_idstring (UUID)NoID of the assigned team member
detailsstringNoRequest details or description
assessmentstringNoInternal assessment notes
requested_onstring (ISO 8601)NoDate the request was made
statusstringNoOne of: new, responded, overdue, rejected, archived. Defaults to new
dataanyNoAdditional data
custom_fieldsanyNoCustom 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/:id

Required 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/:id

Required 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/:id

Required 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/status

Required Scope: requests:write

Request Body:

FieldTypeRequiredDescription
statusstringYesOne 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
  }
}

On this page