---
title: "Score and improve a cold-email body"
method: POST
path: "/api/v1/analyze/email-body"
tags: ["Analyze"]
---

# Score and improve a cold-email body

`POST /api/v1/analyze/email-body`

## Request

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

AI-assisted analysis (with local fallback) of email body copy, returning a 0-100 effectiveness score, issues, strengths, improvement suggestions, and an optional rewritten version. This POST is side-effect-free and safe to retry with the same body. Rate limit: 30 requests/minute per IP.

## Headers

- `Idempotency-Key` string

## Request body

- object
  - `emailBody` string, required

## Response `200`

Email body analysis.

- ContentAnalysisResult: Shared result shape for subject-line and email-body analysis.
  - `score` number, required
  - `suggestions` string[], required
  - `issues` string[], required
  - `strengths` string[], required
  - `improvedVersion` string

## 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)
