HTTP API reference
Every endpoint with its parameters, request body, responses, and runnable examples. Anonymous calls need no key; account calls send an API key from your workspace as Authorization: Bearer.
All endpoints
204 operations in 26 groups. Kivel API version 0.4.0. Open a group for its endpoints, or use the interactive reference below to try them.
Utilities3
Hosted versions of local formatters, encoders, and generators.
- GET
/api/toolsDiscover all tools and availability - GET
/api/tools/{id}Read tool inputs, options and examples - POST
/api/tools/{id}/runRun a utility with bounded CPU, memory, and input
Accounts23
Workspace accounts, role-limited keys, and usage. Browser session mutations require Origin matching the configured site.
- GET
/api/plansCompare configured plan allowances - GET
/api/usageRead the current principal’s hosted execution usage - GET
/api/email-sending/usageRead how many emails this workspace sent today and this month, with its limits - POST
/api/auth/registerCreate a free username/password account and session - POST
/api/auth/loginSign in with a seven-day HttpOnly session cookie - POST
/api/auth/logoutRevoke the current browser session - GET
/api/accountRead your user, workspace, effective plan, role, and scopes - PATCH
/api/accountRename a workspace as an owner or admin - GET
/api/account/keysList your active keys in the current workspace - POST
/api/account/keysCreate a scoped key; its secret is returned once - DELETE
/api/account/keys/{id}Immediately revoke one of your workspace keys - GET
/api/account/workspacesList your workspace memberships - POST
/api/account/workspaceSwitch the current browser session’s workspace - GET
/api/account/membersList current workspace members - POST
/api/account/invitesCreate a username-bound Team invitation valid for 24 hours - POST
/api/account/invites/acceptAccept an invitation for your username - DELETE
/api/account/members/{id}Remove a member and revoke their access to this workspace - GET
/api/auth/recoveryRead email recovery availability - GET
/api/account/recoveryRead your verified and pending recovery email - POST
/api/account/emailSend a verification code after confirming your current password - POST
/api/account/email/verifyVerify a pending email with a single-use code - POST
/api/auth/password/forgotRequest a password reset code - POST
/api/auth/password/resetConsume an email code and replace your password
Lifecycle11
Inspect ownership, retention, and resource expiry.
- GET
/api/account/resourcesList active resources owned by your workspace and total storage - POST
/api/inboxes/{id}/renewRenew a live resource within the current plan - POST
/api/mocks/{id}/renewRenew a live resource within the current plan - POST
/api/files/{id}/renewRenew a live resource within the current plan - POST
/api/mcp-servers/{id}/renewRenew a live resource within the current plan - POST
/api/status-pages/{id}/renewRenew a live resource within the current plan - POST
/api/inboxes/{id}/sharingSet visibility or rotate a private access token - POST
/api/mocks/{id}/sharingSet visibility or rotate a private access token - POST
/api/files/{id}/sharingSet visibility or rotate a private access token - POST
/api/mcp-servers/{id}/sharingSet visibility or rotate a private access token - POST
/api/status-pages/{id}/sharingSet visibility or rotate a private access token
Billing5
Dodo Payments subscriptions. Checkout remains disabled until configured.
- GET
/api/billingRead billing availability and validated recurring prices - POST
/api/billing/checkoutOpen Dodo Payments subscription checkout for a workspace owner - POST
/api/billing/portalOpen the workspace owner’s Dodo Payments billing portal - POST
/billing/webhookReceive signed Dodo Payments subscription lifecycle events - POST
/api/billing/phone-addonOwner-only paid phone slot change
Music library3
Original CC0 instrumental tracks and byte-range audio playback.
- GET
/api/musicList original CC0 tracks - GET
/api/music/{id}/audio.wavStream or download a music track - GET
/api/music/{id}/audio.mp3Stream or download a full MP3 arrangement
Webhook inboxes16
Capture and inspect callbacks.
- POST
/api/inboxesCreate a temporary webhook inbox - POST
/hooks/{id}/{path}Capture any ordinary HTTP method at a nested inbox path - GET
/hooks/{id}Capture an incoming request - POST
/hooks/{id}Capture an incoming request - PUT
/hooks/{id}Capture an incoming request - PATCH
/hooks/{id}Capture an incoming request - DELETE
/hooks/{id}Capture an incoming request - GET
/api/inboxes/{id}Read inbox expiration and usage - DELETE
/api/inboxes/{id}Delete an inbox and its history - GET
/api/inboxes/{id}/requestsRead captured requests in arrival order - PUT
/api/inboxes/{id}/responseChoose what the inbox answers senders with - DELETE
/api/inboxes/{id}/responseRestore the default JSON receipt - PUT
/api/inboxes/{id}/forwardForward every captured request to your endpoint (Pro and Team) - DELETE
/api/inboxes/{id}/forwardStop forwarding - GET
/api/inboxes/{id}/deliveriesRead the last 100 forwarding attempts - GET
/api/inboxes/{id}/waitWait until the inbox receives a request
Mock APIs6
Manage temporary API configurations.
- POST
/api/mocks/{id}/resetRestore a CRUD mock to its seed records - GET
/api/mocks/{id}/callsRead the most recent calls to a mock - POST
/api/mocksCreate a temporary mock API - GET
/api/mocks/{id}Read mock configuration and usage - PUT
/api/mocks/{id}Replace mock configuration and reset CRUD records - DELETE
/api/mocks/{id}Delete a mock API immediately
OAuth test providers13
Test OAuth and OpenID Connect with synthetic users and controlled failures.
- GET
/api/oauth-providersList workspace OAuth test providers - POST
/api/oauth-providersCreate an OAuth test provider - GET
/api/oauth-providers/{id}Inspect an OAuth test provider - PUT
/api/oauth-providers/{id}Update users, claims and failure scenario - DELETE
/api/oauth-providers/{id}Delete a test provider and its signing keys - GET
/oauth/{id}/.well-known/openid-configurationDiscover this test provider - GET
/oauth/{id}/jwksRead the provider RS256 public signing key - GET
/oauth/{id}/authorizeChoose a test user and approve or deny - POST
/oauth/{id}/authorizeSubmit a signed test consent form - POST
/oauth/{id}/tokenExchange a code, rotate a refresh token or issue client credentials - GET
/oauth/{id}/userinfoRead the synthetic user claims - POST
/oauth/{id}/userinfoRead the synthetic user claims - POST
/oauth/{id}/revokeRevoke an access or refresh token and its grant family
Mock endpoints6
Call your configured routes.
- GET
/ws/{id}Connect to a mock WebSocket - GET
/mock/{id}/{path}Call a configured mock route - POST
/mock/{id}/{path}Call a configured mock route - PUT
/mock/{id}/{path}Call a configured mock route - PATCH
/mock/{id}/{path}Call a configured mock route - DELETE
/mock/{id}/{path}Call a configured mock route
Files5
Share temporary attachments.
- GET
/files/{id}/infoRead shared file metadata without consuming a download - POST
/api/filesUpload a temporary file - GET
/api/files/{id}Read file metadata and remaining downloads - DELETE
/api/files/{id}Delete a file immediately - GET
/files/{id}Download a shared file
Platform3
Service health.
- GET
/healthCheck process liveness - GET
/readyCheck database readiness - GET
/api/capabilitiesRead operator-enabled features
MCP2
Connect agents through Streamable HTTP at /mcp. Discover available operations with tools/list.
- POST
/mcpSend an MCP message over Streamable HTTP - POST
/mcp/mock/{id}Send an MCP message over Streamable HTTP
Mock MCP servers4
Configurable static tools for agent integration testing.
- POST
/api/mcp-serversCreate a temporary mock MCP server - GET
/api/mcp-servers/{id}Read server configuration and usage - PUT
/api/mcp-servers/{id}Replace the mock tool configuration - DELETE
/api/mcp-servers/{id}Delete a mock MCP server
Agents10
- POST
/api/agents/loginAsk a human to connect this agent (no key needed) - POST
/api/agents/trialStart a 72-hour trial when no human can approve yet - POST
/api/agents/tokenPoll for the API key after the human approves - GET
/api/agentsList the workspace’s agents and the plan limit - GET
/api/account/activityRead recent MCP tool calls; arguments and results are never included - DELETE
/api/agents/{id}Revoke an agent (signed-in owner/admin only) - GET
/api/agents/login/{code}Review an agent login in the signed-in browser - POST
/api/agents/login/{code}/approveApprove an agent in the owner/admin browser; API keys cannot approve - POST
/api/agents/login/{code}/denyDeny an agent in the owner/admin browser - POST
/api/events/waitWait for any webhook, email or human-answer event
Monitors10
- GET
/api/monitorsList monitors and their status - POST
/api/monitorsWatch a URL, a certificate or a scheduled job - GET
/api/monitors/{id}Read a monitor and its last 50 status changes - PATCH
/api/monitors/{id}Pause or resume a monitor - DELETE
/api/monitors/{id}Delete a monitor - GET
/ping/{token}Report a successful heartbeat from a job - POST
/ping/{token}Report a successful heartbeat using its secret ping token - GET
/ping/{token}/failReport a failed heartbeat from a job - POST
/ping/{token}/failReport a failed heartbeat using its secret ping token - POST
/api/monitors/{id}/accept-dnsAccept the last observed DNS answers as a new baseline
Agent memory4
- GET
/api/memory/{namespace}/{key}Read a remembered value - PUT
/api/memory/{namespace}/{key}Remember a JSON value - DELETE
/api/memory/{namespace}/{key}Forget a value - GET
/api/memory/{namespace}List keys in a namespace
Human approvals5
- GET
/api/approvalsList recent questions - POST
/api/approvalsAsk the workspace owner a question - GET
/api/approvals/{id}Read a question and its answer or expiry - GET
/api/approvals/{id}/waitWait for an answer; repeat if timedOut is true - POST
/api/approvals/{id}/answerAnswer once from the signed-in owner/admin browser
Email inboxes20
- GET
/api/email-inboxesList owned addresses and their active or paused status - POST
/api/email-inboxesCreate an owned agent email address - GET
/api/email-inboxes/{id}Read address, expiry and message count - DELETE
/api/email-inboxes/{id}Delete the inbox and received messages - GET
/api/email-inboxes/{id}/messagesRead messages with codes, links and attachment IDs for private downloads - DELETE
/api/email-inboxes/{id}/messagesDelete stored messages while keeping the address - GET
/api/email-inboxes/{id}/waitWait for new messages - POST
/api/email-inboxes/{id}/renewCheck an active paid inbox; Free inbox lifetimes cannot be extended - GET
/api/email-threadsList workspace email threads newest first - GET
/api/email-inboxes/{id}/threadsList inbox threads newest first - GET
/api/email-inboxes/{id}/threads/{threadId}Read a thread with its messages oldest first - GET
/api/email-inboxes/{id}/rulesRead inbox address rules - PUT
/api/email-inboxes/{id}/rulesReplace inbox address rules as a signed-in owner or admin - GET
/api/email-inboxes/{id}/draftsList drafts in an inbox - POST
/api/email-inboxes/{id}/draftsSave an email draft without sending it - GET
/api/email-drafts/{id}Read draft content and delivery status - DELETE
/api/email-drafts/{id}Delete a draft and cancel any pending send - POST
/api/email-drafts/{id}/sendQueue a draft for delivery or human approval - POST
/api/email-inboxes/{id}/sendSend from an active owned agent address - PUT
/api/email-inboxes/{id}/forwardingForward received mail to a public webhook (Pro or Team)
Phone numbers6
- GET
/api/phone-numbersList owned numbers and paid-slot allowance - POST
/api/phone-numbersBuy a US number in an already-paid slot - GET
/api/phone-numbers/availableSearch available US local SMS numbers - DELETE
/api/phone-numbers/{id}Release an owned number and stop its provider billing - GET
/api/phone-numbers/{id}/smsRead private received SMS and codes - GET
/api/phone-numbers/{id}/waitWait for incoming SMS on an active number
Status pages5
- POST
/api/status-pagesPublish selected workspace monitor results - GET
/api/status-pages/{id}Read owned status-page configuration - PUT
/api/status-pages/{id}Update selected monitors and page copy - DELETE
/api/status-pages/{id}Delete a status page - GET
/status/{id}View a public or authorized private status page
Scheduled jobs4
- GET
/api/scheduled-jobsList workspace callbacks and recent attempts - POST
/api/scheduled-jobsSchedule a delayed or repeating JSON callback - GET
/api/scheduled-jobs/{id}Read a callback and its latest 20 delivery attempts - DELETE
/api/scheduled-jobs/{id}Cancel future deliveries and delete the job
SMTP capture3
- POST
/api/smtp-inboxesCreate an authenticated test SMTP capture - GET
/api/smtp-inboxes/{id}Read capture settings without revealing its password - POST
/api/smtp-inboxes/{id}/rotateRevoke the previous capture password and return a replacement
Authenticators6
- GET
/api/authenticatorsList workspace authenticators without secrets - POST
/api/authenticatorsStore a TOTP authenticator - GET
/api/authenticators/{id}Inspect authenticator metadata - PATCH
/api/authenticators/{id}Rename an authenticator - DELETE
/api/authenticators/{id}Permanently delete an authenticator - GET
/api/authenticators/{id}/codeGenerate a TOTP code
Vault7
- GET
/api/credentialsList workspace credential metadata - POST
/api/credentialsSave an encrypted credential or generate and save a password - GET
/api/credentials/{id}Read credential metadata - PATCH
/api/credentials/{id}Update a credential - DELETE
/api/credentials/{id}Delete a workspace credential - POST
/api/credentials/{id}/revealReveal a password after human approval - POST
/api/passwords/generateGenerate a strong password without storing it
Test payments22
- GET
/api/test-walletsList test wallets - POST
/api/test-walletsCreate a test wallet - GET
/api/test-wallets/{id}Inspect test configuration and results - PATCH
/api/test-wallets/{id}Update test configuration - DELETE
/api/test-wallets/{id}Delete the test resource and its ledger or attempts - GET
/api/test-paywallsList test paywalls - POST
/api/test-paywallsCreate a test paywall - GET
/api/test-paywalls/{id}Inspect test configuration and results - PATCH
/api/test-paywalls/{id}Update test configuration - DELETE
/api/test-paywalls/{id}Delete the test resource and its ledger or attempts - GET
/api/test-checkoutsList test checkouts - POST
/api/test-checkoutsCreate a test checkout - GET
/api/test-checkouts/{id}Inspect test configuration and results - PATCH
/api/test-checkouts/{id}Update test configuration - DELETE
/api/test-checkouts/{id}Delete the test resource and its ledger or attempts - POST
/api/test-wallets/{id}/payPay a test paywall or checkout, or record a payment - POST
/api/test-wallets/{id}/top-upAdd free test balance - GET
/api/test-wallets/{id}/transactionsRead the test ledger, newest first - POST
/api/test-checkouts/{id}/completeComplete checkout with a fake card fixture - POST
/api/test-checkouts/{id}/confirmConfirm the extra test verification step - GET
/pay/{id}/{path}Public x402 v1 test paywall - GET
/checkout/{id}Public test outcome picker; no card fields
Agent email2
- GET
/api/email-inboxes/{id}/messages/{messageId}/attachments/{attachmentId}Get a temporary private attachment download link - GET
/api/email-inboxes/{id}/messages/{messageId}/attachments/{attachmentId}/downloadDownload an untrusted attachment using its temporary link
Loading API reference…