> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs-beta.getzep.com/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs-beta.getzep.com/_mcp/server.

# List Agent Trajectories

POST https://api.getzep.com/api/v4/agents/{agent_uuid}/trajectories/list
Content-Type: application/json

Reference: https://docs-beta.getzep.com/sdk-reference/agent/trajectory/list

## Authentication

- `Authorization` header (required) (prefixed with ` Api-Key  `) — Type "Api-Key" followed by a space and the project API key.

## Request

### Path parameters

- `agent_uuid` (string, required) — Agent UUID

### Query parameters

- `limit` (integer, optional) — Page size (maximum 100)
- `cursor` (string, optional) — Opaque page cursor
- `import_uuid` (string, optional) — Filter by owning Trajectory import UUID
- `source_kind` (enum, optional) — Source kind
  - Allowed values: `native`, `trace_import`

### Body (application/json)

This endpoint expects a v4.AgentTrajectoryListRequest.

- `metadata` (map from string to any, optional) — Filters to Trajectories whose metadata contains these key-value pairs.
- `outcome` (enum, optional) — Filters to one reported outcome.
  - Allowed values: `succeeded`, `failed`, `partial`, `abandoned`, `unknown`
- `parent_trajectory_uuid` (string, optional) — Filters to direct retries of this parent Trajectory.
- `status` (enum, optional) — Filters to one lifecycle state.
  - Allowed values: `open`, `closing`, `closed`, `abandoned`, `deleted`
- `task_family` (string, optional) — Filters to an exact task-family slug.
- `verification` (enum, optional) — Filters to one verification strength.
  - Allowed values: `none`, `agent`, `tool`, `customer`, `external`

## Response

### 200

OK

- `items` (list of v4.AgentTrajectory, optional) — The Trajectories on this page.
- `next_cursor` (string, optional) — Opaque cursor for retrieving the next page, present only when more results are available.
- `total_size` (integer, optional) — The total number of Trajectories matching the filters within the owning Agent.

## Errors

### 400 Bad Request Error

Bad Request

- `error` (v4.ErrorBody, optional)

### 401 Unauthorized Error

Unauthorized

- `error` (v4.ErrorBody, optional)

### 403 Forbidden Error

Forbidden

- `error` (v4.ErrorBody, optional)

### 404 Not Found Error

Not Found

- `error` (v4.ErrorBody, optional)

## Types

### v4.AgentTrajectory

- `abandoned_at` (string, optional) — The time the Trajectory was abandoned.
- `agent_uuid` (string, optional) — The owning Agent UUID.
- `attempt_family_uuid` (string, optional) — The stable retry-family identity shared with declared child attempts.
- `closed_at` (string, optional) — The time the Trajectory closed.
- `created_at` (string, optional) — The time the Trajectory was created.
- `internal` (v4.AgentTrajectoryInternal, optional) — Server-owned fields that are not part of the top-level capture contract.
- `learn_from` (boolean, optional) — Whether eligible evidence may participate in learning.
- `learn_from_reason` (string, optional) — Why the Trajectory is not eligible for learning.
- `metadata` (map from string to any, optional) — Developer metadata used for exact containment filters.
- `objective` (string, optional) — The task-instance objective captured for this attempt.
- `outcome` (enum, optional) — The caller-owned task outcome.
  - Allowed values: `succeeded`, `failed`, `partial`, `abandoned`, `unknown`
- `parent_trajectory_uuid` (string, optional) — The parent attempt when this Trajectory is a retry.
- `revision` (integer, optional) — The revision required by the next update or lifecycle command.
- `source` (v4.AgentTrajectorySource, optional) — The source record for an imported Trajectory.
- `status` (enum, optional) — The current lifecycle state.
  - Allowed values: `open`, `closing`, `closed`, `abandoned`, `deleted`
- `task_family` (string, optional) — The optional opaque task-family classification slug.
- `trajectory_id` (string, optional) — The optional customer-assigned identifier, unique within the Agent.
- `updated_at` (string, optional) — The time the Trajectory was last updated.
- `uuid` (string, optional) — The stable Trajectory UUID.
- `verification` (enum, optional) — The strength of the accepted outcome verification.
  - Allowed values: `none`, `agent`, `tool`, `customer`, `external`

### v4.ErrorBody

- `code` (string, optional)
- `details` (map from string to any, optional)
- `message` (string, optional)
- `param` (string, optional)
- `request_id` (string, optional)

### v4.AgentTrajectoryInternal

- `assertion_uuid` (string, optional)
- `closing_sequence` (integer, optional)
- `current_summary_version` (integer, optional)
- `last_task_uuid` (string, optional)
- `next_sequence` (integer, optional)
- `processing_state` (enum, optional)
  - Allowed values: `idle`, `pending`, `processing`, `failed`

### v4.AgentTrajectorySource

- `connection_uuid` (string, optional)
- `import_uuid` (string, optional)
- `imported_at` (string, optional)
- `kind` (enum, optional)
  - Allowed values: `trace_import`
- `provider` (string, optional)
- `provider_project_id` (string, optional)
- `run_uuid` (string, optional)
- `scores` (map from string to any, optional)
- `source_changed` (boolean, optional) — SourceChanged reports whether the provider trace changed after import.
- `source_revision` (string, optional)
- `source_url` (string, optional)
- `trace_ended_at` (string, optional)
- `trace_id` (string, optional)
- `trace_started_at` (string, optional)

## Examples

**Request**

```json
{}
```

**Response**

```json
{
  "items": [
    {
      "abandoned_at": "string",
      "agent_uuid": "string",
      "attempt_family_uuid": "string",
      "closed_at": "string",
      "created_at": "string",
      "internal": {
        "assertion_uuid": "string",
        "closing_sequence": 1,
        "current_summary_version": 1,
        "last_task_uuid": "string",
        "next_sequence": 1,
        "processing_state": "idle"
      },
      "learn_from": true,
      "learn_from_reason": "string",
      "metadata": {},
      "objective": "string",
      "outcome": "succeeded",
      "parent_trajectory_uuid": "string",
      "revision": 1,
      "source": {
        "connection_uuid": "string",
        "import_uuid": "string",
        "imported_at": "string",
        "kind": "trace_import",
        "provider": "string",
        "provider_project_id": "string",
        "run_uuid": "string",
        "scores": {},
        "source_changed": false,
        "source_revision": "string",
        "source_url": "string",
        "trace_ended_at": "string",
        "trace_id": "string",
        "trace_started_at": "string"
      },
      "status": "open",
      "task_family": "string",
      "trajectory_id": "string",
      "updated_at": "string",
      "uuid": "string",
      "verification": "none"
    }
  ],
  "next_cursor": "string",
  "total_size": 1
}
```