---
title: "Create Annotation"
method: POST
path: "/annotations/"
tags: ["Annotations"]
---

# Create Annotation

`POST /annotations/`

## Request body

- AnnotationCreateRequest
  - `annotation` AnnotationCreate, required
    - `origin` 'custom' | 'human' | 'auto'
    - `kind` 'adhoc' | 'eval' | 'play'
    - `channel` 'otlp' | 'web' | 'sdk' | 'api'
    - `tags` object, nullable
    - `meta` object, nullable
    - `data` object, required
    - `references` SimpleTraceReferences, required
      - `query` Reference
        - `version` string, nullable
        - `slug` string, nullable
        - `id` string, uuid, nullable
      - `query_variant` Reference
        - `version` string, nullable
        - `slug` string, nullable
        - `id` string, uuid, nullable
      - `query_revision` Reference
        - `version` string, nullable
        - `slug` string, nullable
        - `id` string, uuid, nullable
      - `testset` Reference
        - `version` string, nullable
        - `slug` string, nullable
        - `id` string, uuid, nullable
      - `testset_variant` Reference
        - `version` string, nullable
        - `slug` string, nullable
        - `id` string, uuid, nullable
      - `testset_revision` Reference
        - `version` string, nullable
        - `slug` string, nullable
        - `id` string, uuid, nullable
      - `application` Reference
        - `version` string, nullable
        - `slug` string, nullable
        - `id` string, uuid, nullable
      - `application_variant` Reference
        - `version` string, nullable
        - `slug` string, nullable
        - `id` string, uuid, nullable
      - `application_revision` Reference
        - `version` string, nullable
        - `slug` string, nullable
        - `id` string, uuid, nullable
      - `evaluator` Reference
        - `version` string, nullable
        - `slug` string, nullable
        - `id` string, uuid, nullable
      - `evaluator_variant` Reference
        - `version` string, nullable
        - `slug` string, nullable
        - `id` string, uuid, nullable
      - `evaluator_revision` Reference
        - `version` string, nullable
        - `slug` string, nullable
        - `id` string, uuid, nullable
      - `testcase` Reference
        - `version` string, nullable
        - `slug` string, nullable
        - `id` string, uuid, nullable
    - `links` union, required
      - object
      - OTelLinkInput[]
        - `span_id` string, nullable
        - `trace_id` string, nullable
        - `attributes` object, nullable

## Response `200`

Successful Response

- AnnotationResponse
  - `support_id` string, nullable
  - `support_ts` string, date-time, nullable
  - `count` integer
  - `annotation` Annotation
    - `created_at` string, date-time, nullable
    - `updated_at` string, date-time, nullable
    - `deleted_at` string, date-time, nullable
    - `created_by_id` string, uuid, nullable
    - `updated_by_id` string, uuid, nullable
    - `deleted_by_id` string, uuid, nullable
    - `span_id` string, nullable
    - `trace_id` string, nullable
    - `attributes` object, nullable
    - `origin` 'custom' | 'human' | 'auto'
    - `kind` 'adhoc' | 'eval' | 'play'
    - `channel` 'otlp' | 'web' | 'sdk' | 'api'
    - `tags` object, nullable
    - `meta` object, nullable
    - `data` object, required
    - `references` SimpleTraceReferences, required
      - `query` Reference
        - `version` string, nullable
        - `slug` string, nullable
        - `id` string, uuid, nullable
      - `query_variant` Reference
        - `version` string, nullable
        - `slug` string, nullable
        - `id` string, uuid, nullable
      - `query_revision` Reference
        - `version` string, nullable
        - `slug` string, nullable
        - `id` string, uuid, nullable
      - `testset` Reference
        - `version` string, nullable
        - `slug` string, nullable
        - `id` string, uuid, nullable
      - `testset_variant` Reference
        - `version` string, nullable
        - `slug` string, nullable
        - `id` string, uuid, nullable
      - `testset_revision` Reference
        - `version` string, nullable
        - `slug` string, nullable
        - `id` string, uuid, nullable
      - `application` Reference
        - `version` string, nullable
        - `slug` string, nullable
        - `id` string, uuid, nullable
      - `application_variant` Reference
        - `version` string, nullable
        - `slug` string, nullable
        - `id` string, uuid, nullable
      - `application_revision` Reference
        - `version` string, nullable
        - `slug` string, nullable
        - `id` string, uuid, nullable
      - `evaluator` Reference
        - `version` string, nullable
        - `slug` string, nullable
        - `id` string, uuid, nullable
      - `evaluator_variant` Reference
        - `version` string, nullable
        - `slug` string, nullable
        - `id` string, uuid, nullable
      - `evaluator_revision` Reference
        - `version` string, nullable
        - `slug` string, nullable
        - `id` string, uuid, nullable
      - `testcase` Reference
        - `version` string, nullable
        - `slug` string, nullable
        - `id` string, uuid, nullable
    - `links` union, required
      - object
      - OTelLinkOutput[]
        - `span_id` string, nullable
        - `trace_id` string, nullable
        - `attributes` object, nullable

## Other responses

- `422` — Validation Error

## Changes

- **2026-05-08** `5e6f53ce5d08` — 1 info
  - endpoint added
- **2026-04-16** `8b06b786c977` — 1 breaking
  - api path removed without deprecation
- **2026-03-07** `20311f763505` — 1 breaking, 4 info
  - removed `subschema #1, subschema #2` from the `annotation/links` request property `anyOf` list
  - added `subschema #1, subschema #2` to the `annotation/links` request property `anyOf` list
  - added the optional property `annotation/anyOf[subschema #1: Annotation]/attributes` to the response with the `200` status
  - added `subschema #1, subschema #2` to the `annotation/anyOf[subschema #1: Annotation]/links` response property `anyOf` list for the response status `200`
  - …1 more
- **2026-02-27** `8fcd55a5a656` — 1 info
  - endpoint added
- **2025-06-27** `e3e84db47198` — 1 breaking
  - api path removed without deprecation

[Change history](https://skmtc.dev/agenta-ai/apis/agenta-api/changes/annotations/post.md)

---

[API](https://skmtc.dev/agenta-ai/apis/agenta-api.md) · [All operations](https://skmtc.dev/agenta-ai/apis/agenta-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/agenta-ai/agenta-api/revisions/911adb12ae11/schema)
