For developers & agents
FirstSales API & Developer Resources
Use the public website API for read-only deliverability diagnostics. For authenticated account workflows, use the canonical Developer API, the firstsales CLI, or the OAuth-protected product MCP documented on developer.firstsales.io.
Developer API and CLI
The authenticated Developer API covers account-scoped product workflows and is separate from this site's public diagnostics API.
- Developer platform introduction
- Canonical Developer API OpenAPI JSON
- FirstSales CLI reference — npm package
@firstsales.io/cli, binaryfirstsales - OAuth-protected product MCP guide
OpenAPI spec
The full REST surface is described by a machine-readable OpenAPI 3.1 document, so any client generator, agent framework, or API explorer can import it directly.
- /openapi.json — OpenAPI 3.1 spec, JSON
- /api/openapi.yaml — the same spec, YAML
MCP server
FirstSales runs a Model Context Protocol (MCP) server over Streamable HTTP, so any MCP client — Claude Desktop, Claude Code, or your own agent — can call these tools directly without scraping the site.
- /mcp/ — the Streamable HTTP MCP endpoint
- /.well-known/mcp.json — discovery manifest
Client configuration
Add this to your Claude Desktop (or any Streamable HTTP-compatible) MCP client config:
{
"mcpServers": {
"firstsales": {
"url": "https://firstsales.io/mcp/"
}
}
}REST endpoints
The same capabilities exposed as MCP tools are also available as plain REST endpoints under /api/v1:
validate_emailValidate an email's format, MX records, and domain existence.
check_disposable_emailCheck whether an email uses a disposable/temporary domain.
check_catchall_domainDetect whether a domain's mailbox is configured as catch-all.
check_domain_dnsRun an SPF, DKIM, DMARC, MX, blacklist, or other DNS/deliverability check.
check_dkimLook up and validate a domain's DKIM record(s).
get_domain_ageGet a domain's registration date and age via RDAP/WHOIS.
get_dns_recordsFetch a domain's A, AAAA, MX, NS, TXT, CNAME, and SOA records.
analyze_spam_scoreScore email body content for spam-trigger words and patterns.
analyze_subject_lineAnalyze a subject line for spam risk and open-rate best practices.
analyze_cold_emailAnalyze cold outreach copy for personalization, length, and CTA clarity.
list_tutorialsList all public FirstSales tutorials.
get_tutorialGet the full content of one tutorial by slug.
Versioning and deprecation policy
The API is versioned in the URL path. The current version is v1, so every endpoint is reachable at https://firstsales.io/api/v1/<operation>. A breaking change ships under a new prefix; v1 keeps its contract. The unprefixed /api/<operation> form is an alias for the current version and may change without notice, so call the /api/v1/ form.
Deprecation policy
A version is supported for at least 180 days after its replacement is announced. Once a version is deprecated its responses carry Deprecation: true and a Sunset header with the retirement date (RFC 8594), plus a Link header pointing at the migration notes. Retirements are announced on this page. No version is currently deprecated.
Rate limits
Every endpoint is rate limited per IP over a 60-second window. Limits are 20/min for the email checks, 10/min for the DNS and domain lookups, and 30/min for the content analysers; each operation's exact limit is in the OpenAPI spec under x-rateLimit.
Every response carries the IETF RateLimit header fields, so a client can throttle itself without waiting for a refusal:
RateLimit-Limit— requests allowed in the current windowRateLimit-Remaining— requests still availableRateLimit-Reset— seconds until the window resetsRateLimit-Policy— the policy, as<limit>;w=60
Over the limit, the endpoint answers 429 with a Retry-After header in seconds and a JSON body carrying error, message, and hint.
Markdown for agents
Every page on firstsales.io has a clean Markdown mirror for LLMs and crawlers that prefer structured text over HTML.
Product documentation
For the Developer API, CLI, and agent workflows, see developer.firstsales.io.
Support
Questions about the API or MCP server? Email [email protected].