---
title: "Get placement review history"
method: POST
path: "/v1/commands/get_placement_review_history"
tags: ["Link monitoring and evidence"]
---

# Get placement review history

`POST /v1/commands/get_placement_review_history`

## Request

- Base URL: `https://app.agentlinkops.com`
- URL: `https://app.agentlinkops.com/v1/commands/get_placement_review_history`
- Auth: one of:
  - HTTP bearer
  - HTTP bearer

Shared command transport. All logical arguments in JSON; no query or Idempotency-Key header. See canonical operation reference.

## Headers

- `X-Workspace-ID` string

## Request body

- GetPlacementReviewHistoryInput
  - `watchId` string, required: watch ID from create/list.
  - `occurrenceId` string, required: occurrence ID from create/list.
  - `captureId` string, required: capture ID from create/list.
  - `evidenceHash` string, required
  - `limit` integer: Page/report row cap; see bounds.
  - `cursor` string: Opaque list cursor; omit initially.

## Response `200`

Command result, including queued admission.

- GetPlacementReviewHistoryOutput
  - `schemaVersion` 1, required
  - `historyMeaning` string, required
  - `binding` object, required
    - `workspaceId` string, required
    - `projectId` string, required
    - `watchId` string, required
    - `occurrenceId` string, required
    - `captureId` string, required
    - `evidenceHash` string, required
  - `asOfRevision` integer, required
  - `readAt` string, date-time, required
  - `items` object[], required: Records in this bounded page.
    - `id` string, required: Resource identifier returned by the operation.
    - `kind` 'model_receipt' | 'correction' | 'revocation' | 'concern', required
    - `revision` integer, required: Optimistic concurrency revision; supply it as expectedRevision on the next write.
    - `occurredAt` string, date-time, required
    - `recordedAt` string, date-time, required
    - `actorId` string, nullable, required
    - `axis` 'page_surface' | 'link_role' | 'region_inferred' | 'relevance' | 'risk_cues' | 'acquisition', nullable, required
    - `value` string, nullable, required
    - `state` 'accepted_manual' | 'accepted_auto' | 'suggested' | 'superseded' | 'insufficient_evidence' | 'not_evaluated', nullable, required: Saved lifecycle or evidence state, as enumerated for this record.
    - `reason` string, nullable, required: Recorded explanation; null when no explanation applies.
    - `receiptId` string, nullable, required
    - `axes` object[]
      - `axis` 'page_surface' | 'link_role' | 'region_inferred' | 'relevance' | 'risk_cues' | 'acquisition', required
      - `value` string, nullable, required
      - `state` 'accepted_manual' | 'accepted_auto' | 'suggested' | 'superseded' | 'insufficient_evidence' | 'not_evaluated', required: Saved lifecycle or evidence state, as enumerated for this record.
      - `basis` 'model' | 'rule' | 'manual' | 'attributed', required
    - `policy` object
      - `taxonomyVersion` string, required
      - `rubricVersion` string, required
      - `extractorVersion` string, required
      - `privacyRevision` string, required
  - `nextCursor` string, nullable, required
  - `hasMore` boolean, required
  - `coverage` object, required: Dataset scope and completeness, including limits on what these results establish.
    - `status` 'retained' | 'expired' | 'unavailable', required: Resource lifecycle status.
    - `reason` string, required: Recorded explanation; null when no explanation applies.
    - `meaning` string, required

## Other responses

- `429`: Request-rate or usage refusal. Inspect error.code and recovery details before retrying.
- `default`: Error envelope. Non-configuration 5xx messages are masked and details omitted; allowlisted configuration errors retain static operator recovery.

---

[API](https://skmtc.dev/agentlinkops/apis/agentlinkops-http-api.md) · [All operations](https://skmtc.dev/agentlinkops/apis/agentlinkops-http-api/llms.txt) · [OpenAPI document](https://skmtc.dev/agentlinkops/apis/agentlinkops-http-api/revisions/1bf30c2912b2?raw)
