# InboxJSON > Inbound email to structured JSON webhook API on Cloudflare Workers. One email address = one inbox = one JSON schema + one webhook. Webhooks are HMAC-SHA256 signed, retried with backoff, deduplicated by Message-ID. ## API - POST https://inboxjson.9cloud.io.vn/v1/tenants — create account, returns api_key (shown once) - POST https://inboxjson.9cloud.io.vn/v1/inboxes — create inbox {address, schema, webhook_url, webhook_secret}; duplicate address returns 409 - GET https://inboxjson.9cloud.io.vn/v1/inboxes — list inboxes (Bearer api_key) - POST https://inboxjson.9cloud.io.vn/v1/parse — dry-run extraction {text, subject, from} or {raw: "<.eml>"}; stores nothing unless deliver=true - GET https://inboxjson.9cloud.io.vn/v1/messages?limit=&inbox_id= — list extracted messages - GET https://inboxjson.9cloud.io.vn/v1/messages/:id — message detail + delivery log - POST https://inboxjson.9cloud.io.vn/v1/messages/:id/replay — re-send webhook (event message.replayed) ## MCP (for agents) - POST https://inboxjson.9cloud.io.vn/mcp — JSON-RPC: initialize, tools/list, tools/call (list_messages, get_message, parse_email) - GET https://inboxjson.9cloud.io.vn/mcp.json — MCP manifest ## Webhook contract - Event: message.extracted | message.replayed - Signature header: X-InboxJSON-Signature: t=,v1= - Payload data fields follow the inbox schema (typed, dates normalised to YYYY-MM-DD) ## Pricing - $9/mo per 1,000 emails; $29/mo per 10,000; $99/mo per 50,000. Per email received, not per seat.