---
title: "ContractMyTask — manage a technical task commitment"
method: POST
path: "/v1/task-contracts/manage"
---

# ContractMyTask — manage a technical task commitment

`POST /v1/task-contracts/manage`

## Request

- Base URL: `https://api.scrubmytext.com`
- URL: `https://api.scrubmytext.com/v1/task-contracts/manage`
- Auth: HTTP bearer

Offers, accepts, inspects, completes, or cancels a digest-bound technical service-state record. It is not a legal contract, payment, escrow, or identity verification. Production.

## Request body

- object
  - `operation` 'offer' | 'accept' | 'check' | 'complete' | 'cancel', required
  - `control_id` string
  - `token` string
  - `task_fingerprint` string: A lowercase SHA-256 digest, with an optional sha256: prefix.
  - `terms_digest` string: A lowercase SHA-256 digest, with an optional sha256: prefix.
  - `expires_in_seconds` integer

## Response `200`

Task commitment state or transition result

## Other responses

- `401`: Paid API key required
- `422`: Invalid operation-specific input

---

[API](https://skmtc.dev/scrubmytext/apis/scrubmytext-agent-infrastructure-api.md) · [All operations](https://skmtc.dev/scrubmytext/apis/scrubmytext-agent-infrastructure-api/llms.txt) · [OpenAPI document](https://skmtc.dev/scrubmytext/apis/scrubmytext-agent-infrastructure-api/revisions/54ace36baccf?raw)
