Developers

Docs that get you to JSON fast.

Everything you need to receive your first email, verify it and put it to work.

Quick start · 3 calls

Needs an API key from the dashboard
01 · Add your domain
curl -X POST https://ghostparse.com/v1/domains \
  -H "Authorization: Bearer $KEY" \
  -d '{"name":"yourapp.com","inbound_enabled":true}'

Then publish the records it returns.

02 · Set your webhook
curl -X PATCH https://ghostparse.com/v1/webhook \
  -H "Authorization: Bearer $KEY" \
  -d '{"webhook_url":"https://yourapp.com/hook"}'

Or skip it and run the CLI on your laptop.

03 · Send a sample
curl -X POST https://ghostparse.com/v1/samples \
  -H "Authorization: Bearer $KEY"

A realistic email lands at your webhook, signed.

Anatomy of an event

One shape, every email.

  1. 1Headers you can verify. webhook-id, webhook-timestamp and webhook-signature, in the Standard Webhooks format.
  2. 2The message, decoded. Addresses, text, HTML, reply_text and attachments.
  3. 3What we worked out. authentication, spam, thread_id and auto_submitted.
  4. 4Your fields. extracted: whatever your parser asked for.
Every field →
POST /hooks/email
webhook-id: evt_7a1c…
webhook-signature: v1,K5o…

{
  "type": "email.received",
  "data": {
    "from": { "address": "jane@example.com" },
    "subject": "Re: Order #1042",
    "reply_text": "Nothing has arrived yet…",
    "authentication": { "verdict": "pass" },
    "thread_id": "thr_9f2c41d07ab3e5c8",
    "extracted": { "fields": { "order_number": "1042" } }
  }
}

API reference

Full reference →

Receiving

GET/v1/inbox
POST/v1/samples
GET/v1/deliveries
GET/v1/listen

Integrations

POST/v1/hooks
GET/v1/destinations
POST/v1/rules
POST/v1/rules/test

Domains

POST/v1/domains
POST/v1/domains/:id/verify
POST/v1/domains/:id/addresses
DEL/v1/domains/:id