Skip to main content

Performance Metrics API Documentation

Endpoint​

GET /api/v1/performance-metrics

Description​

This endpoint retrieves performance metrics for a specified client and period. It returns the mean time to resolve (MTTR) and mean time to respond (MTTR) for incidents within the given period, both in seconds.

URL​

https://[Base URL]/api/v1/performance-metrics

Authentication​

This API requires an API key for authentication. Include the API key in the request headers.

Headers:

  • Content-Type: application/json
  • x-api-key: [Provided by Penfield]

Query Parameters​

  • clientID (string, optional): The ID of the client. Either clientID or clientName must be provided.
  • clientName (string, optional): The name of the client. Either clientID or clientName must be provided.
  • period (string, required): The period over which to calculate the metrics. Valid values are daily, weekly, monthly, quarterly.
  • today (string, optional): The current date and time in ISO 8601 format. If not provided, the server will use the current date and time.

Example Request​

curl -G "https://[Base URL]/api/v1/performance-metrics" \
--data-urlencode "clientID=ORG10" \
--data-urlencode "period=weekly" \
-H "Content-Type: application/json" \
-H "x-api-key: YOUR_API_KEY"

Example Response​

Successful Response​

HTTP Status Code: 200 OK

Response Body:

{
"mttResolve": 145.49,
"mttRespond": 671.86,
"status": "success",
"message": "Data retrieved successfully"
}

No Data Response​

HTTP Status Code: 200 OK

Response Body:

{
"mttResolve": null,
"mttRespond": null,
"status": "no_data",
"message": "No incident data found for the specified period"
}

Invalid Period​

HTTP Status Code: 400 Bad Request

Response Body:

{
"error": "Invalid period"
}

Missing Parameters​

HTTP Status Code: 400 Bad Request

Response Body:

{
"error": "Both clientID and clientName are empty. Please pass either."
}

Error Handling​

  • 400 Bad Request: Returned when required query parameters are missing or invalid.
  • 404 Not Found: Returned when the client ID or client name does not exist in the system.
  • 500 Internal Server Error: Returned when an unexpected error occurs on the server.

Example Scenarios​

Scenario 1: Weekly Metrics for Client ID ORG10​

Request:

curl -G "https://[Base URL]/api/v1/performance-metrics" \
--data-urlencode "clientID=ORG10" \
--data-urlencode "period=weekly" \
-H "Content-Type: application/json" \
-H "x-api-key: YOUR_API_KEY"

Response:

{
"mttResolve": 145.49,
"mttRespond": 671.86,
"status": "success",
"message": "Data retrieved successfully"
}

Scenario 2: Daily Metrics with No Data​

Request:

curl -G "https://[Base URL]/api/v1/performance-metrics" \
--data-urlencode "clientID=ORG10" \
--data-urlencode "period=daily" \
-H "Content-Type: application/json" \
-H "x-api-key: YOUR_API_KEY"

Response:

{
"mttResolve": null,
"mttRespond": null,
"status": "no_data",
"message": "No incident data found for the specified period"
}

Scenario 3: Missing Period Parameter​

Request:

curl -G "https://[Base URL]/api/v1/performance-metrics" \
--data-urlencode "clientID=ORG10" \
-H "Content-Type: application/json" \
-H "x-api-key: YOUR_API_KEY"

Response:

{
"error": "Period is empty, please pass this value."
}

Notes​

  • The clientID or clientName must be provided to identify the client.
  • The period parameter must be one of the following values: daily, weekly, monthly, quarterly.
  • If today is not provided, the server will use the current date and time to calculate the metrics.
  • Replace YOUR_API_KEY with the actual API key provided by Penfield.