PostPal API

The Direct Mail API for DACH.

Send physical mail via API. For B2B outreach, e-commerce, and any workflow that supports HTTP requests. Printing, postage and delivery in Germany, Austria, Switzerland and the Netherlands.

Illustration of a developer sending a personalized postcard through the PostPal API to a recipient

One API. Every send scenario.

  • REST API

    One POST request per letter or in batch. Pass address data and variables, PostPal handles the rest.

  • Personalization

    Place variables in the editor, PostPal fills them automatically. Including AI-generated text via API input.

  • Print and delivery

    We print, frank and deliver in DACH. Postage is automatically optimized.

For every stack. For every industry.

B2B Outreach

  • Cold Outreach

    Physical letters in multi-touch sequences. No spam filter, no algorithm.

  • ABM

    Account-based marketing with physical touchpoints for high-value accounts.

    Learn more →
  • Event Follow-Up

    Personalized letters after trade shows and events. Who stays top of mind?

  • Deal Reactivation

    Prospects who went quiet. A letter is on their desk when they return.

E-Commerce

  • Post-Purchase

    Trigger a letter after purchase via API. Directly from your system, without a Klaviyo integration.

  • Win-Back

    Reactivate inactive customers with physical mail and an individual voucher code.

  • Loyalty

    Reward your best customers with personalized letters for your most valuable segments.

One API call. One letter on their desk.

No SDKs, no setup overhead. Directly via REST.

Full API reference →
cURL
curl --request POST \
  --url https://app.getpostpal.com/api/v1/postcards \
  --header 'Accept: application/json' \
  --header 'Authorization: Bearer YOUR_API_TOKEN' \
  --header 'Content-Type: application/json' \
  --header 'X-Request-Id: YOUR_REQUEST_ID' \
  --data '{
  "flow_id": "flow-uuid",
  "from": {
    "company": "Muster GmbH",
    "first_name": "Markus",
    "last_name": "Müller",
    "address_line1": "Unter den Linden 1",
    "zip": "10117",
    "city": "Berlin",
    "country": "DE"
  },
  "to": {
    "first_name": "Max",
    "last_name": "Mustermann",
    "address_line1": "Musterstraße 42",
    "address_line2": "c/o Familie Sommer",
    "zip": "10115",
    "city": "Berlin",
    "country": "DE"
  },
  "content": {
    "personal_message": "Hallo **Max**,\n\nVielen Dank für deinen Einkauf.",
    "next_steps": "1. Paket prüfen\n2. QR-Code scannen\n3. Vorteil sichern"
  },
  "qr_codes": {
    "voucher_url_1": "https://example.com/voucher/1",
    "voucher_url_2": "https://example.com/voucher/2"
  }
}'

Works with your stack

PostPal's REST API works with any tool that supports webhooks or HTTP requests.

  • HubSpot
  • Clay
  • Instantly
  • Make
  • n8n
  • Zapier
  • Shopify
  • Klaviyo

Frequently asked questions about the API

Do I need an account to use the API?

Yes. After registering, you receive your API key. There is no sales call or approval process.

Which countries can I send to?

Germany, Austria, Switzerland and the Netherlands. Additional EU countries, the UK and the US are available on request.

How does personalization work?

Pass variables such as name, voucher code or free text via API. PostPal fills them automatically in your uploaded design. AI-generated text can be passed as a variable too.

Is there a minimum quantity?

From 100 pieces per send, we can ship cost-efficiently. Smaller quantities are possible but have higher unit prices.

What is the difference between Dialogpost and single letters?

PostPal automatically selects the most cost-effective postage for your quantity and use case. You do not need to decide this yourself.

Can the API be used in a GDPR-compliant way?

Yes. PostPal acts as a data processor. The sender remains responsible for the addresses and applicable legal basis.