REST + MCP · 49 operations

Deterministic text integrity and agent infrastructure.

Forty-nine stable API and MCP operations cover ten text-integrity capabilities and thirty-nine external control, readiness, and trust-evidence operations for agent actions, readiness, quorum, veto windows, deadlines, review capacity, escalation, budgets, authority, coordination, and provenance.

Endpoints

REST base URL

https://api.scrubmytext.com

Remote MCP

https://api.scrubmytext.com/mcp

Free API access covers scrub_text, inspect_text, and stateless fingerprint_action up to 500 shared calls per public IP per UTC month. Selected premium text tools also include 3 trial calls per public IP per UTC month. After the trial, those stateless text tools can use either a subscription API key or x402 pay-per-call when x402 is enabled. Stateful agent-infrastructure tools require a subscription API key.

Text products and API tools

Ten deterministic capabilities. Product names follow the SomethingMySomething convention; the stable technical operation names remain in code.

ScrubMyText · Free + paid

scrub_text

Normalize hidden/control characters and formatting artifacts.

POST /v1/scrub
InspectMyText · Free + paid

inspect_text

Inspect exact Unicode, invisible characters, normalization, and mixed-script anomalies.

POST /v1/inspect
ScanMyText · Paid

scan_untrusted_text

Return structural and heuristic risk signals for untrusted text.

POST /v1/scan
RedactMyText · Paid

redact_sensitive_text

Pattern-based redaction of common credentials and identifiers.

POST /v1/redact
CompareMyText · Paid

compare_text

Exact comparison and standard-scrub equivalence analysis.

POST /v1/compare
DetectMySecrets · Paid

detect_secrets

Find likely credentials without echoing secret values.

POST /v1/detect-secrets
ValidateMyOutput · Paid

validate_output

Parse JSON and validate common JSON Schema rules.

POST /v1/validate-output
SanitizeMyContext · Paid

sanitize_agent_context

Normalize and optionally redact untrusted context before model ingestion.

POST /v1/sanitize-context
PrepareMyContext · Paid

prepare_for_agent

One-call preprocessing pipeline with agent-ready text and a structured report.

POST /v1/prepare-for-agent
ReworkMyText · Paid

rework_text

Deterministically rework wording and selected sentence structures without an LLM.

POST /v1/rework

Agent infrastructure

Twenty-three MCP/API control tools across fourteen product families.

Product overview →
LockMyAction · Free + paid

fingerprint_action

Derive a stable action fingerprint and idempotency key from structured JSON without storing or echoing the arguments.

POST /v1/actions/fingerprint
LockMyAction · Paid

lock_action_intent

Fingerprint and atomically lock a structured action in one call.

POST /v1/actions/lock-intent
LockMyAction · Paid

lock_action

Atomically claim an existing action key and receive a lock_id.

POST /v1/actions/lock
LockMyAction · Paid

check_action

Inspect action-key state without reserving it.

POST /v1/actions/check
LockMyAction · Paid

complete_action

Mark the current lock completed and preserve idempotency state.

POST /v1/actions/complete
LockMyAction · Paid

release_action

Release an uncompleted lock.

POST /v1/actions/release
CatchMySignal · Paid

create_signal

Create a temporary webhook inbox.

POST /v1/signals/create
CatchMySignal · Paid

get_signal_events

Retrieve events received by a signal inbox.

POST /v1/signals/events
CatchMySignal · Paid

delete_signal

Delete the inbox and stored event bodies.

POST /v1/signals/delete
ApproveMyAction · Paid

request_approval

Create a secure human approval link.

POST /v1/approvals/request
ApproveMyAction · Paid

check_approval

Check pending/approved/rejected/expired/cancelled status.

POST /v1/approvals/check
ApproveMyAction · Paid

cancel_approval

Cancel a pending approval request.

POST /v1/approvals/cancel
ChallengeMyAction · Paid

manage_action_challenge

Create, inspect, consume, or cancel a cooling-off and bearer-veto window.

POST /v1/challenges/manage
BudgetMyAction · Paid

reserve_action_budget

Atomically reserve integer units under a period-scoped ceiling.

POST /v1/budgets/reserve
ReceiptMyAction · Paid

record_action_receipt

Record or inspect a timestamped action-outcome digest.

POST /v1/receipts/record
VerifyMySignal · Paid

verify_signed_signal

Verify HMAC authenticity, freshness, and first nonce use.

POST /v1/signals/verify
LeaseMyResource · Paid

manage_resource_lease

Acquire, inspect, or release an exclusive expiring resource lease.

POST /v1/leases/manage
DelegateMyAuthority · Paid

manage_authority_delegation

