Skip to main content
POST
/
v1
/
content-spam-check
Check Email Copy for Spam Triggers
curl --request POST \
  --url https://api.orbisearch.com/v1/content-spam-check \
  --header 'Content-Type: application/json' \
  --header 'X-API-Key: <api-key>' \
  --data '
{
  "content": "ACT NOW!! This EXCLUSIVE offer expires TONIGHT. Guaranteed to DOUBLE your revenue and make you $50,000 fast. Click here to claim your FREE spot!!!",
  "subject": "URGENT: claim your spot before midnight"
}
'
{
  "rules": [
    {
      "description": "Plain-text message focused on large sums of money",
      "name": "MONEY_NOHTML",
      "points": 2.5
    },
    {
      "description": "Talks about 'acting now' with capitals",
      "name": "ACT_NOW_CAPS",
      "points": 0.1
    }
  ],
  "score": 2.6,
  "threshold": 5,
  "verdict": "borderline"
}
Analyse the plain text of a cold email for the content signals SpamAssassin flags — the engine many SMB mailboxes, hosting providers, IT shops, and education and government domains run on inbound mail. The response gives the overall score, the spam threshold (default 5.0), a verdict (clean, borderline, or likely_flagged), and the rules that fired with their points and plain-English descriptions. SpamAssassin reacts to phrasing, not strategy. To lower a score, reword the phrases behind the highest-points rules and re-check — you keep the offer, you change the wording. It’s one tool in your deliverability belt: a clean result isn’t a guarantee of inbox placement, but it’s a fast way to reverse-engineer what content filters react to before you send.

Pricing and limits

Free — no credits are deducted. Usage is bounded by 100 checks per day per account, shared with the in-dashboard spam checker (both draw down the same pool), plus the standard 20 requests per second per API key. Both limits return 429; the code field (daily_quota_exceeded vs rate_limited) and the Retry-After header tell them apart. See errors for the full reference.

Authorizations

X-API-Key
string
header
required

API key for authentication

Body

application/json

Email copy to analyse for spam-filter triggers.

content
string
required

Plain-text email body to analyse. Cold email is plain text in practice; HTML is not required.

Required string length: 1 - 10000
subject
string | null

Optional subject line. When provided, it is included in the analysis.

Maximum string length: 255

Response

Successful Response

SpamAssassin analysis of the submitted email copy.

score
number
required

Total SpamAssassin score for the copy. Higher means more spam-like.

Example:

2.6

threshold
number
required

Score at or above which mail is treated as spam (SpamAssassin default is 5.0).

Example:

5

verdict
string
required

Overall assessment: clean (well below threshold), borderline (approaching threshold), or likely_flagged (at or above threshold).

Example:

"borderline"

rules
SpamRule · object[]
required

Content rules that fired, highest-scoring first. Empty when nothing triggered.