For AI agents: the full index of this site is at https://pipefire.ai/llms.txt. Every page is also available as markdown by adding .md to its URL.

Menu
Tools API

Pipefire tools API

The free email deliverability checks on pipefire.ai/tools, over HTTPS. Pipefire's Make app, n8n node, MCP server and command line tool all use it. No account and no API key.

https://pipefire.ai/api/public/tools

How it works

Every endpoint takes a POST with a JSON body and Content-Type: application/json, and answers with JSON. A successful check returns 200.

Errors

Every error has the same body, a single error field written for a person to read:

{ "error": "That does not look like a domain. Try something like yourcompany.com." }
  • 400: the input is missing or not valid.
  • 429: too many checks this hour. The Retry-After header gives the seconds to wait.
  • 5xx: our side failed. Try again in a minute.

Limits

Limits are per caller per rolling hour: 30 an hour for the DNS checks (domain and blacklist) and 60 an hour for the text checks (headers, spam words, subject lines). Calls from Make's published IP addresses share one larger pool, 50 times those limits, so Make users do not run into each other.

Endpoints

POST /domain-check

Checks a domain's MX, SPF, DKIM and DMARC records, with a finding and a fix for each.

Request body:

{ "domain": "yourcompany.com", "selector": "google" }

Response fields:

  • domain: The domain checked.
  • checkedAt: When the check ran, ISO 8601 in UTC.
  • score: Records passing, out of 4.
  • rows[]: One per check: id (mx, spf, dkim, dmarc), label, state (pass, warn or fail), value, finding, fix, guide.

Limit: 30 an hour.

POST /blacklist-check

Checks a domain's own sending IPs, or one public IPv4 address, against the main DNS blacklists.

Request body:

{ "target": "yourcompany.com" }

Response fields:

  • input: The domain or IP checked.
  • kind: domain or ip.
  • listed: Listings found.
  • unknown: Lists that did not answer.
  • checked: Lists checked.
  • note: Present when there is nothing to check, for example a domain sending only through Google Workspace.
  • ips[]: Each IP with where it was found and results[]: id, name, state (clean or listed), site.

Limit: 30 an hour.

POST /header-check

Reads the raw headers of a received email and reports SPF, DKIM and DMARC results, alignment and delivery hops.

Request body:

{ "headers": "Received: from ...\nAuthentication-Results: ...\nFrom: ..." }

Response fields:

  • from, fromDomain, subject: From the headers.
  • date: The email's Date header, ISO 8601 in UTC, or null.
  • receiver: The server that wrote Authentication-Results.
  • score, outOf: Checks passed, out of the total.
  • rows[]: id, label, state, value, finding, fix, guide.
  • hops[]: from, by, at (ISO 8601 or null), delaySeconds.
  • totalSeconds: Delivery time across all hops.

Limit: 60 an hour.

POST /spam-check

Scores a cold email for spam trigger words and common writing problems, with fixes.

Request body:

{ "subject": "quick question", "body": "Hi Sam, ..." }

Response fields:

  • score: Out of 10.
  • verdict: One sentence.
  • triggers[]: Spam trigger words found.
  • spam[], writing[]: Issues: rule, title, detail, why, fix, guide.

Limit: 60 an hour.

POST /subject-check

Scores a cold email subject line on length, wording and spam risk.

Request body:

{ "subject": "quick question" }

Response fields:

  • subject: The subject checked.
  • score: Out of 10.
  • verdict: One sentence.
  • findings[]: title, why, fix.
  • stats: words, chars, maxWords, maxChars.

Limit: 60 an hour.

Example

curl -X POST https://pipefire.ai/api/public/tools/domain-check \
  -H 'Content-Type: application/json' \
  -d '{"domain":"yourcompany.com"}'