Check whether a campaign can be scheduled
What scheduling checks (D177): an audience that can be read; an email with a subject in every locale it’s written in, compiling with the brand kit and components as they are now; a sender whose domain is verified with DMARC and whose email provider is connected; link parameters that read custom fields that exist. Each check with what’s wrong, in its place.
What scheduling checks (D177): an audience that can be read; an email with a subject in every locale it’s written in, compiling with the brand kit and components as they are now; a sender whose domain is verified with DMARC and whose email provider is connected; link parameters that read custom fields that exist. Each check with what’s wrong, in its place.
apiKey readAuthorizationBearer <token>A workspace API key (pf_…), created under Developers → API keys.
Scope: read
id*string^(camp)_[0-9A-Za-z]{8}$OK
application/json- response
ready*booleanchecks*array<>curl -X GET 'https://api.postforge.dev/v1/campaigns/string/checklist'{ "ready": true, "checks": [ { "check": "audience", "ok": true, "issues": [ { "path": "string", "message": "string" } ] } ]}Make a campaign’s email from a template POST
Copies the template’s latest document (or a starter’s, in the workspace’s default locale) into a new email of the campaign’s own (D104, D174), named after it, with no subject yet and everyone else getting the workspace’s default locale when the email has it, and saves the campaign with it. 409 `email_exists` when the campaign has one already: edit that one instead.
Schedule a campaign POST
Runs the checklist and, when it passes, pins the campaign’s draft and its email’s latest version and schedules its send for `at` (or now). From then on the campaign and its email are read-only (`campaign_scheduled`) until it’s unscheduled. 422 `checklist_failed` with the checks that failed; 409 `campaign_scheduled` when it’s scheduled or sending already.