EvaluAgent API (1.0.6)

Download OpenAPI specification:Download

Introduction

Evaluagent API

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.

Syncing your knowledge base

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:

  1. List what is already there. 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.
  2. Update what changed. For a document that already exists, replace the file with 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.
  3. Create what is new. POST /context-engine/knowledge-vault/documents, naming tags inline; names that do not exist yet are created for you.
  4. Remove what is gone. 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.
  5. Confirm indexing. Documents are parsed and embedded asynchronously. Come back and check with 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.

Changelog

19 August 2026

  • Added an analytics_state field to the /analytics/conversations and /analytics/conversations/{id} resources, reporting whether a conversation was analysed or the reason it was skipped
  • Added filter[analytics_state] to /analytics/conversations. Omitting it keeps the existing behaviour of returning only analysed conversations, so no change is needed to existing integrations

18 August 2026

  • created_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 it
  • An unreadable date in any of the four date filters returns 400 rather than silently matching nothing
  • Document titles are now enforced unique by a database constraint, so two concurrent uploads of the same title can no longer both succeed; the loser gets the same duplicate_document_title 409 as a sequential duplicate
  • Added Knowledge Vault endpoints under /context-engine/knowledge-vault for managing the documents and tags that ground Context Engine
  • New endpoints: GET, POST /documents; GET, PATCH, DELETE /documents/{id}; PUT /documents/{id}/file; POST /documents/bulk-delete; POST /documents/tags
  • New endpoints: GET, POST /tags; PATCH, DELETE /tags/{id}
  • Documents list with filters on title, tag, indexing status, line item attachment and date ranges, and sort on title, created_at and updated_at
  • PUT /documents/{id}/file replaces a file while preserving the document's ID, title, description, tags and line item attachments
  • Deleting a document attached to a GenAI line item topic is refused with 409 and the blocking line items listed under errors[0].meta.line_items
  • Requires the Context Engine feature; writes are rate limited to 20 requests per minute

12 August 2026

  • Added a section 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.

5 August 2026

  • Added a section object (id, name) to each line item on the /quality/evaluations/{id} endpoint. section is null when the scorecard does not use sections.

21 July 2026

  • Added /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 field

17 July 2026

  • Added filter[mode] parameter to /quality/evaluations to filter evaluations by evaluation mode name (case-insensitive exact match, supports a comma-separated list)

8 June 2026

  • Added filter[agent_id] parameter to /quality/evaluations to filter evaluations by the evaluated agent's user UUID (supports a comma-separated list)

10 March 2026

  • Added xcsat_result and xcsat_reasoning fields to the /analytics/conversations resource for xCSAT scores (1-5)
  • Added xces_result and xces_reasoning fields to the /analytics/conversations resource for xCES results (easy, neutral, difficult)
  • Added xces_driver_result and xces_driver_reasoning fields to the /analytics/conversations resource for xCES Driver results

13 February 2026

  • Added /quality/actions endpoints for listing, creating, viewing, updating (completing), and deleting actions
  • Added /quality/actions/{id}/messages endpoints for listing and creating messages on an action
  • Added /quality/messages/{id} endpoints for updating and deleting messages
  • Supports filtering by status, date ranges, assignee, creator, and origination
  • Supports sorting by due_at, created_at, and status
  • Supports including related assignee, creator, evaluation, and messages

13 January 2026

  • Added /quality/disputes endpoint to list evaluation disputes with filtering by status, dates, users, and scorecards
  • Added /quality/disputes/{id} endpoint to view a single dispute
  • Added /quality/evaluations/{id}/disputes endpoint to view disputes for a specific evaluation
  • Supports including related evaluation, contact, agent, stages, and stage line items
  • Added Calibration Sessions endpoints for listing and viewing calibration sessions
  • New endpoint: GET /quality/calibration-sessions - List calibration sessions with filtering, sorting, and pagination
  • New endpoint: GET /quality/calibration-sessions/{id} - Fetch a single calibration session by ID

6 January 2026

  • Added /analytics/conversations/{id}/transcript endpoint to retrieve conversation transcripts with speaker labels

28 November 2025

  • Added filter[scorecard_id] parameter to filter evaluations by scorecard UUID
  • Added filter[scorecard] parameter to filter evaluations by scorecard name (supports prefix matching)

24 July 2025

  • The /quality/evaluations/ now includes the contact's contact_date.

1 July 2025

  • Added updated_at property to line item feedback

25 June 2025

  • Removed reasons_for_contact field from conversationalAnalytics
  • Added rfc_primary_reason field to conversationalAnalytics
  • Added rfc_primary_reason_reasoning field to conversationalAnalytics
  • Added rfc_secondary_reason field to conversationalAnalytics
  • Added rfc_secondary_reason_reasoning field to conversationalAnalytics
  • Added rfc_primary_intent field to conversationalAnalytics
  • Added rfc_primary_intent_reasoning field to conversationalAnalytics
  • Added rfc_secondary_intent field to conversationalAnalytics
  • Added rfc_secondary_intent_reasoning field to conversationalAnalytics

18 June 2025

  • Updated the /quality/evaluations/{id} endpoint to include parent line items, which include an array of child line items.

2nd June 2025

  • Added Reports section with Calibration Reports endpoint

25th February 2025

  • Add include parameter to analytics/conversations to allowing the inclusion of metadata
  • Add metadata response to analytics/conversations/{id} endpoint

21st January 2025

  • Add integration as a required query parameter to the analytics/conversations endpoint

4th Sep 2024

  • Added rate-limiting to all endpoints. Maximum is 100 requests per minute, 10,000 per day, per API key, per endpoint.

5th August 2024

  • Added ping endpoint for authentication details
  • Added support for bearer tokens

12th July 2024

  • Added endpoint to retrieve analytics for a single conversation

08th July 2024

  • Added conversational analytics reporting endpoint

14th March 2024

  • Added Levels Index, Abilities Index, Groups CUD, Roles CUD

30th August 2023

  • Added additional details on Authentication

28th March 2023

  • Added 'scorecard_id' to evaluations list and single evaluation endpoints

21st Feb 2023

  • Added the 'agent' relationship to evaluations in the 'List evaluations' endpoint

2nd February 2023

  • Imported Contacts endpoint: Added metadata array example

31st January 2023

  • Improved documentation content & layout.
  • Deprecated /quality/contacts endpoint.

13th December 2022

  • Imported Contacts endpoint: removed requirement for a responses array or audio file path.

    2 December 2022

  • Added third_party_id property to the users endpoints

    19th October 2022

  • New endpoint for generating an Imported Contact
  • New endpoint for uploading audio files

    8th September 2022

  • On the List Groups endpoint, added an additional attribute to indicate if the group was a part of the "Custom Reporting Groups" feature.

3rd August 2022

  • Added the ability to import third-party contacts.

26th April 2022

  • Added the property 'started_at' to the Evaluation resource.

15th November 2021

  • The users endpoint can now return an individual user via filter search string.

13th October 2021

  • Added the US-East cluster endpoint

2nd March 2021

  • Added the outcome_name property to Evaluations. This will contain the manual outcome if manual outcomes are in use, otherwise it will contain the name of the outcome configured by the user in Quality Settings.

24th September 2020

  • Added the seconds_elapsed property to Evaluations

28th May 2020

  • Added required tags to appropriate attributes in Create a Contact

5th March 2020

  • Added new sorting options for evaluations
  • Root causes will now appear with evaluations if present
  • Data capture responses will now appear with evaluations if present
  • Adding a new metadata property to Contacts which can include additional, third party information

QuickStart