Issue, use, inspect, or revoke a narrow capability token.

POST /v1/delegations/manage
StopMyAgent · Paid

manage_agent_stop

Set, inspect, or clear durable fail-closed stop state.

POST /v1/stops/manage
HandoffMyTask · Paid

manage_task_handoff

Create, claim, inspect, complete, or cancel a task handoff.

POST /v1/handoffs/manage
ReconcileMyAction · Paid

manage_action_reconciliation

Track and resolve expected-versus-observed outcome digests.

POST /v1/reconciliations/manage
TraceMyContext · Paid

anchor_context_trace

Anchor or inspect digest-based context provenance.

POST /v1/context-traces/anchor
ContractMyTask · Paid

manage_task_contract

Manage digest-bound technical task commitment state.

POST /v1/task-contracts/manage
Free API quickstart

No account. No API key. Try it first.

scrub_text, inspect_text, and fingerprint_action share a public allowance of 500 calls/month per public IP.

curl -X POST https://api.scrubmytext.com/v1/scrub \
  -H "Content-Type: application/json" \
  -d '{"text":"Hello world","mode":"standard"}'

Paid requests use Authorization: Bearer smt_live_....

Free action identity

Derive a stable key

curl https://api.scrubmytext.com/v1/actions/fingerprint \
  -H "Content-Type: application/json" \
  -d '{"action":"send_invoice","scope":"production","arguments":{"invoice_id":"inv_42","customer_id":"customer_7"}}'

Object-key order does not affect the result. Inputs are not echoed or stored.

Paid exactly-once preflight

Fingerprint and lock in one call

curl https://api.scrubmytext.com/v1/actions/lock-intent \
  -H "Authorization: Bearer smt_live_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"action":"send_invoice","scope":"production","arguments":{"invoice_id":"inv_42","customer_id":"customer_7"}}'

Perform the external action only when safe_to_execute is true, then call complete_action with the returned key and lock_id.

Agent-native payment

Try first. Subscribe or pay per call.

Selected premium text tools receive 3 unauthenticated trial calls per public IP each UTC month. After that, developers can continue with a normal smt_live_... subscription key. x402-capable agents can instead pay per request in USDC without creating a ScrubMyText account when x402 is enabled on the API.

Dedicated x402 routes: prefix the normal premium text route with /x402. For example, POST /x402/v1/rework. These routes always use the HTTP 402 flow and do not consume the free trial.

POST /x402/v1/rework
→ 402 Payment Required + PAYMENT-REQUIRED header
→ agent signs payment
→ retry with PAYMENT-SIGNATURE
→ 200 result + PAYMENT-RESPONSE

Initial pay-per-call price is configured server-side. Check GET https://api.scrubmytext.com/health for whether x402 is enabled, its network, and the current per-call price.

Usage accounting

Every subscription-authenticated REST tool request or MCP tools/call counts as one subscription call. Trial and x402 calls are accounted for separately. A prepare_for_agent request counts as one call even though it runs several internal checks. CatchMySignal counts each incoming external event as one additional call. Public human decisions on ApproveMyAction links and public ChallengeMyAction veto calls are not metered.

State and retention defaults

Remote MCP

The MCP endpoint supports the stable 2025-11-25 Streamable HTTP protocol and the 2026-07-28 stateless draft. Both support cacheable tools/list, tools/call, and protocol-version response headers; the draft also supports server/discover and requires matching method/name headers. Subscription MCP clients send the same bearer token in the Authorization header. Selected premium text tools can also return HTTP 402 after the trial is exhausted so x402-aware MCP clients can pay and retry automatically.

https://api.scrubmytext.com/mcp

Official Registry name: com.scrubmytext/tools

MCP connection guide · server.json

Machine-readable discovery

OpenAPI 3.1 · llms.txt · llms-full.txt · MCP server.json · product catalog · guide catalog · sitemap.xml

For decision-shaped integration questions, use the agent answers and comparisons library. Every guide identifies the matching product, decision rule, limitations, and a working starting point.

ReworkMyText API + MCP

REST: POST /v1/rework · MCP tool: rework_text · Paid

Inputs: text and optional mode (light, standard, or deep). The result includes reworked_text, change metrics, transformation counts, protected-item checks, and warnings. No language model is used.

curl -X POST https://api.scrubmytext.com/v1/rework \
  -H "Authorization: Bearer smt_live_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"text":"In order to finish, the team utilized several tools.","mode":"standard"}'

Open the browser version →

Agent discovery: Dedicated /x402/v1/... endpoints advertise x402 Bazaar discovery metadata so compatible agents can discover the paid text operations after successful settlement indexing.