---
title: "Development-only held review preparation; default off with LINK_REVIEW_DISABLED"
method: POST
path: "/v1/link-review/artifacts"
---

# Development-only held review preparation; default off with LINK_REVIEW_DISABLED

`POST /v1/link-review/artifacts`

## Request

- Base URL: `https://app.agentlinkops.com`
- URL: `https://app.agentlinkops.com/v1/link-review/artifacts`
- Auth: one of:
  - HTTP bearer
  - HTTP bearer

Development-only held review preparation; default off with LINK_REVIEW_DISABLED. Requires events:read and exact accessible project; accepts agent API keys or human session (human workspace selection uses X-Workspace-ID). Explicit intent prepares a bounded immutable server artifact, digest and confirmation; does not complete a review or call a supplier.

## Headers

- `X-Workspace-ID` string

## Request body

- object
  - `projectId` string, required
  - `from` string, date-time, required

## Response `201`

Development-only held review preparation; default off with LINK_REVIEW_DISABLED. Requires events:read and exact accessible project; accepts agent API keys or human session (human workspace selection uses X-Workspace-ID). Explicit intent prepares a bounded immutable server artifact, digest and confirmation; does not complete a review or call a supplier.

- object
  - `schema_version` 1, required
  - `artifact_id` string, required
  - `sha256` string, required
  - `review` object, required
    - `schema_version` 1, required
    - `kind` 'agentlinkops_retained_change_review', required
    - `raw` object, required
      - `schema_version` 1, required
      - `workspace_id` string, required
      - `project_id` string, required
      - `coverage_scope` 'retained_event_feed', required
      - `from` string, required
      - `as_of` string, required
      - `through_sequence` integer, required
      - `count` integer, required
      - `limit` 500, required
      - `truncated` boolean, required
      - `complete` boolean, required
      - `scan_limited` boolean, required
      - `scan_limit` 10000, required
      - `retention_limited` boolean, required
      - `events` object[], required
        - `id` string, required
        - `workspace_id` string, required
        - `project_id` string, required
        - `type` 'placement_acquired' | 'placement_recovered' | 'placement_lost', required
        - `created_at` string, required
    - `counts` object, required
      - `first_observed_events` integer, required
      - `recovered_events` integer, required
      - `recorded_lost_events` integer, required
    - `coverage_gaps` string[], required
    - `proposed_review_actions` string[], required
  - `expires_at` string, required
  - `confirmation` 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/2a712a1dcfa7?raw)
