---
title: "Give a claimed decision task back"
method: POST
path: "/v1/decision-tasks/{id}/release"
tags: ["Apps"]
---

# Give a claimed decision task back

`POST /v1/decision-tasks/{id}/release`

## Request

- Base URL: `https://api.talonic.com`
- URL: `https://api.talonic.com/v1/decision-tasks/{id}/release`
- Auth: HTTP bearer

The task returns to `available`; the next claim bumps the epoch.

## Path parameters

- `id` string, uuid, required

## Request body

- DecisionTaskEpoch
  - `execution_epoch` integer, required

## Response `200`

Released task metadata.

- DecisionTaskMetadata
  - `id` string, uuid, required
  - `customer_id` string, uuid, required
  - `run_id` string, uuid, required
  - `app_id` string, uuid, required
  - `status` 'available' | 'claimed' | 'submitted' | 'released' | 'failed' | 'timed_out' | 'cancelled', required
  - `execution_epoch` integer, required
  - `input_package_ref` string: Where the frozen package lives; `run` in v1.
  - `lease_seconds` integer
  - `claimed_by` string, nullable: The claimant: an API key id, or `oauth:<client_id>:<user_id>` for an OAuth session.
  - `claimed_at` string, date-time, nullable
  - `lease_expires_at` string, date-time, nullable
  - `heartbeat_at` string, date-time, nullable
  - `sla_deadline_at` string, date-time, required: Hard decision deadline; heartbeats never extend the lease past it.
  - `submitted_at` string, date-time, nullable
  - `created_at` string, date-time, required
  - `updated_at` string, date-time, required

## Other responses

- `400`: The request is invalid.
- `401`: Missing or invalid API key.
- `403`: The API key does not have the required scope.
- `404`: The requested resource was not found.
- `409`: The request conflicts with the current resource state.
- `429`: Daily rate limit exceeded.

---

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