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

Early access — launched August 2026.