Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintfax.com/docs/llms.txt

Use this file to discover all available pages before exploring further.

Every mintfax API error returns a consistent JSON envelope. The error field is a stable, machine-readable code you can match on. The message field is human-readable. Most errors also include action (a programmatic hint for what to do next) and docs (a permalink back to this page).

Error response shape

{
  "error": "insufficient_balance",
  "message": "Insufficient balance for this operation.",
  "action": "top_up_balance",
  "docs": "https://mintfax.com/docs/errors/insufficient-balance"
}
FieldTypeAlways presentDescription
errorstringYesStable machine-readable code from the catalog below
messagestringYesHuman-readable description
actionstringYesProgrammatic next step (see per-code entries)
docsstringYesPermalink to the relevant entry on this page
contextobjectNoExtra fields specific to the error (e.g. validation details, balance amounts)
Validation errors include a nested context.errors object with field-level messages. See validation_failed below.

Error catalog

Each entry below is a stable error code returned in the error field. Anchors on this page match the code with hyphens (e.g. /errors#insufficient-balance).

validation_failed

HTTPAction
422fix_request
The request body or query parameters failed validation. Check context.errors for per-field messages. When it fires: A required field is missing, a field has the wrong type, or a value is outside its allowed range. What caused it: The request payload does not satisfy the endpoint’s validation rules. Common triggers: omitting to or file on POST /fax, sending a non-E.164 phone number, or exceeding the 10 MB file size limit. Next step: Read context.errors, fix the flagged fields, and resubmit. The response body looks like this:
{
  "error": "validation_failed",
  "message": "The to field is required.",
  "action": "fix_request",
  "docs": "https://mintfax.com/docs/errors/validation-failed",
  "context": {
    "errors": {
      "to": ["The to field is required."],
      "file": ["The file must be a PDF, TIFF, or JPEG."]
    }
  }
}

unauthenticated

HTTPAction
401check_credentials
No valid credentials were provided. When it fires: The Authorization header is present but the value is not a recognized Bearer format, or the header contains a malformed value. What caused it: The request included an Authorization header that could not be parsed as a Bearer API key. Next step: Confirm the header value is Bearer fx_test_... (sandbox) or Bearer fx_live_... (live). Regenerate the API key in the dashboard if needed.

api_key_missing

HTTPAction
401check_credentials
No Authorization header was sent. When it fires: The request reaches the API gateway without an Authorization header. What caused it: The HTTP client is not attaching the header. This is common when switching between sandbox and production base URLs and forgetting to set the header in the new environment. Next step: Add Authorization: Bearer <your-api-key> to the request.

api_key_invalid

HTTPAction
401check_credentials
The API key was sent but is not recognized. When it fires: The Lambda authorizer looks up the key in DynamoDB and finds no match. What caused it: The API key was revoked, rotated, or copied incorrectly. Trailing whitespace and newline characters are common culprits when keys are pasted from a .env file. Next step: Verify the API key in your dashboard. If it was rotated, use the new one. If you are unsure which environment you are targeting, sandbox keys start with fx_test_ and live keys start with fx_live_.

forbidden

HTTPAction
403check_credentials
The API key is valid but does not have permission to access this resource. When it fires: The authenticated workspace does not own the requested resource (e.g. fetching a fax that belongs to a different workspace). What caused it: A fax ID or resource ID from one workspace was used with an API key from another workspace. Next step: Confirm you are using the correct API key for the workspace that owns the resource. If you manage multiple workspaces, check that the fax ID matches the environment you are calling.

not_found

HTTPAction
404verify_id
The requested resource does not exist. When it fires: A GET, DELETE, or POST .../resend targets a fax ID (or other resource ID) that does not exist in the current environment. What caused it: The ID is wrong, the resource was deleted, or you are querying the sandbox environment for a fax that was sent in the live environment (or vice versa). Next step: Double-check the resource ID. Confirm you are using the right API key for the right environment. If the fax was deleted via DELETE /fax/{id}, it is gone permanently.

insufficient_balance

HTTPAction
402top_up_balance
Not enough credits to complete this operation. When it fires: POST /fax or POST /fax/{id}/resend is called and the workspace’s available balance (current balance minus outstanding holds) is less than the cost of the fax. What caused it: The workspace has run out of credits or has too many in-flight faxes holding credits. In the sandbox environment, the sandbox starts with a fixed credit balance that can be reset from the dashboard. Next step: Purchase more credits in the dashboard or wait for in-flight faxes to complete (which releases their holds). Check GET /account/balance to see your current available balance.

fax_data_purged

HTTPAction
422submit_new_fax
The fax document data has been deleted and cannot be retrieved or resent. When it fires: GET /fax/{id}/image or POST /fax/{id}/resend is called for a fax whose document data has been purged from storage. What caused it: The fax reached a terminal state and the data retention window expired. If the workspace uses zero-footprint mode, document data is deleted immediately after the fax reaches a terminal state. Next step: Submit a new fax with the original document. The fax metadata record (GET /fax/{id}) is still available even after the document data is purged.

fax_not_terminal

HTTPAction
409wait_for_completion
The fax has not yet reached a terminal state. When it fires: DELETE /fax/{id} is called while the fax status is queued, submitted, or in_progress. What caused it: You attempted to delete a fax that is still being processed. A fax must reach delivered or failed status before it can be deleted. Next step: Poll GET /fax/{id} or listen for the terminal event via your webhook, then retry the delete. See the glossary for definitions of fax statuses.

workspace_inactive

HTTPAction
403activate_workspace
The API key belongs to a workspace that is not active. When it fires: Any API call is made with an API key tied to a deactivated workspace. What caused it: The workspace was suspended (e.g. for billing reasons) or manually deactivated by an administrator. Next step: Log in to the dashboard and check the workspace status. If the workspace was suspended for billing, resolve the outstanding balance to reactivate it.

rate_limit_exceeded

HTTPAction
429wait_and_retry
Too many requests in too short a window. When it fires: The request rate for this API key exceeds the allowed threshold at the API gateway. What caused it: Bursting too many requests. Automated retry loops without backoff are a common trigger. Next step: Back off and retry with exponential delay. The Retry-After header (when present) tells you how many seconds to wait. If you consistently hit the limit, contact support to discuss a rate increase.

internal_server_error

HTTPAction
500retry_or_contact_support
Something unexpected went wrong on the mintfax side. When it fires: An unhandled exception or infrastructure failure occurs while processing the request. What caused it: A bug or transient failure in the mintfax backend. Your request was valid. Next step: Retry the request. If you included an Idempotency-Key header, the retry is safe to repeat without side effects. If the error persists, contact support with the request ID from the response headers.

HTTP status code summary

CodeMeaning
200Success
201Resource created
204Success, no content
400Bad request (malformed JSON, wrong content type)
401Missing or invalid API key
402Insufficient balance
403Forbidden, or workspace inactive
404Resource not found
409Conflict (resource not in expected state)
422Validation error, or fax data purged
429Rate limit exceeded
500Internal server error

  • Events - webhook event types and payloads
  • Glossary - definitions of fax statuses, environments, and other terms
Last updated: 2026-05-09