Back to developer docs

FaxDrop API

Developer Changelog

API changes that can affect developers, MCP clients, automation, rate limits, status polling, and integration behavior.

Subscribe via RSS

2026-07-08

Sandbox test keys (fd_test_)

API keys, POST /api/send-fax, GET /api/v1/fax/{faxId}, and MCP clients

What changed
You can now generate a sandbox API key with the fd_test_ prefix in the account dashboard. A sandbox POST /api/send-fax never calls the carrier and never uses credits; it returns a synthetic fdtest_ fax that is immediately completed, pollable at GET /api/v1/fax/{faxId} with the same test key. Live keys (fd_live_) and test keys are isolated: a test key cannot read live faxes and a live key cannot read sandbox faxes. Sandbox faxes expire after 24 hours.
Behavior impact
No change to live sends. Live keys behave exactly as before. Sandbox is an additive, isolated mode.
Action needed
Use an fd_test_ key to wire and test your integration without billing or real transmission, then switch to an fd_live_ key for production.

2026-07-08

Developer changelog RSS feed

/for-developers/changelog, MCP clients, and agent watchers

What changed
Added a machine-readable RSS 2.0 feed of this developer changelog at /for-developers/changelog/rss.xml, plus a compact "What's new" dropdown on /for-developers surfacing recent entries. llms.txt now links the feed.
Behavior impact
No API behavior change. New subscription surface for developer-impacting changes only.
Action needed
Subscribe to /for-developers/changelog/rss.xml to be notified of API behavior changes instead of polling the page.

2026-07-08

Published retry, backoff, and status guidance

/for-developers, llms.txt, agent-prompt, and MCP clients

What changed
Added a Reliability section to the developer docs and agent-readable copy. It documents which responses are safe to retry (transient 500 on reads/status with bounded exponential backoff; 429 and 409 after Retry-After), which are not (400/401/402, and resubmitting a send once a faxId exists), and states that POST /api/send-fax must not be auto-retried after a timeout or 500 until idempotent send retries ship. Clarifies that FaxDrop's health monitors are internal (no public status page) and incidents go to support@faxdrop.com.
Behavior impact
No API behavior change. Documentation and guidance only.
Action needed
Adopt the retry rules in your client: backoff on transient read failures, respect Retry-After, and never blind-retry a send. Poll status after a faxId is returned.

2026-07-08

Recent fax history endpoint for API keys

GET /api/v1/faxes, MCP clients, and agent-readable docs

What changed
Added a read-only GET /api/v1/faxes endpoint. With an X-API-Key header it lists your recent API-key-sent faxes (fax id, recipient number, normalized status, pages, credits used, created and completed timestamps, delivery-email preference, and a status URL). Web-UI sends are excluded. Supports a limit query parameter (default 25, max 100). No document contents are returned.
Behavior impact
No change to send or status behavior. New read surface only, using the status_poll read rate-limit policy.
Action needed
Use GET /api/v1/faxes to reconcile sends by fax id instead of relying on recipient number alone.

2026-07-08

Account balance endpoint for API keys

GET /api/v1/account/balance, MCP clients, and agent-readable docs

What changed
Added a read-only GET /api/v1/account/balance endpoint. With an X-API-Key header it returns available credits, monthly remaining, purchased credits, subscription tier with included and used credits this period, and API sends this month. It never returns raw Stripe IDs or email. Subscription state is read uid-first so API-key callers see the same subscription the send path charges against.
Behavior impact
No change to send or status behavior. The endpoint uses the status_poll read rate-limit policy. It is a new read surface only.
Action needed
Call GET /api/v1/account/balance with your X-API-Key to check credit and subscription state instead of scraping the account UI.

2026-06-25

Developer HIPAA wording narrowed to current posture

/for-developers, llms.txt, agent-readable docs, and MCP clients

What changed
Developer-facing copy now uses healthcare workflow support and signed carrier BAA wording instead of broad product-level HIPAA claims. The API contract and request or response fields did not change.
Behavior impact
No send, status, auth, rate-limit, pricing, or credit behavior changed. This is a trust-language and documentation posture update only.
Action needed
Do not market FaxDrop with broad product-level HIPAA claims from your integration unless FaxDrop later confirms broader vendor BAA coverage. Use healthcare workflow support or signed carrier BAA wording.

2026-06-25

Launch destinations limited to 50 US states and Canada

POST /api/send-fax, OpenAPI, MCP clients, and agent-readable docs

What changed
FaxDrop now documents and enforces destination support in the 50 US states and Canada for launch. Other destination countries are not currently available through the send endpoints.
Behavior impact
Requests with valid destination numbers outside the 50 US states and Canada now return 400 before credit reservation or Sinch send. Existing sends to the 50 US states and Canada are unchanged.
Action needed
Send only destination numbers in the 50 US states or Canada for launch. Keep any broader international workflow behind your own feature flag until FaxDrop publishes region-aware pricing and support.

2026-06-13

Structured carrier failure fields in status polling

GET /api/v1/fax/{faxId}, OpenAPI, MCP clients, and status polling

What changed
Failed or partial status responses now include errorCode and errorType when Sinch provides structured carrier failure evidence. The existing error field remains available and may be null when Sinch only returns structured fields.
Behavior impact
Clients can distinguish document conversion failures from recipient-line failures without parsing generic text. Non-terminal and completed responses are unchanged.
Action needed
When status is failed or partial, read errorCode and errorType before falling back to error text.

2026-05-28

API-key delivered email suppression

POST /api/send-fax, terminal notifications, MCP clients, and batch senders

What changed
API-key sends can pass sendEmail=false to suppress delivered-fax confirmation emails for a specific fax. FaxDrop stores the per-fax preference on the fax status record and echoes deliveryEmail as enabled or suppressed in the success response.
Behavior impact
The default remains sendEmail=true. Consumer web sends keep delivered emails enabled. Failed-fax emails, status pages, refunds, and operator alerts still run. Status polling and reconcile treat the suppressed delivered email as satisfied so healthy completed faxes do not stay pending.
Action needed
Batch API clients that rely on status polling for audit records may pass sendEmail=false. Clients that want email confirmations should omit the field or pass sendEmail=true.

2026-05-26

Developer API reliability bundle

Developer API, MCP clients, status polling, and rate limits

What changed
FaxDrop aligned terminal success on completed, split API-key send and status polling limits, exempted valid API-key sends from the anonymous IP cap, and added a per-fax status refresh throttle.
Behavior impact
API-key sends use the send_fax policy at 10/min, 30/hr, and 500/day. Status polling uses the status_poll policy at 60/min, 500/hr, and 2000/day. Active status polls refresh from Sinch at most once every 10 seconds per fax ID.
Action needed
Treat completed as terminal success. Treat older delivered wording as a legacy alias. Use the X-RateLimit-Policy and status freshness headers when tuning client polling.

Security & Compliance

Healthcare faxing

Carrier BAA signed | Uploaded files not retained by FaxDrop

PCI DSS Level 1

Payments secured by Stripe | No card data touches our servers

256-bit SSL

End-to-end TLS 1.2+ encryption in transit

App Storage

Uploaded files are cleared from FaxDrop after send