EN
Open PostPal app
API

REST endpoints v1

The PostPal REST API v1 provides production endpoints for programmatic campaigns and postcards. The most relevant endpoints are currently POST /api/v1/campaigns and POST /api/v1/postcards. Every request needs a valid account API token and is recorded in the API logs. Postcard requests for API flows can also include design-bound Markdown content and API QR values. The official developer documentation is available at `https://app.getpostpal.com/developers/api`; OpenAPI and Postman are available at `https://app.getpostpal.com/developers/api/openapi.json` and `https://app.getpostpal.com/developers/api/postman.json`.

The REST API v1 is the programmatic interface for technical integrations.

Important endpoints:

  • POST /api/v1/campaigns - create campaigns programmatically.
  • POST /api/v1/postcards - submit postcard requests.

Every request needs an account API token. Use the developer page, OpenAPI file or Postman file to check payload structure and required fields precisely:

  • Developer page: https://app.getpostpal.com/developers/api
  • OpenAPI JSON: https://app.getpostpal.com/developers/api/openapi.json
  • Postman collection: https://app.getpostpal.com/developers/api/postman.json

When the linked API flow design contains Markdown areas, POST /api/v1/postcards also expects a content object. Its keys must exactly match the Markdown API field names defined in the design. Supported syntax is limited to paragraphs, line breaks, bold, italic, bullet lists and numbered lists. Unsupported syntax, missing or unknown keys, and content that does not fit the area are rejected with 422; fit errors include additional details in meta.markdown_fit_errors.

Example text from the Studio is not an API fallback. API clients must always send Markdown content in the content object. Normal editor line breaks are sent as \n in the JSON payload, for example "Hallo **Max**,\n\n- Persönlicher Vorteil".

When the linked API flow design contains API QRs with API field names, POST /api/v1/postcards also expects a qr_codes object. Its keys must exactly match the QR API field names defined in the design. Each value must be a non-empty string with at most 2048 characters and must already be the complete scan-ready HTTP(S) URL. Missing, unknown, empty or non-fitting QR values are rejected with 422; fit errors include additional details in meta.qr_fit_errors. URL QRs store their target URL in the design and are not submitted in the qr_codes object.

A simple qr_codes fragment looks like this:

{
  "qr_codes": {
    "voucher_url_1": "https://example.com/voucher/1",
    "voucher_url_2": "https://example.com/voucher/2"
  }
}

Open in PostPal

Frequently asked questions

Which REST endpoints are available?

The v1 API provides endpoints for campaigns and postcards: POST /api/v1/campaigns and POST /api/v1/postcards.

How do I authenticate API requests?

Use an account API token from the PostPal API settings.

Is there machine-readable documentation?

Yes. The developer page is available at https://app.getpostpal.com/developers/api. The OpenAPI specification is available at https://app.getpostpal.com/developers/api/openapi.json, and the Postman collection is available at https://app.getpostpal.com/developers/api/postman.json.

Can POST /api/v1/postcards include longer individual text?

Yes, when the linked API flow design defines Markdown areas. The matching content keys must be submitted; mismatched, missing or overflowing content is rejected with 422.

Can POST /api/v1/postcards include individual QR targets?

Yes, when the linked API flow design defines API QRs with API field names. The matching qr_codes keys must be submitted as complete HTTP(S) URLs. URL QRs are configured in the design and are not submitted in the qr_codes object.