Overview
The MSP API allows you to manage customers and search their cases. This article provides details about the available endpoints, request parameters, pagination, and example responses. Prerequisites: Obtaining API KeyGet Customers
Authentication
Requires valid API Key authentication credentials.Query Parameters
| Parameter | Type | Description | Example |
|---|---|---|---|
fields (optional) | string | Comma-separated list of fields to include in the response. If omitted, all fields are returned. | id,name |
Available Fields
| Field Name | Response Key | Description |
|---|---|---|
id | customer_id | Unique customer ID |
name | customer_name | Customer organization name |
users_number | users_number | Number of users in the organization |
active_workflows | active_workflows | Count of active workflows |
cost_impact | cost_impact | Financial cost impact |
realized_savings | realized_savings | Total realized savings |
num_of_integrations | num_of_integrations | Number of integrations |
integration_types | integration_types | Integration types available |
integrations | integrations | Detailed list of integrations |
successful_runs | successful_runs | Successful workflow runs |
failed_runs | failed_runs | Failed workflow runs |
Request Examples
All customer dataError Responses
| Status | Example |
|---|---|
| 400 Bad Request | {"error": "Invalid fields requested"} |
| 401 Unauthorized | {"error": "Authentication required"} |
| 500 Internal Server Error | {"error": "Internal server error"} |
Performance Considerations
- Use field selection to reduce payload size.
Search MSP Cases
Authentication
Requires valid API Key authentication credentials.Query Parameters
| Parameter | Type | Description | Example |
|---|---|---|---|
customer_id | string | Filter cases for a specific customer. | ?customer_id=org_12345 |
Request Body Parameters (JSON)
| Parameter | Type | Description |
|---|---|---|
date_range | object | Start & end dates |
max_returned_items | integer | Default: 250 |
start_page_key | object | Pagination key |
Request Examples
- Search all cases
- Specific customer
- With filters and date range
Pagination
Large case search results are returned in pages. The API uses a scroll-based pagination mechanism to deliver results consistently.How it Works
-
Initial Request
- Send your search request with
max_returned_items(default: 250). - The response will include
data(cases) and anext_page_keyobject if more results exist.
- Send your search request with
-
Fetching Next Page
- Copy the
scroll_idfrom the responsenext_page_key. - Provide it in your next request under
start_page_key.scroll_id.
- Copy the
-
End of Results
- When there are no further results,
"next_page_key": nullis returned.
- When there are no further results,
Request Example (Next Page)
Response Example (With Next Page Key)
Key Notes
- Opaque scroll ID: The
scroll_idis an encoded system token. Always use it as returned, without modification. - Consistency: The scroll ensures results are returned in a stable order during the pagination session.
- Session scope: New cases created during an active scroll session may not appear until you start a new search.
- Performance:
- Use page sizes of 25–100 items for UI-based pagination.
- Use larger page sizes (up to 500) for backend batch processing.
Error Responses
| Status | Example |
|---|---|
| 400 Invalid Request | {"error": "Request body must be a dictionary"} |
| 401 Unauthorized | {"error": "Authentication required"} |
| 500 Internal Server Error | {"error": "Internal server error"} |
Best Practices
- Apply specific date ranges in
/cases/msp/searchfor faster responses. - Always use pagination for large result sets.
- Cache frequently accessed queries where possible.