---
title: "Bind a client-built run proof of salted commitments to the active agent key and one-use nonce; appends an agent-action receipt carrying the runId (never a task, input or output value) and returns its hash with the /api/proof inclusion URL, plus a short-lived Obelisk-signed run token naming that receipt. If the receipt cannot be appended, no token is issued. The envelope has no salt field, so salts and the raw input/output stay client-side; the task travels as a hash plus an optional caller-set label. A legacy v1 envelope (unsalted hashes) is accepted and flagged unsalted-v1 in run.warnings."
method: POST
path: "/api/agent-proof/run"
tags: ["agent_identity"]
---

# Bind a client-built run proof of salted commitments to the active agent key and one-use nonce; appends an agent-action receipt carrying the runId (never a task, input or output value) and returns its hash with the /api/proof inclusion URL, plus a short-lived Obelisk-signed run token naming that receipt. If the receipt cannot be appended, no token is issued. The envelope has no salt field, so salts and the raw input/output stay client-side; the task travels as a hash plus an optional caller-set label. A legacy v1 envelope (unsalted hashes) is accepted and flagged unsalted-v1 in run.warnings.

`POST /api/agent-proof/run`

## Request

- Base URL: `https://obeliskgate.com`
- URL: `https://obeliskgate.com/api/agent-proof/run`
- Auth: none declared

## Request body

- object
  - `proof_id` unknown
  - `challenge_id` unknown
  - `run_proof` unknown
  - `audience` unknown

## Response `200`

Success.

## Other responses

- `default`: Error — { ok:false, reason:<code>, message?:<human> } on failures; HTTP status mirrors it.

---

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