Preview Campaign Email
Render a subject and body with spin syntax and merge tags filled in.
POST
https://api.foxreach.io/ api/ v1/ campaigns/{campaign_id}/ previewRequires an API key with the read scope.
Nothing is sent and nothing is stored. Spin syntax like {Hi|Hello} is resolved to one choice and merge tags like {{firstName}} are filled from the lead you name, or from sample data (John Doe, Acme Inc., Marketing Manager) when you omit leadId or the lead is not in this workspace. Three sample variations of the subject and of the body are returned as well.
Path Parameters#
campaign_idstringpathrequiredThe campaign.
Request Body#
subjectstringbodyrequiredSubject template, up to 500 characters.
bodystringbodyrequiredBody template, up to 200,000 characters.
leadIdstringbodyFill merge tags from this lead.
Response#
dataobjectShow Preview
subjectstringThe rendered subject.
bodystringThe rendered body.
subjectVariationsstring[]Three other renderings of the subject.
bodyVariationsstring[]Three other renderings of the body.
Errors#
| Status | Description |
|---|---|
401 | Missing, invalid, revoked or expired API key |
403 | API key does not have the required scope: read |
404 | Campaign not found in this workspace |
Rate Limit#
- 300 requests per minute, shared by every
readcall in your workspace. Fixed 60-second window. - Every response includes
X-RateLimit-Limit,X-RateLimit-Remaining,X-RateLimit-Reset(unix epoch seconds) andX-RateLimit-Bucket(read). - A
429response includes aRetry-Afterheader (seconds until the bucket resets).
For client-side patterns (Retry-After, exponential backoff, monitoring X-RateLimit-Remaining), see Rate Limiting.
Was this page helpful?
View as MarkdownLast updated November 4, 2026