---
title: "Confirmation History"
method: GET
path: "/api/agent/confirmations/history"
---

# Confirmation History

`GET /api/agent/confirmations/history`

## Request

- Base URL: `https://pozeidon.ai` (the document declares no server; this is the origin it was published from)
- URL: `https://pozeidon.ai/api/agent/confirmations/history`
- Auth: none declared

The caller's approved writes, newest first, each with its outcome.

"My actions" (G-APPROVEOUT): every gated write of every copilot leaves a
tool_confirmations row, so this is the one place that can answer "what
did I do, and did it work?" — jobs are one kind of outcome, and most
writes (queue, attach, remove) never dispatch one. Owner-scoped in the
query, same contract as GET /{id}. A card the person cancelled is listed
too (state "rejected"): with several decided at once from the rail
(G-RAILDECIDE), a wrong reject has to be findable. A card the agent
withdrew is not — the person decided nothing.

`since` (job result notice): only rows that CHANGED after it — decided
after it, or whose job moved after it — plus `notices`, the conversation
lines written after it. The browser's one watcher polls with it, so a
poll costs the rows that moved, not the whole list. `server_time` is the
clock the next `since` should use: this server's, not the browser's.

`since` is read as `SINCE_OVERLAP` earlier than it is given. A row's
timestamp (`created_at`, `resolved_at`, `last_polled_at`) is the START of
the transaction that wrote it, and `server_time` is this process's clock
at the read: a row whose transaction began before `server_time` can
commit after it, and a plain `> since` would never return it. The overlap
makes the next poll return it. The same row can therefore come back in two
polls: the consumer MUST dedupe by `id` (a row of `actions` and a notice
each carry one).

## Query parameters

- `since_days` integer
- `since` string, date-time, nullable

## Response `200`

Successful Response

- unknown

## Other responses

- `422`: Validation Error

## Changes

- **2026-10-20** `de288dc26752`: 1 info
  - added the new optional `query` request parameter `since`

[Operation history](https://skmtc.dev/pozeidon/apis/pozeidon-demo/changes/api/agent/confirmations/history/get.md)

---

[API](https://skmtc.dev/pozeidon/apis/pozeidon-demo.md) · [All operations](https://skmtc.dev/pozeidon/apis/pozeidon-demo/llms.txt) · [OpenAPI document](https://skmtc.dev/pozeidon/apis/pozeidon-demo/revisions/de288dc26752?raw)
