Authentication
Endpoints support API keys with Authorization: Bearer <api_key> or x-api-key: <api_key>. Public/shared reads and guest sends can also run without authentication when noted.
Identity
GET /api/v1/me
Returns authenticated user + API key metadata.
Billing
GET /api/v1/balance
Returns user token balance and saved billing readiness flags.
GET /api/v1/token-packs
Returns available token packages. No authentication required.
POST /api/v1/token-pack-checkout
Creates a hosted Stripe Checkout URL for agents to buy token packs with user-approved Link wallet payment.
Templates
GET /api/v1/templates
List/search templates with filtering. Guests can read shared templates; authenticated callers can also read owned templates.
GET /api/v1/templates/{templateId}
Get full template detail including stored design JSON. Guests can read shared templates.
GET /api/v1/templates/{templateId}/html
Render printable HTML from template design. Guests can render shared templates.
Postcards
POST /api/v1/postcards/send
Send postcard batch using default fields (imageUrl, imageOrientation, messageText, messageFontFamily) or advanced HTML/template overrides. Authenticated callers can use tokens or saved cards. Guest callers must provide either a guest Stripe PaymentIntent or Stripe shared payment token.
MCP
POST /api/mcp
Remote MCP server for ChatGPT, Codex, Claude, and other MCP clients. See MCP Server.
Admin
Admin endpoints require an API key created by an account listed in server admin allowlist.
GET /api/v1/admin/token-packs
Token package configuration.
GET /api/v1/admin/users
Search/list users with balances.
GET /api/v1/admin/users/{userId}/token-balance
Detailed balance + recent transactions for a user.