Download OpenAPI specification:Download
You can use the EvaluAgent API to access and update information within your EvaluAgent account. The Evaluagent API is organised around REST. REST stands for Representational State Transfer. This is an architectural pattern that describes how distributed systems can expose a consistent interface. When people use the term 'REST API', they are generally referring to an API accessed using the HTTP protocol at a predefined set of URLs.
These URLs represent various resources which can be returned as JSON, HTML or audio files. Often resources have one or more methods that can be performed on them over HTTP, like GET, POST, PUT and DELETE. These actions action represent the verbs Fetch, Create, Update and Delete respectively for those resources. The Evaluagent API is structured using the JSON:API specification and described using the OpenAPI specification.
In order to maintain data sovereignty our API can only be accessed regionally by cluster.
For customers on our European cluster (eu-west-1) the API URL is api.evaluagent.com.
For customers on our North America cluster (us-east) the API URL is api.us-east.evaluagent.com.
For customers on our Australian cluster (aus) the API URL is api.aus.evaluagent.com.
Context Engine is only as good as the content behind it. The Knowledge Vault endpoints let you sync documents from wherever they actually live — Confluence, Zendesk Guide, Salesforce Knowledge, SharePoint — on a schedule, instead of re-uploading files by hand as they change.
A sync job is a diff on title. Titles are unique per account, which makes them the natural key:
GET /context-engine/knowledge-vault/documents — page through it
and index the result by title. Each document carries its line_items, so you know up front
which ones are in use by a scorecard.PUT /context-engine/knowledge-vault/documents/{id}/file. The document ID, title, description,
tags and every line item attachment survive — which is the point: a naive delete-then-reupload
would silently unhook your scorecards. The old embeddings are invalidated and indexing_status
returns to pending.POST /context-engine/knowledge-vault/documents, naming tags inline;
names that do not exist yet are created for you.POST /context-engine/knowledge-vault/documents/bulk-delete with up to
200 IDs. Expect partial success: documents attached to a line item topic come back as 409 in
the 207 body while the rest are deleted. That is deliberate — deleting them would leave those
line items with nothing to assess against. Log them for a human to detach, and carry on.filter[indexing_status]=failed to catch anything that could not be read — a PDF of scanned
images, for example — rather than assuming a 201 means it is searchable.Two things worth building in from the start. Treat 409 on a delete as an expected outcome to
report, not an error to retry, because retrying can never succeed until someone detaches the
document. And prefer filter[updated_from] over re-reading everything once your vault is large.
Writes are rate limited to 20 requests per minute per API key, separately from the standard tier, because each upload costs a file write, a parse and an embedding run. A 500-article knowledge base still loads in well under an hour.
analytics_state field to the /analytics/conversations and /analytics/conversations/{id} resources, reporting whether a conversation was analysed or the reason it was skippedfilter[analytics_state] to /analytics/conversations. Omitting it keeps the existing behaviour of returning only analysed conversations, so no change is needed to existing integrationscreated_to / updated_to on /context-engine/knowledge-vault/documents now include the whole of a date-only end day, instead of cutting off at midnight and excluding everything created during itduplicate_document_title 409 as a sequential duplicate/context-engine/knowledge-vault for managing the documents and tags that ground Context EngineGET, POST /documents; GET, PATCH, DELETE /documents/{id}; PUT /documents/{id}/file; POST /documents/bulk-delete; POST /documents/tagsGET, POST /tags; PATCH, DELETE /tags/{id}PUT /documents/{id}/file replaces a file while preserving the document's ID, title, description, tags and line item attachments409 and the blocking line items listed under errors[0].meta.line_itemssection object (id, name) to each entry in scores on the /reports/calibrations endpoint, matching the section already present on /quality/evaluations/{id}. section is null when the scorecard has only one section.section is now null for any scorecard with a single section on both endpoints, not only when that section is named "General". A scorecard with one section is rendered without a section heading in the app, so it is reported as having no sections here too.section object (id, name) to each line item on the /quality/evaluations/{id} endpoint. section is null when the scorecard does not use sections./feedback and /feedback/{id} endpoints to list and fetch quality and general (peer-to-peer) feedback in a single consistent shape, distinguished by a type fieldfilter[mode] parameter to /quality/evaluations to filter evaluations by evaluation mode name (case-insensitive exact match, supports a comma-separated list)filter[agent_id] parameter to /quality/evaluations to filter evaluations by the evaluated agent's user UUID (supports a comma-separated list)xcsat_result and xcsat_reasoning fields to the /analytics/conversations resource for xCSAT scores (1-5)xces_result and xces_reasoning fields to the /analytics/conversations resource for xCES results (easy, neutral, difficult)xces_driver_result and xces_driver_reasoning fields to the /analytics/conversations resource for xCES Driver results/quality/actions endpoints for listing, creating, viewing, updating (completing), and deleting actions/quality/actions/{id}/messages endpoints for listing and creating messages on an action/quality/messages/{id} endpoints for updating and deleting messages/quality/disputes endpoint to list evaluation disputes with filtering by status, dates, users, and scorecards/quality/disputes/{id} endpoint to view a single dispute/quality/evaluations/{id}/disputes endpoint to view disputes for a specific evaluationGET /quality/calibration-sessions - List calibration sessions with filtering, sorting, and paginationGET /quality/calibration-sessions/{id} - Fetch a single calibration session by ID/analytics/conversations/{id}/transcript endpoint to retrieve conversation transcripts with speaker labelsfilter[scorecard_id] parameter to filter evaluations by scorecard UUIDfilter[scorecard] parameter to filter evaluations by scorecard name (supports prefix matching)/quality/evaluations/ now includes the contact's contact_date.updated_at property to line item feedbackreasons_for_contact field from conversationalAnalyticsrfc_primary_reason field to conversationalAnalyticsrfc_primary_reason_reasoning field to conversationalAnalyticsrfc_secondary_reason field to conversationalAnalyticsrfc_secondary_reason_reasoning field to conversationalAnalyticsrfc_primary_intent field to conversationalAnalyticsrfc_primary_intent_reasoning field to conversationalAnalyticsrfc_secondary_intent field to conversationalAnalyticsrfc_secondary_intent_reasoning field to conversationalAnalytics/quality/evaluations/{id} endpoint to include parent line items, which include an array of child line items.include parameter to analytics/conversations to allowing the inclusion of metadataanalytics/conversations/{id} endpointintegration as a required query parameter to the analytics/conversations endpoint/quality/contacts endpoint.third_party_id property to the users endpointsLearn how to get started with the Evaluagent API. This article describes how to quickly get started with the Evaluagent API using curl and Basic Authentication.
curl if it isn't already installed on your machine. To check if curl is installed, execute curl --version in the command line. If the output is information about the version of curl, it is installed. If you get a message similar to command not found: curl, you need to download and install curl. More information can be found here.curl command to make your request. Pass your token in an Authorization header. Replace YOUR-ACCESS-KEY-ID and YOU-SECRET-KEY with your Access Key ID and Secret Key respectively. curl –request GET --url "https://YOUR-CLUSTER-REGION/v1/org/users" -u "YOUR-ACCESS-KEY-ID:YOUR-SECRET-KEY"All API access is over HTTPS and via regional clusters
All data is sent and received as JSON.
Blank fields are included as null instead of being omitted.
All timestamps return as a String in UTC time, ISO 8601 format: YYYY-MM-DDTHH:MM:SSZ
When you make a request to the REST API, you will specify an HTTP method and a path. Additionally, you might also specify request headers and path, query, or body parameters. The API will return the response status code, response headers, and potentially a response body. The REST API reference documentation describes the HTTP method, path, and parameters for every operation. It also displays example requests and responses for each operation.
To make a request, first find the HTTP method and the path for the operation that you want to use. For example, the "List users" operation uses the GET method and the /org/users path. Prepend the base URL for the Evaluagent API region (for example: https://api.evaluagent.com in Europe) and then the version (currently v1) to the path to get the full URL. For example: https://api.evaluagent.com/v1/org/users in Europe.
Evaluagent supports HTTP Basic authentication. API keys can be provisioned in the Evaluagent platform under Conversations>>Integrations>>API. These are needed to authenticate requests against the API.
You must pass your Access Key ID and Secret Key in an Authorization header with every request to the API in the format "Basic YOUR-ACCESS-KEY-ID:YOUR-SECRET-KEY", where YOUR-ACCESS-KEY-ID:YOUR-SECRET-KEY are Base64 encoded. Many HTTP clients will automatically format in this way for you.
Alternatively, you can use the details above to generate a Bearer Token. These expire every 24 hours (+15 minutes) unless they are refreshed, providing a new token and invaliding the existing token. Once a token has been generated, Basic Authentication will be disabled for those credentials. Please note that you must use your Bearer Token when you request to refresh, and this must be done before the current Bearer Token expires. Once a Bearer Token has expired it cannot be used to gain a refreshed token, and Basic Authentication will not be available. After expiration (without refresh), you will need to generate new credentials.
Ping our API to verify your current authentication details
Returns authentication information
Unauthorized. Check your API credentials.
Customers on our EU cluster
Customers on our Australian cluster
Customers on our North American (US-East) cluster
Token has been created
Unauthorized. Check your API credentials.
Forbidden. Bearer Tokens can only be created using Basic Auth.
Customers on our EU cluster
Customers on our Australian cluster
Customers on our North American (US-East) cluster
Invalidate the bearer token used for authentication. Please be aware that the basic authentication details that worked to create this token will continue to be unusable. This is a destructive action which will prevent future API requests associated with this key
Token has been successfully revoked (empty body response)
Unauthorized. Check your API credentials.
Forbidden. Must use Token authentication.
Customers on our EU cluster
Customers on our Australian cluster
Customers on our North American (US-East) cluster
This will issue a new bearer token associated with this API key, the bearer token used for authentication will be invalidated upon issue of the new token
Token has been refreshed (the previous token is no longer valid)
Unauthorized. Check your API credentials.
Forbidden. Must use Token authentication.
Customers on our EU cluster
Customers on our Australian cluster
Customers on our North American (US-East) cluster
Use this endpoint to add a new user to your Evaluagent org.
Add a user to your Evaluagent org.
Define the Roles for this User using the Roles relationship. This can include making the user an Agent, Quality Analyst or Administrator as well as granting login access to the EvaluAgent app. A list of role ids can be found in the Roles endpoint.
If the created user is an Agent then the optional 'agent-team' relationship can be used to specify the id of the Group that they belong to. The list of Groups can be fetched using the Groups endpoint.
| data | object |
Returns the new user
Validation errors
Unauthorized. Check your API credentials.
Customers on our EU cluster
Customers on our Australian cluster
Customers on our North American (US-East) cluster
Fetch a list of all the users in this org. Filter by email address to search for a specific user.
| filter[email] | string <string> Example: filter[email]=user%40company.com Return a specific user by their email address. |
| filter[username] | string <string> Example: filter[username]=user%40company.com Return a specific user by their username. |
Returns an array of users
Unauthorized. Check your API credentials.
Customers on our EU cluster
Customers on our Australian cluster
Customers on our North American (US-East) cluster
Fetch a specific user by userid
| id required | string The id of the user to retrieve |
Returns the specified user
Unauthorized. Check your API credentials.
User not found
Customers on our EU cluster
Customers on our Australian cluster
Customers on our North American (US-East) cluster
Update a user's details
Toggle state between active/deactive setting the 'active' attribute.
Define the Roles for this User using the Roles relationship. This can include making the user an Agent, Quality Analyst or Administrator as well as granting login access to the EvaluAgent app. A list of role ids can be found in the Roles endpoint.
If the user is an Agent then the 'agent-team' relationship can be updated to move the Agent to a different group. The list of groups can be fetched using the Groups endpoint.
| id required | string The id of the user to update |
Updated details for the user
| data | object |
Returns the updated user
Validation failure
Unauthorized. Check your API credentials.
User not found
Customers on our EU cluster
Customers on our Australian cluster
Customers on our North American (US-East) cluster
Use this endpoint to add a new group to your Evaluagent org.
Add a group to your Evaluagent org. Levels can be grabbed from the org/levels endpoint.
| data | object |
Returns the new group
Validation errors
Unauthorized. Check your API credentials.
Customers on our EU cluster
Customers on our Australian cluster
Customers on our North American (US-East) cluster
Fetch a list of your groups and their hierarchy within EvaluAgent. Useful for compiling a list of groups and their ids for managing agents.
| show_inactive | boolean Whether inactive groups should be shown. Defaults to false. |
Returns an array of groups
Unauthorized. Check your API credentials.
Customers on our EU cluster
Customers on our Australian cluster
Customers on our North American (US-East) cluster
Update a group's details
| id required | string The id of the group to update |
Updated details for the group
| data | object |
Returns the updated group
Validation failure
Unauthorized. Check your API credentials.
Group not found
Customers on our EU cluster
Customers on our Australian cluster
Customers on our North American (US-East) cluster
Delete group
| id required | string The ID of the group to retrieve |
Returns nothing. Group has been deleted.
Unauthorized. Check your API credentials.
Group not found
Customers on our EU cluster
Customers on our Australian cluster
Customers on our North American (US-East) cluster
Use this endpoint to add a new Role to your Evaluagent org.
Add a role to your Evaluagent org. Abilities can be grabbed from the org/abilities endpoint.
| data | object |
Returns the new role
Validation errors
Unauthorized. Check your API credentials.
Customers on our EU cluster
Customers on our Australian cluster
Customers on our North American (US-East) cluster
Fetch a list of your roles within EvaluAgent. Useful for assigning roles to users.
Returns an array of roles
Unauthorized. Check your API credentials.
Customers on our EU cluster
Customers on our Australian cluster
Customers on our North American (US-East) cluster
Update a role's details
| id required | string The id of the role to update |
Updated details for the role
| data | object |
Returns the updated role
Validation failure
Unauthorized. Check your API credentials.
Role not found
Customers on our EU cluster
Customers on our Australian cluster
Customers on our North American (US-East) cluster
Delete role
| id required | string The ID of the role to retrieve |
Returns nothing. Role has been deleted.
Unauthorized. Check your API credentials.
Role not found
Customers on our EU cluster
Customers on our Australian cluster
Customers on our North American (US-East) cluster
Fetch a list of your integrations within EvaluAgent.
Returns an array of integrations
Unauthorized. Check your API credentials.
Customers on our EU cluster
Customers on our Australian cluster
Customers on our North American (US-East) cluster
Fetch a list of your levels within EvaluAgent. Useful for creating groups.
Returns an array of levels
Unauthorized. Check your API credentials.
Customers on our EU cluster
Customers on our Australian cluster
Customers on our North American (US-East) cluster
Fetch a list of your abilities within EvaluAgent. Useful for creating roles.
Returns an array of abilities
Unauthorized. Check your API credentials.
Customers on our EU cluster
Customers on our Australian cluster
Customers on our North American (US-East) cluster
Fetch a list of your completed evaluations and their results.
The request can be filtered by date, scorecard, evaluation mode (filter[mode]), and the evaluated agent (filter[agent_id]), and sorted by published_at, date_published, updated_at, reference, score, agent_name, evaluator_name. The endpoint also supports pagination, requests default to the first page. If you also need the related contacts for the evaluations then use
include to also return those contacts with the request.
| filter[published_at;between] | string <date-time> Example: filter[published_at;between]=2023-05-01T00%3A00%3A00.000Z%2C%202023-08-01T00%3A00%3A00.000Z A date range to filter evaluations on their |
| sort | string Example: sort=-published_at An option to sort by order of choice. Adding a minus operator to the start of field you wish to sort on will return results descending order. List of sorting options - |
| page[number] | number Example: page[number]=1 When paginated, the page number that you would like to request. Defaults to 1. |
| include | string Example: include=contacts Request that contacts associated with the returned evaluations be included under the "included" key in the response. |
| filter[scorecard_id] | string <uuid> Example: filter[scorecard_id]=e15b67e1-816b-456d-94d4-43d362a2b4a0 Filter evaluations by scorecard UUID. Exact match. |
| filter[scorecard] | string Example: filter[scorecard]=Customer%20Support Filter evaluations by scorecard name. Supports case-insensitive prefix matching (e.g., "Customer" matches "Customer Support", "Customer Service"). |
| filter[agent_id] | string Example: filter[agent_id]=9d2f1c4e-3b6a-4f81-8c2d-71e0a5b9c3d4 Filter evaluations by the evaluated agent's user UUID. Accepts a single UUID or a comma-separated list of UUIDs to match any of them. |
| filter[mode] | string Example: filter[mode]=Manual%2CCalibration Filter evaluations by evaluation mode name, as returned in the |
Returns an array of evaluations
Unauthorized. Check your API credentials.
Customers on our EU cluster
Customers on our Australian cluster
Customers on our North American (US-East) cluster
Response when include=contacts parameter is used
Fetch a detailed view of an evaluation, including feedback and individual line item scores.
Use include to also return related contacts and evaluators or agents for this specific evaluation.
| id required | string The id of the evaluation to retrieve |
| include | Array of strings Items Enum: "contact" "evaluator" "agent" Example: include=contact,evaluator,agent A comma-separated list of records associated with the evaluation to be included under the "included" key in the response. Available record types are contact, evaluator, and agent. |
Returns the evaluation
Unauthorized. Check your API credentials.
Evaluation not found
Customers on our EU cluster
Customers on our Australian cluster
Customers on our North American (US-East) cluster
Retrieve the disputes for a specific evaluation. This is equivalent to calling /quality/disputes/{id} with the evaluation UUID.
Rate limiting: Maximum 100 requests per minute, 10,000 requests per day per API key.
| id required | string <uuid> Example: 43aea3f1-00aa-4b9f-8dc4-9f843788bf41 The evaluation UUID. |
| include | string Example: include=stages%2Cstages.line_items%2Cstages.appealer%2Cstages.reviewer Comma-separated list of related resources to include. |
Returns the dispute for this evaluation
Unauthorized. Check your API credentials.
Evaluation or dispute not found
Customers on our EU cluster
Customers on our Australian cluster
Customers on our North American (US-East) cluster
Retrieve the disputes for a specific evaluation. This is equivalent to calling /quality/disputes/{id} with the evaluation UUID.
Rate limiting: Maximum 100 requests per minute, 10,000 requests per day per API key.
| id required | string <uuid> Example: 43aea3f1-00aa-4b9f-8dc4-9f843788bf41 The evaluation UUID. |
| include | string Example: include=stages%2Cstages.line_items%2Cstages.appealer%2Cstages.reviewer Comma-separated list of related resources to include. |
Returns the dispute for this evaluation
Unauthorized. Check your API credentials.
Evaluation or dispute not found
Customers on our EU cluster
Customers on our Australian cluster
Customers on our North American (US-East) cluster
Retrieve a paginated list of evaluation disputes with filtering and sorting. Use the include parameter to embed related resources.
The disputes endpoint aggregates disputes by evaluation. Each dispute in the response represents all dispute activity for a single evaluation, with individual dispute stages accessible via the stages relationship.
Rate limiting: Maximum 100 requests per minute, 10,000 requests per day per API key.
| filter[created_at;between] | string <date-time> Example: filter[created_at;between]=2026-01-01T00%3A00%3A00.000Z%2C2026-01-31T23%3A59%3A59.000Z Filter by when the first dispute was raised. Comma-separated start and end date in UTC format. |
| filter[resolved_at;between] | string <date-time> Example: filter[resolved_at;between]=2026-01-01T00%3A00%3A00.000Z%2C2026-01-31T23%3A59%3A59.000Z Filter by resolution date. Only includes disputes where all stages are resolved. Comma-separated start and end date in UTC format. |
| filter[status] | string Enum: "pending" "changed" "unchanged" Example: filter[status]=pending Filter by overall dispute status. |
| filter[evaluation_id] | string <uuid> Example: filter[evaluation_id]=43aea3f1-00aa-4b9f-8dc4-9f843788bf41 Filter by evaluation UUID. |
| filter[contact_id] | string <uuid> Filter by contact UUID. |
| filter[agent_id] | string <uuid> Filter by agent UUID (the assignee on the evaluation). |
| filter[appealer_id] | string <uuid> Filter by any stage appealer UUID. |
| filter[reviewer_id] | string <uuid> Filter by any stage reviewer UUID. |
| filter[scorecard_id] | string <uuid> Filter by scorecard UUID. |
| filter[scorecard] | string Example: filter[scorecard]=Customer%20Service Filter by scorecard name (prefix match). |
| sort | string Enum: "created_at" "-created_at" "resolved_at" "-resolved_at" Example: sort=-created_at Sort results. Use |
| page[number] | integer Example: page[number]=1 Page number (default 1). |
| page[size] | integer <= 100 Example: page[size]=50 Results per page (default 50, max 100). |
| include | string Example: include=evaluation%2Cstages%2Cstages.line_items%2Cstages.appealer%2Cstages.reviewer Comma-separated list of related resources to include. |
Returns a paginated list of disputes
Unauthorized. Check your API credentials.
Customers on our EU cluster
Customers on our Australian cluster
Customers on our North American (US-East) cluster
Retrieve a single dispute by its ID (evaluation UUID). Use the include parameter to embed related resources.
Rate limiting: Maximum 100 requests per minute, 10,000 requests per day per API key.
| id required | string <uuid> Example: 43aea3f1-00aa-4b9f-8dc4-9f843788bf41 The dispute ID (same as evaluation UUID). |
| include | string Example: include=evaluation%2Cstages%2Cstages.line_items%2Cstages.appealer%2Cstages.reviewer Comma-separated list of related resources to include. |
Returns the dispute
Unauthorized. Check your API credentials.
Dispute not found
Customers on our EU cluster
Customers on our Australian cluster
Customers on our North American (US-East) cluster
Fetch a list of calibration sessions with optional filtering, sorting, and pagination.
Use include to return related resources such as facilitator, participants, scorecard, or calibrated evaluation.
| filter[status] | string Enum: "pending" "in_progress" "closed" Example: filter[status]=pending Filter sessions by status |
| filter[start_at;between] | string Example: filter[start_at;between]=2025-01-01%2C2025-01-31 A date range to filter sessions on their scheduled start date. Consists of a comma-separated start and end date in YYYY-MM-DD format. |
| filter[facilitator] | string <uuid> Example: filter[facilitator]=99abbc05-9535-4e20-84be-0d4e55bcd407 Filter sessions by facilitator user UUID |
| filter[participant] | string <uuid> Example: filter[participant]=99abbc05-9535-4e20-84be-0d4e55bcd407 Filter sessions by participant user UUID |
| filter[scorecard] | string <uuid> Example: filter[scorecard]=25eeba63-ffe8-4f88-aa96-a3ea3e38757f Filter sessions by scorecard/quality form UUID |
| sort | string Enum: "start_at" "-start_at" "reference" "-reference" "status" "-status" Example: sort=-start_at Sort the returned sessions. Adding a minus operator to the start will return results in descending order. Valid options: |
| page[size] | integer [ 1 .. 100 ] Default: 100 Example: page[size]=20 Number of items per page. Maximum 100. |
| page[number] | integer >= 1 Default: 1 Example: page[number]=1 Page number to retrieve. Defaults to 1. |
| include | string Example: include=facilitator%2Cparticipants%2Cscorecard Comma-separated list of related resources to include. Available: |
Returns an array of calibration sessions
Unauthorized. Check your API credentials.
Customers on our EU cluster
Customers on our Australian cluster
Customers on our North American (US-East) cluster
Fetch details of a single calibration session by its UUID.
Use include to return related resources such as facilitator, participants, scorecard, or calibrated evaluation.
| id required | string <uuid> The UUID of the calibration session to retrieve |
| include | string Example: include=facilitator%2Cparticipants%2Cscorecard%2Cevaluation Comma-separated list of related resources to include. Available: |
Returns the calibration session
Unauthorized. Check your API credentials.
Calibration session not found
Customers on our EU cluster
Customers on our Australian cluster
Customers on our North American (US-East) cluster
Use this endpoint to import conversations from other platforms into Evaluagent.
/quality/imported-contacts/upload-audio endpoint to upload that audio file. Then using the returned path reference use this endpoint to import the related metadata for your conversation.Conversation responses are processed asynchronously after the request returns: a successful response confirms the contact was created and its responses accepted for processing, and the responses will typically be visible on the contact shortly afterwards. A GET for the contact immediately after import may briefly return it without its responses.
Please note there is rate-limiting in place for this endpoint. Maximum 100 requests per-minute, based on API credentials.
Contact to add to EvaluAgent.
| data | object |
Your imported contact was successfully created in EvaluAgent.
Validation errors
Unauthorized. Check your API credentials.
Customers on our EU cluster
Customers on our Australian cluster
Customers on our North American (US-East) cluster
Use this endpoint to correct or add custom metadata fields on a conversation you have already imported, without re-importing it. The conversation is identified by the reference it was imported under.
Only metadata is changed. To change any other attribute of the conversation, or to add responses, re-import it.
Fields you send are merged into the conversation's existing metadata.
null is removed from the conversation.Newly created fields become available as reporting and conversation filters automatically. Updated values are reflected in conversation filtering immediately, and in Conversation Insights reporting once the conversation has been re-aggregated.
Values are stored with the JSON type you send them as. Sending "22" where the field previously held 22 will store the field as text, which excludes it from numeric filters — send numbers as numbers.
Some field names are reserved by Evaluagent and are rejected. These are names we write or read ourselves — the audio and video pointers (audio_url, video_url, sample_rate), the external link (external_url, conversation_url, linkToThirdParty), transcription and analytics fields (transcription_provider, totalWords), fields mirroring a column (channel_name, handling_time), and any name beginning with __. Field names cannot contain a full stop, and metadata must be an object of named fields rather than a list.
If two requests update the same conversation at the same time, changes to different fields are both kept; if both change the same field, the last one to complete wins.
Please note there is rate-limiting in place for this endpoint. Maximum 100 requests per-minute, based on API credentials.
The conversation reference, and the metadata fields to change.
| data | object |
The metadata was successfully updated. The full metadata of the conversation after the merge is returned.
Validation errors
Unauthorized. Check your API credentials.
No imported contact exists with the supplied reference.
Customers on our EU cluster
Customers on our Australian cluster
Customers on our North American (US-East) cluster
Use this endpoint to import recorded audio file conversations from other platforms into Evaluagent.
Use the path reference in the response from this endpoint when importing the related metadata with the /quality/imported-contacts endpoint.
The Evaluagent platform supports all audio encoded in a format supported by HTML5
| audio_file required | null <binary> The audio file to upload. Must be an MP3, WAV, OGG, M4A, etc. |
Your audio file was successfully uploaded to EvaluAgent.
Validation errors
Unauthorized. Check your API credentials.
Customers on our EU cluster
Customers on our Australian cluster
Customers on our North American (US-East) cluster
Fetch conversational analytics for contacts between a specified time period. This endpoint is rate limited to 20 request per minute. This limit is shared with GET :/analytics/conversations/{id}
| filter[integration] required | string Example: filter[integration]=8fa6239b-14a6-4d40-8afe-398312f779f6 The UUID of the integration to return |
| filter[contact_date;between] required | string <date-time> Example: filter[contact_date;between]=2023-05-01T00%3A00%3A00.000Z%2C%202023-05-31T00%3A00%3A00.000Z A date range to filter conversations on their |
| filter[insight_topics][] | array <string> Example: filter[insight_topics][]=13686037-e52e-470a-966c-843437e7d422 An array of topic UUIDs to filter conversations by |
| filter[analytics_state] | string Example: filter[analytics_state]=audio-too-short%2Ctoo-few-responses Restricts results by When omitted, only conversations with an |
| sort | string Example: sort=-contact_date An option to sort by order of choice. Adding a minus operator to the start of field you wish to sort on will return results descending order. List of sorting options - |
| page[number] | number Example: page[number]=1 When paginated, the page number that you would like to request. Defaults to 1. |
| include | string Example: include=metadata A comma separated list of additional fields |
Returns an array of conversational analytics records
Validation errors
Unauthorized. Check your API credentials.
Customers on our EU cluster
Customers on our Australian cluster
Customers on our North American (US-East) cluster
Fetch conversational analytics for a specific contact. This endpoint is rate limited to 20 request per minute. This limit is shared with GET :/analytics/conversations
| id required | string The id of the conversation to retrieve |
Returns analytics for a single conversation
Unauthorized. Check your API credentials.
Conversation not found
Customers on our EU cluster
Customers on our Australian cluster
Customers on our North American (US-East) cluster
Fetch the transcript for a specific conversation. Returns all utterances with speaker labels. This endpoint is rate limited to 20 requests per minute. This limit is shared with other analytics/conversations endpoints.
| id required | string The id of the conversation to retrieve the transcript for |
Returns the transcript for the conversation
Unauthorized. Check your API credentials.
Conversation not found or has no transcript
Customers on our EU cluster
Customers on our Australian cluster
Customers on our North American (US-East) cluster
Manage the documents and tags that ground Context Engine, so AutoQA and GenAI line items assess against your current policies rather than a snapshot someone uploaded by hand. Requires the Context Engine feature.
Fetch the documents in your Knowledge Vault.
Each document carries its line_items — the GenAI line item topics it is attached to — so a
sync job can tell in one request whether a document is safe to delete before attempting it.
Requires the Context Engine feature. Supports pagination and defaults to the first page, 50 per page, most recently updated first.
| filter[title] | string Example: filter[title]=complaints Partial, case-insensitive match on the document title. |
| filter[tag_id] | string <uuid> Only documents carrying this tag. Repeatable, or comma-separated; matches any of them. |
| filter[tag_name] | string Example: filter[tag_name]=Compliance Only documents carrying this tag name. Repeatable, or comma-separated; matches any of them. |
| filter[indexing_status] | string Enum: "pending" "processing" "complete" "failed" Restrict to one or more indexing states. Comma-separated. |
| filter[linked_to_line_items] | boolean
|
| filter[created_from] | string <date-time> Example: filter[created_from]=2026-01-01T00%3A00%3A00Z Documents created on or after this point. Accepts |
| filter[created_to] | string <date-time> Documents created on or before this point. Accepts |
| filter[updated_from] | string <date-time> Documents updated on or after this point. Same date handling as |
| filter[updated_to] | string <date-time> Documents updated on or before this point. Same date handling as |
| sort | string Example: sort=title Sort order. Prefix with |
| page[number] | number Example: page[number]=1 When paginated, the page number to request. Defaults to 1. |
| page[size] | number Example: page[size]=50 Documents per page. Defaults to 50, maximum 250. |
Returns an array of Knowledge Vault documents
An unrecognised filter key, or an unreadable date. Both are rejected rather than ignored,
so a typo cannot silently widen or empty the result set that a sync job then acts on.
Unauthorized. Check your API credentials.
Context Engine is not enabled for this account. The error carries the code
feature_not_enabled so it can be told apart from bad credentials or a wrong URL. Contact your
account manager to enable the feature.
Customers on our EU cluster
Customers on our Australian cluster
Customers on our North American (US-East) cluster
Upload a single document to the Knowledge Vault as multipart/form-data.
Accepted formats are PDF, DOC, DOCX, TXT, CSV and HTML (.html or .htm), up to 10 MB per
file, and the file must not be empty. Titles must be
unique within the account.
The document is queued for parsing and embedding on success, so the response returns
indexing_status: pending. Poll the document, or list with
filter[indexing_status]=failed, to confirm it became searchable.
Rate limited to 20 requests per minute per API key, separately from the standard tier, because each upload costs a file write, a parse and an embedding run.
| file required | string <binary> The document itself. PDF, DOC, DOCX, TXT, CSV or HTML ( |
| title required | string <= 255 characters The document's name in the Knowledge Vault. Must be unique within the account. |
| description | string <= 255 characters Optional free-text description. |
| tags | Array of strings Tag IDs or names. A name that does not already exist is created; a name that does exist resolves to the existing tag rather than duplicating it, matched case-insensitively. A value in UUID form is always read as an ID: if no tag in your account has it the request is rejected, rather than a tag being created under the ID as its name. |
The document was created and queued for indexing
Validation failed - a missing or empty file, a missing title, or an unknown tag ID.
Field-level detail is under meta.validation.
Unauthorized. Check your API credentials.
Context Engine is not enabled for this account. The error carries the code
feature_not_enabled so it can be told apart from bad credentials or a wrong URL. Contact your
account manager to enable the feature.
A document with this title already exists (duplicate_document_title)
The file exceeds 10 MB (file_too_large)
The file format is not supported (unsupported_file_format). The message names the accepted formats.
Too many requests. The response includes a Retry-After header giving the number of seconds to
wait before retrying.
Customers on our EU cluster
Customers on our Australian cluster
Customers on our North American (US-East) cluster
Fetch a single Knowledge Vault document, including its tags and the line item topics it is attached to. Never returns the file's contents.
| id required | string <uuid> The UUID of the document. |
Returns a single document
Unauthorized. Check your API credentials.
Context Engine is not enabled for this account. The error carries the code
feature_not_enabled so it can be told apart from bad credentials or a wrong URL. Contact your
account manager to enable the feature.
No document with that id exists in your account
Customers on our EU cluster
Customers on our Australian cluster
Customers on our North American (US-East) cluster
Update a document's title, description or tags. The file itself is replaced through
PUT /context-engine/knowledge-vault/documents/{id}/file, so a title edit can never change the
content by accident.
Line item attachments are unaffected.
| id required | string <uuid> The UUID of the document. |
| title | string <= 255 characters Must be unique within the account. |
| description | string <= 255 characters Nullable |
| tags | Array of strings Replaces the document's entire tag set. Omit the field to leave tags untouched; pass an empty array to clear them. Names that do not exist are created. |
Returns the updated document
Validation failed. Field-level detail is under meta.validation.
Unauthorized. Check your API credentials.
Context Engine is not enabled for this account. The error carries the code
feature_not_enabled so it can be told apart from bad credentials or a wrong URL. Contact your
account manager to enable the feature.
No document with that id exists in your account
Another document already uses this title (duplicate_document_title)
Customers on our EU cluster
Customers on our Australian cluster
Customers on our North American (US-East) cluster
Delete a document, its embeddings and its tag associations.
A document attached to one or more GenAI line item topics cannot be deleted: deleting it
would strip those line items of the content they assess against. The request is refused with
409 and the blocking line items are listed under errors[0].meta.line_items. Detach the
document in the application first, then retry.
Rate limited to 20 requests per minute per API key, on the same meter as the other write
endpoints: tearing down a document's embeddings costs as much per document as bulk-delete
does. A per-item delete loop will hit this - use
POST /context-engine/knowledge-vault/documents/bulk-delete for more than a handful.
| id required | string <uuid> The UUID of the document. |
The document was deleted
Unauthorized. Check your API credentials.
Context Engine is not enabled for this account. The error carries the code
feature_not_enabled so it can be told apart from bad credentials or a wrong URL. Contact your
account manager to enable the feature.
No document with that id exists in your account, or it has already been deleted
The document is attached to one or more line item topics (document_linked_to_line_item)
Too many requests. The response includes a Retry-After header giving the number of seconds to
wait before retrying.
Customers on our EU cluster
Customers on our Australian cluster
Customers on our North American (US-East) cluster
Replace the file behind an existing document as multipart/form-data, keeping the document ID,
title, description, tags and every line item attachment intact. This is how you keep a synced
knowledge base current without breaking the links your scorecards depend on.
The previous embeddings are invalidated, the document is queued for re-indexing, and
indexing_status returns to pending. Format and size validation is identical to upload, and
an empty file is refused before anything is replaced - the old file and its embeddings are only
torn down once a valid replacement has been accepted.
Rate limited to 20 requests per minute per API key.
| id required | string <uuid> The UUID of the document. |
| file required | string <binary> The replacement document. PDF, DOC, DOCX, TXT, CSV or HTML ( |
Returns the updated document, with indexing_status back to pending
Validation failed. Field-level detail is under meta.validation.
Unauthorized. Check your API credentials.
Context Engine is not enabled for this account. The error carries the code
feature_not_enabled so it can be told apart from bad credentials or a wrong URL. Contact your
account manager to enable the feature.
No document with that id exists in your account
The file exceeds 10 MB (file_too_large)
The file format is not supported (unsupported_file_format)
Too many requests. The response includes a Retry-After header giving the number of seconds to
wait before retrying.
Customers on our EU cluster
Customers on our Australian cluster
Customers on our North American (US-East) cluster
Delete up to 200 documents in one request. Always returns 207 with a result per document, so a
single blocked document does not stall the rest: documents attached to a line item topic come
back as 409 while everything else is deleted.
Rate limited to 20 requests per minute per API key.
| ids required | Array of strings <uuid> <= 200 items Document IDs to delete. Maximum 200 per request. |
A result per document, plus counts under meta
Validation failed. Field-level detail is under meta.validation.
Unauthorized. Check your API credentials.
Context Engine is not enabled for this account. The error carries the code
feature_not_enabled so it can be told apart from bad credentials or a wrong URL. Contact your
account manager to enable the feature.
Too many requests. The response includes a Retry-After header giving the number of seconds to
wait before retrying.
Customers on our EU cluster
Customers on our Australian cluster
Customers on our North American (US-East) cluster
Add or remove one or more tags across up to 200 documents in a single request — the API
equivalent of the application's multi-select Apply Tags, plus the removal it has no button
for. Returns 207 with a result per document.
Rate limited to 20 requests per minute per API key.
| action required | string Enum: "apply" "remove" Whether to add the tags to, or remove them from, the given documents. |
| document_ids required | Array of strings <uuid> <= 200 items Documents to change. Maximum 200 per request. |
| tags required | Array of strings Tag IDs or names. On |
A result per document, each carrying the document in its new state
Validation failed. Field-level detail is under meta.validation.
Unauthorized. Check your API credentials.
Context Engine is not enabled for this account. The error carries the code
feature_not_enabled so it can be told apart from bad credentials or a wrong URL. Contact your
account manager to enable the feature.
Too many requests. The response includes a Retry-After header giving the number of seconds to
wait before retrying.
Customers on our EU cluster
Customers on our Australian cluster
Customers on our North American (US-East) cluster
Fetch the Knowledge Vault tags in your account, each with the number of documents carrying it and the line item topics reachable through those documents — matching the Tags table in the application.
| page[number] | number Example: page[number]=1 When paginated, the page number to request. Defaults to 1. |
| page[size] | number Example: page[size]=50 Tags per page. Defaults to 50, maximum 250. |
Returns an array of tags
Unauthorized. Check your API credentials.
Context Engine is not enabled for this account. The error carries the code
feature_not_enabled so it can be told apart from bad credentials or a wrong URL. Contact your
account manager to enable the feature.
Customers on our EU cluster
Customers on our Australian cluster
Customers on our North American (US-East) cluster
Create a standalone tag. Tag names are unique within the account. Tags can also be created implicitly by naming them on upload.
| name required | string <= 255 characters |
The tag was created
Validation failed. Field-level detail is under meta.validation.
Unauthorized. Check your API credentials.
Context Engine is not enabled for this account. The error carries the code
feature_not_enabled so it can be told apart from bad credentials or a wrong URL. Contact your
account manager to enable the feature.
A tag with this name already exists (duplicate_tag_name)
Customers on our EU cluster
Customers on our Australian cluster
Customers on our North American (US-East) cluster
Rename an existing tag. Every document carrying it keeps the tag.
| id required | string <uuid> The UUID of the tag. |
| name required | string <= 255 characters |
Returns the renamed tag
Validation failed. Field-level detail is under meta.validation.
Unauthorized. Check your API credentials.
Context Engine is not enabled for this account. The error carries the code
feature_not_enabled so it can be told apart from bad credentials or a wrong URL. Contact your
account manager to enable the feature.
No tag with that id exists in your account
Another tag already uses this name (duplicate_tag_name)
Customers on our EU cluster
Customers on our Australian cluster
Customers on our North American (US-East) cluster
Delete a tag and detach it from every document carrying it. The documents themselves, their files and their embeddings are untouched.
Unlike documents, a tag delete is never blocked by line items. A tag is never itself attached to
a line item topic — the line_items on a tag are reached through its documents — so removing it
takes no content away from any line item.
| id required | string <uuid> The UUID of the tag. |
The tag was deleted
Unauthorized. Check your API credentials.
Context Engine is not enabled for this account. The error carries the code
feature_not_enabled so it can be told apart from bad credentials or a wrong URL. Contact your
account manager to enable the feature.
No tag with that id exists in your account
Customers on our EU cluster
Customers on our Australian cluster
Customers on our North American (US-East) cluster
Fetch a list of Work Queue Templates in this org.
Returns a list of Work Queue Templates
Unauthorized. Check your API credentials.
Customers on our EU cluster
Customers on our Australian cluster
Customers on our North American (US-East) cluster
Fetch a specific Work Queue Template by ID
| id required | string The ID of the Work Queue Template to retrieve |
Returns the specified Work Queue Template
Unauthorized. Check your API credentials.
Work Queue Template not found
Customers on our EU cluster
Customers on our Australian cluster
Customers on our North American (US-East) cluster
Fetch a specific Work Queue Template by the given ID
| id required | string The ID of the Work Queue Template to retrieve |
Returns the agents assigned to the specified Work Queue Template
Unauthorized. Check your API credentials.
Work Queue Template not found
Customers on our EU cluster
Customers on our Australian cluster
Customers on our North American (US-East) cluster
Sync Agents assigned to the given Work Queue Template. Agents assigned to the Work Queue Template will be updated to match the given data, removing any assigned agents if not included in the data.
| id required | string The ID of the Work Queue Template to retrieve |
Returns the updated Work Queue Template
Unauthorized. Check your API credentials.
Work Queue Template not found
Customers on our EU cluster
Customers on our Australian cluster
Customers on our North American (US-East) cluster
Add agents assigned to the Work Queue Template
| id required | string The ID of the Work Queue Template to retrieve |
Returns the updated Work Queue Template
Unauthorized. Check your API credentials.
Work Queue Template not found
Customers on our EU cluster
Customers on our Australian cluster
Customers on our North American (US-East) cluster
Delete Agents assigned to the given Work Queue Template
| id required | string The ID of the Work Queue Template to retrieve |
Returns the updated Work Queue Template
Unauthorized. Check your API credentials.
Work Queue Template not found
Customers on our EU cluster
Customers on our Australian cluster
Customers on our North American (US-East) cluster
Fetch a paginated list of actions with optional filtering, sorting, and includes.
Use include to return related resources such as assignee, creator, evaluation, or messages.
Rate limiting: Maximum 100 requests per minute, 10,000 requests per day per API key.
| filter[status] | string Enum: "open" "completed" Example: filter[status]=open Filter actions by status. |
| filter[created_at;between] | string <date-time> Example: filter[created_at;between]=2026-01-01T00%3A00%3A00.000Z%2C2026-01-31T23%3A59%3A59.000Z Filter by creation date. Comma-separated start and end date in UTC format. |
| filter[due_at;between] | string <date-time> Example: filter[due_at;between]=2026-01-01T00%3A00%3A00.000Z%2C2026-01-31T23%3A59%3A59.000Z Filter by due date. Comma-separated start and end date in UTC format. |
| filter[assignee] | string <uuid> Filter by assignee user UUID. |
| filter[creator] | string <uuid> Filter by creator user UUID. |
| filter[origination] | string Example: filter[origination]=evaluation Filter by origination type (e.g. impromptu, evaluation). |
| sort | string Enum: "due_at" "-due_at" "created_at" "-created_at" "status" "-status" Example: sort=-due_at Sort results. Use |
| page[number] | integer Example: page[number]=1 Page number (default 1). |
| page[size] | integer <= 100 Example: page[size]=50 Results per page (default 50, max 100). |
| include | string Example: include=assignee%2Ccreator%2Cmessages Comma-separated list of related resources to include. Available: |
Returns a paginated list of actions
Unauthorized. Check your API credentials.
Customers on our EU cluster
Customers on our Australian cluster
Customers on our North American (US-East) cluster
Create a new action. The authenticated user is set as the creator. An assignee is required. Optionally link an evaluation.
Rate limiting: Maximum 100 requests per minute, 10,000 requests per day per API key.
The action to create
| data | object |
Returns the newly created action
Validation errors
Unauthorized. Check your API credentials.
Customers on our EU cluster
Customers on our Australian cluster
Customers on our North American (US-East) cluster
Retrieve a single action by its UUID. Use include to embed related resources.
Rate limiting: Maximum 100 requests per minute, 10,000 requests per day per API key.
| id required | string <uuid> The UUID of the action to retrieve |
| include | string Example: include=assignee%2Ccreator%2Cmessages Comma-separated list of related resources to include. Available: |
Returns the action
Unauthorized. Check your API credentials.
Action not found
Customers on our EU cluster
Customers on our Australian cluster
Customers on our North American (US-East) cluster
Update an action's status to completed. Once completed, an action cannot be reopened (returns 422).
Rate limiting: Maximum 100 requests per minute, 10,000 requests per day per API key.
| id required | string <uuid> The UUID of the action to update |
Updated action details
| data | object |
Returns the updated action
Unauthorized. Check your API credentials.
Action not found
Action is already completed and cannot be modified
Customers on our EU cluster
Customers on our Australian cluster
Customers on our North American (US-East) cluster
Delete the specified action.
Rate limiting: Maximum 100 requests per minute, 10,000 requests per day per API key.
| id required | string <uuid> The UUID of the action to delete |
Action successfully deleted (empty body)
Unauthorized. Check your API credentials.
Action not found
Customers on our EU cluster
Customers on our Australian cluster
Customers on our North American (US-East) cluster
Retrieve all messages for a specific action, ordered chronologically.
Rate limiting: Maximum 100 requests per minute, 10,000 requests per day per API key.
| id required | string <uuid> The UUID of the action |
Returns messages for the action
Unauthorized. Check your API credentials.
Action not found
Customers on our EU cluster
Customers on our Australian cluster
Customers on our North American (US-East) cluster
Create a new message on an action. The authenticated user is set as the author. The action's assignee is automatically set as the recipient.
Rate limiting: Maximum 100 requests per minute, 10,000 requests per day per API key.
| id required | string <uuid> The UUID of the action |
The message to create
| data | object |
Returns the newly created message
Validation errors
Unauthorized. Check your API credentials.
Action not found
Customers on our EU cluster
Customers on our Australian cluster
Customers on our North American (US-East) cluster
Retrieve all messages for a specific action, ordered chronologically.
Rate limiting: Maximum 100 requests per minute, 10,000 requests per day per API key.
| id required | string <uuid> The UUID of the action |
Returns messages for the action
Unauthorized. Check your API credentials.
Action not found
Customers on our EU cluster
Customers on our Australian cluster
Customers on our North American (US-East) cluster
Create a new message on an action. The authenticated user is set as the author. The action's assignee is automatically set as the recipient.
Rate limiting: Maximum 100 requests per minute, 10,000 requests per day per API key.
| id required | string <uuid> The UUID of the action |
The message to create
| data | object |
Returns the newly created message
Validation errors
Unauthorized. Check your API credentials.
Action not found
Customers on our EU cluster
Customers on our Australian cluster
Customers on our North American (US-East) cluster
Update a message's body and/or recipient_present status.
Rate limiting: Maximum 100 requests per minute, 10,000 requests per day per API key.
| id required | string <uuid> The UUID of the message to update |
Updated message details
| data | object |
Returns the updated message
Unauthorized. Check your API credentials.
Message not found
Customers on our EU cluster
Customers on our Australian cluster
Customers on our North American (US-East) cluster
Delete the specified message.
Rate limiting: Maximum 100 requests per minute, 10,000 requests per day per API key.
| id required | string <uuid> The UUID of the message to delete |
Message successfully deleted (empty body)
Unauthorized. Check your API credentials.
Message not found
Customers on our EU cluster
Customers on our Australian cluster
Customers on our North American (US-East) cluster
Fetch a list of 121 Topics specific to the API Key's contract.
Returns a list of 121 Topics
Unauthorized. Check your API key and secret are correct. Every API call requires Basic Auth.
Customers on our EU cluster
Customers on our Australian cluster
Customers on our North American (US-East) cluster
Fetch a list of your 121s and associated details.
The request can be filtered by date and sorted by published_at, date_published, created_at, updated_at, reference, score, agent_name, evaluator_name.
The endpoint also supports pagination, requests default to the first page.
| filter[created_at;between] | string <date-time> Example: filter[created_at;between]=2023-05-01T00%3A00%3A00.000Z%2C%202023-08-01T00%3A00%3A00.000Z A date range to filter 121s on their created_at date. Consists of a comma-separated start and end date in UTC format. |
| filter[scheduled_date;between] | string <date-time> Example: filter[scheduled_date;between]=2023-05-01T00%3A00%3A00.000Z%2C%202023-08-01T00%3A00%3A00.000Z A date range to filter 121s on their scheduled_date. Consists of a comma-separated start and end date in UTC format. |
| filter[completed_at;between] | string <date-time> Example: filter[completed_at;between]=2023-05-01T00%3A00%3A00.000Z%2C%202023-08-01T00%3A00%3A00.000Z A date range to filter 121s on their completed_at date. Consists of a comma-separated start and end date in UTC format. |
| filter[participant] | string Example: filter[participant]=99abbc05-9535-4e20-84be-0d4e55bcd407 Unique user ID to filter 121 participants by |
| filter[facilitator] | string Example: filter[facilitator]=99abbc05-9535-4e20-84be-0d4e55bcd407 Unique user ID to filter 121 facilitators by |
| sort | string Enum: "scheduled_date" "started_at" "completed_at" "topic" "participant" Example: sort=-scheduled_date Sort the returned 121s. Adding a minus operator to the start of field you wish to sort on will return results descending order. |
| page[number] | number Example: page[number]=1 When paginated, the page number that you would like to request. Defaults to 1. |
Returns an array of evaluations
Unauthorized. Check your API key and secret are correct. Every API call requires Basic Auth.
Customers on our EU cluster
Customers on our Australian cluster
Customers on our North American (US-East) cluster
Create a new 121
Create a new 121
| data | object |
Returns an object containing details for the newly-created 121.
Unauthorized. Check your API key and secret are correct. Every API call requires Basic Auth.
Customers on our EU cluster
Customers on our Australian cluster
Customers on our North American (US-East) cluster
Retrieve details for a single 121.
| id | string Example: 99abbc05-9535-4e20-84be-0d4e55bcd407 Unique identifier for a single 121 record |
Returns an object containing details for the 121 requested.
Unauthorized. Check your API key and secret are correct. Every API call requires Basic Auth.
121 not found
Customers on our EU cluster
Customers on our Australian cluster
Customers on our North American (US-East) cluster
Update the 121 with the specified details
Updated details for the 121
| data | object |
Returns an object containing details for the updated 121.
Unauthorized. Check your API key and secret are correct. Every API call requires Basic Auth.
121 not found
Customers on our EU cluster
Customers on our Australian cluster
Customers on our North American (US-East) cluster
Delete the specified 121
No response.
Unauthorized. Check your API key and secret are correct. Every API call requires Basic Auth.
121 not found
Customers on our EU cluster
Customers on our Australian cluster
Customers on our North American (US-East) cluster
Retrieve calibration reports for your organization.
| filter[session_date;between] required | string <date-time> Example: filter[session_date;between]=2025-05-01T00%3A00%3A00.000Z%2C%202025-08-01T00%3A00%3A00.000Z A date range to filter calibration reports on their session date. Must be a comma-separated start and end date in UTC format. Date range cannot exceed 1 year (365 days). |
| filter[facilitator] | string Example: filter[facilitator]=99abbc05-9535-4e20-84be-0d4e55bcd407 Unique user ID to filter calibration reports by facilitator |
| filter[scorecard] | string Example: filter[scorecard]=25eeba63-ffe8-4f88-aa96-a3ea3e38757f Unique scorecard ID to filter calibration reports by scorecard |
Returns an array of calibration reports
Unauthorized. Check your API key and secret are correct. Every API call requires Basic Auth.
Customers on our EU cluster
Customers on our Australian cluster
Customers on our North American (US-East) cluster