Sign inGet $5 free
Compare/Email campaign preflight

Email campaign preflight

Checks an email campaign's links, UTMs, images, size, preheader and unsubscribe link before sending. 1 live · 1 in the catalog.

FreeCheck an email campaign before sendingFree with any account
ProviderPriceSuccessSpeedStatus
Check an email campaign before sendingSuperpowers email preflightFree100%455msLive

Run a comparison

Pick up to 6 live providers. Each one is charged at its own price; failures are free.

Sign in to run comparisons. New accounts get $5 free.Sign in

Questions

Which Email campaign preflight API is cheapest?

Superpowers email preflight is free with any Superpowers account.

Is there a free Email campaign preflight API?

Yes. Superpowers email preflight is free with any Superpowers account; you only need a key.

How do I call a Email campaign preflight API from an AI agent?

Call it with one API key: POST /v1/run with "tool": "emailcheck.preflight", or through the MCP server. Every provider takes the same input and returns the same output, and failed calls are not charged. New accounts get $5 free; see /docs for the MCP setup.

For developersAPI call and the shared input and output format

Call it with one API key: POST /v1/run with "tool": "emailcheck.preflight", or through the MCP server. Every provider takes the same input and returns the same output, and failed calls are not charged.

Input

{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "html": {
      "type": "string",
      "maxLength": 800000,
      "description": "The email HTML as it will be sent"
    },
    "url": {
      "type": "string",
      "format": "uri",
      "maxLength": 2000,
      "description": "Instead of html: a public \"view in browser\" link of the email"
    },
    "from_domain": {
      "type": "string",
      "maxLength": 253,
      "description": "Sending domain, e.g. news.example.com; adds an SPF/DKIM/DMARC check"
    },
    "expected_utm": {
      "type": "object",
      "additionalProperties": false,
      "description": "UTM values every tracked link should carry, e.g. {\"source\":\"newsletter\",\"campaign\":\"black-friday\"}",
      "properties": {
        "source": {
          "type": "string",
          "maxLength": 100
        },
        "medium": {
          "type": "string",
          "maxLength": 100
        },
        "campaign": {
          "type": "string",
          "maxLength": 100
        }
      }
    },
    "own_domains": {
      "type": "array",
      "items": {
        "type": "string",
        "maxLength": 253
      },
      "maxItems": 10,
      "description": "Your own site domains; links to them should carry UTM tags (default: domains of the most linked site)"
    },
    "max_links": {
      "type": "integer",
      "minimum": 1,
      "maximum": 60,
      "default": 40,
      "description": "How many distinct links to follow"
    }
  }
}

Normalized output

{
  "score": 0,
  "findings": [
    {
      "severity": "",
      "area": "",
      "finding": "",
      "fix": ""
    }
  ],
  "links": [
    {
      "url": "",
      "status": 0,
      "final_url": "",
      "hops": 0
    }
  ],
  "images": [
    {
      "src": "",
      "status": 0,
      "bytes": 0,
      "alt": ""
    }
  ],
  "size": {
    "bytes": 0,
    "clipped_in_gmail": false
  }
}