Skip to main content
The universal fallback — works with anything that can POST JSON

Mail a letter from any webhook

No native app for your tool yet? paperplane’s REST API has no API-key gate — POST an order directly from a generic webhook (Webhooks by Zapier, Make’s HTTP module, or your own code) and it prints and mails from $0.99.

From $0.99 · postage included · no account needed

Instead of waiting for a native app

There is no separate webhook mode to wait for: the native apps are wrappers over the same POST /v1/orders. If your tool can send JSON over HTTPS, the integration exists today.

How it works

Set up Webhook (generic) in three steps.

The universal fallback — works with anything that can POST JSON

  1. Step 01

    Point the source

    Point whatever fires the event — a form, a CRM, an internal system — at a webhook step or a direct server-to-server call.

  2. Step 02

    POST the payload

    POST it straight to POST /v1/orders, or map it into fields first if the source data needs reshaping.

  3. Step 03

    Sandbox, then go live

    Set “sandbox”: true while testing, then flip it off and pay from a prepaid balance or handle the returned payment_url.

Copy the config.

Direct POST from anywhere

{
  "mail_class": "first_class",
  "sandbox": true,
  "text": "Dear Ms. Alvarez, ...",
  "to":   { "name": "Maria Alvarez", "line1": "1 Main St",
            "city": "Richmond", "state": "VA", "zip": "23220" },
  "from": { "name": "Alex Rivera", "line1": "12 Grove Ave",
            "city": "Richmond", "state": "VA", "zip": "23221" },
  "email": "alex@example.com"
}

Same call as curl

curl -X POST https://sendpaperplane.com/v1/orders \
  -H 'Content-Type: application/json' \
  -d '{
    "mail_class": "first_class",
    "sandbox": true,
    "text": "Dear Ms. Alvarez, ...",
    "to":   { "name": "Maria Alvarez", "line1": "1 Main St",
              "city": "Richmond", "state": "VA", "zip": "23220" },
    "from": { "name": "Alex Rivera", "line1": "12 Grove Ave",
              "city": "Richmond", "state": "VA", "zip": "23221" },
    "email": "alex@example.com"
  }'

Under the hood

This is the same public REST API every native app and automation platform on this directory calls underneath — there’s no separate "webhook mode." If a system can send an HTTP POST with JSON, it can mail a letter, with the same USPS address verification and free sandbox as every other path.

Supported action fields

Every integration maps into the same fixed set of fields, the ones the REST API and MCP tools take directly.

FieldWhat it does
mail_classfirst_class, certified, certified_err (Certified with electronic Return Receipt), or priority
text or pdf_urlthe letter body as plain text, or a fetchable PDF to print as-is
torecipient name + street/city/state/zip, verified against USPS data
fromreturn address, printed on the envelope and used for undeliverable mail
emailwhere the receipt and status updates go — no account required

Popular Webhook (generic) workflows

Or skip the automation tool: ask Claude or ChatGPT

Every integration here sits on the same MCP endpoint agents use directly. Instead of wiring a trigger to an action, ask Claude or ChatGPT to draft and mail the letter. Same mailing tools (quote_letter, send_letter, get_letter_status), same price, same free sandbox.

Send mail from ClaudeSend mail from ChatGPT

Send your first letter from Webhook (generic).

Sandbox runs the whole pipeline for free and mails nothing. Live sends start at $0.99, one all-in price.

curl -X POST https://sendpaperplane.com/v1/orders \
  -H 'Content-Type: application/json' \
  -d '{
    "mail_class": "first_class",
    "sandbox": true,
    "text": "Dear Ms. Alvarez, ...",
    "to":   { "name": "Maria Alvarez", "line1": "1 Main St",
              "city": "Richmond", "state": "VA", "zip": "23220" },
    "from": { "name": "Alex Rivera", "line1": "12 Grove Ave",
              "city": "Richmond", "state": "VA", "zip": "23221" },
    "email": "alex@example.com"
  }'

Common questions

Do I need an API key to POST to /v1/orders?

No — the endpoint is open. Each order carries its own payment (a prepaid credit code for hands-off automation, or a paperplane payment link (payment_url) a human approves). Sandbox orders need nothing.

What if my tool doesn’t have a native Zapier/Make/n8n trigger either?

A raw webhook or a scheduled script polling your own system both work the same way — anything that can construct the JSON body and make an HTTPS POST is a complete integration.

Is this less reliable than a native app?

No — native apps on this directory are thin wrappers over this exact same API. A direct POST just skips the wrapper.

Send your first piece of mail from Webhook (generic).

A letter, in your words or drafted from your direction. You approve the exact total, and USPS delivers.

✓ You approve the exact total✓ No account neededFrom $0.99

Related integrations

All integrations · API docs