---
title: "Fingerprint a structured action intent"
method: POST
path: "/v1/actions/fingerprint"
---

# Fingerprint a structured action intent

`POST /v1/actions/fingerprint`

## Request

- Base URL: `https://api.scrubmytext.com`
- URL: `https://api.scrubmytext.com/v1/actions/fingerprint`
- Auth: one of:
  - none
  - HTTP bearer

Derive a stable SHA-256 action fingerprint and idempotency key from a named action, JSON arguments, and optional scope. Object-key order does not affect the result. The operation stores nothing and does not echo the supplied arguments.

## Request body

- object
  - `action` string, required: Stable action name, such as refund_order or send_email.
  - `arguments` object, required: JSON object containing the action inputs. Object keys are sorted during canonicalization; array order remains significant.
  - `scope` string: Optional namespace used to separate otherwise identical action intents.

## Response `200`

Stable fingerprint and ready-to-use idempotency key

- object
  - `brand` 'LockMyAction', required
  - `action_fingerprint` string, required
  - `idempotency_key` string, required
  - `algorithm` 'sha256', required
  - `canonicalization` string, required
  - `canonical_bytes` integer, required
  - `notice` string, required

## Other responses

- `400`: Malformed JSON request
- `422`: Invalid or unsupported action intent
- `429`: Monthly free usage limit reached

---

[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)