Learn 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.

  1. Install 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.
  2. Create an Evaluagent API key in Conversations>>Integrations>>API. Take a note of the Access Key ID and Secret Key. Warning: Treat your API key like a password.
  3. Use the 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"

Overview

API version

Available resources may vary between REST API versions. The current version is V1.

Schema

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

Guides

Using the API

About the Evaluagent API

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.

Making a request

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.

Basics of authentication

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.

Bearer Token Authentication

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.

Authentication

Basic

HTTP Basic Auth using API Key & Secret

Security scheme type: HTTP
HTTP Authorization Scheme basic

Bearer

HTTP bearer token authentication

Security scheme type: HTTP
HTTP Authorization Scheme bearer
Bearer format "JWT"

Ping

Check authentication status

Ping

Ping our API to verify your current authentication details

Authorizations:

Responses

200

Returns authentication information

401

Unauthorized. Check your API credentials.

get /ping

Customers on our EU cluster

https://api.evaluagent.com/v1/ping

Customers on our Australian cluster

https://api.aus.evaluagent.com/v1/ping

Customers on our North American (US-East) cluster

https://api.us-east.evaluagent.com/v1/ping

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "ping": "2024-01-01T00:00:00.000Z",
  • "ip": "127.0.0.1",
  • "bearer":
    {
    }
}

Tokens

Create, refresh, or expire Bearer Tokens for authentication

Create Token

Authorizations:

Responses

201

Token has been created

401

Unauthorized. Check your API credentials.

403

Forbidden. Bearer Tokens can only be created using Basic Auth.

post /token

Customers on our EU cluster

https://api.evaluagent.com/v1/token

Customers on our Australian cluster

https://api.aus.evaluagent.com/v1/token

Customers on our North American (US-East) cluster

https://api.us-east.evaluagent.com/v1/token

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "token": "string",
  • "expiration": "2024-01-01 00:00:00"
}

Revoke Token

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

Authorizations:

Responses

204

Token has been successfully revoked (empty body response)

401

Unauthorized. Check your API credentials.

403

Forbidden. Must use Token authentication.

delete /token

Customers on our EU cluster

https://api.evaluagent.com/v1/token

Customers on our Australian cluster

https://api.aus.evaluagent.com/v1/token

Customers on our North American (US-East) cluster

https://api.us-east.evaluagent.com/v1/token

Refresh Token

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

Authorizations:

Responses

200

Token has been refreshed (the previous token is no longer valid)

401

Unauthorized. Check your API credentials.

403

Forbidden. Must use Token authentication.

post /token/refresh

Customers on our EU cluster

https://api.evaluagent.com/v1/token/refresh

Customers on our Australian cluster

https://api.aus.evaluagent.com/v1/token/refresh

Customers on our North American (US-East) cluster

https://api.us-east.evaluagent.com/v1/token/refresh

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "token": "string",
  • "expiration": "2024-01-01 00:00:00"
}

Users

Fetch, create and update users

Create a user

Use this endpoint to add a new user to your Evaluagent org.

Authorizations:
Request Body schema: application/json

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

Responses

201

Returns the new user

400

Validation errors

401

Unauthorized. Check your API credentials.

post /org/users

Customers on our EU cluster

https://api.evaluagent.com/v1/org/users

Customers on our Australian cluster

https://api.aus.evaluagent.com/v1/org/users

Customers on our North American (US-East) cluster

https://api.us-east.evaluagent.com/v1/org/users

Request samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "data":
    {
    }
}

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "data":
    {
    }
}

List users

Fetch a list of all the users in this org. Filter by email address to search for a specific user.

Authorizations:
query Parameters
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.

Responses

200

Returns an array of users

401

Unauthorized. Check your API credentials.

get /org/users

Customers on our EU cluster

https://api.evaluagent.com/v1/org/users

Customers on our Australian cluster

https://api.aus.evaluagent.com/v1/org/users

Customers on our North American (US-East) cluster

https://api.us-east.evaluagent.com/v1/org/users

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "data":
    [
    ]
}

Fetch a user

Fetch a specific user by userid

Authorizations:
path Parameters
id
required
string

The id of the user to retrieve

Responses

200

Returns the specified user

401

Unauthorized. Check your API credentials.

404

User not found

get /org/users/{id}

Customers on our EU cluster

https://api.evaluagent.com/v1/org/users/{id}

Customers on our Australian cluster

https://api.aus.evaluagent.com/v1/org/users/{id}

Customers on our North American (US-East) cluster

https://api.us-east.evaluagent.com/v1/org/users/{id}

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "data":
    {
    }
}

Update an existing user

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.

Authorizations:
path Parameters
id
required
string

The id of the user to update

Request Body schema: application/json

Updated details for the user

data
object

Responses

200

Returns the updated user

400

Validation failure

401

Unauthorized. Check your API credentials.

404

User not found

patch /org/users/{id}

Customers on our EU cluster

https://api.evaluagent.com/v1/org/users/{id}

Customers on our Australian cluster

https://api.aus.evaluagent.com/v1/org/users/{id}

Customers on our North American (US-East) cluster

https://api.us-east.evaluagent.com/v1/org/users/{id}

Request samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "data":
    {
    }
}

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "data":
    {
    }
}

Groups

List your group hierarchy

Create a group

Use this endpoint to add a new group to your Evaluagent org.

Authorizations:
Request Body schema: application/json

Add a group to your Evaluagent org. Levels can be grabbed from the org/levels endpoint.

data
object

Responses

201

Returns the new group

400

Validation errors

401

Unauthorized. Check your API credentials.

post /org/groups

Customers on our EU cluster

https://api.evaluagent.com/v1/org/groups

Customers on our Australian cluster

https://api.aus.evaluagent.com/v1/org/groups

Customers on our North American (US-East) cluster

https://api.us-east.evaluagent.com/v1/org/groups

Request samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "data":
    {
    }
}

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "data":
    {
    }
}

List groups

Fetch a list of your groups and their hierarchy within EvaluAgent. Useful for compiling a list of groups and their ids for managing agents.

Authorizations:
query Parameters
show_inactive
boolean

Whether inactive groups should be shown. Defaults to false.

Responses

200

Returns an array of groups

401

Unauthorized. Check your API credentials.

get /org/groups

Customers on our EU cluster

https://api.evaluagent.com/v1/org/groups

Customers on our Australian cluster

https://api.aus.evaluagent.com/v1/org/groups

Customers on our North American (US-East) cluster

https://api.us-east.evaluagent.com/v1/org/groups

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "data":
    [
    ]
}

Update an existing group

Update a group's details

Authorizations:
path Parameters
id
required
string

The id of the group to update

Request Body schema: application/json

Updated details for the group

data
object

Responses

200

Returns the updated group

400

Validation failure

401

Unauthorized. Check your API credentials.

404

Group not found

patch /org/groups/{id}

Customers on our EU cluster

https://api.evaluagent.com/v1/org/groups/{id}

Customers on our Australian cluster

https://api.aus.evaluagent.com/v1/org/groups/{id}

Customers on our North American (US-East) cluster

https://api.us-east.evaluagent.com/v1/org/groups/{id}

Request samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "data":
    {
    }
}

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "data":
    {
    }
}

Delete group

Delete group

Authorizations:
path Parameters
id
required
string

The ID of the group to retrieve

Responses

204

Returns nothing. Group has been deleted.

401

Unauthorized. Check your API credentials.

404

Group not found

delete /org/groups/{id}

Customers on our EU cluster

https://api.evaluagent.com/v1/org/groups/{id}

Customers on our Australian cluster

