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

# Send a Fax

> Submit a fax for delivery. The file is staged and the fax is queued for processing.
A credit hold is placed on submission and captured on delivery or released on failure.



## OpenAPI

````yaml /openapi.json post /faxes
openapi: 3.1.0
info:
  title: mintfax API
  version: '1.0'
  description: >-
    Developer-first fax API. Send faxes with a single API call.


    ## Authentication


    Most endpoints require a Bearer token in the `Authorization` header.


    - **Account keys** (`mfx_acct_...`) access account-level endpoints
    (`/account`, `/account/balance`, `/account/transactions`, `/account/keys`).

    - **Environment keys** (`mfx_test_...` for test, `mfx_live_...` for live)
    access operational endpoints (`/environment`, `/faxes`, `/webhooks`,
    `/events`).

    - Registration endpoints (`POST /account/register` and `POST
    /account/register/verify`) do not require authentication.


    ## Base URL


    All API requests use `https://api.mintfax.com/v1` as the base URL.
  contact:
    name: mintfax Support
    email: support@mintfax.com
    url: https://mintfax.com/docs
servers:
  - url: https://api.mintfax.com/v1
    description: Production
security:
  - bearerAuth: []
tags:
  - name: Account
    description: >-
      Account-level resources: registration, account info, balances, and API
      keys.
  - name: Environment
    description: >-
      Test and live environment configuration shared across all operational
      requests.
  - name: Fax
    description: Send, list, retrieve, resend, and purge faxes.
  - name: Events
    description: >-
      Read the immutable event log for everything that has happened in the
      environment.
  - name: Webhooks
    description: >-
      Manage webhook endpoints and inspect or replay individual delivery
      attempts.
paths:
  /faxes:
    post:
      tags:
        - Fax
      summary: Send a Fax
      description: >-
        Submit a fax for delivery. The file is staged and the fax is queued for
        processing.

        A credit hold is placed on submission and captured on delivery or
        released on failure.
      operationId: sendFax
      parameters:
        - name: Idempotency-Key
          in: header
          description: >-
            Client-generated key for idempotent submission (recommended).
            Duplicate keys return the original response without re-processing.
            Keys expire after 24 hours.
          schema:
            type: string
          example: order-1234-attempt-1
      requestBody:
        required: true
        content:
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/SubmitFaxRequest'
      responses:
        '201':
          description: '`FaxSubmissionResource`'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FaxSubmissionResource'
          headers:
            X-Idempotency-Key:
              description: >-
                Echoed back when the request supplied an `Idempotency-Key`
                header. Absent when the client omitted the request header.
              required: false
              schema:
                type: string
              example: order-1234-attempt-1
            Idempotency-Replayed:
              description: >-
                Set to `true` when this response was served from the idempotency
                cache rather than re-processing the request. Absent (not
                `false`) when the response represents a freshly processed
                submission.
              required: false
              schema:
                type: string
              example: 'true'
        '401':
          description: The provided API key is not recognised.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                api_key_invalid:
                  value:
                    error: api_key_invalid
                    message: The provided API key is not recognised.
                    action: check_credentials
                    docs: https://mintfax.com/docs/errors/api-key-invalid
        '402':
          description: Insufficient balance for this operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                insufficient_balance:
                  value:
                    error: insufficient_balance
                    message: Insufficient balance for this operation.
                    action: top_up_balance
                    docs: https://mintfax.com/docs/errors/insufficient-balance
                    context:
                      available: 50
                      required: 100
        '403':
          description: >-
            Live calls require account activation. Complete a first credit
            purchase to activate.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                account_not_activated:
                  value:
                    error: account_not_activated
                    message: >-
                      Live calls require account activation. Complete a first
                      credit purchase to activate.
                    action: activate_account
                    docs: https://mintfax.com/docs/errors/account-not-activated
                key_not_scoped_for_operations:
                  value:
                    error: key_not_scoped_for_operations
                    message: >-
                      This API key cannot send faxes or read environment data.
                      Use an mfx_test_ or mfx_live_ key.
                    action: use_operational_key
                    docs: >-
                      https://mintfax.com/docs/errors/key-not-scoped-for-operations
        '422':
          description: The request failed validation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                validation_failed:
                  value:
                    error: validation_failed
                    message: The request failed validation.
                    action: fix_request
                    docs: https://mintfax.com/docs/errors/validation-failed
                    context:
                      errors:
                        to:
                          - The to field is required.
                        file:
                          - The file field is required.
        '500':
          description: >-
            An unexpected error occurred. Please retry; if the problem persists,
            contact support.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                internal_server_error:
                  value:
                    error: internal_server_error
                    message: >-
                      An unexpected error occurred. Please retry; if the problem
                      persists, contact support.
                    action: retry_or_contact_support
                    docs: https://mintfax.com/docs/errors/internal-server-error
