Guides

Testing

Build and check an integration without mailing anyone or spending money.

Postaged has no test keys or sandbox. Use these safe paths to build and check an integration without mailing anyone or spending money.

Send test request

Open a campaign's audience step, open its API / Webhook setup, paste a payload into Request, and choose Send test request.

  • It runs the payload through the real checks and shows you the response, so you see each recipient's result before you send live.
  • It never claims an address, never charges, and never mails.
  • It accepts up to 10 recipients.
  • It still runs real address verification, so an address that would not verify shows up here.

The quickstart walks through it step by step.

Check records with ?validate=1

Send a batch to POST /api/integrations/push/v1/records?validate=1 with your integration key. It checks the records against the contract, answers with the same rejections and warnings a push would, and writes nothing. It needs no open sync and no Idempotency-Key.

curl "https://www.postaged.com/api/integrations/push/v1/records?validate=1" \
  -H "Authorization: Bearer $POSTAGED_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "records": [
      {
        "external_id": "crm-1042",
        "fields": {
          "email": "dana@example.com",
          "first_name": "Dana",
          "deal_value": "1500"
        }
      },
      {
        "external_id": "crm-0977",
        "op": "delete"
      }
    ]
  }'
Response200 OK
{
  "validated": true,
  "accepted": 2,
  "rejected": 0,
  "rejections": [],
  "warnings": []
}

The validate_records tool

The Integrations MCP server's validate_records tool runs the same check from an agent: it writes nothing and needs no open sync. See Connect Claude to connect it.

Send test event

Choose Send test event on a webhook endpoint in Settings > API & Webhooks. We send a qr.scanned event with example data and a top-level "test": true.

  • A test delivery is never retried.
  • It never counts toward disabling the endpoint.
Test event
{
  "event": "qr.scanned",
  "id": "evt_test_5d0a9c3e7f21b846",
  "test": true,
  "scanned_at": "2026-08-09T18:41:22Z",
  "campaign": { "id": "PA-EXAMPLE", "name": "Example campaign" },
  "recipient": {
    "first_name": "Dana",
    "last_name": "Whitfield",
    "email": "dana@example.com",
    "phone": null,
    "address_1": "18 Rowan St",
    "address_2": null,
    "city": "Hartford",
    "state": "CT",
    "zip": "06105-2214"
  },
  "location": {
    "city": "Hartford",
    "region": "CT",
    "latitude": 41.76,
    "longitude": -72.69
  },
  "destination": "https://example.com/offers"
}