---
title: "Report the bounded result of one redeemed action"
method: POST
path: "/v1/actions/{id}/executions"
tags: ["Actions"]
---

# Report the bounded result of one redeemed action

`POST /v1/actions/{id}/executions`

## Request

- Base URL: `https://api.thrd.email`
- URL: `https://api.thrd.email/v1/actions/{id}/executions`
- Auth: HTTP bearer

Authenticates the same executor principal, exact credential, tenant, tool and target that redeemed the capability. The action and redemption must match exactly. Repeating the same status, result hash and metadata is idempotent; changed data is rejected.

## Path parameters

- `id` string, uuid, required

## Request body

- object
  - `redemption_id` string, uuid, required
  - `status` 'succeeded' | 'failed', required
  - `result_hash` string, required: Digest of the executor-owned result. Raw output is never accepted by this endpoint.
  - `metadata` object, required
    - `duration_ms` integer
    - `result_type` string
    - `error_code` string
    - `retryable` boolean

## Response `200`

Immutable execution report and terminal receipt reference

- object
  - `action_proposal_id` string, uuid, required
  - `redemption_id` string, uuid, required
  - `receipt_id` string, uuid, required
  - `status` 'succeeded' | 'failed', required
  - `result_hash` string, required
  - `reported_at` string, date-time, required
  - `idempotent_replay` boolean, required

## Other responses

- `400`: Invalid path, hash, state or bounded metadata
- `401`: Missing, invalid or non-matching executor credential
- `409`: Conflicting, expired or already changed report
- `429`: Executor or abuse rate limit exceeded
- `503`: Execution-report authority unavailable

---

[API](https://skmtc.dev/thrd/apis/thrd-agent-email-api.md) · [All operations](https://skmtc.dev/thrd/apis/thrd-agent-email-api/llms.txt) · [OpenAPI document](https://skmtc.dev/thrd/apis/thrd-agent-email-api/revisions/d8a88129cd34?raw)
