---
title: "Get session annotations filtered by session_ids and/or identifier."
method: GET
path: "/v1/projects/{project_identifier}/session_annotations"
tags: ["annotations"]
---

# Get session annotations filtered by session_ids and/or identifier.

`GET /v1/projects/{project_identifier}/session_annotations`

Return session annotations for a project, filtered by `session_ids`, `identifier`, or both. At least one of `session_ids` or `identifier` must be supplied. When both are supplied, results are the AND-intersection of the two filters.

## Path parameters

- `project_identifier` string, required — The project identifier: either project ID or project name. If using a project name as the identifier, it cannot contain slash (/), question mark (?), or pound sign (#) characters.

## Query parameters

- `session_ids` string[], nullable — Optional list of session ids to fetch annotations for. If omitted, `identifier` must be supplied.
- `identifier` string[], nullable — Optional list of annotation identifiers to filter by. Each value must be non-empty. If omitted, `session_ids` must be supplied. When combined with `session_ids`, results are the AND-intersection of both filters.
- `include_annotation_names` string[], nullable — Optional list of annotation names to include. If provided, only annotations with these names will be returned (allowlist). When omitted, the response includes every matching row regardless of name (no annotation names are excluded by default).
- `exclude_annotation_names` string[], nullable — Optional list of annotation names to exclude from results.
- `cursor` string, nullable — A cursor for pagination
- `limit` integer — The maximum number of annotations to return in a single request

## Response `200`

Successful Response

- SessionAnnotationsResponseBody
  - `data` SessionAnnotation[], required
    - `id` string, required
    - `created_at` string, date-time, required
    - `updated_at` string, date-time, required
    - `source` 'API' | 'APP', required
    - `user_id` string, nullable, required
    - `name` string, required — The name of the annotation
    - `annotator_kind` 'LLM' | 'CODE' | 'HUMAN', required — The kind of annotator used for the annotation
    - `result` AnnotationResult
      - `label` string, nullable — The label assigned by the annotation
      - `score` number, nullable — The score assigned by the annotation
      - `explanation` string, nullable — Explanation of the annotation result
    - `metadata` object, nullable — Metadata for the annotation
    - `identifier` string — The identifier of the annotation. If provided, the annotation will be updated if it already exists.
    - `session_id` string, required — Session ID
  - `next_cursor` string, nullable, required

## Other responses

- `403` — Forbidden
- `404` — Project or sessions not found
- `422` — Invalid parameters

---

[API](https://skmtc.net/arize-ai/apis/arize-phoenix-rest-api.md) · [All operations](https://skmtc.net/arize-ai/apis/arize-phoenix-rest-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/arize-ai/arize-phoenix-rest-api/versions/5339b2afd3a2/schema)