https://api.aus.evaluagent.com/v1/org/groups/{id}

Customers on our North American (US-East) cluster

https://api.us-east.evaluagent.com/v1/org/groups/{id}

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "data": null
}

Roles

List user roles

Create a role

Use this endpoint to add a new Role to your Evaluagent org.

Authorizations:
Request Body schema: application/json

Add a role to your Evaluagent org. Abilities can be grabbed from the org/abilities endpoint.

data
object

Responses

201

Returns the new role

400

Validation errors

401

Unauthorized. Check your API credentials.

post /org/roles

Customers on our EU cluster

https://api.evaluagent.com/v1/org/roles

Customers on our Australian cluster

https://api.aus.evaluagent.com/v1/org/roles

Customers on our North American (US-East) cluster

https://api.us-east.evaluagent.com/v1/org/roles

Request samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "data":
    {
    }
}

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "data":
    {
    }
}

List roles

Fetch a list of your roles within EvaluAgent. Useful for assigning roles to users.

Authorizations:

Responses

200

Returns an array of roles

401

Unauthorized. Check your API credentials.

get /org/roles

Customers on our EU cluster

https://api.evaluagent.com/v1/org/roles

Customers on our Australian cluster

https://api.aus.evaluagent.com/v1/org/roles

Customers on our North American (US-East) cluster

https://api.us-east.evaluagent.com/v1/org/roles

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "data":
    [
    ]
}

Update an existing role

Update a role's details

Authorizations:
path Parameters
id
required
string

The id of the role to update

Request Body schema: application/json

Updated details for the role

data
object

Responses

200

Returns the updated role

400

Validation failure

401

Unauthorized. Check your API credentials.

404

Role not found

patch /org/roles/{id}

Customers on our EU cluster

https://api.evaluagent.com/v1/org/roles/{id}

Customers on our Australian cluster

https://api.aus.evaluagent.com/v1/org/roles/{id}

Customers on our North American (US-East) cluster

https://api.us-east.evaluagent.com/v1/org/roles/{id}

Request samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "data":
    {
    }
}

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "data":
    {
    }
}

Delete role

Delete role

Authorizations:
path Parameters
id
required
string

The ID of the role to retrieve

Responses

204

Returns nothing. Role has been deleted.

401

Unauthorized. Check your API credentials.

404

Role not found

delete /org/roles/{id}

Customers on our EU cluster

https://api.evaluagent.com/v1/org/roles/{id}

Customers on our Australian cluster

https://api.aus.evaluagent.com/v1/org/roles/{id}

Customers on our North American (US-East) cluster

https://api.us-east.evaluagent.com/v1/org/roles/{id}

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "data": null
}

Integrations

List all Integrations

List integrations

Fetch a list of your integrations within EvaluAgent.

Authorizations:

Responses

200

Returns an array of integrations

401

Unauthorized. Check your API credentials.

get /org/integrations

Customers on our EU cluster

https://api.evaluagent.com/v1/org/integrations

Customers on our Australian cluster

https://api.aus.evaluagent.com/v1/org/integrations

Customers on our North American (US-East) cluster

https://api.us-east.evaluagent.com/v1/org/integrations

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "data":
    [
    ]
}

Levels

List levels

Fetch a list of your levels within EvaluAgent. Useful for creating groups.

Authorizations:

Responses

200

Returns an array of levels

401

Unauthorized. Check your API credentials.

get /org/levels

Customers on our EU cluster

https://api.evaluagent.com/v1/org/levels

Customers on our Australian cluster

https://api.aus.evaluagent.com/v1/org/levels

Customers on our North American (US-East) cluster

https://api.us-east.evaluagent.com/v1/org/levels

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "data":
    [
    ]
}

Abilities

List abilities

Fetch a list of your abilities within EvaluAgent. Useful for creating roles.

Authorizations:

Responses

200

Returns an array of abilities

401

Unauthorized. Check your API credentials.

get /org/abilities

Customers on our EU cluster

https://api.evaluagent.com/v1/org/abilities

Customers on our Australian cluster

https://api.aus.evaluagent.com/v1/org/abilities

Customers on our North American (US-East) cluster

https://api.us-east.evaluagent.com/v1/org/abilities

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "data":
    [
    ]
}

Evaluations

List and query evaluations

List evaluations

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.

Authorizations:
query Parameters
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 published_at date. Consists of a comma-separated start and end date in UTC format.

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 - published_at, date_published, updated_at, reference, score, agent_name, evaluator_name

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 mode attribute. Case-insensitive exact match. Accepts a single name or a comma-separated list of names to match any of them.

Responses

200

Returns an array of evaluations

401

Unauthorized. Check your API credentials.

get /quality/evaluations

Customers on our EU cluster

https://api.evaluagent.com/v1/quality/evaluations

Customers on our Australian cluster

https://api.aus.evaluagent.com/v1/quality/evaluations

Customers on our North American (US-East) cluster

https://api.us-east.evaluagent.com/v1/quality/evaluations

Response samples

Content type
application/json

Response when include=contacts parameter is used

Copy
Expand all Collapse all
{
  • "meta":
    {
    },
  • "data":
    [
    ],
  • "included":
    [
    ]
}

Fetch an evaluation

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.

Authorizations:
path Parameters
id
required
string

The id of the evaluation to retrieve

query Parameters
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.

Responses

200

Returns the evaluation

401

Unauthorized. Check your API credentials.

404

Evaluation not found

get /quality/evaluations/{id}

Customers on our EU cluster

https://api.evaluagent.com/v1/quality/evaluations/{id}

Customers on our Australian cluster

https://api.aus.evaluagent.com/v1/quality/evaluations/{id}

Customers on our North American (US-East) cluster

https://api.us-east.evaluagent.com/v1/quality/evaluations/{id}

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "data":
    {
    }
}

View evaluation disputes

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.

Authorizations:
path Parameters
id
required
string <uuid>
Example: 43aea3f1-00aa-4b9f-8dc4-9f843788bf41

The evaluation UUID.

query Parameters
include
string
Example: include=stages%2Cstages.line_items%2Cstages.appealer%2Cstages.reviewer

Comma-separated list of related resources to include.

Responses

200

Returns the dispute for this evaluation

401

Unauthorized. Check your API credentials.

404

Evaluation or dispute not found

get /quality/evaluations/{id}/disputes

Customers on our EU cluster

https://api.evaluagent.com/v1/quality/evaluations/{id}/disputes

Customers on our Australian cluster

https://api.aus.evaluagent.com/v1/quality/evaluations/{id}/disputes

Customers on our North American (US-East) cluster

https://api.us-east.evaluagent.com/v1/quality/evaluations/{id}/disputes

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "data":
    {
    },
  • "included":
    [
    ]
}

Disputes

List and query evaluation disputes

View evaluation disputes

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.

Authorizations:
path Parameters
id
required
string <uuid>
Example: 43aea3f1-00aa-4b9f-8dc4-9f843788bf41

The evaluation UUID.

query Parameters
include
string
Example: include=stages%2Cstages.line_items%2Cstages.appealer%2Cstages.reviewer

Comma-separated list of related resources to include.

Responses

200

Returns the dispute for this evaluation

401

Unauthorized. Check your API credentials.

404

Evaluation or dispute not found

get /quality/evaluations/{id}/disputes

Customers on our EU cluster

https://api.evaluagent.com/v1/quality/evaluations/{id}/disputes

Customers on our Australian cluster

https://api.aus.evaluagent.com/v1/quality/evaluations/{id}/disputes

Customers on our North American (US-East) cluster

