---
title: "Score email content for spam-trigger risk"
method: POST
path: "/api/v1/analyze/spam"
tags: ["Analyze"]
---

# Score email content for spam-trigger risk

`POST /api/v1/analyze/spam`

## Request

- Base URL: `https://firstsales.io`
- URL: `https://firstsales.io/api/v1/analyze/spam`
- Auth: none required

AI-assisted analysis (with a deterministic local fallback when no AI key is configured) that flags spam trigger words, excessive capitalization, urgency language, and misleading claims, returning a 0-100 spam-risk score and improvement suggestions. This POST is side-effect-free and safe to retry with the same body. Content must be 10-10000 characters. Rate limit: 30 requests/minute per IP.

## Headers

- `Idempotency-Key` string

## Request body

- object
  - `content` string, required

## Response `200`

Spam risk analysis.

- SpamAnalysisResult
  - `score` number, required: 0 = clean, 100 = definitely spam.
  - `triggerWords` string[], required
  - `suggestions` string[], required

## Other responses

- `400`: Invalid request — bad input, missing field, or malformed value.
- `429`: Rate limit exceeded for this endpoint. Wait Retry-After seconds and retry.
- `500`: Unexpected server error.

---

[API](https://skmtc.dev/firstsales/apis/firstsales-public-api.md) · [All operations](https://skmtc.dev/firstsales/apis/firstsales-public-api/llms.txt) · [OpenAPI document](https://skmtc.dev/firstsales/apis/firstsales-public-api/revisions/3856191adf12?raw)
