← All agent quickstarts
ChallengeMyAction · Subscription · REST + MCP

Let routine work proceed only after a real chance to stop it.

Register the exact action digest, deliver the returned veto URL outside the acting agent, wait for the cooling-off deadline, and atomically consume one execution right.

Use this workflow with a real key

Try every control product for seven days

Starter includes ChallengeMyAction and all 38 REST/MCP tools.

Card required. Unless canceled before the trial ends, Starter renews automatically at $15/month. No automatic overages.

Step 1 · Create the challenge

Bind the window to an exact action digest

curl https://api.scrubmytext.com/v1/challenges/manage \
  -H "Authorization: Bearer smt_live_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"operation":"create","action_fingerprint":"sha256:YOUR_64_HEX_DIGEST","veto_window_seconds":300,"execution_window_seconds":900}'

Save the returned challenge_id. Deliver the returned veto_url only to the intended challenger through your existing notification channel.

Step 2 · Wait outside the agent

Do not infer consent from delivery

ChallengeMyAction enforces time and veto state. Your application must decide whether default-proceed is permitted and confirm that the intended challenger received notice.

Step 3 · Inspect state

Check without authorizing

curl https://api.scrubmytext.com/v1/challenges/manage \
  -H "Authorization: Bearer smt_live_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"operation":"check","control_id":"chm_RETURNED_ID"}'
Step 4 · Acquire one execution right

Consume atomically immediately before the action

curl https://api.scrubmytext.com/v1/challenges/manage \
  -H "Authorization: Bearer smt_live_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"operation":"consume","control_id":"chm_RETURNED_ID"}'

Execute the exact action once only when this response contains both execution_right_acquired: true and safe_to_execute: true. Every retry or other state must block.

MCP workflow

Use the same state machine from an agent

1. manage_action_challenge({"operation":"create","action_fingerprint":"sha256:...","veto_window_seconds":300,"execution_window_seconds":900})
2. Deliver veto_url to the intended challenger and confirm delivery in your own system.
3. manage_action_challenge({"operation":"check","control_id":"chm_..."})
4. After the deadline, call manage_action_challenge({"operation":"consume","control_id":"chm_..."}).
5. Execute once only if execution_right_acquired and safe_to_execute are both true.
6. Use operation "cancel" if the action is abandoned.
MCP connection guide

Limits to design around