https://api.us-east.evaluagent.com/v1/quality/evaluations/{id}/disputes

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "data":
    {
    },
  • "included":
    [
    ]
}

List disputes

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.

Authorizations:
query Parameters
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 - prefix for descending order.

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.

Responses

200

Returns a paginated list of disputes

401

Unauthorized. Check your API credentials.

get /quality/disputes

Customers on our EU cluster

https://api.evaluagent.com/v1/quality/disputes

Customers on our Australian cluster

https://api.aus.evaluagent.com/v1/quality/disputes

Customers on our North American (US-East) cluster

https://api.us-east.evaluagent.com/v1/quality/disputes

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "meta":
    {
    },
  • "data":
    [
    ],
  • "included":
    [
    ]
}

View dispute

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.

Authorizations:
path Parameters
id
required
string <uuid>
Example: 43aea3f1-00aa-4b9f-8dc4-9f843788bf41

The dispute ID (same as evaluation UUID).

query Parameters
include
string
Example: include=evaluation%2Cstages%2Cstages.line_items%2Cstages.appealer%2Cstages.reviewer

Comma-separated list of related resources to include.

Responses

200

Returns the dispute

401

Unauthorized. Check your API credentials.

404

Dispute not found

get /quality/disputes/{id}

Customers on our EU cluster

https://api.evaluagent.com/v1/quality/disputes/{id}

Customers on our Australian cluster

https://api.aus.evaluagent.com/v1/quality/disputes/{id}

Customers on our North American (US-East) cluster

https://api.us-east.evaluagent.com/v1/quality/disputes/{id}

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "data":
    {
    },
  • "included":
    [
    ]
}

Calibration Sessions

List and view calibration sessions

List calibration sessions

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.

Authorizations:
query Parameters
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: start_at, reference, status

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: facilitator, participants, scorecard, contact, evaluation

Responses

200

Returns an array of calibration sessions

401

Unauthorized. Check your API credentials.

get /quality/calibration-sessions

Customers on our EU cluster

https://api.evaluagent.com/v1/quality/calibration-sessions

Customers on our Australian cluster

https://api.aus.evaluagent.com/v1/quality/calibration-sessions

Customers on our North American (US-East) cluster

https://api.us-east.evaluagent.com/v1/quality/calibration-sessions

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "meta":
    {
    },
  • "data":
    [
    ]
}

Fetch a calibration session

Fetch details of a single calibration session by its UUID. Use include to return related resources such as facilitator, participants, scorecard, or calibrated evaluation.

Authorizations:
path Parameters
id
required
string <uuid>

The UUID of the calibration session to retrieve

query Parameters
include
string
Example: include=facilitator%2Cparticipants%2Cscorecard%2Cevaluation

Comma-separated list of related resources to include. Available: facilitator, participants, scorecard, evaluation

Responses

200

Returns the calibration session

401

Unauthorized. Check your API credentials.

404

Calibration session not found

get /quality/calibration-sessions/{id}

Customers on our EU cluster

https://api.evaluagent.com/v1/quality/calibration-sessions/{id}

Customers on our Australian cluster

https://api.aus.evaluagent.com/v1/quality/calibration-sessions/{id}

Customers on our North American (US-East) cluster

https://api.us-east.evaluagent.com/v1/quality/calibration-sessions/{id}

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "data":
    {
    },
  • "included": [ ]
}

Imported Contacts

Import conversations and contacts from external platforms into EvaluAgent

Generate an imported contact

Use this endpoint to import conversations from other platforms into Evaluagent.

  • For text-only conversations use this endpoint as is.
  • For conversations that include a recorded audio file you will need to first use the /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.

Authorizations:
Request Body schema: application/json

Contact to add to EvaluAgent.

data
object

Responses

200

Your imported contact was successfully created in EvaluAgent.

400

Validation errors

401

Unauthorized. Check your API credentials.

post /quality/imported-contacts

Customers on our EU cluster

https://api.evaluagent.com/v1/quality/imported-contacts

Customers on our Australian cluster

https://api.aus.evaluagent.com/v1/quality/imported-contacts

Customers on our North American (US-East) cluster

https://api.us-east.evaluagent.com/v1/quality/imported-contacts

Request samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "data":
    {
    }
}

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "status": 200,
  • "message": "Success",
  • "contact_reference": "a63e026f-50ea-42c8-9fa1-418b4427a10c",
  • "3rd_party_reference": "contact001"
}

Update imported contact metadata

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.

  • A field you send with a value replaces that field, or creates it if the conversation did not have it.
  • A field you send as null is removed from the conversation.
  • A field you do not send is left exactly as it was.

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.

Authorizations:
Request Body schema: application/json

The conversation reference, and the metadata fields to change.

data
object

Responses

200

The metadata was successfully updated. The full metadata of the conversation after the merge is returned.

400

Validation errors

401

Unauthorized. Check your API credentials.

404

No imported contact exists with the supplied reference.

patch /quality/imported-contacts

Customers on our EU cluster

https://api.evaluagent.com/v1/quality/imported-contacts

Customers on our Australian cluster

https://api.aus.evaluagent.com/v1/quality/imported-contacts

Customers on our North American (US-East) cluster

https://api.us-east.evaluagent.com/v1/quality/imported-contacts

Request samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "data":
    {
    }
}

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "status": 200,
  • "message": "Success",
  • "contact_reference": "9a0dfef9-1f3b-4c16-b4d6-0c7d5a7db4f1",
  • "metadata":
    {
    }
}

Upload audio

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

Authorizations:
Request Body schema: multipart/form-data
audio_file
required
null <binary>

The audio file to upload. Must be an MP3, WAV, OGG, M4A, etc.

Responses

200

Your audio file was successfully uploaded to EvaluAgent.

400

Validation errors

401

Unauthorized. Check your API credentials.

post /quality/imported-contacts/upload-audio

Customers on our EU cluster

https://api.evaluagent.com/v1/quality/imported-contacts/upload-audio

Customers on our Australian cluster

https://api.aus.evaluagent.com/v1/quality/imported-contacts/upload-audio

Customers on our North American (US-East) cluster

https://api.us-east.evaluagent.com/v1/quality/imported-contacts/upload-audio

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "status": 200,
  • "message": "Audio file uploaded successfully",
  • "path": "quality/fb2db7c0-de00-43ed-997d-f587eac8bdbb/55649393-f708-4ebf-a665-a39942c030f1.mp3"
}

Conversational Analytics

Retrieve analytics data for your conversations over a specified period

Get Conversational Analytics

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}

Authorizations:
query Parameters
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 contact_date. Consists of a comma-separated start and end date in UTC format.

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 analytics_state. Accepts a comma-separated list of complete, audio-too-short, audio-too-long, audio-missing, too-few-responses, skipped and purged, the pseudo-state none for conversations that have not been processed, or all for every conversation regardless of state.

When omitted, only conversations with an analytics_state of complete are returned. That is the long-standing behaviour of this endpoint, so existing integrations are unaffected.

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 - contact_date

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

Responses

200

Returns an array of conversational analytics records

400

Validation errors

401

Unauthorized. Check your API credentials.

get /analytics/conversations?filter[integration]=&filter[contact_date;between]

Customers on our EU cluster

https://api.evaluagent.com/v1/analytics/conversations?filter[integration]=&filter[contact_date;between]

Customers on our Australian cluster

https://api.aus.evaluagent.com/v1/analytics/conversations?filter[integration]=&filter[contact_date;between]

Customers on our North American (US-East) cluster

