Skip to content
API PlatformDevelopers

Dry runs and confirmations

Check a change before making it; confirm the ones you cannot undo.

Dry runs

Add ?dry_run=true to any change. Every check runs — permissions, formats, limits — and you get a preview, but nothing changes and nothing is sent.

  • Sends and imports give a full preview (which number it would send from, which rows are valid).
  • Saving a contact filter (create or update) previews the saved filter exactly as it would be stored, and with count=true how many contacts it would match.
  • Other changes give the result of the checks.
  • Test keys always run changes as dry runs.
  • A dry run is charged to your key's read limit (300 a minute), never its change limit, and it does not use up an Idempotency-Key: the real call can send the same key.

Confirming what cannot be undone

Deleting, rotating a secret and replaying events cannot be undone. These need a header with the operation's verb:

Api-Confirm: delete

Without it you get 428 confirm_required. It is a simple guard: a bug in a loop cannot wipe data by accident.