Quickstart
Get an API key, fire one request_approval call, and answer it from
the web inbox. About 3 minutes.
On this page
1. Get an API key
Sign up at api.pendnt.dev/signup — no credit card for the Free plan. You'll get a workspace and an API key that looks like:
aio_7hK2p9xQmZ4vB1nR8tYcW3sJdL6fA0eU
It's shown once. Store it somewhere your agent can read it as an environment variable — not in a repo.
2. Set your environment variable
export PENDNT_API_KEY="aio_..."
3. Fire a request_approval call
Pick whichever surface matches your stack — they all hit the same API underneath.
curl
curl -s -X POST https://api.pendnt.dev/v1/requests \
-H "Authorization: Bearer $PENDNT_API_KEY" \
-H 'content-type: application/json' \
-d '{
"kind": "approval",
"title": "Deploy to prod?",
"details": "42 files changed, 2 migrations, tests: passing",
"timeout_s": 1800,
"wait_s": 25
}'
With wait_s: 25 the call blocks (long-polls) for up to 25 seconds waiting for an
answer, then returns the current status. If it's still pending, poll
GET /v1/requests/:id (or MCP's check_request) with the returned
id — the request itself stays open for the full timeout_s (here, 30
minutes), durable across process restarts.
MCP (Claude Code, Claude Agent SDK, any MCP client)
claude mcp add --transport http pendnt https://api.pendnt.dev/mcp \
--header "Authorization: Bearer $PENDNT_API_KEY"
Then, from an MCP-connected agent:
request_approval(
title: "Deploy to prod?",
details: "42 files changed, 2 migrations, tests: passing",
timeout_s: 1800,
wait_s: 25
)
See the full setup for Claude Code and the Claude Agent SDK.
4. Answer it
Every request goes to your workspace's web inbox automatically (no setup) — open the dashboard and tap Approve, Deny, or type a free-text answer. If you've connected email, Telegram, Slack, Discord, or web push, the same request also lands there with the same Approve/Deny buttons — see Channels.
The call from step 3 returns as soon as you answer:
{ "id": "req_...", "status": "approved", "answer": { "by": "you", "at": "2026-08-29T03:15:02Z" } }
Where to go next
REST reference
Every endpoint, auth, request/response shapes, long-poll and timeout semantics, error codes.
MCP tools reference
All 13 tools: args, return shapes, blocking vs. non-blocking behavior.
Channels
Email, Telegram, Slack, Discord, web push, and the web inbox.
Integrations
Claude Code · Agent SDK · OpenClaw · curl