https://api.us-east.evaluagent.com/v1/analytics/conversations?filter[integration]=&filter[contact_date;between]

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "data":
    [
    ]
}

Get Conversation

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

Authorizations:
path Parameters
id
required
string

The id of the conversation to retrieve

Responses

200

Returns analytics for a single conversation

401

Unauthorized. Check your API credentials.

404

Conversation not found

get /analytics/conversations/{id}

Customers on our EU cluster

https://api.evaluagent.com/v1/analytics/conversations/{id}

Customers on our Australian cluster

https://api.aus.evaluagent.com/v1/analytics/conversations/{id}

Customers on our North American (US-East) cluster

https://api.us-east.evaluagent.com/v1/analytics/conversations/{id}

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "id": "43aea3f1-00aa-4b9f-8dc4-9f843788bf41",
  • "type": "conversational_analytics",
  • "attributes":
    {
    }
}

Get Conversation Transcript

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.

Authorizations:
path Parameters
id
required
string

The id of the conversation to retrieve the transcript for

Responses

200

Returns the transcript for the conversation

401

Unauthorized. Check your API credentials.

404

Conversation not found or has no transcript

get /analytics/conversations/{id}/transcript

Customers on our EU cluster

https://api.evaluagent.com/v1/analytics/conversations/{id}/transcript

Customers on our Australian cluster

https://api.aus.evaluagent.com/v1/analytics/conversations/{id}/transcript

Customers on our North American (US-East) cluster

https://api.us-east.evaluagent.com/v1/analytics/conversations/{id}/transcript

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "data":
    {
    }
}

Knowledge Vault

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.

List documents

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.

Authorizations:
query Parameters
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

true returns only documents attached to at least one line item topic — the ones a delete will be refused for. false returns only unattached documents. Omit the parameter to get both; passing it empty is rejected rather than read as false.

filter[created_from]
string <date-time>
Example: filter[created_from]=2026-01-01T00%3A00%3A00Z

Documents created on or after this point. Accepts YYYY-MM-DD, taken as the start of that day, or an ISO 8601 datetime. Both bounds are inclusive. An unreadable value is rejected with 400 rather than silently matching nothing.

filter[created_to]
string <date-time>

Documents created on or before this point. Accepts YYYY-MM-DD, taken as the end of that day so the whole day is included, or an ISO 8601 datetime, which is honoured exactly. Both bounds are inclusive.

filter[updated_from]
string <date-time>

Documents updated on or after this point. Same date handling as created_from. This is the filter to use for incremental syncs.

filter[updated_to]
string <date-time>

Documents updated on or before this point. Same date handling as created_to.

sort
string
Example: sort=title

Sort order. Prefix with - for descending. Options: title, created_at, updated_at. Defaults to -updated_at.

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.

Responses

200

Returns an array of Knowledge Vault documents

400

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.

401

Unauthorized. Check your API credentials.

403

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.

get /context-engine/knowledge-vault/documents

Customers on our EU cluster

https://api.evaluagent.com/v1/context-engine/knowledge-vault/documents

Customers on our Australian cluster

https://api.aus.evaluagent.com/v1/context-engine/knowledge-vault/documents

Customers on our North American (US-East) cluster

https://api.us-east.evaluagent.com/v1/context-engine/knowledge-vault/documents

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "meta":
    {
    },
  • "data":
    [
    ]
}

Upload a document

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.

Authorizations:
Request Body schema: multipart/form-data
file
required
string <binary>

The document itself. PDF, DOC, DOCX, TXT, CSV or HTML (.html or .htm), maximum 10 MB, and not empty.

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.

Responses

201

The document was created and queued for indexing

400

Validation failed - a missing or empty file, a missing title, or an unknown tag ID. Field-level detail is under meta.validation.

401

Unauthorized. Check your API credentials.

403

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.

409

A document with this title already exists (duplicate_document_title)

413

The file exceeds 10 MB (file_too_large)

415

The file format is not supported (unsupported_file_format). The message names the accepted formats.

429

Too many requests. The response includes a Retry-After header giving the number of seconds to wait before retrying.

post /context-engine/knowledge-vault/documents

Customers on our EU cluster

https://api.evaluagent.com/v1/context-engine/knowledge-vault/documents

Customers on our Australian cluster

https://api.aus.evaluagent.com/v1/context-engine/knowledge-vault/documents

Customers on our North American (US-East) cluster

https://api.us-east.evaluagent.com/v1/context-engine/knowledge-vault/documents

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "data":
    {
    }
}

Fetch a document

Fetch a single Knowledge Vault document, including its tags and the line item topics it is attached to. Never returns the file's contents.

Authorizations:
path Parameters
id
required
string <uuid>

The UUID of the document.

Responses

200

Returns a single document

401

Unauthorized. Check your API credentials.

403

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.

404

No document with that id exists in your account

get /context-engine/knowledge-vault/documents/{id}

Customers on our EU cluster

https://api.evaluagent.com/v1/context-engine/knowledge-vault/documents/{id}

Customers on our Australian cluster

https://api.aus.evaluagent.com/v1/context-engine/knowledge-vault/documents/{id}

Customers on our North American (US-East) cluster

https://api.us-east.evaluagent.com/v1/context-engine/knowledge-vault/documents/{id}

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "data":
    {
    }
}

Update a document

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.

Authorizations:
path Parameters
id
required
string <uuid>

The UUID of the document.

Request Body schema: application/json
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.

Responses

200

Returns the updated document

400

Validation failed. Field-level detail is under meta.validation.

401

Unauthorized. Check your API credentials.

403

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.

404

No document with that id exists in your account

409

Another document already uses this title (duplicate_document_title)

patch /context-engine/knowledge-vault/documents/{id}

Customers on our EU cluster

https://api.evaluagent.com/v1/context-engine/knowledge-vault/documents/{id}

Customers on our Australian cluster

https://api.aus.evaluagent.com/v1/context-engine/knowledge-vault/documents/{id}

Customers on our North American (US-East) cluster

https://api.us-east.evaluagent.com/v1/context-engine/knowledge-vault/documents/{id}

Request samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "title": "Complaints procedure v4",
  • "description": "string",
  • "tags":
    [
    ]
}

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "data":
    {
    }
}

Delete a document

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.

Authorizations:
path Parameters
id
required
string <uuid>

The UUID of the document.

Responses

204

The document was deleted

401

Unauthorized. Check your API credentials.

403

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.

404

No document with that id exists in your account, or it has already been deleted

409

The document is attached to one or more line item topics (document_linked_to_line_item)

429

Too many requests. The response includes a Retry-After header giving the number of seconds to wait before retrying.

delete /context-engine/knowledge-vault/documents/{id}

Customers on our EU cluster

https://api.evaluagent.com/v1/context-engine/knowledge-vault/documents/{id}

Customers on our Australian cluster

https://api.aus.evaluagent.com/v1/context-engine/knowledge-vault/documents/{id}

Customers on our North American (US-East) cluster

https://api.us-east.evaluagent.com/v1/context-engine/knowledge-vault/documents/{id}

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "errors":
    [
    ]
}

Replace a document's file

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.

Authorizations:
path Parameters
id
required
string <uuid>

The UUID of the document.

Request Body schema: multipart/form-data
file
required
string <binary>

The replacement document. PDF, DOC, DOCX, TXT, CSV or HTML (.html or .htm), maximum 10 MB, and not empty.

Responses

200

Returns the updated document, with indexing_status back to pending

400

Validation failed. Field-level detail is under meta.validation.

401

Unauthorized. Check your API credentials.

403

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.

404

No document with that id exists in your account

413

The file exceeds 10 MB (file_too_large)

