Quickstart
Get your first human approval in under 2 minutes.
Step 1: Register and get your API key#
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:
{
"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#
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:
{
"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:
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#
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#
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.