components:
  schemas:
    SubmitFaxRequest:
      type: object
      properties:
        to:
          type: string
          pattern: ^\+[1-9]\d{1,14}$
        file:
          type: string
          format: binary
          contentMediaType: application/octet-stream
          maxLength: 10240
        webhook_url:
          type:
            - string
            - 'null'
          format: uri
          maxLength: 2048
        max_attempts:
          type:
            - integer
            - 'null'
          minimum: 1
          maximum: 5
        csid:
          type:
            - string
            - 'null'
          maxLength: 20
        page_size:
          type:
            - string
            - 'null'
          enum:
            - letter
            - legal
            - a4
            - b4
        resolution:
          type:
            - string
            - 'null'
          enum:
            - standard
            - fine
        optimize_for:
          type:
            - string
            - 'null'
          enum:
            - text
            - photo
        tags:
          type:
            - array
            - 'null'
          items:
            type: string
            maxLength: 255
          maxItems: 10
      required:
        - to
        - file
      title: SubmitFaxRequest
    FaxSubmissionResource:
      type: object
      properties:
        id:
          type: string
          description: Unique fax identifier (fax_-prefixed).
          examples:
            - fax_8aZqRm4yT3vK7pNxJ2bH9c
        status:
          $ref: '#/components/schemas/FaxStatus'
          description: Initial fax status.
          examples:
            - queued
        to:
          type:
            - string
            - 'null'
          description: Destination fax number in E.164 format.
          examples:
            - '+12125551234'
        tags:
          type: object
          description: Echo of caller-supplied metadata. Empty serializes as `{}`.
          additionalProperties:
            type: string
        created_at:
          type: string
          format: date-time
          description: UTC timestamp when the fax record was created.
        resent_from:
          type: string
          description: >-
            Original fax identifier when this submission is a resend; only
            present on resends.
          examples:
            - fax_8aZqRm4yT3vK7pNxJ2bH9c
      required:
        - id
        - status
        - to
        - tags
        - created_at
      title: FaxSubmissionResource
    Error:
      type: object
      properties:
        error:
          type: string
          description: Machine-readable error code.
          example: insufficient_balance
        message:
          type: string
          description: Human-readable description.
          example: Insufficient balance for this operation.
        action:
          type: string
          description: Suggested next step for the caller.
          example: top_up_balance
        docs:
          type: string
          format: uri
          description: URL to the docs entry for this error code.
          example: https://mintfax.com/docs/errors/insufficient-balance
        request_id:
          type: string
          description: >-
            Unique identifier for this API request, also returned in the
            X-Request-Id response header. Include this value in support requests
            for fast triage.
          pattern: ^req_[0-9A-HJKMNP-TV-Z]{26}$
          example: req_01J9XYZQ8KH7B3R0WXAZP8VW6F
        context:
          type: object
          description: Error-specific extra fields (e.g. balances, validation errors).
          additionalProperties: []
      required:
        - error
        - message
        - action
        - docs
        - request_id
      title: Error
    FaxStatus:
      type: string
      enum:
        - queued
        - submitted
        - in_progress
        - delivered
        - failed
      title: FaxStatus
  securitySchemes:
    bearerAuth:
      type: http
      description: |-
        API key as Bearer token. Use an account key (`mfx_acct_...`) for
        `/account/*` endpoints, and an environment key (`mfx_test_...` for
        sandbox, `mfx_live_...` for live) for `/environment/*`, `/faxes`,
        `/webhooks`, and `/events`.
      scheme: bearer

````