415

The file format is not supported (unsupported_file_format)

429

Too many requests. The response includes a Retry-After header giving the number of seconds to wait before retrying.

put /context-engine/knowledge-vault/documents/{id}/file

Customers on our EU cluster

https://api.evaluagent.com/v1/context-engine/knowledge-vault/documents/{id}/file

Customers on our Australian cluster

https://api.aus.evaluagent.com/v1/context-engine/knowledge-vault/documents/{id}/file

Customers on our North American (US-East) cluster

https://api.us-east.evaluagent.com/v1/context-engine/knowledge-vault/documents/{id}/file

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "data":
    {
    }
}

Delete many documents

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.

Authorizations:
Request Body schema: application/json
ids
required
Array of strings <uuid> <= 200 items

Document IDs to delete. Maximum 200 per request.

Responses

207

A result per document, plus counts under meta

400

Validation failed. Field-level detail is under meta.validation.

401

Unauthorized. Check your API credentials.

403

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.

429

Too many requests. The response includes a Retry-After header giving the number of seconds to wait before retrying.

post /context-engine/knowledge-vault/documents/bulk-delete

Customers on our EU cluster

https://api.evaluagent.com/v1/context-engine/knowledge-vault/documents/bulk-delete

Customers on our Australian cluster

https://api.aus.evaluagent.com/v1/context-engine/knowledge-vault/documents/bulk-delete

Customers on our North American (US-East) cluster

https://api.us-east.evaluagent.com/v1/context-engine/knowledge-vault/documents/bulk-delete

Request samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "ids":
    [
    ]
}

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "data":
    [
    ],
  • "meta":
    {
    }
}

Apply or remove tags in bulk

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.

Authorizations:
Request Body schema: application/json
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 apply, a name that does not exist is created. On remove, only existing tags are matched — a name that does not exist is a no-op, never a new tag.

Responses

207

A result per document, each carrying the document in its new state

400

Validation failed. Field-level detail is under meta.validation.

401

Unauthorized. Check your API credentials.

403

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.

429

Too many requests. The response includes a Retry-After header giving the number of seconds to wait before retrying.

post /context-engine/knowledge-vault/documents/tags

Customers on our EU cluster

https://api.evaluagent.com/v1/context-engine/knowledge-vault/documents/tags

Customers on our Australian cluster

https://api.aus.evaluagent.com/v1/context-engine/knowledge-vault/documents/tags

Customers on our North American (US-East) cluster

https://api.us-east.evaluagent.com/v1/context-engine/knowledge-vault/documents/tags

Request samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "action": "apply",
  • "document_ids":
    [
    ],
  • "tags":
    [
    ]
}

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "data":
    [
    ]
}

List tags

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.

Authorizations:
query Parameters
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.

Responses

200

Returns an array of tags

401

Unauthorized. Check your API credentials.

403

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.

get /context-engine/knowledge-vault/tags

Customers on our EU cluster

https://api.evaluagent.com/v1/context-engine/knowledge-vault/tags

Customers on our Australian cluster

https://api.aus.evaluagent.com/v1/context-engine/knowledge-vault/tags

Customers on our North American (US-East) cluster

https://api.us-east.evaluagent.com/v1/context-engine/knowledge-vault/tags

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "meta":
    {
    },
  • "data":
    [
    ]
}

Create a tag

Create a standalone tag. Tag names are unique within the account. Tags can also be created implicitly by naming them on upload.

Authorizations:
Request Body schema: application/json
name
required
string <= 255 characters

Responses

201

The tag was created

400

Validation failed. Field-level detail is under meta.validation.

401

Unauthorized. Check your API credentials.

403

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.

409

A tag with this name already exists (duplicate_tag_name)

post /context-engine/knowledge-vault/tags

Customers on our EU cluster

https://api.evaluagent.com/v1/context-engine/knowledge-vault/tags

Customers on our Australian cluster

https://api.aus.evaluagent.com/v1/context-engine/knowledge-vault/tags

Customers on our North American (US-East) cluster

https://api.us-east.evaluagent.com/v1/context-engine/knowledge-vault/tags

Request samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "name": "Compliance"
}

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "data":
    {
    }
}

Rename a tag

Rename an existing tag. Every document carrying it keeps the tag.

Authorizations:
path Parameters
id
required
string <uuid>

The UUID of the tag.

Request Body schema: application/json
name
required
string <= 255 characters

Responses

200

Returns the renamed tag

400

Validation failed. Field-level detail is under meta.validation.

401

Unauthorized. Check your API credentials.

403

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.

404

No tag with that id exists in your account

409

Another tag already uses this name (duplicate_tag_name)

patch /context-engine/knowledge-vault/tags/{id}

Customers on our EU cluster

https://api.evaluagent.com/v1/context-engine/knowledge-vault/tags/{id}

Customers on our Australian cluster

https://api.aus.evaluagent.com/v1/context-engine/knowledge-vault/tags/{id}

Customers on our North American (US-East) cluster

https://api.us-east.evaluagent.com/v1/context-engine/knowledge-vault/tags/{id}

Request samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "name": "Compliance"
}

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "data":
    {
    }
}

Delete a tag

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.

Authorizations:
path Parameters
id
required
string <uuid>

The UUID of the tag.

Responses

204

The tag was deleted

401

Unauthorized. Check your API credentials.

403

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.

404

No tag with that id exists in your account

delete /context-engine/knowledge-vault/tags/{id}

Customers on our EU cluster

https://api.evaluagent.com/v1/context-engine/knowledge-vault/tags/{id}

Customers on our Australian cluster

https://api.aus.evaluagent.com/v1/context-engine/knowledge-vault/tags/{id}

Customers on our North American (US-East) cluster

https://api.us-east.evaluagent.com/v1/context-engine/knowledge-vault/tags/{id}

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "errors":
    [
    ]
}

Templates

List Work Queue Templates

Fetch a list of Work Queue Templates in this org.

Authorizations:

Responses

200

Returns a list of Work Queue Templates

401

Unauthorized. Check your API credentials.

get /work-queues/templates

Customers on our EU cluster

https://api.evaluagent.com/v1/work-queues/templates

Customers on our Australian cluster

https://api.aus.evaluagent.com/v1/work-queues/templates

Customers on our North American (US-East) cluster

https://api.us-east.evaluagent.com/v1/work-queues/templates

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "data":
    [
    ]
}

Fetch a Work Queue Template

Fetch a specific Work Queue Template by ID

Authorizations:
path Parameters
id
required
string

The ID of the Work Queue Template to retrieve

Responses

200

Returns the specified Work Queue Template

401

Unauthorized. Check your API credentials.

404

Work Queue Template not found

get /work-queues/templates/{id}

Customers on our EU cluster

https://api.evaluagent.com/v1/work-queues/templates/{id}

Customers on our Australian cluster

https://api.aus.evaluagent.com/v1/work-queues/templates/{id}

Customers on our North American (US-East) cluster

https://api.us-east.evaluagent.com/v1/work-queues/templates/{id}

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "data":
    {
    }
}

Fetch Agents assigned to a Work Queue Template

Fetch a specific Work Queue Template by the given ID

Authorizations:
path Parameters
id
required
string

The ID of the Work Queue Template to retrieve

Responses

200

Returns the agents assigned to the specified Work Queue Template

401

Unauthorized. Check your API credentials.

404

Work Queue Template not found

get /work-queues/templates/{id}/relationships/agents

Customers on our EU cluster

https://api.evaluagent.com/v1/work-queues/templates/{id}/relationships/agents

Customers on our Australian cluster

