Campaigns

Check campaign before sending

Changed on

Run the pre-send email check on a saved campaign: the same rules as the editor's email checker, plus live verification of every link and image, including links in every A/B variant and translation unless variantId or locale pins one version. Read-only: this never sends or modifies anything, and uses POST only so personalization input can travel in a request body.

post/campaigns/{campaignId}/check

Request

  • Base URL
    https://api.sequenzy.com/api/v1
  • URL
    https://api.sequenzy.com/api/v1/campaigns/{campaignId}/check
  • Auth
    HTTP bearer

Path parameters

campaignIdstring required

Campaign ID

Request body

subscriberIdstring

Check as this stored subscriber: picks their localization and reports merge tags and conditions that would not resolve for them. Link and content rules always run on the email as written. Mutually exclusive with subscriber. Requires the subscribers:read scope as well.

variablesobject

Extra merge variables layered over the contact's attributes.

localestring

Check a specific localization instead of deriving it from the contact.

variantIdstring

Check a specific A/B test variant. Required for sequence steps whose nodeType is action_ab_test. Sequence variants also need the ab_tests:read scope. Ignored for templates.

variationIdstring

Check a design variation of the campaign's or step's email instead of its saved content. It must be ready; it can't be combined with variantId. Ignored for templates.

linksboolean

Verify every link and image over the network: HTTP status, redirects, DNS, TLS certificates, and image type and size. Pass false for a fast, rules-only check.

Example request

{
  "subscriberId": "sub_abc123",
  "locale": "es",
  "variantId": "var_abc123",
  "variationId": "evar_abc123"
}

Response

Check completed

successboolean
scoreinteger

Overall score across subject (25%), preview text (15%) and content (40%), including live link findings, rescaled to 100. Sender settings are not part of this check, so the editor's score (which weighs the sender at 20%) can differ slightly.

grade'A' | 'B' | 'C' | 'D' | 'F'
placement'Primary' | 'Promotions' | 'Spam'

Predicted inbox tab.

linksCheckedboolean

False when links was false in the request.

subjectstring

Subject line with merge tags resolved for the checked contact.

previewTextstring nullable
localestring
unevaluatedConditionsobject[]

Same as the render endpoints' unevaluatedConditions.

Example response

{
  "success": true,
  "score": 82,
  "categories": {
    "subject": {
      "maxScore": 100
    },
    "preview": {
      "maxScore": 100
    },
    "content": {
      "maxScore": 100
    }
  },
  "issues": [
    {
      "message": "Broken link: \"Shop now\" (acme.com/sale) - Page not found (404).",
      "rule": "links.broken"
    }
  ],
  "locale": "en"
}

Changes