---
title: "Claim Capture"
method: POST
path: "/ingestor/post-action-captures/{capture_id}/claim"
tags: ["post-action captures (ingestor)"]
---

# Claim Capture

`POST /ingestor/post-action-captures/{capture_id}/claim`

## Request

- Base URL: `https://api.verdun.ai` (the document declares no server; this is the origin it was published from)
- URL: `https://api.verdun.ai/ingestor/post-action-captures/{capture_id}/claim`
- Auth: API key in header `X-API-Key`

Atomically claim a pending capture (180 s lease). 409 when someone else
holds it or it is finished/expired; a repeat by the current holder is an
idempotent 200.

## Path parameters

- `capture_id` string, required

## Request body

- ClaimCaptureRequest
  - `claimed_by` string, required: Stable ingestor instance id (task/host id, plus /shard-{i}-{n} in sharded modes).

## Response `200`

Successful Response

- ClaimCaptureResponse
  - `capture_id` string, uuid, required: Capture id.
  - `claimed_by` string, required: The holder.
  - `claimed_at` string, date-time, required: When the claim was taken.
  - `claim_expires_at` string, date-time, required: Lease end (180 s); no renewal route in v1.
  - `window_start` string, date-time, required: Authoritative start of the recording.
  - `window_end` string, date-time, required: End of the recording window.
  - `s3_key` string, required: Upload exactly here. Reclaims use a distinct -attempt-N key; the claim key overrides the feed hint.

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/verdun/apis/verdun-api.md) - [All operations](https://skmtc.dev/verdun/apis/verdun-api/llms.txt) - [OpenAPI document](https://skmtc.dev/verdun/apis/verdun-api/revisions/a19366be50a3?raw)