https://api.aus.evaluagent.com/v1/work-queues/templates/{id}/relationships/agents

Customers on our North American (US-East) cluster

https://api.us-east.evaluagent.com/v1/work-queues/templates/{id}/relationships/agents

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "data":
    [
    ]
}

Update Agents assigned to a Work Queue Template

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.

Authorizations:
path Parameters
id
required
string

The ID of the Work Queue Template to retrieve

Responses

200

Returns the updated Work Queue Template

401

Unauthorized. Check your API credentials.

404

Work Queue Template not found

patch /work-queues/templates/{id}/relationships/agents

Customers on our EU cluster

https://api.evaluagent.com/v1/work-queues/templates/{id}/relationships/agents

Customers on our Australian cluster

https://api.aus.evaluagent.com/v1/work-queues/templates/{id}/relationships/agents

Customers on our North American (US-East) cluster

https://api.us-east.evaluagent.com/v1/work-queues/templates/{id}/relationships/agents

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "data":
    [
    ]
}

Add Agents assigned to a Work Queue Template

Add agents assigned to the Work Queue Template

Authorizations:
path Parameters
id
required
string

The ID of the Work Queue Template to retrieve

Responses

200

Returns the updated Work Queue Template

401

Unauthorized. Check your API credentials.

404

Work Queue Template not found

post /work-queues/templates/{id}/relationships/agents

Customers on our EU cluster

https://api.evaluagent.com/v1/work-queues/templates/{id}/relationships/agents

Customers on our Australian cluster

https://api.aus.evaluagent.com/v1/work-queues/templates/{id}/relationships/agents

Customers on our North American (US-East) cluster

https://api.us-east.evaluagent.com/v1/work-queues/templates/{id}/relationships/agents

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "data":
    [
    ]
}

Delete Agents assigned to a Work Queue Template

Delete Agents assigned to the given Work Queue Template

Authorizations:
path Parameters
id
required
string

The ID of the Work Queue Template to retrieve

Responses

200

Returns the updated Work Queue Template

401

Unauthorized. Check your API credentials.

404

Work Queue Template not found

delete /work-queues/templates/{id}/relationships/agents

Customers on our EU cluster

https://api.evaluagent.com/v1/work-queues/templates/{id}/relationships/agents

Customers on our Australian cluster

https://api.aus.evaluagent.com/v1/work-queues/templates/{id}/relationships/agents

Customers on our North American (US-East) cluster

https://api.us-east.evaluagent.com/v1/work-queues/templates/{id}/relationships/agents

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "data":
    [
    ]
}

Actions

Manage actions assigned to users

List actions

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.

Authorizations:
query Parameters
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 - prefix for descending order.

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: assignee, creator, evaluation, messages

Responses

200

Returns a paginated list of actions

401

Unauthorized. Check your API credentials.

get /quality/actions

Customers on our EU cluster

https://api.evaluagent.com/v1/quality/actions

Customers on our Australian cluster

https://api.aus.evaluagent.com/v1/quality/actions

Customers on our North American (US-East) cluster

https://api.us-east.evaluagent.com/v1/quality/actions

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "meta":
    {
    },
  • "data":
    [
    ],
  • "included":
    [
    ]
}

Create an action

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.

Authorizations:
Request Body schema: application/json

The action to create

data
object

Responses

201

Returns the newly created action

400

Validation errors

401

Unauthorized. Check your API credentials.

post /quality/actions

Customers on our EU cluster

https://api.evaluagent.com/v1/quality/actions

Customers on our Australian cluster

https://api.aus.evaluagent.com/v1/quality/actions

Customers on our North American (US-East) cluster

https://api.us-east.evaluagent.com/v1/quality/actions

Request samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "data":
    {
    }
}

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "data":
    {
    },
  • "included":
    [
    ]
}

Fetch an action

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.

Authorizations:
path Parameters
id
required
string <uuid>

The UUID of the action to retrieve

query Parameters
include
string
Example: include=assignee%2Ccreator%2Cmessages

Comma-separated list of related resources to include. Available: assignee, creator, evaluation, messages

Responses

200

Returns the action

401

Unauthorized. Check your API credentials.

404

Action not found

get /quality/actions/{id}

Customers on our EU cluster

https://api.evaluagent.com/v1/quality/actions/{id}

Customers on our Australian cluster

https://api.aus.evaluagent.com/v1/quality/actions/{id}

Customers on our North American (US-East) cluster

https://api.us-east.evaluagent.com/v1/quality/actions/{id}

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "data":
    {
    },
  • "included":
    [
    ]
}

Complete an action

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.

Authorizations:
path Parameters
id
required
string <uuid>

The UUID of the action to update

Request Body schema: application/json

Updated action details

data
object

Responses

200

Returns the updated action

401

Unauthorized. Check your API credentials.

404

Action not found

422

Action is already completed and cannot be modified

patch /quality/actions/{id}

Customers on our EU cluster

https://api.evaluagent.com/v1/quality/actions/{id}

Customers on our Australian cluster

https://api.aus.evaluagent.com/v1/quality/actions/{id}

Customers on our North American (US-East) cluster

https://api.us-east.evaluagent.com/v1/quality/actions/{id}

Request samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "data":
    {
    }
}

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "data":
    {
    },
  • "included":
    [
    ]
}

Delete an action

Delete the specified action.

Rate limiting: Maximum 100 requests per minute, 10,000 requests per day per API key.

Authorizations:
path Parameters
id
required
string <uuid>

The UUID of the action to delete

Responses

204

Action successfully deleted (empty body)

401

Unauthorized. Check your API credentials.

404

Action not found

delete /quality/actions/{id}

Customers on our EU cluster

https://api.evaluagent.com/v1/quality/actions/{id}

Customers on our Australian cluster

https://api.aus.evaluagent.com/v1/quality/actions/{id}

Customers on our North American (US-East) cluster

https://api.us-east.evaluagent.com/v1/quality/actions/{id}

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "data": null
}

List messages for an action

Retrieve all messages for a specific action, ordered chronologically.

Rate limiting: Maximum 100 requests per minute, 10,000 requests per day per API key.

Authorizations:
path Parameters
id
required
string <uuid>

The UUID of the action

Responses

200

Returns messages for the action

401

Unauthorized. Check your API credentials.

404

Action not found

get /quality/actions/{id}/messages

Customers on our EU cluster

https://api.evaluagent.com/v1/quality/actions/{id}/messages

Customers on our Australian cluster

https://api.aus.evaluagent.com/v1/quality/actions/{id}/messages

Customers on our North American (US-East) cluster

https://api.us-east.evaluagent.com/v1/quality/actions/{id}/messages

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "data":
    [
    ],
  • "included":
    [
    ]
}

Create a message on an action

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.

Authorizations:
path Parameters
id
required
string <uuid>

The UUID of the action

Request Body schema: application/json

The message to create

data
object

Responses

201

Returns the newly created message

400

Validation errors

401

Unauthorized. Check your API credentials.

404

Action not found

post /quality/actions/{id}/messages

Customers on our EU cluster

https://api.evaluagent.com/v1/quality/actions/{id}/messages

Customers on our Australian cluster

https://api.aus.evaluagent.com/v1/quality/actions/{id}/messages

Customers on our North American (US-East) cluster

https://api.us-east.evaluagent.com/v1/quality/actions/{id}/messages

Request samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "data":
    {
    }
}

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "data":
    {
    },
  • "included":
    [
    ]
}

Action Messages

Manage messages on actions

List messages for an action

Retrieve all messages for a specific action, ordered chronologically.

