---
title: "Record content-minimized evidence for an Agent-executed task"
method: POST
path: "/v1/observations"
---

# Record content-minimized evidence for an Agent-executed task

`POST /v1/observations`

## Request

- Base URL: `https://modelpilot.andycywu.cc`
- URL: `https://modelpilot.andycywu.cc/v1/observations`
- Auth: HTTP bearer

## Request body

- AgentObservation
  - `idempotency_key` string, required
  - `task_fingerprint` string, required: SHA-256 computed by the Agent before transmission. Raw task content is not accepted.
  - `task_type` string, required
  - `provider` string, required
  - `model` string, required
  - `strategy` string
  - `success` boolean, required
  - `verification_method` string, required
  - `score` number
  - `actual_cost` number
  - `baseline_cost` number
  - `latency_ms` number, required
  - `input_tokens` integer
  - `output_tokens` integer
  - `occurred_at` string, date-time

## Response `200`

Idempotent replay

## Other responses

- `201`: Observation recorded
- `409`: Idempotency key conflict
- `422`: Invalid observation

---

[API](https://skmtc.dev/andycywu/apis/modelpilot-task-api.md) · [All operations](https://skmtc.dev/andycywu/apis/modelpilot-task-api/llms.txt) · [OpenAPI document](https://skmtc.dev/andycywu/apis/modelpilot-task-api/revisions/5af2d641c7e1?raw)
