Skip to content
UpVoiced Docs

API reference

Platform endpoints

Health checks and the endpoints UpVoiced’s own infrastructure and providers call (billing and email events, inbound email). Integrations never call these.

Set up the SDK client used in the examples

UpVoiced infrastructure or a signed provider request:

import { UpVoiced } from '@upvoiced/sdk';

const upvoiced = new UpVoiced();

curl examples read $UPVOICED_API_KEY and $UPVOICED_WORKSPACE_IDfrom your shell. MCP examples are the tools/call request an MCP client sends to the MCP server with the same API key.

GET/health

liveness

Authentication
UpVoiced infrastructure or a signed provider request
Operation id
liveness
Response 200: 1 fields
Response 200 (application/json)
NameTypeRequired
oktrueYes
curl
curl 'https://api.upvoiced.com/health'
TypeScript SDK
const data = await upvoiced.get('/health');
MCP

No MCP tool for this operation. The MCP server covers the everyday reads and writes.

GET/ready

readiness

Authentication
UpVoiced infrastructure or a signed provider request
Operation id
readiness
Response 200: 1 fields
Response 200 (application/json)
NameTypeRequired
oktrueYes

Errors: 503, all in the standard error shape.

curl
curl 'https://api.upvoiced.com/ready'
TypeScript SDK
const data = await upvoiced.get('/ready');
MCP

No MCP tool for this operation. The MCP server covers the everyday reads and writes.

POST/webhooks/paddle

Paddle Billing notifications (Paddle-Signature HMAC, 5 min tolerance, idempotent)

Authentication
UpVoiced infrastructure or a signed provider request
Operation id
paddleWebhook
Response 200: 2 fields
Response 200 (application/json)
NameTypeRequired
oktrueYes
replayedbooleanYes

Errors: 400, 401, 413, 500, 503, all in the standard error shape.

curl
curl -X POST 'https://api.upvoiced.com/webhooks/paddle'
TypeScript SDK
const data = await upvoiced.post('/webhooks/paddle');
MCP

No MCP tool for this operation. The MCP server covers the everyday reads and writes.

POST/webhooks/resend

Resend delivery feedback (Svix signature, 5 min tolerance, replay-safe)

Authentication
UpVoiced infrastructure or a signed provider request
Operation id
resendWebhook
Response 200: 2 fields
Response 200 (application/json)
NameTypeRequired
oktrueYes
replayedbooleanYes

Errors: 400, 401, 413, 500, 503, all in the standard error shape.

curl
curl -X POST 'https://api.upvoiced.com/webhooks/resend'
TypeScript SDK
const data = await upvoiced.post('/webhooks/resend');
MCP

No MCP tool for this operation. The MCP server covers the everyday reads and writes.

POST/v1/inbound

Inbound email from the Email Worker (HMAC-signed raw MIME, post-by-email, reply-by-email)

Authentication
UpVoiced infrastructure or a signed provider request
Operation id
inboundEmail
Response 200: 5 fields
Response 200 (application/json)
NameTypeRequired
oktrueYes
outcomestringYes
replayedbooleanYes
post_idstring | nullYes
comment_idstring | nullYes

Errors: 401, 404, 413, 415, 422, 500, 503, all in the standard error shape.

curl
curl -X POST 'https://api.upvoiced.com/v1/inbound'
TypeScript SDK
const data = await upvoiced.post('/v1/inbound');
MCP

No MCP tool for this operation. The MCP server covers the everyday reads and writes.