Documentation menu

Docs/Quickstart

Quickstart

Get your first human approval in under 2 minutes.


Step 1: Register and get your API key#

bash
curl -X POST https://api.pausepoint.dev/v1/auth/register \
  -H "Content-Type: application/json" \
  -d '{
    "email": "you@example.com",
    "name": "Your Name",
    "password": "your-password"
  }'

Response:

json
{
  "developer_id": "...",
  "api_key": "pp_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
  "test_api_key": "pp_test_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
  "plan": "free",
  "message": "Save your API keys — they will not be shown again."
}

Save both keys; they are not shown again. The pp_test_ key runs the full flow without sending real notifications or consuming your quota — use it while you build.

Prefer a browser? Sign up on the dashboard and your keys are created for you.


Step 2: Create your first pause request#

bash
export PP_KEY="pp_live_your_key_here"

curl -X POST https://api.pausepoint.dev/v1/pause \
  -H "Authorization: Bearer $PP_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "recipient": "+15550100",
    "channel": "sms",
    "message": "Your agent wants to send a $340 wire to Acme Corp. Approve?",
    "options": ["Approve", "Reject"],
    "timeout_hours": 4,
    "timeout_default": "Reject"
  }'

Response:

json
{
  "pause_id": "psr_uuid",
  "status": "pending",
  "respond_url": "https://api.pausepoint.dev/respond/TOKEN",
  "expires_at": "2026-05-08T18:00:00Z",
  "created_at": "2026-05-08T14:00:00Z"
}

The human at +15550100 receives an SMS with the respond_url.


Step 3: Simulate a human response#

Copy the respond_url token from step 2 and substitute it below:

bash
TOKEN="the_token_from_respond_url"

# First, GET to confirm the page loads
curl https://api.pausepoint.dev/v1/respond/$TOKEN

# Then POST your choice
curl -X POST https://api.pausepoint.dev/v1/respond/$TOKEN \
  -H "Content-Type: application/json" \
  -d '{"choice": "Approve"}'

Step 4: Register a webhook to receive the response automatically#

bash
curl -X POST https://api.pausepoint.dev/v1/webhooks \
  -H "Authorization: Bearer $PP_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "url": "https://yourapp.com/webhook",
    "events": ["pause.responded", "pause.timed_out", "pause.cancelled"],
    "secret": "your-webhook-secret"
  }'

PausePoint will POST to your URL when the human responds. The payload includes X-PausePoint-Signature for verification.


Step 5: Query the audit log#

bash
curl "https://api.pausepoint.dev/v1/audit?limit=10" \
  -H "Authorization: Bearer $PP_KEY"

Every pause, response, and timeout is recorded with timestamp, actor, and event type.