Rate limiting: Maximum 100 requests per minute, 10,000 requests per day per API key.

Authorizations:
path Parameters
id
required
string <uuid>

The UUID of the action

Responses

200

Returns messages for the action

401

Unauthorized. Check your API credentials.

404

Action not found

get /quality/actions/{id}/messages

Customers on our EU cluster

https://api.evaluagent.com/v1/quality/actions/{id}/messages

Customers on our Australian cluster

https://api.aus.evaluagent.com/v1/quality/actions/{id}/messages

Customers on our North American (US-East) cluster

https://api.us-east.evaluagent.com/v1/quality/actions/{id}/messages

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "data":
    [
    ],
  • "included":
    [
    ]
}

Create a message on an action

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.

Authorizations:
path Parameters
id
required
string <uuid>

The UUID of the action

Request Body schema: application/json

The message to create

data
object

Responses

201

Returns the newly created message

400

Validation errors

401

Unauthorized. Check your API credentials.

404

Action not found

post /quality/actions/{id}/messages

Customers on our EU cluster

https://api.evaluagent.com/v1/quality/actions/{id}/messages

Customers on our Australian cluster

https://api.aus.evaluagent.com/v1/quality/actions/{id}/messages

Customers on our North American (US-East) cluster

https://api.us-east.evaluagent.com/v1/quality/actions/{id}/messages

Request samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "data":
    {
    }
}

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "data":
    {
    },
  • "included":
    [
    ]
}

Update a message

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.

Authorizations:
path Parameters
id
required
string <uuid>

The UUID of the message to update

Request Body schema: application/json

Updated message details

data
object

Responses

200

Returns the updated message

401

Unauthorized. Check your API credentials.

404

Message not found

patch /quality/messages/{id}

Customers on our EU cluster

https://api.evaluagent.com/v1/quality/messages/{id}

Customers on our Australian cluster

https://api.aus.evaluagent.com/v1/quality/messages/{id}

Customers on our North American (US-East) cluster

https://api.us-east.evaluagent.com/v1/quality/messages/{id}

Request samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "data":
    {
    }
}

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "data":
    {
    },
  • "included":
    [
    ]
}

Delete a message

Delete the specified message.

Rate limiting: Maximum 100 requests per minute, 10,000 requests per day per API key.

Authorizations:
path Parameters
id
required
string <uuid>

The UUID of the message to delete

Responses

204

Message successfully deleted (empty body)

401

Unauthorized. Check your API credentials.

404

Message not found

delete /quality/messages/{id}

Customers on our EU cluster

https://api.evaluagent.com/v1/quality/messages/{id}

Customers on our Australian cluster

https://api.aus.evaluagent.com/v1/quality/messages/{id}

Customers on our North American (US-East) cluster

https://api.us-east.evaluagent.com/v1/quality/messages/{id}

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "data": null
}

Topics

Manage 121 Topics

List 121 Topics

Fetch a list of 121 Topics specific to the API Key's contract.

Authorizations:

Responses

200

Returns a list of 121 Topics

401

Unauthorized. Check your API key and secret are correct. Every API call requires Basic Auth.

get /one-to-ones/topics

Customers on our EU cluster

https://api.evaluagent.com/v1/one-to-ones/topics

Customers on our Australian cluster

https://api.aus.evaluagent.com/v1/one-to-ones/topics

Customers on our North American (US-East) cluster

https://api.us-east.evaluagent.com/v1/one-to-ones/topics

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "data":
    [
    ]
}

One To Ones

View & manage your 121s

List 121s

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.

Authorizations:
query Parameters
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.

Responses

200

Returns an array of evaluations

401

Unauthorized. Check your API key and secret are correct. Every API call requires Basic Auth.

get /one-to-ones

Customers on our EU cluster

https://api.evaluagent.com/v1/one-to-ones

Customers on our Australian cluster

https://api.aus.evaluagent.com/v1/one-to-ones

Customers on our North American (US-East) cluster

https://api.us-east.evaluagent.com/v1/one-to-ones

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "data":
    [
    ]
}

Create 121

Create a new 121

Authorizations:
Request Body schema: application/json

Create a new 121

data
object

Responses

200

Returns an object containing details for the newly-created 121.

401

Unauthorized. Check your API key and secret are correct. Every API call requires Basic Auth.

post /one-to-ones

Customers on our EU cluster

https://api.evaluagent.com/v1/one-to-ones

Customers on our Australian cluster

https://api.aus.evaluagent.com/v1/one-to-ones

Customers on our North American (US-East) cluster

https://api.us-east.evaluagent.com/v1/one-to-ones

Request samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "data":
    {
    }
}

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "id": "string",
  • "type": "one-to-ones",
  • "attributes":
    {
    },
  • "relationships":
    {
    }
}

Fetch 121

Retrieve details for a single 121.

Authorizations:
path Parameters
id
string
Example: 99abbc05-9535-4e20-84be-0d4e55bcd407

Unique identifier for a single 121 record

Responses

200

Returns an object containing details for the 121 requested.

401

Unauthorized. Check your API key and secret are correct. Every API call requires Basic Auth.

404

121 not found

get /one-to-ones/{id}

Customers on our EU cluster

https://api.evaluagent.com/v1/one-to-ones/{id}

Customers on our Australian cluster

https://api.aus.evaluagent.com/v1/one-to-ones/{id}

Customers on our North American (US-East) cluster

https://api.us-east.evaluagent.com/v1/one-to-ones/{id}

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "id": "string",
  • "type": "one-to-ones",
  • "attributes":
    {
    },
  • "relationships":
    {
    }
}

Update 121

Update the 121 with the specified details

Authorizations:
Request Body schema: application/json

Updated details for the 121

data
object

Responses

200

Returns an object containing details for the updated 121.

401

Unauthorized. Check your API key and secret are correct. Every API call requires Basic Auth.

404

121 not found

patch /one-to-ones/{id}

Customers on our EU cluster

https://api.evaluagent.com/v1/one-to-ones/{id}

Customers on our Australian cluster

https://api.aus.evaluagent.com/v1/one-to-ones/{id}

Customers on our North American (US-East) cluster

https://api.us-east.evaluagent.com/v1/one-to-ones/{id}

Request samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "data":
    {
    }
}

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "id": "string",
  • "type": "one-to-ones",
  • "attributes":
    {
    },
  • "relationships":
    {
    }
}

Delete 121

Delete the specified 121

Authorizations:

Responses

204

No response.

401

Unauthorized. Check your API key and secret are correct. Every API call requires Basic Auth.

404

121 not found

delete /one-to-ones/{id}

Customers on our EU cluster

https://api.evaluagent.com/v1/one-to-ones/{id}

Customers on our Australian cluster

https://api.aus.evaluagent.com/v1/one-to-ones/{id}

Customers on our North American (US-East) cluster

https://api.us-east.evaluagent.com/v1/one-to-ones/{id}

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "data": null
}

Calibrations

View and manage calibration reports

Fetch Calibration Reports

Retrieve calibration reports for your organization.

Authorizations:
query Parameters
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

Responses

200

Returns an array of calibration reports

401

Unauthorized. Check your API key and secret are correct. Every API call requires Basic Auth.

get /reports/calibrations

Customers on our EU cluster

https://api.evaluagent.com/v1/reports/calibrations

Customers on our Australian cluster

https://api.aus.evaluagent.com/v1/reports/calibrations

Customers on our North American (US-East) cluster

https://api.us-east.evaluagent.com/v1/reports/calibrations

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "data":
    [
    ],
  • "meta":
    {
    }
}