For the complete documentation index, see llms.txt. This page is also available as Markdown.

List requests

Lists employee requests handled by the Harmony AI agent

List requests

get

Paginated list of requests: conversations the AI agent handled, each linked to the ticket it opened (if any) via ticket_id. resolution says who the request ended with: Harmony or a human.

Authorizations
AuthorizationstringRequired

Harmony access key, sent as Authorization: AccessKey <your-key>. Create keys in Settings > Access Keys. The tenant is resolved from the key.

Query parameters
pageinteger · min: 1OptionalDefault: 1
page_sizeinteger · min: 1 · max: 200OptionalDefault: 25
sort_bystring · enumOptionalDefault: queried_atPossible values:
sort_directionstring · enumOptionalDefault: descPossible values:
date_fromstring · date-time · nullableOptional
date_tostring · date-time · nullableOptional
resolutionstring[] · nullableOptional

Who the request ended with. resolved_by_harmony: Harmony resolved it (including tickets closed while assigned to Harmony). escalated: handed off to a human, whether the human resolved, closed or canceled it. pending_harmony, pending_human, pending: still open. Null: not yet determined, or withdrawn.

desk_idstring[] · nullableOptional
subdesk_idstring[] · max: 100 · nullableOptional

Team (subdesk) the conversation was attributed to, matched against the request's denormalized subdesk_id. The dashboards call this dimension team; the value is a service_desk subdesk id, the same id space the Team dashboard filter uses.

categorystring[] · nullableOptional
employee_idstring · nullableOptional
searchstring · min: 1 · max: 255 · nullableOptional
include_classificationbooleanOptionalDefault: false
classificationstring[] · nullableOptional
relevancestring[] · nullableOptional
ai_contributionstring[] · nullableOptional
human_contributionstring[] · nullableOptional
resolution_feedbackstring[] · nullableOptional
outcomestring[] · nullableOptional

How the AI contributed to the request (e.g. ai_resolved_direct, ai_assisted_submitted, manual_ticketed). Describes AI involvement, not who closed the request; use resolution for that.

handlingstring[] · nullableOptional
sourcestring[] · max: 20 · nullableOptional

Channel the conversation came in on, matched case-insensitively against the request's source. The dashboards call this dimension channel. Every request has a source, so unlike department an empty string here matches nothing rather than meaning 'unknown'.

departmentstring[] · max: 500 · nullableOptional

Department of the requesting employee, read from the employee record rather than the request. Lower-cased on both sides, and an empty string matches requests whose reporter has no department or is unknown - the same bucketing the Requests by Department metric uses.

deflected_kb_article_idstring[] · nullableOptional
referenced_kb_article_idstring[] · nullableOptional
Responses
200

Successful Response

application/json

Paginated list of requests.

total_countintegerRequired
get/api/v1/conversations/requests
GET /agents/api/v1/conversations/requests HTTP/1.1
Host: api.harmony.io
Authorization: YOUR_API_KEY
Accept: */*
{
  "items": [
    {
      "id": "123e4567-e89b-12d3-a456-426614174000",
      "thread_id": "123e4567-e89b-12d3-a456-426614174000",
      "employee_id": "text",
      "desk_id": "text",
      "agent_name": "text",
      "category": "text",
      "subcategory": "text",
      "source": "text",
      "resolution": "text",
      "summary": "text",
      "ticket_id": "text",
      "ticket_type": "text",
      "entities": [
        "text"
      ],
      "symptoms": [
        "text"
      ],
      "queried_at": "2026-01-01T00:00:00.000Z",
      "resolution_at": "2026-01-01T00:00:00.000Z",
      "last_message_at": "2026-01-01T00:00:00.000Z",
      "created_at": "2026-01-01T00:00:00.000Z",
      "classification": "text",
      "classification_reasoning": "text",
      "relevance": "text",
      "ai_contribution": "text",
      "human_contribution": "text",
      "resolution_feedback": "text",
      "classified_at": "2026-01-01T00:00:00.000Z",
      "outcome": "text",
      "handling": "text",
      "search_match": {
        "location": "message",
        "snippet": "text",
        "field_label": "text"
      }
    }
  ],
  "total_count": 1
}

Last updated

Was this helpful?