Full API reference

Updated

Every operation of the Fax for Agents API as static HTML. 146 operations and 147 schemas from the OpenAPI document version 1.3.3, snapshot of 2026-10-30. The base URL is https://api.faxforagents.com/v1. The same document is at /openapi.json.

agents

GET /v1/agents

List agent identities

Responses

GET /v1/agents responses
StatusMeaning
200Successful Response

Response fields

GET /v1/agents response fields
FieldTypeRequiredDescription
itemsarray of object Agentyes

Example

curl https://api.faxforagents.com/v1/agents \
  -H "Authorization: Bearer ffa_test_..."

POST /v1/agents

Register an agent identity

Request body application/json, required

POST /v1/agents request body
FieldTypeRequiredDescription
contact_emailstring or nullnoWhere decided approvals are mailed.
namestringyes
policy_idsarray of stringno
purposestring or nullnoShown to humans, never evaluated.

Responses

POST /v1/agents responses
StatusMeaning
201Successful Response
422Validation Error

Response fields

POST /v1/agents response fields
FieldTypeRequiredDescription
budget_idstring or nullyes
budgetsarray of objectyes
contact_emailstring or nullyes
created_atstringyes
created_bystringyes
disabled_atstring or nullyes
enabledbooleanyes
idstringyes
keysarray of object ApiKeyyes
namestringyes
policy_idsarray of stringyes
project_idstring or nullyes
purposestring or nullyes
statusstringyes
updated_atstringyes

Example

curl https://api.faxforagents.com/v1/agents \
  -X POST \
  -H "Authorization: Bearer ffa_test_..."

GET /v1/agents/{agent_id}

Read an agent with its keys and budgets

Parameters

GET /v1/agents/{agent_id} parameters
NameInTypeRequiredNotes
agent_idpathstringyes

Responses

GET /v1/agents/{agent_id} responses
StatusMeaning
200Successful Response
422Validation Error

Response fields

GET /v1/agents/{agent_id} response fields
FieldTypeRequiredDescription
budget_idstring or nullyes
budgetsarray of objectyes
contact_emailstring or nullyes
created_atstringyes
created_bystringyes
disabled_atstring or nullyes
enabledbooleanyes
idstringyes
keysarray of object ApiKeyyes
namestringyes
policy_idsarray of stringyes
project_idstring or nullyes
purposestring or nullyes
statusstringyes
updated_atstringyes

Example

curl https://api.faxforagents.com/v1/agents/AGENT_ID \
  -H "Authorization: Bearer ffa_test_..."

PATCH /v1/agents/{agent_id}

Change an agent; disabling revokes its keys

Parameters

PATCH /v1/agents/{agent_id} parameters
NameInTypeRequiredNotes
agent_idpathstringyes

Request body application/json, required

PATCH /v1/agents/{agent_id} request body
FieldTypeRequiredDescription
contact_emailstring or nullno
enabledboolean or nullnofalse revokes every key of the agent.
namestring or nullno
policy_idsarray of string or nullno
purposestring or nullno

Responses

PATCH /v1/agents/{agent_id} responses
StatusMeaning
200Successful Response
422Validation Error

Response fields

PATCH /v1/agents/{agent_id} response fields
FieldTypeRequiredDescription
budget_idstring or nullyes
budgetsarray of objectyes
contact_emailstring or nullyes
created_atstringyes
created_bystringyes
disabled_atstring or nullyes
enabledbooleanyes
idstringyes
keysarray of object ApiKeyyes
namestringyes
policy_idsarray of stringyes
project_idstring or nullyes
purposestring or nullyes
statusstringyes
updated_atstringyes

Example

curl https://api.faxforagents.com/v1/agents/AGENT_ID \
  -X PATCH \
  -H "Authorization: Bearer ffa_test_..."

GET /v1/agents/{agent_id}/activity

The agent's audit trail

Parameters

GET /v1/agents/{agent_id}/activity parameters
NameInTypeRequiredNotes
agent_idpathstringyes
cursorquerystring or nullno
limitqueryintegerno Default 50.

Responses

GET /v1/agents/{agent_id}/activity responses
StatusMeaning
200Successful Response
422Validation Error

Response fields

GET /v1/agents/{agent_id}/activity response fields
FieldTypeRequiredDescription
itemsarray of object AgentActivityyes
next_cursorstring or nullno

Example

curl https://api.faxforagents.com/v1/agents/AGENT_ID/activity \
  -H "Authorization: Bearer ffa_test_..."

POST /v1/agents/{agent_id}/keys

Mint a key for the agent (bounded scopes, secret shown once)

Parameters

POST /v1/agents/{agent_id}/keys parameters
NameInTypeRequiredNotes
agent_idpathstringyes

Request body application/json, required

POST /v1/agents/{agent_id}/keys request body
FieldTypeRequiredDescription
environmentstring (live, test)no
expires_in_daysinteger or nullno
labelstringno
scopesarray of string or nullnoOmit for the default agent set. Never approval:decide, key:admin, policy:admin, agent:admin.

Responses

POST /v1/agents/{agent_id}/keys responses
StatusMeaning
201Successful Response
422Validation Error

Response fields

POST /v1/agents/{agent_id}/keys response fields
FieldTypeRequiredDescription
agent_idstring or nullyes
created_atstringyes
environmentstring (live, test)yes
expires_atstring or nullyes
idstringyes
labelstringyes
last_used_atstring or nullyes
prefixstringyes
project_idstring or nullyes
revoked_atstring or nullyes
rotated_from_idstring or nullyes
scopesarray of stringyes
secretstringyesShown once. Store it now; it cannot be read back.

Example

curl https://api.faxforagents.com/v1/agents/AGENT_ID/keys \
  -X POST \
  -H "Authorization: Bearer ffa_test_..."

identity

GET /v1/api-keys

List API keys (metadata only)

Responses

GET /v1/api-keys responses
StatusMeaning
200Successful Response

Response fields

GET /v1/api-keys response fields
FieldTypeRequiredDescription
itemsarray of object ApiKeyyes

Example

curl https://api.faxforagents.com/v1/api-keys \
  -H "Authorization: Bearer ffa_test_..."

POST /v1/api-keys

Create an API key (the secret is shown once)

Request body application/json, required

POST /v1/api-keys request body
FieldTypeRequiredDescription
environmentstring (live, test)no
expires_in_daysinteger or nullno
labelstringyes
scopesarray of string or nullnoOmit for the default agent set; '*' for all.

Responses

POST /v1/api-keys responses
StatusMeaning
201Successful Response
422Validation Error

Response fields

POST /v1/api-keys response fields
FieldTypeRequiredDescription
agent_idstring or nullyes
created_atstringyes
environmentstring (live, test)yes
expires_atstring or nullyes
idstringyes
labelstringyes
last_used_atstring or nullyes
prefixstringyes
project_idstring or nullyes
revoked_atstring or nullyes
rotated_from_idstring or nullyes
scopesarray of stringyes
secretstringyesShown once. Store it now; it cannot be read back.

Example

curl https://api.faxforagents.com/v1/api-keys \
  -X POST \
  -H "Authorization: Bearer ffa_test_..."

DELETE /v1/api-keys/{key_id}

Revoke a key

Parameters

DELETE /v1/api-keys/{key_id} parameters
NameInTypeRequiredNotes
key_idpathstringyes

Responses

DELETE /v1/api-keys/{key_id} responses
StatusMeaning
200Successful Response
422Validation Error

Response fields

DELETE /v1/api-keys/{key_id} response fields
FieldTypeRequiredDescription
deletedbooleanno
idstringyes

Example

curl https://api.faxforagents.com/v1/api-keys/KEY_ID \
  -X DELETE \
  -H "Authorization: Bearer ffa_test_..."

POST /v1/api-keys/{key_id}/rotate

Rotate a key: a new secret, the old one works for 24 more hours

Parameters

POST /v1/api-keys/{key_id}/rotate parameters
NameInTypeRequiredNotes
key_idpathstringyes

Responses

POST /v1/api-keys/{key_id}/rotate responses
StatusMeaning
201Successful Response
422Validation Error

Response fields

POST /v1/api-keys/{key_id}/rotate response fields
FieldTypeRequiredDescription
agent_idstring or nullyes
created_atstringyes
environmentstring (live, test)yes
expires_atstring or nullyes
idstringyes
labelstringyes
last_used_atstring or nullyes
prefixstringyes
project_idstring or nullyes
revoked_atstring or nullyes
rotated_from_idstring or nullyes
scopesarray of stringyes
secretstringyesShown once. Store it now; it cannot be read back.

Example

curl https://api.faxforagents.com/v1/api-keys/KEY_ID/rotate \
  -X POST \
  -H "Authorization: Bearer ffa_test_..."

GET /v1/me

Who am I

Responses

GET /v1/me responses
StatusMeaning
200Successful Response

Response fields

GET /v1/me response fields
FieldTypeRequiredDescription
actorstringyes
environmentstring (live, test)yes
key_idstringyes
key_prefixstringyes
org_idstringyes
project_idstringyes
scopesarray of stringyes

Example

curl https://api.faxforagents.com/v1/me \
  -H "Authorization: Bearer ffa_test_..."

approvals

GET /v1/approval-requests

Approval requests, pending first

Parameters

GET /v1/approval-requests parameters
NameInTypeRequiredNotes
statusquerystring or nullno
cursorquerystring or nullno
limitqueryintegerno Default 50.

Responses

GET /v1/approval-requests responses
StatusMeaning
200Successful Response
422Validation Error

Response fields

GET /v1/approval-requests response fields
FieldTypeRequiredDescription
itemsarray of object ApprovalRequestyes
next_cursorstring or nullno

Example

curl https://api.faxforagents.com/v1/approval-requests \
  -H "Authorization: Bearer ffa_test_..."

POST /v1/approval-requests

Ask a human to approve a quoted send, or ask for help (grants nothing)

Request body application/json, required

POST /v1/approval-requests request body
FieldTypeRequiredDescription
fax_job_idstring or nullno
kindstring (send, help)no
messagestring or nullnoWhat the person should know (kind help). Shown as data.
quote_idstring or nullnoThe quote to bind (kind send).

Responses

POST /v1/approval-requests responses
StatusMeaning
201Successful Response
422Validation Error

Response fields

POST /v1/approval-requests response fields
FieldTypeRequiredDescription
boundobjectyes
consumed_by_job_idstring or nullyes
created_atstringyes
decided_atstring or nullyes
decided_bystring or nullyes
expires_atstring or nullyes
idstringyes
kindstring (send, help)yes
messagestring or nullyes
notifiedboolean or nullnoOn creation: whether the organization was mailed. false when the request repeats a pending one or the organization's daily cap of request mails is reached; the request is still shown in the dashboard.
quote_idstring or nullyes
reasonstring or nullyes
requested_bystringyes
statusstring (pending, approved, rejected, revoked, expired)yes

Example

curl https://api.faxforagents.com/v1/approval-requests \
  -X POST \
  -H "Authorization: Bearer ffa_test_..."

GET /v1/approval-requests/{approval_id}

Read one request

Parameters

GET /v1/approval-requests/{approval_id} parameters
NameInTypeRequiredNotes
approval_idpathstringyes

Responses

GET /v1/approval-requests/{approval_id} responses
StatusMeaning
200Successful Response
422Validation Error

Response fields

GET /v1/approval-requests/{approval_id} response fields
FieldTypeRequiredDescription
boundobjectyes
consumed_by_job_idstring or nullyes
created_atstringyes
decided_atstring or nullyes
decided_bystring or nullyes
expires_atstring or nullyes
idstringyes
kindstring (send, help)yes
messagestring or nullyes
notifiedboolean or nullnoOn creation: whether the organization was mailed. false when the request repeats a pending one or the organization's daily cap of request mails is reached; the request is still shown in the dashboard.
quote_idstring or nullyes
reasonstring or nullyes
requested_bystringyes
statusstring (pending, approved, rejected, revoked, expired)yes

Example

curl https://api.faxforagents.com/v1/approval-requests/APPROVAL_ID \
  -H "Authorization: Bearer ffa_test_..."

POST /v1/approval-requests/{approval_id}/approve

Approve the bound quote (a human with approval:decide, never the requester)

Parameters

POST /v1/approval-requests/{approval_id}/approve parameters
NameInTypeRequiredNotes
approval_idpathstringyes

Request body application/json, required

POST /v1/approval-requests/{approval_id}/approve request body
FieldTypeRequiredDescription
reasonstring or nullno

Responses

POST /v1/approval-requests/{approval_id}/approve responses
StatusMeaning
200Successful Response
422Validation Error

Response fields

POST /v1/approval-requests/{approval_id}/approve response fields
FieldTypeRequiredDescription
boundobjectyes
consumed_by_job_idstring or nullyes
created_atstringyes
decided_atstring or nullyes
decided_bystring or nullyes
expires_atstring or nullyes
idstringyes
kindstring (send, help)yes
messagestring or nullyes
notifiedboolean or nullnoOn creation: whether the organization was mailed. false when the request repeats a pending one or the organization's daily cap of request mails is reached; the request is still shown in the dashboard.
quote_idstring or nullyes
reasonstring or nullyes
requested_bystringyes
statusstring (pending, approved, rejected, revoked, expired)yes

Example

curl https://api.faxforagents.com/v1/approval-requests/APPROVAL_ID/approve \
  -X POST \
  -H "Authorization: Bearer ffa_test_..."

POST /v1/approval-requests/{approval_id}/reject

Reject with a reason

Parameters

POST /v1/approval-requests/{approval_id}/reject parameters
NameInTypeRequiredNotes
approval_idpathstringyes

Request body application/json, required

POST /v1/approval-requests/{approval_id}/reject request body
FieldTypeRequiredDescription
reasonstring or nullno

Responses

POST /v1/approval-requests/{approval_id}/reject responses
StatusMeaning
200Successful Response
422Validation Error

Response fields

POST /v1/approval-requests/{approval_id}/reject response fields
FieldTypeRequiredDescription
boundobjectyes
consumed_by_job_idstring or nullyes
created_atstringyes
decided_atstring or nullyes
decided_bystring or nullyes
expires_atstring or nullyes
idstringyes
kindstring (send, help)yes
messagestring or nullyes
notifiedboolean or nullnoOn creation: whether the organization was mailed. false when the request repeats a pending one or the organization's daily cap of request mails is reached; the request is still shown in the dashboard.
quote_idstring or nullyes
reasonstring or nullyes
requested_bystringyes
statusstring (pending, approved, rejected, revoked, expired)yes

Example

curl https://api.faxforagents.com/v1/approval-requests/APPROVAL_ID/reject \
  -X POST \
  -H "Authorization: Bearer ffa_test_..."

POST /v1/approvals/{approval_id}/revoke

Revoke an approval nobody has used yet

Parameters

POST /v1/approvals/{approval_id}/revoke parameters
NameInTypeRequiredNotes
approval_idpathstringyes

Request body application/json, required

POST /v1/approvals/{approval_id}/revoke request body
FieldTypeRequiredDescription
reasonstring or nullno

Responses

POST /v1/approvals/{approval_id}/revoke responses
StatusMeaning
200Successful Response
422Validation Error

Response fields

POST /v1/approvals/{approval_id}/revoke response fields
FieldTypeRequiredDescription
boundobjectyes
consumed_by_job_idstring or nullyes
created_atstringyes
decided_atstring or nullyes
decided_bystring or nullyes
expires_atstring or nullyes
idstringyes
kindstring (send, help)yes
messagestring or nullyes
notifiedboolean or nullnoOn creation: whether the organization was mailed. false when the request repeats a pending one or the organization's daily cap of request mails is reached; the request is still shown in the dashboard.
quote_idstring or nullyes
reasonstring or nullyes
requested_bystringyes
statusstring (pending, approved, rejected, revoked, expired)yes

Example

curl https://api.faxforagents.com/v1/approvals/APPROVAL_ID/revoke \
  -X POST \
  -H "Authorization: Bearer ffa_test_..."

auth

POST /v1/auth/invitations/{token}/accept

Join the organization an invitation link names (the signed-in email must match)

Parameters

POST /v1/auth/invitations/{token}/accept parameters
NameInTypeRequiredNotes
tokenpathstringyes

Responses

POST /v1/auth/invitations/{token}/accept responses
StatusMeaning
200Successful Response
422Validation Error

Response fields

POST /v1/auth/invitations/{token}/accept response fields
FieldTypeRequiredDescription
organizationobject OrganizationSummaryyes

Example

curl https://api.faxforagents.com/v1/auth/invitations/TOKEN/accept \
  -X POST \
  -H "Authorization: Bearer ffa_test_..."

POST /v1/auth/logout

End this session

Responses

POST /v1/auth/logout responses
StatusMeaning
204Successful Response

Example

curl https://api.faxforagents.com/v1/auth/logout \
  -X POST \
  -H "Authorization: Bearer ffa_test_..."

GET /v1/auth/me

The signed-in person, their organizations and the CSRF token

Responses

GET /v1/auth/me responses
StatusMeaning
200Successful Response

Response fields

GET /v1/auth/me response fields
FieldTypeRequiredDescription
csrf_tokenstringyes
organizationobject OrganizationSummary or nullyes
organizationsarray of object OrganizationSummaryyes
passkeysintegeryes
providersobject Providersyes
sessionobject SessionInfoyes
userobject UserOutyes

Example

curl https://api.faxforagents.com/v1/auth/me \
  -H "Authorization: Bearer ffa_test_..."

GET /v1/auth/oauth/{provider}/callback

Finish GitHub or Google sign-in (the app forwards its /auth/{provider}/callback here)

Parameters

GET /v1/auth/oauth/{provider}/callback parameters
NameInTypeRequiredNotes
providerpathstringyes
codequerystringno Default "".
statequerystringno Default "".
errorquerystring or nullno

Responses

GET /v1/auth/oauth/{provider}/callback responses
StatusMeaning
200Successful Response
422Validation Error

Response fields

GET /v1/auth/oauth/{provider}/callback response fields
FieldTypeRequiredDescription
csrf_tokenstringyes
organizationobject OrganizationSummary or nullyes
organizationsarray of object OrganizationSummaryyes
passkeysintegeryes
providersobject Providersyes
sessionobject SessionInfoyes
userobject UserOutyes

Example

curl https://api.faxforagents.com/v1/auth/oauth/PROVIDER/callback \
  -H "Authorization: Bearer ffa_test_..."

GET /v1/auth/oauth/{provider}/start

Begin GitHub or Google sign-in (redirects to the provider)

Parameters

GET /v1/auth/oauth/{provider}/start parameters
NameInTypeRequiredNotes
providerpathstringyes
nextquerystring or nullno

Responses

GET /v1/auth/oauth/{provider}/start responses
StatusMeaning
303Successful Response
422Validation Error

Example

curl https://api.faxforagents.com/v1/auth/oauth/PROVIDER/start \
  -H "Authorization: Bearer ffa_test_..."

GET /v1/auth/passkeys

Your passkeys

Responses

GET /v1/auth/passkeys responses
StatusMeaning
200Successful Response

Response fields

GET /v1/auth/passkeys response fields
FieldTypeRequiredDescription
itemsarray of object Passkeyyes

Example

curl https://api.faxforagents.com/v1/auth/passkeys \
  -H "Authorization: Bearer ffa_test_..."

POST /v1/auth/passkeys/login/options

Options for navigator.credentials.get() (discoverable, no email needed)

Responses

POST /v1/auth/passkeys/login/options responses
StatusMeaning
200Successful Response

Example

curl https://api.faxforagents.com/v1/auth/passkeys/login/options \
  -X POST \
  -H "Authorization: Bearer ffa_test_..."

POST /v1/auth/passkeys/login/verify

Sign in with a passkey assertion

Request body application/json, required

POST /v1/auth/passkeys/login/verify request body
FieldTypeRequiredDescription
credentialobjectyes

Responses

POST /v1/auth/passkeys/login/verify responses
StatusMeaning
200Successful Response
422Validation Error

Response fields

POST /v1/auth/passkeys/login/verify response fields
FieldTypeRequiredDescription
csrf_tokenstringyes
organizationobject OrganizationSummary or nullyes
organizationsarray of object OrganizationSummaryyes
passkeysintegeryes
providersobject Providersyes
sessionobject SessionInfoyes
userobject UserOutyes

Example

curl https://api.faxforagents.com/v1/auth/passkeys/login/verify \
  -X POST \
  -H "Authorization: Bearer ffa_test_..."

POST /v1/auth/passkeys/register/options

Options for navigator.credentials.create() (fresh session required)

Responses

POST /v1/auth/passkeys/register/options responses
StatusMeaning
200Successful Response

Example

curl https://api.faxforagents.com/v1/auth/passkeys/register/options \
  -X POST \
  -H "Authorization: Bearer ffa_test_..."

POST /v1/auth/passkeys/register/verify

Store a new passkey after the browser created it

Request body application/json, required

POST /v1/auth/passkeys/register/verify request body
FieldTypeRequiredDescription
credentialobjectyes
labelstring or nullno

Responses

POST /v1/auth/passkeys/register/verify responses
StatusMeaning
201Successful Response
422Validation Error

Response fields

POST /v1/auth/passkeys/register/verify response fields
FieldTypeRequiredDescription
aaguidstring or nullyes
backup_eligiblebooleanyes
created_atstringyes
idstringyes
labelstring or nullyes
last_used_atstring or nullyes
transportsarray of string or nullyes

Example

curl https://api.faxforagents.com/v1/auth/passkeys/register/verify \
  -X POST \
  -H "Authorization: Bearer ffa_test_..."

DELETE /v1/auth/passkeys/{passkey_id}

Remove one of your passkeys

Parameters

DELETE /v1/auth/passkeys/{passkey_id} parameters
NameInTypeRequiredNotes
passkey_idpathstringyes

Responses

DELETE /v1/auth/passkeys/{passkey_id} responses
StatusMeaning
204Successful Response
422Validation Error

Example

curl https://api.faxforagents.com/v1/auth/passkeys/PASSKEY_ID \
  -X DELETE \
  -H "Authorization: Bearer ffa_test_..."

GET /v1/auth/providers

Which sign-in methods are available

Responses

GET /v1/auth/providers responses
StatusMeaning
200Successful Response

Response fields

GET /v1/auth/providers response fields
FieldTypeRequiredDescription
githubbooleanyes
googlebooleanyes
magic_linkbooleanno
passkeysbooleanno

Example

curl https://api.faxforagents.com/v1/auth/providers \
  -H "Authorization: Bearer ffa_test_..."

POST /v1/auth/reauth

Prove it is you again (passkey now, or a fresh link by mail) before a sensitive action

Request body application/json, required

POST /v1/auth/reauth request body
FieldTypeRequiredDescription
credentialobject or nullno
methodstring (passkey, magic_link)yes

Responses

POST /v1/auth/reauth responses
StatusMeaning
200Successful Response
202A sign-in link was sent; opening it in this browser refreshes the session.
422Validation Error

Response fields

POST /v1/auth/reauth response fields
FieldTypeRequiredDescription
csrf_tokenstringyes
organizationobject OrganizationSummary or nullyes
organizationsarray of object OrganizationSummaryyes
passkeysintegeryes
providersobject Providersyes
sessionobject SessionInfoyes
userobject UserOutyes

Example

curl https://api.faxforagents.com/v1/auth/reauth \
  -X POST \
  -H "Authorization: Bearer ffa_test_..."

DELETE /v1/auth/sessions

Sign out everywhere else

Responses

DELETE /v1/auth/sessions responses
StatusMeaning
200Successful Response

Response fields

DELETE /v1/auth/sessions response fields
FieldTypeRequiredDescription
revokedintegeryes

Example

curl https://api.faxforagents.com/v1/auth/sessions \
  -X DELETE \
  -H "Authorization: Bearer ffa_test_..."

GET /v1/auth/sessions

Your live sessions

Responses

GET /v1/auth/sessions responses
StatusMeaning
200Successful Response

Response fields

GET /v1/auth/sessions response fields
FieldTypeRequiredDescription
itemsarray of object SessionOutyes

Example

curl https://api.faxforagents.com/v1/auth/sessions \
  -H "Authorization: Bearer ffa_test_..."

DELETE /v1/auth/sessions/{session_id}

Revoke one of your sessions

Parameters

DELETE /v1/auth/sessions/{session_id} parameters
NameInTypeRequiredNotes
session_idpathstringyes

Responses

DELETE /v1/auth/sessions/{session_id} responses
StatusMeaning
204Successful Response
422Validation Error

Example

curl https://api.faxforagents.com/v1/auth/sessions/SESSION_ID \
  -X DELETE \
  -H "Authorization: Bearer ffa_test_..."

POST /v1/auth/switch-organization

Look at another organization you belong to

Request body application/json, required

POST /v1/auth/switch-organization request body
FieldTypeRequiredDescription
org_idstringyes

Responses

POST /v1/auth/switch-organization responses
StatusMeaning
200Successful Response
422Validation Error

Response fields

POST /v1/auth/switch-organization response fields
FieldTypeRequiredDescription
csrf_tokenstringyes
organizationobject OrganizationSummary or nullyes
organizationsarray of object OrganizationSummaryyes
passkeysintegeryes
providersobject Providersyes
sessionobject SessionInfoyes
userobject UserOutyes

Example

curl https://api.faxforagents.com/v1/auth/switch-organization \
  -X POST \
  -H "Authorization: Bearer ffa_test_..."

billing

GET /v1/auto-topups

Auto top-up settings

Responses

GET /v1/auto-topups responses
StatusMeaning
200Successful Response

Response fields

GET /v1/auto-topups response fields
FieldTypeRequiredDescription
itemsarray of object AutoTopupyes

Example

curl https://api.faxforagents.com/v1/auto-topups \
  -H "Authorization: Bearer ffa_test_..."

POST /v1/auto-topups

Opt in to auto top-up (threshold, amount, daily cap); the card is saved at the first payment

Request body application/json, required

POST /v1/auto-topups request body
FieldTypeRequiredDescription
amount_microintegeryesWhole dollars, 10 to 1000 USD.
daily_cap_microintegeryesNever more than this per UTC day.
threshold_microintegeryesTop up when the available balance drops below this.

Responses

POST /v1/auto-topups responses
StatusMeaning
201Successful Response
422Validation Error

Response fields

POST /v1/auto-topups response fields
FieldTypeRequiredDescription
amount_microintegeryes
created_atstringyes
daily_cap_microintegeryes
disabled_atstring or nullyes
environmentstring (live, test)yes
idstringyes
last_attempt_atstring or nullyes
payment_method_savedbooleanyes
setup_session_idstring or nullyes
setup_urlstring or nullnoWhere to save the card while status is pending_setup.
statusstring (pending_setup, active, disabled)yes
threshold_microintegeryes
updated_atstringyes

Example

curl https://api.faxforagents.com/v1/auto-topups \
  -X POST \
  -H "Authorization: Bearer ffa_test_..."

DELETE /v1/auto-topups/{auto_topup_id}

Turn auto top-up off

Parameters

DELETE /v1/auto-topups/{auto_topup_id} parameters
NameInTypeRequiredNotes
auto_topup_idpathstringyes

Responses

DELETE /v1/auto-topups/{auto_topup_id} responses
StatusMeaning
200Successful Response
422Validation Error

Response fields

DELETE /v1/auto-topups/{auto_topup_id} response fields
FieldTypeRequiredDescription
deletedbooleanno
idstringyes

Example

curl https://api.faxforagents.com/v1/auto-topups/AUTO_TOPUP_ID \
  -X DELETE \
  -H "Authorization: Bearer ffa_test_..."

GET /v1/balance

Available and held balance

Responses

GET /v1/balance responses
StatusMeaning
200Successful Response

Response fields

GET /v1/balance response fields
FieldTypeRequiredDescription
available_microintegeryes
currencystringyes
environmentstring (live, test)yes
held_microintegeryes

Example

curl https://api.faxforagents.com/v1/balance \
  -H "Authorization: Bearer ffa_test_..."

POST /v1/billing-portal-sessions

Open the Stripe customer portal (cards, invoices, the subscription)

Responses

POST /v1/billing-portal-sessions responses
StatusMeaning
201Successful Response

Response fields

POST /v1/billing-portal-sessions response fields
FieldTypeRequiredDescription
expires_atstringyes
urlstringyes

Example

curl https://api.faxforagents.com/v1/billing-portal-sessions \
  -X POST \
  -H "Authorization: Bearer ffa_test_..."

GET /v1/billing-settings

Billing settings of the organization

Responses

GET /v1/billing-settings responses
StatusMeaning
200Successful Response

Response fields

GET /v1/billing-settings response fields
FieldTypeRequiredDescription
billing_emailstring or nullyes
disputedbooleanyes
low_balance_activebooleanyes
low_balance_threshold_microintegeryes
org_idstringyes
stripe_customerbooleanyes
workspacebooleanyes

Example

curl https://api.faxforagents.com/v1/billing-settings \
  -H "Authorization: Bearer ffa_test_..."

PATCH /v1/billing-settings

Change the billing email or the low-balance threshold

Request body application/json, required

PATCH /v1/billing-settings request body
FieldTypeRequiredDescription
billing_emailstring or nullno
low_balance_threshold_microinteger or nullno

Responses

PATCH /v1/billing-settings responses
StatusMeaning
200Successful Response
422Validation Error

Response fields

PATCH /v1/billing-settings response fields
FieldTypeRequiredDescription
billing_emailstring or nullyes
disputedbooleanyes
low_balance_activebooleanyes
low_balance_threshold_microintegeryes
org_idstringyes
stripe_customerbooleanyes
workspacebooleanyes

Example

curl https://api.faxforagents.com/v1/billing-settings \
  -X PATCH \
  -H "Authorization: Bearer ffa_test_..."

GET /v1/budgets

Spending caps of this environment

Responses

GET /v1/budgets responses
StatusMeaning
200Successful Response

Response fields

GET /v1/budgets response fields
FieldTypeRequiredDescription
itemsarray of object Budgetyes

Example

curl https://api.faxforagents.com/v1/budgets \
  -H "Authorization: Bearer ffa_test_..."

POST /v1/budgets

Create a daily or monthly cap for the organization, a project or an agent

Request body application/json, required

POST /v1/budgets request body
FieldTypeRequiredDescription
agent_idstring or nullno
limit_microintegeryes
periodstring (daily, monthly)yes
project_idstring or nullno
scopestring (organization, project, agent)no

Responses

POST /v1/budgets responses
StatusMeaning
201Successful Response
422Validation Error

Response fields

POST /v1/budgets response fields
FieldTypeRequiredDescription
agent_idstring or nullyes
created_atstringyes
environmentstring (live, test)yes
idstringyes
limit_microintegeryes
periodstring (daily, monthly)yes
project_idstring or nullyes
remaining_microintegeryes
resets_atstringyes
scopestring (organization, project, agent)yes
spent_microintegeryes
statusstring (active, disabled)yes
updated_atstringyes

Example

curl https://api.faxforagents.com/v1/budgets \
  -X POST \
  -H "Authorization: Bearer ffa_test_..."

PATCH /v1/budgets/{budget_id}

Change a cap's limit or status

Parameters

PATCH /v1/budgets/{budget_id} parameters
NameInTypeRequiredNotes
budget_idpathstringyes

Request body application/json, required

PATCH /v1/budgets/{budget_id} request body
FieldTypeRequiredDescription
limit_microinteger or nullno
statusstring (active, disabled) or nullno

Responses

PATCH /v1/budgets/{budget_id} responses
StatusMeaning
200Successful Response
422Validation Error

Response fields

PATCH /v1/budgets/{budget_id} response fields
FieldTypeRequiredDescription
agent_idstring or nullyes
created_atstringyes
environmentstring (live, test)yes
idstringyes
limit_microintegeryes
periodstring (daily, monthly)yes
project_idstring or nullyes
remaining_microintegeryes
resets_atstringyes
scopestring (organization, project, agent)yes
spent_microintegeryes
statusstring (active, disabled)yes
updated_atstringyes

Example

curl https://api.faxforagents.com/v1/budgets/BUDGET_ID \
  -X PATCH \
  -H "Authorization: Bearer ffa_test_..."

GET /v1/invoices

Stripe invoices and receipts (hosted links)

Parameters

GET /v1/invoices parameters
NameInTypeRequiredNotes
cursorquerystring or nullno
limitqueryintegerno Default 20.

Responses

GET /v1/invoices responses
StatusMeaning
200Successful Response
422Validation Error

Response fields

GET /v1/invoices response fields
FieldTypeRequiredDescription
itemsarray of object Invoiceyes
next_cursorstring or nullno

Example

curl https://api.faxforagents.com/v1/invoices \
  -H "Authorization: Bearer ffa_test_..."

GET /v1/invoices/{invoice_id}

One Stripe invoice

Parameters

GET /v1/invoices/{invoice_id} parameters
NameInTypeRequiredNotes
invoice_idpathstringyes

Responses

GET /v1/invoices/{invoice_id} responses
StatusMeaning
200Successful Response
422Validation Error

Response fields

GET /v1/invoices/{invoice_id} response fields
FieldTypeRequiredDescription
amount_due_microintegeryes
amount_paid_microintegeryes
created_atstring or nullyes
currencystringyes
hosted_invoice_urlstring or nullyes
idstringyes
invoice_pdfstring or nullyes
numberstring or nullyes
statusstring or nullyes
subscription_idstring or nullyes

Example

curl https://api.faxforagents.com/v1/invoices/INVOICE_ID \
  -H "Authorization: Bearer ffa_test_..."

GET /v1/ledger

Wallet transactions, newest first

Parameters

GET /v1/ledger parameters
NameInTypeRequiredNotes
cursorquerystring or nullno
limitqueryintegerno Default 50.

Responses

GET /v1/ledger responses
StatusMeaning
200Successful Response
422Validation Error

Response fields

GET /v1/ledger response fields
FieldTypeRequiredDescription
itemsarray of object LedgerEntryyes
next_cursorstring or nullno

Example

curl https://api.faxforagents.com/v1/ledger \
  -H "Authorization: Bearer ffa_test_..."

GET /v1/subscriptions

Subscriptions and the workspace entitlement

Responses

GET /v1/subscriptions responses
StatusMeaning
200Successful Response

Response fields

GET /v1/subscriptions response fields
FieldTypeRequiredDescription
itemsarray of object Subscriptionyes
next_cursorstring or nullno
workspacebooleanyes

Example

curl https://api.faxforagents.com/v1/subscriptions \
  -H "Authorization: Bearer ffa_test_..."

POST /v1/subscriptions/checkout

Open a hosted Checkout for the Agent workspace subscription

Responses

POST /v1/subscriptions/checkout responses
StatusMeaning
201Successful Response

Response fields

POST /v1/subscriptions/checkout response fields
FieldTypeRequiredDescription
productstringyes
stripe_session_idstringyes
urlstringyes

Example

curl https://api.faxforagents.com/v1/subscriptions/checkout \
  -X POST \
  -H "Authorization: Bearer ffa_test_..."

GET /v1/topup-sessions

Top-up sessions, newest first

Parameters

GET /v1/topup-sessions parameters
NameInTypeRequiredNotes
cursorquerystring or nullno
limitqueryintegerno Default 50.

Responses

GET /v1/topup-sessions responses
StatusMeaning
200Successful Response
422Validation Error

Response fields

GET /v1/topup-sessions response fields
FieldTypeRequiredDescription
itemsarray of object TopupSessionyes
next_cursorstring or nullno

Example

curl https://api.faxforagents.com/v1/topup-sessions \
  -H "Authorization: Bearer ffa_test_..."

POST /v1/topup-sessions

Open a hosted Checkout to fund the live wallet (10 to 1000 USD)

Request body application/json, required

POST /v1/topup-sessions request body
FieldTypeRequiredDescription
amount_usdintegeryesWhole US dollars, 10 to 1000 per session.

Responses

POST /v1/topup-sessions responses
StatusMeaning
201Successful Response
422Validation Error

Response fields

POST /v1/topup-sessions response fields
FieldTypeRequiredDescription
amount_microintegeryes
auto_topup_idstring or nullyes
completed_atstring or nullyes
created_atstringyes
currencystringyes
environmentstring (live, test)yes
errorstring or nullyes
expires_atstring or nullyes
idstringyes
kindstring (manual, auto, setup)yes
statusstring (open, completed, expired, canceled, failed)yes
stripe_payment_intent_idstring or nullyes
stripe_session_idstring or nullyes
urlstring or nullnoThe hosted Checkout page while the session is open.

Example

curl https://api.faxforagents.com/v1/topup-sessions \
  -X POST \
  -H "Authorization: Bearer ffa_test_..."

GET /v1/topup-sessions/{topup_session_id}

Read a top-up session

Parameters

GET /v1/topup-sessions/{topup_session_id} parameters
NameInTypeRequiredNotes
topup_session_idpathstringyes

Responses

GET /v1/topup-sessions/{topup_session_id} responses
StatusMeaning
200Successful Response
422Validation Error

Response fields

GET /v1/topup-sessions/{topup_session_id} response fields
FieldTypeRequiredDescription
amount_microintegeryes
auto_topup_idstring or nullyes
completed_atstring or nullyes
created_atstringyes
currencystringyes
environmentstring (live, test)yes
errorstring or nullyes
expires_atstring or nullyes
idstringyes
kindstring (manual, auto, setup)yes
statusstring (open, completed, expired, canceled, failed)yes
stripe_payment_intent_idstring or nullyes
stripe_session_idstring or nullyes
urlstring or nullnoThe hosted Checkout page while the session is open.

Example

curl https://api.faxforagents.com/v1/topup-sessions/TOPUP_SESSION_ID \
  -H "Authorization: Bearer ffa_test_..."

GET /v1/usage

Usage rollups by day, direction, destination and project

Parameters

GET /v1/usage parameters
NameInTypeRequiredNotes
fromquerystring or nullno
toquerystring or nullno
group_byquerystringnoComma-separated subset. Default "day,direction,route,project".
project_idquerystring or nullno

Responses

GET /v1/usage responses
StatusMeaning
200Successful Response
422Validation Error

Response fields

GET /v1/usage response fields
FieldTypeRequiredDescription
currencystringyes
environmentstring (live, test)yes
fromstringyes
group_byarray of stringyes
itemsarray of object UsageItemyes
tostringyes
totalsobjectyes

Example

curl https://api.faxforagents.com/v1/usage \
  -H "Authorization: Bearer ffa_test_..."

POST /v1/usage-exports

Export usage as CSV behind a signed download

Request body application/json, required

POST /v1/usage-exports request body
FieldTypeRequiredDescription
fromstring or nullnoISO date; default 30 days ago.
tostring or nullnoISO date; default today.

Responses

POST /v1/usage-exports responses
StatusMeaning
201Successful Response
422Validation Error

Response fields

POST /v1/usage-exports response fields
FieldTypeRequiredDescription
content_typestringyes
created_atstringyes
environmentstring (live, test)yes
expires_atstringyes
idstringyes
paramsobjectyes
row_countintegeryes
statusstring (ready, expired)yes
urlstring or nullyes

Example

curl https://api.faxforagents.com/v1/usage-exports \
  -X POST \
  -H "Authorization: Bearer ffa_test_..."

GET /v1/usage-exports/{export_id}

Read a usage export (fresh link)

Parameters

GET /v1/usage-exports/{export_id} parameters
NameInTypeRequiredNotes
export_idpathstringyes

Responses

GET /v1/usage-exports/{export_id} responses
StatusMeaning
200Successful Response
422Validation Error

Response fields

GET /v1/usage-exports/{export_id} response fields
FieldTypeRequiredDescription
content_typestringyes
created_atstringyes
environmentstring (live, test)yes
expires_atstringyes
idstringyes
paramsobjectyes
row_countintegeryes
statusstring (ready, expired)yes
urlstring or nullyes

Example

curl https://api.faxforagents.com/v1/usage-exports/EXPORT_ID \
  -H "Authorization: Bearer ffa_test_..."

GET /v1/usage-exports/{export_id}/content

The CSV behind a signed URL (no API key)

Parameters

GET /v1/usage-exports/{export_id}/content parameters
NameInTypeRequiredNotes
export_idpathstringyes
expquerystring or nullno
sigquerystring or nullno

Responses

GET /v1/usage-exports/{export_id}/content responses
StatusMeaning
200Successful Response
422Validation Error

Example

curl https://api.faxforagents.com/v1/usage-exports/EXPORT_ID/content \
  -H "Authorization: Bearer ffa_test_..."

platform

GET /v1/capabilities

Limits and features in force

Responses

GET /v1/capabilities responses
StatusMeaning
200Successful Response

Response fields

GET /v1/capabilities response fields
FieldTypeRequiredDescription
approvalsbooleanyes
environmentstring (live, test)yes
formatsarray of stringyes
limitsobjectyes
max_pagesintegeryes
max_upload_bytesintegeryes
numbersbooleanyes
price_versionstringyes
providerstringyes
ratesobjectyes
receivebooleanyes
routesarray of stringyes
scopesarray of stringyes
sendbooleanyes

Example

curl https://api.faxforagents.com/v1/capabilities \
  -H "Authorization: Bearer ffa_test_..."

GET /v1/service-status

Customer-safe availability

Responses

GET /v1/service-status responses
StatusMeaning
200Successful Response

Response fields

GET /v1/service-status response fields
FieldTypeRequiredDescription
databasebooleanyes
environmentstring (live, test)yes
providerstringyes
statusstring (ok, degraded)yes
status_pagestring or nullno
versionstringyes
worker_beat_age_sinteger or nullno

Example

curl https://api.faxforagents.com/v1/service-status \
  -H "Authorization: Bearer ffa_test_..."

extractions

GET /v1/classifications

Classifications, newest first

Parameters

GET /v1/classifications parameters
NameInTypeRequiredNotes
inbox_item_idquerystring or nullno
document_idquerystring or nullno
cursorquerystring or nullno
limitqueryintegerno Default 50.

Responses

GET /v1/classifications responses
StatusMeaning
200Successful Response
422Validation Error

Response fields

GET /v1/classifications response fields
FieldTypeRequiredDescription
itemsarray of object Extractionyes
next_cursorstring or nullno

Example

curl https://api.faxforagents.com/v1/classifications \
  -H "Authorization: Bearer ffa_test_..."

POST /v1/classifications

Classify a received fax or a document into one of your document types, or abstain

Request body application/json, required

POST /v1/classifications request body
FieldTypeRequiredDescription
abstain_belownumberno
document_idstring or nullno
document_typesarray of stringyes
inbox_item_idstring or nullno
max_pagesinteger or nullno
strictbooleannoRefuse with page_limit_exceeded when the document has more pages than would be read, instead of reading the first ones and warning.
strong_model_if_belownumberno

Responses

POST /v1/classifications responses
StatusMeaning
201Successful Response
422Validation Error

Response fields

POST /v1/classifications response fields
FieldTypeRequiredDescription
completed_atstring or nullyes
confidencenumber or nullyes
correctionsarray of object or nullno
created_atstringyes
created_bystringyes
currencystringyes
document_idstringyes
document_pagesintegeryesThe document's page count. Above pages_processed on a completed row means the cap left pages unread; output.truncated and a warning say so.
environmentstring (live, test)yes
error_codestring or nullyes
idstringyes
inbox_item_idstring or nullyes
kindstring (extract, classify, summarize)yes
modelsobjectyes
optionsobjectyes
outputobject or nullyes
pagesarray of object ExtractionPageyes
pages_escalatedintegeryes
pages_processedintegeryes
pages_requestedintegeryes
price_microintegeryes
provider_cost_microintegeryes
schemaobject or nullno
schema_idstring or nullyes
started_atstring or nullyes
statusstring (pending, queued, running, completed, failed)yes

Example

curl https://api.faxforagents.com/v1/classifications \
  -X POST \
  -H "Authorization: Bearer ffa_test_..."

GET /v1/classifications/{classification_id}

One classification

Parameters

GET /v1/classifications/{classification_id} parameters
NameInTypeRequiredNotes
classification_idpathstringyes

Responses

GET /v1/classifications/{classification_id} responses
StatusMeaning
200Successful Response
422Validation Error

Response fields

GET /v1/classifications/{classification_id} response fields
FieldTypeRequiredDescription
completed_atstring or nullyes
confidencenumber or nullyes
correctionsarray of object or nullno
created_atstringyes
created_bystringyes
currencystringyes
document_idstringyes
document_pagesintegeryesThe document's page count. Above pages_processed on a completed row means the cap left pages unread; output.truncated and a warning say so.
environmentstring (live, test)yes
error_codestring or nullyes
idstringyes
inbox_item_idstring or nullyes
kindstring (extract, classify, summarize)yes
modelsobjectyes
optionsobjectyes
outputobject or nullyes
pagesarray of object ExtractionPageyes
pages_escalatedintegeryes
pages_processedintegeryes
pages_requestedintegeryes
price_microintegeryes
provider_cost_microintegeryes
schemaobject or nullno
schema_idstring or nullyes
started_atstring or nullyes
statusstring (pending, queued, running, completed, failed)yes

Example

curl https://api.faxforagents.com/v1/classifications/CLASSIFICATION_ID \
  -H "Authorization: Bearer ffa_test_..."

GET /v1/document-summaries

Summaries, newest first

Parameters

GET /v1/document-summaries parameters
NameInTypeRequiredNotes
inbox_item_idquerystring or nullno
document_idquerystring or nullno
cursorquerystring or nullno
limitqueryintegerno Default 50.

Responses

GET /v1/document-summaries responses
StatusMeaning
200Successful Response
422Validation Error

Response fields

GET /v1/document-summaries response fields
FieldTypeRequiredDescription
itemsarray of object Extractionyes
next_cursorstring or nullno

Example

curl https://api.faxforagents.com/v1/document-summaries \
  -H "Authorization: Bearer ffa_test_..."

POST /v1/document-summaries

Summarise a received fax or a document; every sentence cites its pages

Request body application/json, required

POST /v1/document-summaries request body
FieldTypeRequiredDescription
document_idstring or nullno
inbox_item_idstring or nullno
max_pagesinteger or nullno
strictbooleannoRefuse with page_limit_exceeded when the document has more pages than would be read, instead of reading the first ones and warning.
strong_model_if_belownumberno

Responses

POST /v1/document-summaries responses
StatusMeaning
201Successful Response
422Validation Error

Response fields

POST /v1/document-summaries response fields
FieldTypeRequiredDescription
completed_atstring or nullyes
confidencenumber or nullyes
correctionsarray of object or nullno
created_atstringyes
created_bystringyes
currencystringyes
document_idstringyes
document_pagesintegeryesThe document's page count. Above pages_processed on a completed row means the cap left pages unread; output.truncated and a warning say so.
environmentstring (live, test)yes
error_codestring or nullyes
idstringyes
inbox_item_idstring or nullyes
kindstring (extract, classify, summarize)yes
modelsobjectyes
optionsobjectyes
outputobject or nullyes
pagesarray of object ExtractionPageyes
pages_escalatedintegeryes
pages_processedintegeryes
pages_requestedintegeryes
price_microintegeryes
provider_cost_microintegeryes
schemaobject or nullno
schema_idstring or nullyes
started_atstring or nullyes
statusstring (pending, queued, running, completed, failed)yes

Example

curl https://api.faxforagents.com/v1/document-summaries \
  -X POST \
  -H "Authorization: Bearer ffa_test_..."

GET /v1/document-summaries/{summary_id}

One summary

Parameters

GET /v1/document-summaries/{summary_id} parameters
NameInTypeRequiredNotes
summary_idpathstringyes

Responses

GET /v1/document-summaries/{summary_id} responses
StatusMeaning
200Successful Response
422Validation Error

Response fields

GET /v1/document-summaries/{summary_id} response fields
FieldTypeRequiredDescription
completed_atstring or nullyes
confidencenumber or nullyes
correctionsarray of object or nullno
created_atstringyes
created_bystringyes
currencystringyes
document_idstringyes
document_pagesintegeryesThe document's page count. Above pages_processed on a completed row means the cap left pages unread; output.truncated and a warning say so.
environmentstring (live, test)yes
error_codestring or nullyes
idstringyes
inbox_item_idstring or nullyes
kindstring (extract, classify, summarize)yes
modelsobjectyes
optionsobjectyes
outputobject or nullyes
pagesarray of object ExtractionPageyes
pages_escalatedintegeryes
pages_processedintegeryes
pages_requestedintegeryes
price_microintegeryes
provider_cost_microintegeryes
schemaobject or nullno
schema_idstring or nullyes
started_atstring or nullyes
statusstring (pending, queued, running, completed, failed)yes

Example

curl https://api.faxforagents.com/v1/document-summaries/SUMMARY_ID \
  -H "Authorization: Bearer ffa_test_..."

GET /v1/extraction-schemas

Your extraction schemas

Responses

GET /v1/extraction-schemas responses
StatusMeaning
200Successful Response

Response fields

GET /v1/extraction-schemas response fields
FieldTypeRequiredDescription
itemsarray of object ExtractionSchemayes

Example

curl https://api.faxforagents.com/v1/extraction-schemas \
  -H "Authorization: Bearer ffa_test_..."

POST /v1/extraction-schemas

Save a versioned extraction schema (the same name again is the next version)

Request body application/json, required

POST /v1/extraction-schemas request body
FieldTypeRequiredDescription
descriptionstring or nullno
namestringyes
schemaobjectyes

Responses

POST /v1/extraction-schemas responses
StatusMeaning
201Successful Response
422Validation Error

Response fields

POST /v1/extraction-schemas response fields
FieldTypeRequiredDescription
created_atstringyes
created_bystringyes
descriptionstring or nullyes
idstringyes
namestringyes
schemaobjectyes
statusstringyes
versionintegeryes

Example

curl https://api.faxforagents.com/v1/extraction-schemas \
  -X POST \
  -H "Authorization: Bearer ffa_test_..."

GET /v1/extraction-schemas/{schema_id}

One schema version

Parameters

GET /v1/extraction-schemas/{schema_id} parameters
NameInTypeRequiredNotes
schema_idpathstringyes

Responses

GET /v1/extraction-schemas/{schema_id} responses
StatusMeaning
200Successful Response
422Validation Error

Response fields

GET /v1/extraction-schemas/{schema_id} response fields
FieldTypeRequiredDescription
created_atstringyes
created_bystringyes
descriptionstring or nullyes
idstringyes
namestringyes
schemaobjectyes
statusstringyes
versionintegeryes

Example

curl https://api.faxforagents.com/v1/extraction-schemas/SCHEMA_ID \
  -H "Authorization: Bearer ffa_test_..."

GET /v1/extractions

Extractions, newest first

Parameters

GET /v1/extractions parameters
NameInTypeRequiredNotes
inbox_item_idquerystring or nullno
document_idquerystring or nullno
cursorquerystring or nullno
limitqueryintegerno Default 50.

Responses

GET /v1/extractions responses
StatusMeaning
200Successful Response
422Validation Error

Response fields

GET /v1/extractions response fields
FieldTypeRequiredDescription
itemsarray of object Extractionyes
next_cursorstring or nullno

Example

curl https://api.faxforagents.com/v1/extractions \
  -H "Authorization: Bearer ffa_test_..."

POST /v1/extractions

Read a received fax or a document: OCR per page, then fields against a schema

Request body application/json, required

POST /v1/extractions request body
FieldTypeRequiredDescription
document_idstring or nullno
inbox_item_idstring or nullno
max_pagesinteger or nullno
schemaobject or nullnoA JSON Schema object of string, number, boolean or date fields with descriptions.
schema_idstring or nullno
strictbooleannoRefuse with page_limit_exceeded when the document has more pages than would be read, instead of reading the first ones and warning.
strong_model_if_belownumberno

Responses

POST /v1/extractions responses
StatusMeaning
201Successful Response
422Validation Error

Response fields

POST /v1/extractions response fields
FieldTypeRequiredDescription
completed_atstring or nullyes
confidencenumber or nullyes
correctionsarray of object or nullno
created_atstringyes
created_bystringyes
currencystringyes
document_idstringyes
document_pagesintegeryesThe document's page count. Above pages_processed on a completed row means the cap left pages unread; output.truncated and a warning say so.
environmentstring (live, test)yes
error_codestring or nullyes
idstringyes
inbox_item_idstring or nullyes
kindstring (extract, classify, summarize)yes
modelsobjectyes
optionsobjectyes
outputobject or nullyes
pagesarray of object ExtractionPageyes
pages_escalatedintegeryes
pages_processedintegeryes
pages_requestedintegeryes
price_microintegeryes
provider_cost_microintegeryes
schemaobject or nullno
schema_idstring or nullyes
started_atstring or nullyes
statusstring (pending, queued, running, completed, failed)yes

Example

curl https://api.faxforagents.com/v1/extractions \
  -X POST \
  -H "Authorization: Bearer ffa_test_..."

GET /v1/extractions/{extraction_id}

One extraction with its corrections

Parameters

GET /v1/extractions/{extraction_id} parameters
NameInTypeRequiredNotes
extraction_idpathstringyes

Responses

GET /v1/extractions/{extraction_id} responses
StatusMeaning
200Successful Response
422Validation Error

Response fields

GET /v1/extractions/{extraction_id} response fields
FieldTypeRequiredDescription
completed_atstring or nullyes
confidencenumber or nullyes
correctionsarray of object or nullno
created_atstringyes
created_bystringyes
currencystringyes
document_idstringyes
document_pagesintegeryesThe document's page count. Above pages_processed on a completed row means the cap left pages unread; output.truncated and a warning say so.
environmentstring (live, test)yes
error_codestring or nullyes
idstringyes
inbox_item_idstring or nullyes
kindstring (extract, classify, summarize)yes
modelsobjectyes
optionsobjectyes
outputobject or nullyes
pagesarray of object ExtractionPageyes
pages_escalatedintegeryes
pages_processedintegeryes
pages_requestedintegeryes
price_microintegeryes
provider_cost_microintegeryes
schemaobject or nullno
schema_idstring or nullyes
started_atstring or nullyes
statusstring (pending, queued, running, completed, failed)yes

Example

curl https://api.faxforagents.com/v1/extractions/EXTRACTION_ID \
  -H "Authorization: Bearer ffa_test_..."

POST /v1/extractions/{extraction_id}/corrections

Record a reviewer's correction of one field (stored beside the extraction, never merged)

Parameters

POST /v1/extractions/{extraction_id}/corrections parameters
NameInTypeRequiredNotes
extraction_idpathstringyes

Request body application/json, required

POST /v1/extractions/{extraction_id}/corrections request body
FieldTypeRequiredDescription
fieldstring or nullno
notestring or nullno
valueanyno

Responses

POST /v1/extractions/{extraction_id}/corrections responses
StatusMeaning
201Successful Response
422Validation Error

Response fields

POST /v1/extractions/{extraction_id}/corrections response fields
FieldTypeRequiredDescription
created_atstringyes
created_bystringyes
extraction_idstringyes
fieldstringyes
idstringyes
notestring or nullyes
valueanyyes

Example

curl https://api.faxforagents.com/v1/extractions/EXTRACTION_ID/corrections \
  -X POST \
  -H "Authorization: Bearer ffa_test_..."

numbers

GET /v1/coverage

Where we send and where we host numbers

Responses

GET /v1/coverage responses
StatusMeaning
200Successful Response

Response fields

GET /v1/coverage response fields
FieldTypeRequiredDescription
coverage_versionstring or nullyes
excludedobjectyes
generated_atstring or nullyes
inboundobjectyes
notestring or nullyes
orderable_nowarray of stringyes
outboundobjectyes

Example

curl https://api.faxforagents.com/v1/coverage \
  -H "Authorization: Bearer ffa_test_..."

GET /v1/number-inventory

Fax-capable numbers for sale

Parameters

GET /v1/number-inventory parameters
NameInTypeRequiredNotes
countryquerystringno Default "US".
localityquerystring or nullno
typequerystring (local, toll_free)no Default "local".
limitqueryintegerno Default 10.

Responses

GET /v1/number-inventory responses
StatusMeaning
200Successful Response
422Validation Error

Response fields

GET /v1/number-inventory response fields
FieldTypeRequiredDescription
countrystringyes
itemsarray of object InventoryNumberyes
localitystring or nullyes
notestringyes
number_typestringyes
recurring_periodstringyes

Example

curl https://api.faxforagents.com/v1/number-inventory \
  -H "Authorization: Bearer ffa_test_..."

POST /v1/number-orders

Buy a number (the first month is held now, charged on activation)

Request body application/json, required

POST /v1/number-orders request body
FieldTypeRequiredDescription
e164stringyesA number from GET /v1/number-inventory, E.164.
inbound_webhook_idstring or nullnoThe webhook that receives fax.received for this number (default: all).
labelstring or nullno
project_idstring or nullnoInbound faxes are filed under this project.

Responses

POST /v1/number-orders responses
StatusMeaning
201Successful Response
422Validation Error

Response fields

POST /v1/number-orders response fields
FieldTypeRequiredDescription
completed_atstring or nullyes
countrystring or nullyes
created_atstringyes
currencystringyes
e164string or nullyes
environmentstring (live, test)yes
errorstring or nullyes
first_month_hold_microintegeryesHeld now, captured when the number activates.
idstringyes
numberobject Number or nullyes
number_idstring or nullyes
number_typestring or nullyes
providerstringyes
recurring_charge_microintegeryesCharged every month on the activation day.
recurring_periodstringyes
statusstringyes

Example

curl https://api.faxforagents.com/v1/number-orders \
  -X POST \
  -H "Authorization: Bearer ffa_test_..."

GET /v1/number-orders/{order_id}

Read a number order

Parameters

GET /v1/number-orders/{order_id} parameters
NameInTypeRequiredNotes
order_idpathstringyes

Responses

GET /v1/number-orders/{order_id} responses
StatusMeaning
200Successful Response
422Validation Error

Response fields

GET /v1/number-orders/{order_id} response fields
FieldTypeRequiredDescription
completed_atstring or nullyes
countrystring or nullyes
created_atstringyes
currencystringyes
e164string or nullyes
environmentstring (live, test)yes
errorstring or nullyes
first_month_hold_microintegeryesHeld now, captured when the number activates.
idstringyes
numberobject Number or nullyes
number_idstring or nullyes
number_typestring or nullyes
providerstringyes
recurring_charge_microintegeryesCharged every month on the activation day.
recurring_periodstringyes
statusstringyes

Example

curl https://api.faxforagents.com/v1/number-orders/ORDER_ID \
  -H "Authorization: Bearer ffa_test_..."

GET /v1/numbers

Your numbers

Parameters

GET /v1/numbers parameters
NameInTypeRequiredNotes
include_releasedquerybooleanno Default false.

Responses

GET /v1/numbers responses
StatusMeaning
200Successful Response
422Validation Error

Response fields

GET /v1/numbers response fields
FieldTypeRequiredDescription
itemsarray of object Numberyes

Example

curl https://api.faxforagents.com/v1/numbers \
  -H "Authorization: Bearer ffa_test_..."

GET /v1/numbers/{number_id}

One number

Parameters

GET /v1/numbers/{number_id} parameters
NameInTypeRequiredNotes
number_idpathstringyes

Responses

GET /v1/numbers/{number_id} responses
StatusMeaning
200Successful Response
422Validation Error

Response fields

GET /v1/numbers/{number_id} response fields
FieldTypeRequiredDescription
activated_atstring or nullyes
countrystringyes
created_atstringyes
currencystringyes
e164stringyes
environmentstring (live, test)yes
idstringyes
inbound_statusstringyes
inbound_webhook_idstring or nullyes
labelstring or nullyes
localitystring or nullyes
monthly_microintegeryes
number_typestringyes
order_idstring or nullyes
project_idstring or nullyes
providerstringyes
released_atstring or nullyes
renews_atstring or nullyes
statusstringyes

Example

curl https://api.faxforagents.com/v1/numbers/NUMBER_ID \
  -H "Authorization: Bearer ffa_test_..."

PATCH /v1/numbers/{number_id}

Label and inbound route of a number

Parameters

PATCH /v1/numbers/{number_id} parameters
NameInTypeRequiredNotes
number_idpathstringyes

Request body application/json, required

PATCH /v1/numbers/{number_id} request body
FieldTypeRequiredDescription
inbound_webhook_idstring or nullno
labelstring or nullno
project_idstring or nullno

Responses

PATCH /v1/numbers/{number_id} responses
StatusMeaning
200Successful Response
422Validation Error

Response fields

PATCH /v1/numbers/{number_id} response fields
FieldTypeRequiredDescription
activated_atstring or nullyes
countrystringyes
created_atstringyes
currencystringyes
e164stringyes
environmentstring (live, test)yes
idstringyes
inbound_statusstringyes
inbound_webhook_idstring or nullyes
labelstring or nullyes
localitystring or nullyes
monthly_microintegeryes
number_typestringyes
order_idstring or nullyes
project_idstring or nullyes
providerstringyes
released_atstring or nullyes
renews_atstring or nullyes
statusstringyes

Example

curl https://api.faxforagents.com/v1/numbers/NUMBER_ID \
  -X PATCH \
  -H "Authorization: Bearer ffa_test_..."

POST /v1/numbers/{number_id}/release-requests

Release a number (confirm with the number itself; 30-day quarantine follows)

Parameters

POST /v1/numbers/{number_id}/release-requests parameters
NameInTypeRequiredNotes
number_idpathstringyes

Request body application/json, required

POST /v1/numbers/{number_id}/release-requests request body
FieldTypeRequiredDescription
confirmstring or nullnoThe number itself, typed out, to confirm.

Responses

POST /v1/numbers/{number_id}/release-requests responses
StatusMeaning
200Successful Response
422Validation Error

Response fields

POST /v1/numbers/{number_id}/release-requests response fields
FieldTypeRequiredDescription
activated_atstring or nullyes
countrystringyes
created_atstringyes
currencystringyes
e164stringyes
environmentstring (live, test)yes
idstringyes
inbound_statusstringyes
inbound_webhook_idstring or nullyes
labelstring or nullyes
localitystring or nullyes
monthly_microintegeryes
number_typestringyes
order_idstring or nullyes
project_idstring or nullyes
providerstringyes
released_atstring or nullyes
renews_atstring or nullyes
statusstringyes

Example

curl https://api.faxforagents.com/v1/numbers/NUMBER_ID/release-requests \
  -X POST \
  -H "Authorization: Bearer ffa_test_..."

GET /v1/port-orders

Port orders and port-out requests

Responses

GET /v1/port-orders responses
StatusMeaning
200Successful Response

Response fields

GET /v1/port-orders response fields
FieldTypeRequiredDescription
itemsarray of object PortOrderyes

Example

curl https://api.faxforagents.com/v1/port-orders \
  -H "Authorization: Bearer ffa_test_..."

POST /v1/port-orders

Request a port-in (handled with you)

Request body application/json, required

POST /v1/port-orders request body
FieldTypeRequiredDescription
notestring or nullno
numbersarray of stringyes

Responses

POST /v1/port-orders responses
StatusMeaning
201Successful Response
422Validation Error

Response fields

POST /v1/port-orders response fields
FieldTypeRequiredDescription
created_atstringyes
directionstringyes
environmentstring (live, test)yes
idstringyes
milestonesarray of objectyes
numbersarray of stringyes
providerstringyes
requestobjectyes
statusstringyes
updated_atstringyes

Example

curl https://api.faxforagents.com/v1/port-orders \
  -X POST \
  -H "Authorization: Bearer ffa_test_..."

GET /v1/port-orders/{port_id}

One port order

Parameters

GET /v1/port-orders/{port_id} parameters
NameInTypeRequiredNotes
port_idpathstringyes

Responses

GET /v1/port-orders/{port_id} responses
StatusMeaning
200Successful Response
422Validation Error

Response fields

GET /v1/port-orders/{port_id} response fields
FieldTypeRequiredDescription
created_atstringyes
directionstringyes
environmentstring (live, test)yes
idstringyes
milestonesarray of objectyes
numbersarray of stringyes
providerstringyes
requestobjectyes
statusstringyes
updated_atstringyes

Example

curl https://api.faxforagents.com/v1/port-orders/PORT_ID \
  -H "Authorization: Bearer ffa_test_..."

POST /v1/port-out-requests

Note a port-out of one of your numbers

Request body application/json, required

POST /v1/port-out-requests request body
FieldTypeRequiredDescription
notestring or nullno
number_idstringyes

Responses

POST /v1/port-out-requests responses
StatusMeaning
201Successful Response
422Validation Error

Response fields

POST /v1/port-out-requests response fields
FieldTypeRequiredDescription
created_atstringyes
directionstringyes
environmentstring (live, test)yes
idstringyes
milestonesarray of objectyes
numbersarray of stringyes
providerstringyes
requestobjectyes
statusstringyes
updated_atstringyes

Example

curl https://api.faxforagents.com/v1/port-out-requests \
  -X POST \
  -H "Authorization: Bearer ffa_test_..."

POST /v1/portability-checks

Can these numbers port in

Request body application/json, required

POST /v1/portability-checks request body
FieldTypeRequiredDescription
numbersarray of stringyes

Responses

POST /v1/portability-checks responses
StatusMeaning
201Successful Response
422Validation Error

Response fields

POST /v1/portability-checks response fields
FieldTypeRequiredDescription
checked_atstringyes
itemsarray of objectyes

Example

curl https://api.faxforagents.com/v1/portability-checks \
  -X POST \
  -H "Authorization: Bearer ffa_test_..."

POST /v1/sender-verifications

Verify a number of yours as a sender (only numbers you own)

Request body application/json, required

POST /v1/sender-verifications request body
FieldTypeRequiredDescription
fromstringyesA number your organization owns, E.164.

Responses

POST /v1/sender-verifications responses
StatusMeaning
201Successful Response
422Validation Error

Response fields

POST /v1/sender-verifications response fields
FieldTypeRequiredDescription
created_atstringyes
environmentstring (live, test)yes
fromstringyes
idstringyes
methodstringyes
number_idstring or nullyes
statusstringyes
verified_atstring or nullyes

Example

curl https://api.faxforagents.com/v1/sender-verifications \
  -X POST \
  -H "Authorization: Bearer ffa_test_..."

documents

GET /v1/documents

List documents, newest first

Parameters

GET /v1/documents parameters
NameInTypeRequiredNotes
cursorquerystring or nullno
limitqueryintegerno Default 50.

Responses

GET /v1/documents responses
StatusMeaning
200Successful Response
422Validation Error

Response fields

GET /v1/documents response fields
FieldTypeRequiredDescription
itemsarray of object Documentyes
next_cursorstring or nullno

Example

curl https://api.faxforagents.com/v1/documents \
  -H "Authorization: Bearer ffa_test_..."

POST /v1/documents

Create an immutable document from an upload or from text

Request body application/json, required

POST /v1/documents request body
FieldTypeRequiredDescription
filenamestring or nullno
htmlstring or nullnoHTML rendered to PDF by a headless browser with scripts off and no network: inline CSS and data: images print, external resources are counted as blocked. US letter unless @page says otherwise. At most 2 MiB.
markdownstring or nullnoMarkdown (headings, lists, emphasis, code) rendered to PDF.
textstring or nullnoPlain text rendered to a letter PDF.
upload_idstring or nullno

Responses

POST /v1/documents responses
StatusMeaning
201Successful Response
422Validation Error

Response fields

POST /v1/documents response fields
FieldTypeRequiredDescription
content_typestringyes
created_atstringyes
deleted_atstring or nullyes
environmentstring (live, test)yes
expires_atstring or nullyes
filenamestringyes
idstringyes
page_countintegeryes
render_reasonstring or nullyes
render_statusstringyes
sha256stringyes
size_bytesintegeryes
sourcestringyes
statusstringyes
upload_idstring or nullyes
validationobjectyes

Example

curl https://api.faxforagents.com/v1/documents \
  -X POST \
  -H "Authorization: Bearer ffa_test_..."

DELETE /v1/documents/{document_id}

Delete a document (its bytes and previews)

Parameters

DELETE /v1/documents/{document_id} parameters
NameInTypeRequiredNotes
document_idpathstringyes

Responses

DELETE /v1/documents/{document_id} responses
StatusMeaning
200Successful Response
422Validation Error

Response fields

DELETE /v1/documents/{document_id} response fields
FieldTypeRequiredDescription
deletedbooleanno
idstringyes

Example

curl https://api.faxforagents.com/v1/documents/DOCUMENT_ID \
  -X DELETE \
  -H "Authorization: Bearer ffa_test_..."

GET /v1/documents/{document_id}

Read a document's hash, pages and validation state

Parameters

GET /v1/documents/{document_id} parameters
NameInTypeRequiredNotes
document_idpathstringyes

Responses

GET /v1/documents/{document_id} responses
StatusMeaning
200Successful Response
422Validation Error

Response fields

GET /v1/documents/{document_id} response fields
FieldTypeRequiredDescription
content_typestringyes
created_atstringyes
deleted_atstring or nullyes
environmentstring (live, test)yes
expires_atstring or nullyes
filenamestringyes
idstringyes
page_countintegeryes
render_reasonstring or nullyes
render_statusstringyes
sha256stringyes
size_bytesintegeryes
sourcestringyes
statusstringyes
upload_idstring or nullyes
validationobjectyes

Example

curl https://api.faxforagents.com/v1/documents/DOCUMENT_ID \
  -H "Authorization: Bearer ffa_test_..."

GET /v1/documents/{document_id}/content

The PDF bytes behind a signed URL (no API key)

Parameters

GET /v1/documents/{document_id}/content parameters
NameInTypeRequiredNotes
document_idpathstringyes
expquerystring or nullno
sigquerystring or nullno

Responses

GET /v1/documents/{document_id}/content responses
StatusMeaning
200Successful Response
422Validation Error

Example

curl https://api.faxforagents.com/v1/documents/DOCUMENT_ID/content \
  -H "Authorization: Bearer ffa_test_..."

GET /v1/documents/{document_id}/download

A short-lived signed download URL

Parameters

GET /v1/documents/{document_id}/download parameters
NameInTypeRequiredNotes
document_idpathstringyes

Responses

GET /v1/documents/{document_id}/download responses
StatusMeaning
200Successful Response
422Validation Error

Response fields

GET /v1/documents/{document_id}/download response fields
FieldTypeRequiredDescription
content_typestringyes
expires_atstringyes
urlstringyes

Example

curl https://api.faxforagents.com/v1/documents/DOCUMENT_ID/download \
  -H "Authorization: Bearer ffa_test_..."

GET /v1/documents/{document_id}/pages

Rendered pages with signed preview URLs

Parameters

GET /v1/documents/{document_id}/pages parameters
NameInTypeRequiredNotes
document_idpathstringyes

Responses

GET /v1/documents/{document_id}/pages responses
StatusMeaning
200Successful Response
422Validation Error

Response fields

GET /v1/documents/{document_id}/pages response fields
FieldTypeRequiredDescription
document_idstringyes
itemsarray of object PagePreviewyes
page_countintegeryes
render_reasonstring or nullyes
render_statusstringyes

Example

curl https://api.faxforagents.com/v1/documents/DOCUMENT_ID/pages \
  -H "Authorization: Bearer ffa_test_..."

GET /v1/documents/{document_id}/pages/{page_number}/content

A page PNG behind a signed URL (no API key)

Parameters

GET /v1/documents/{document_id}/pages/{page_number}/content parameters
NameInTypeRequiredNotes
document_idpathstringyes
page_numberpathintegeryes
expquerystring or nullno
sigquerystring or nullno

Responses

GET /v1/documents/{document_id}/pages/{page_number}/content responses
StatusMeaning
200Successful Response
422Validation Error

Example

curl https://api.faxforagents.com/v1/documents/DOCUMENT_ID/pages/PAGE_NUMBER/content \
  -H "Authorization: Bearer ffa_test_..."

GET /v1/documents/{document_id}/validation

Validation warnings

Parameters

GET /v1/documents/{document_id}/validation parameters
NameInTypeRequiredNotes
document_idpathstringyes

Responses

GET /v1/documents/{document_id}/validation responses
StatusMeaning
200Successful Response
422Validation Error

Response fields

GET /v1/documents/{document_id}/validation response fields
FieldTypeRequiredDescription
idstringyes
page_countintegeryes
render_reasonstring or nullyes
render_statusstringyes
statusstringyes
warningsarray of objectyes

Example

curl https://api.faxforagents.com/v1/documents/DOCUMENT_ID/validation \
  -H "Authorization: Bearer ffa_test_..."

POST /v1/uploads

Create a bounded upload session

Request body application/json, required

POST /v1/uploads request body
FieldTypeRequiredDescription
content_typestringnoapplication/pdf, image/png, image/jpeg or image/tiff. An image becomes 8-bit gray letter pages, since fax is monochrome. A frame wider than it is tall is rotated. A frame above 300 dpi letter is downsampled. Every TIFF frame is a page. PNG and JPEG take the first frame. The bytes must be the declared type.
filenamestringyes
size_bytesintegeryes

Responses

POST /v1/uploads responses
StatusMeaning
201Successful Response
422Validation Error

Response fields

POST /v1/uploads response fields
FieldTypeRequiredDescription
completed_atstring or nullyes
content_typestringyes
created_atstringyes
declared_sizeintegeryes
expires_atstringyes
filenamestringyes
idstringyes
received_sizeintegeryes
sha256string or nullyes
statusstringyes
upload_methodstring or nullno
upload_urlstring or nullno
upload_url_expires_atstring or nullno

Example

curl https://api.faxforagents.com/v1/uploads \
  -X POST \
  -H "Authorization: Bearer ffa_test_..."

DELETE /v1/uploads/{upload_id}

Cancel an incomplete upload

Parameters

DELETE /v1/uploads/{upload_id} parameters
NameInTypeRequiredNotes
upload_idpathstringyes

Responses

DELETE /v1/uploads/{upload_id} responses
StatusMeaning
200Successful Response
422Validation Error

Response fields

DELETE /v1/uploads/{upload_id} response fields
FieldTypeRequiredDescription
deletedbooleanno
idstringyes

Example

curl https://api.faxforagents.com/v1/uploads/UPLOAD_ID \
  -X DELETE \
  -H "Authorization: Bearer ffa_test_..."

POST /v1/uploads/{upload_id}/complete

Finalize an upload (size and hash checked)

Parameters

POST /v1/uploads/{upload_id}/complete parameters
NameInTypeRequiredNotes
upload_idpathstringyes

Request body application/json, required

POST /v1/uploads/{upload_id}/complete request body
FieldTypeRequiredDescription
sha256string or nullnoOptional: fail if the bytes differ.

Responses

POST /v1/uploads/{upload_id}/complete responses
StatusMeaning
200Successful Response
422Validation Error

Response fields

POST /v1/uploads/{upload_id}/complete response fields
FieldTypeRequiredDescription
completed_atstring or nullyes
content_typestringyes
created_atstringyes
declared_sizeintegeryes
expires_atstringyes
filenamestringyes
idstringyes
received_sizeintegeryes
sha256string or nullyes
statusstringyes
upload_methodstring or nullno
upload_urlstring or nullno
upload_url_expires_atstring or nullno

Example

curl https://api.faxforagents.com/v1/uploads/UPLOAD_ID/complete \
  -X POST \
  -H "Authorization: Bearer ffa_test_..."

PUT /v1/uploads/{upload_id}/content

Send the bytes to a signed upload URL (no API key)

Parameters

PUT /v1/uploads/{upload_id}/content parameters
NameInTypeRequiredNotes
upload_idpathstringyes
expquerystring or nullno
sigquerystring or nullno

Responses

PUT /v1/uploads/{upload_id}/content responses
StatusMeaning
200Successful Response
422Validation Error

Response fields

PUT /v1/uploads/{upload_id}/content response fields
FieldTypeRequiredDescription
completed_atstring or nullyes
content_typestringyes
created_atstringyes
declared_sizeintegeryes
expires_atstringyes
filenamestringyes
idstringyes
received_sizeintegeryes
sha256string or nullyes
statusstringyes
upload_methodstring or nullno
upload_urlstring or nullno
upload_url_expires_atstring or nullno

Example

curl https://api.faxforagents.com/v1/uploads/UPLOAD_ID/content \
  -X PUT \
  -H "Authorization: Bearer ffa_test_..."

events

  • GET /v1/events Events for reconciliation, oldest first from the cursor

GET /v1/events

Events for reconciliation, oldest first from the cursor

Parameters

GET /v1/events parameters
NameInTypeRequiredNotes
typequerystring or nullno
cursorquerystring or nullnoThe cursor from the previous page (opaque).
limitqueryintegerno Default 100.

Responses

GET /v1/events responses
StatusMeaning
200Successful Response
422Validation Error

Response fields

GET /v1/events response fields
FieldTypeRequiredDescription
itemsarray of object Eventyes
next_cursorstring or nullno

Example

curl https://api.faxforagents.com/v1/events \
  -H "Authorization: Bearer ffa_test_..."

quotes

POST /v1/fax-quotes

Price an exact document to one destination

Request body application/json, required

POST /v1/fax-quotes request body
FieldTypeRequiredDescription
coverobject or nullnoCover sheet fields: to_name, from_name, subject, message. Counts as a page.
document_idstringyes
fromstring or nullnoA number you own; omit for the shared pool.
tostringyesDestination in E.164, for example +12025550123.

Responses

POST /v1/fax-quotes responses
StatusMeaning
201Successful Response
422Validation Error

Response fields

POST /v1/fax-quotes response fields
FieldTypeRequiredDescription
amount_microintegeryes
authorization_requiredbooleanyes
billable_pagesintegeryes
consumed_by_job_idstring or nullyes
coverobject or nullyes
cover_pagesintegeryes
created_atstringyes
currencystringyes
document_idstringyes
document_pagesintegeryes
document_sha256stringyes
environmentstring (live, test)yes
expiredbooleanyes
expires_atstringyes
fromstring or nullno
idstringyes
per_page_microintegerno
price_versionstringyes
routestringyes
route_labelstringno
tostringyes
warningsarray of objectyes

Example

curl https://api.faxforagents.com/v1/fax-quotes \
  -X POST \
  -H "Authorization: Bearer ffa_test_..."

GET /v1/fax-quotes/{quote_id}

Read a quote

Parameters

GET /v1/fax-quotes/{quote_id} parameters
NameInTypeRequiredNotes
quote_idpathstringyes

Responses

GET /v1/fax-quotes/{quote_id} responses
StatusMeaning
200Successful Response
422Validation Error

Response fields

GET /v1/fax-quotes/{quote_id} response fields
FieldTypeRequiredDescription
amount_microintegeryes
authorization_requiredbooleanyes
billable_pagesintegeryes
consumed_by_job_idstring or nullyes
coverobject or nullyes
cover_pagesintegeryes
created_atstringyes
currencystringyes
document_idstringyes
document_pagesintegeryes
document_sha256stringyes
environmentstring (live, test)yes
expiredbooleanyes
expires_atstringyes
fromstring or nullno
idstringyes
per_page_microintegerno
price_versionstringyes
routestringyes
route_labelstringno
tostringyes
warningsarray of objectyes

Example

curl https://api.faxforagents.com/v1/fax-quotes/QUOTE_ID \
  -H "Authorization: Bearer ffa_test_..."

faxes

GET /v1/faxes

List fax jobs, newest first

Parameters

GET /v1/faxes parameters
NameInTypeRequiredNotes
statequerystring or nullno
cursorquerystring or nullno
limitqueryintegerno Default 50.

Responses

GET /v1/faxes responses
StatusMeaning
200Successful Response
422Validation Error

Response fields

GET /v1/faxes response fields
FieldTypeRequiredDescription
itemsarray of object FaxJobyes
next_cursorstring or nullno

Example

curl https://api.faxforagents.com/v1/faxes \
  -H "Authorization: Bearer ffa_test_..."

POST /v1/faxes

Send a quoted fax (Idempotency-Key recommended)

Request body application/json, required

M9: an approved request authorizes the send; without one a quote that needs authorization is evaluated against the caller's delegated policies.

POST /v1/faxes request body
FieldTypeRequiredDescription
approval_idstring or nullnoAn approved approval request bound to this quote. Consumed by this one send.
client_referencestring or nullno
quote_idstringyes

Responses

POST /v1/faxes responses
StatusMeaning
201Successful Response
422Validation Error

Response fields

POST /v1/faxes response fields
FieldTypeRequiredDescription
amount_microintegeryes
attempt_countintegeryes
billable_pagesintegeryes
cancel_requested_atstring or nullyes
captured_microintegeryes
client_referencestring or nullyes
completed_atstring or nullyes
cover_pagesintegeryes
created_atstringyes
currencystringyes
directionstringyes
document_idstringyes
document_sha256stringyes
environmentstring (live, test)yes
evidenceobject or nullnoThe carrier's evidence once delivered or partial; null before.
failure_codestring or nullyes
fromstring or nullno
idstringyes
pages_sentintegeryes
providerstringyes
provider_refstring or nullyes
quote_idstring or nullyes
routestringyes
statestring (queued, active, partial, failed, unknown, delivered)yes
tostringyes
transmitted_sha256string or nullyes
updated_atstringyes

Example

curl https://api.faxforagents.com/v1/faxes \
  -X POST \
  -H "Authorization: Bearer ffa_test_..."

GET /v1/faxes/{fax_id}

Read a fax job (with evidence once delivered)

Parameters

GET /v1/faxes/{fax_id} parameters
NameInTypeRequiredNotes
fax_idpathstringyes

Responses

GET /v1/faxes/{fax_id} responses
StatusMeaning
200Successful Response
422Validation Error

Response fields

GET /v1/faxes/{fax_id} response fields
FieldTypeRequiredDescription
amount_microintegeryes
attempt_countintegeryes
billable_pagesintegeryes
cancel_requested_atstring or nullyes
captured_microintegeryes
client_referencestring or nullyes
completed_atstring or nullyes
cover_pagesintegeryes
created_atstringyes
currencystringyes
directionstringyes
document_idstringyes
document_sha256stringyes
environmentstring (live, test)yes
evidenceobject or nullnoThe carrier's evidence once delivered or partial; null before.
failure_codestring or nullyes
fromstring or nullno
idstringyes
pages_sentintegeryes
providerstringyes
provider_refstring or nullyes
quote_idstring or nullyes
routestringyes
statestring (queued, active, partial, failed, unknown, delivered)yes
tostringyes
transmitted_sha256string or nullyes
updated_atstringyes

Example

curl https://api.faxforagents.com/v1/faxes/FAX_ID \
  -H "Authorization: Bearer ffa_test_..."

GET /v1/faxes/{fax_id}/attempts

Attempt history

Parameters

GET /v1/faxes/{fax_id}/attempts parameters
NameInTypeRequiredNotes
fax_idpathstringyes

Responses

GET /v1/faxes/{fax_id}/attempts responses
StatusMeaning
200Successful Response
422Validation Error

Response fields

GET /v1/faxes/{fax_id}/attempts response fields
FieldTypeRequiredDescription
itemsarray of object Attemptyes

Example

curl https://api.faxforagents.com/v1/faxes/FAX_ID/attempts \
  -H "Authorization: Bearer ffa_test_..."

POST /v1/faxes/{fax_id}/cancel

Cancel if still possible (best effort once sending)

Parameters

POST /v1/faxes/{fax_id}/cancel parameters
NameInTypeRequiredNotes
fax_idpathstringyes

Responses

POST /v1/faxes/{fax_id}/cancel responses
StatusMeaning
200Successful Response
422Validation Error

Response fields

POST /v1/faxes/{fax_id}/cancel response fields
FieldTypeRequiredDescription
amount_microintegeryes
attempt_countintegeryes
billable_pagesintegeryes
cancel_requested_atstring or nullyes
captured_microintegeryes
client_referencestring or nullyes
completed_atstring or nullyes
cover_pagesintegeryes
created_atstringyes
currencystringyes
directionstringyes
document_idstringyes
document_sha256stringyes
environmentstring (live, test)yes
evidenceobject or nullnoThe carrier's evidence once delivered or partial; null before.
failure_codestring or nullyes
fromstring or nullno
idstringyes
pages_sentintegeryes
providerstringyes
provider_refstring or nullyes
quote_idstring or nullyes
routestringyes
statestring (queued, active, partial, failed, unknown, delivered)yes
tostringyes
transmitted_sha256string or nullyes
updated_atstringyes

Example

curl https://api.faxforagents.com/v1/faxes/FAX_ID/cancel \
  -X POST \
  -H "Authorization: Bearer ffa_test_..."

GET /v1/faxes/{fax_id}/events

Ordered events of one fax

Parameters

GET /v1/faxes/{fax_id}/events parameters
NameInTypeRequiredNotes
fax_idpathstringyes

Responses

GET /v1/faxes/{fax_id}/events responses
StatusMeaning
200Successful Response
422Validation Error

Response fields

GET /v1/faxes/{fax_id}/events response fields
FieldTypeRequiredDescription
itemsarray of object Eventyes
next_cursorstring or nullno

Example

curl https://api.faxforagents.com/v1/faxes/FAX_ID/events \
  -H "Authorization: Bearer ffa_test_..."

GET /v1/faxes/{fax_id}/receipt

Delivery evidence as a receipt (JSON)

Parameters

GET /v1/faxes/{fax_id}/receipt parameters
NameInTypeRequiredNotes
fax_idpathstringyes

Responses

GET /v1/faxes/{fax_id}/receipt responses
StatusMeaning
200Successful Response
422Validation Error

Response fields

GET /v1/faxes/{fax_id}/receipt response fields
FieldTypeRequiredDescription
amount_microintegeryes
attemptsarray of object Attemptyes
billable_pagesintegeryes
captured_microintegeryes
completed_atstring or nullyes
created_atstringyes
currencystringyes
document_sha256stringyes
evidenceobject or nullyes
failure_codestring or nullyes
fax_job_idstringyes
fromstring or nullno
generated_atstringyes
notestringyes
pages_sentintegeryes
providerstringyes
statestringyes
tostringyes
transmitted_sha256string or nullyes

Example

curl https://api.faxforagents.com/v1/faxes/FAX_ID/receipt \
  -H "Authorization: Bearer ffa_test_..."

inbox

GET /v1/inbox

Received faxes, newest first (metadata only)

Parameters

GET /v1/inbox parameters
NameInTypeRequiredNotes
cursorquerystring or nullno
limitqueryintegerno Default 50.
statusquerystring (received, read, archived) or nullno

Responses

GET /v1/inbox responses
StatusMeaning
200Successful Response
422Validation Error

Response fields

GET /v1/inbox response fields
FieldTypeRequiredDescription
itemsarray of object faxforagents__api__routes__inbox__InboxItemyes
next_cursorstring or nullno

Example

curl https://api.faxforagents.com/v1/inbox \
  -H "Authorization: Bearer ffa_test_..."

DELETE /v1/inbox/{inbox_id}

Delete a received fax

Parameters

DELETE /v1/inbox/{inbox_id} parameters
NameInTypeRequiredNotes
inbox_idpathstringyes

Responses

DELETE /v1/inbox/{inbox_id} responses
StatusMeaning
200Successful Response
422Validation Error

Response fields

DELETE /v1/inbox/{inbox_id} response fields
FieldTypeRequiredDescription
deletedbooleanno
idstringyes

Example

curl https://api.faxforagents.com/v1/inbox/INBOX_ID \
  -X DELETE \
  -H "Authorization: Bearer ffa_test_..."

GET /v1/inbox/{inbox_id}

One received fax with its text as data

Parameters

GET /v1/inbox/{inbox_id} parameters
NameInTypeRequiredNotes
inbox_idpathstringyes

Responses

GET /v1/inbox/{inbox_id} responses
StatusMeaning
200Successful Response
422Validation Error

Response fields

GET /v1/inbox/{inbox_id} response fields
FieldTypeRequiredDescription
amount_microintegerno
documentobject or nullno
document_idstring or nullyes
duration_secsinteger or nullno
environmentstring (live, test)no
expires_atstring or nullno
extraction_idstring or nullno
fromstring or nullno
idstringyes
media_statusstringno
notestring or nullno
number_idstring or nullno
pagesintegeryes
partial_contentbooleanno
project_idstring or nullno
providerstringno
read_atstring or nullno
received_atstringyes
statusstringyes
textstring or nullno
tostringyes

Example

curl https://api.faxforagents.com/v1/inbox/INBOX_ID \
  -H "Authorization: Bearer ffa_test_..."

PATCH /v1/inbox/{inbox_id}

Mark a received fax read or archived

Parameters

PATCH /v1/inbox/{inbox_id} parameters
NameInTypeRequiredNotes
inbox_idpathstringyes

Request body application/json, required

PATCH /v1/inbox/{inbox_id} request body
FieldTypeRequiredDescription
statusstring (received, read, archived) or nullno

Responses

PATCH /v1/inbox/{inbox_id} responses
StatusMeaning
200Successful Response
422Validation Error

Response fields

PATCH /v1/inbox/{inbox_id} response fields
FieldTypeRequiredDescription
amount_microintegerno
document_idstring or nullyes
duration_secsinteger or nullno
environmentstring (live, test)no
expires_atstring or nullno
fromstring or nullno
idstringyes
media_statusstringno
notestring or nullno
number_idstring or nullno
pagesintegeryes
partial_contentbooleanno
project_idstring or nullno
providerstringno
read_atstring or nullno
received_atstringyes
statusstringyes
tostringyes

Example

curl https://api.faxforagents.com/v1/inbox/INBOX_ID \
  -X PATCH \
  -H "Authorization: Bearer ffa_test_..."

GET /v1/inbox/{inbox_id}/content

The received PDF behind a signed URL (no API key)

Parameters

GET /v1/inbox/{inbox_id}/content parameters
NameInTypeRequiredNotes
inbox_idpathstringyes
expquerystring or nullno
sigquerystring or nullno

Responses

GET /v1/inbox/{inbox_id}/content responses
StatusMeaning
200Successful Response
422Validation Error

Example

curl https://api.faxforagents.com/v1/inbox/INBOX_ID/content \
  -H "Authorization: Bearer ffa_test_..."

GET /v1/inbox/{inbox_id}/download

A short-lived signed link to the received PDF

Parameters

GET /v1/inbox/{inbox_id}/download parameters
NameInTypeRequiredNotes
inbox_idpathstringyes

Responses

GET /v1/inbox/{inbox_id}/download responses
StatusMeaning
200Successful Response
422Validation Error

Response fields

GET /v1/inbox/{inbox_id}/download response fields
FieldTypeRequiredDescription
content_typestringyes
expires_atstringyes
urlstringyes

Example

curl https://api.faxforagents.com/v1/inbox/INBOX_ID/download \
  -H "Authorization: Bearer ffa_test_..."

members

GET /v1/invitations

Open invitations

Responses

GET /v1/invitations responses
StatusMeaning
200Successful Response

Response fields

GET /v1/invitations response fields
FieldTypeRequiredDescription
itemsarray of object Invitationyes

Example

curl https://api.faxforagents.com/v1/invitations \
  -H "Authorization: Bearer ffa_test_..."

POST /v1/invitations

Invite someone by email (a link that works for 7 days)

Request body application/json, required

POST /v1/invitations request body
FieldTypeRequiredDescription
emailstring (email)yes
rolestring (owner, admin, member, viewer)no

Responses

POST /v1/invitations responses
StatusMeaning
201Successful Response
422Validation Error

Response fields

POST /v1/invitations response fields
FieldTypeRequiredDescription
accepted_atstring or nullyes
created_atstringyes
emailstringyes
expires_atstringyes
idstringyes
invited_bystringyes
rolestring (owner, admin, member, viewer)yes

Example

curl https://api.faxforagents.com/v1/invitations \
  -X POST \
  -H "Authorization: Bearer ffa_test_..."

DELETE /v1/invitations/{invitation_id}

Withdraw an invitation

Parameters

DELETE /v1/invitations/{invitation_id} parameters
NameInTypeRequiredNotes
invitation_idpathstringyes

Responses

DELETE /v1/invitations/{invitation_id} responses
StatusMeaning
204Successful Response
422Validation Error

Example

curl https://api.faxforagents.com/v1/invitations/INVITATION_ID \
  -X DELETE \
  -H "Authorization: Bearer ffa_test_..."

GET /v1/members

The organization's members

Responses

GET /v1/members responses
StatusMeaning
200Successful Response

Response fields

GET /v1/members response fields
FieldTypeRequiredDescription
itemsarray of object Memberyes

Example

curl https://api.faxforagents.com/v1/members \
  -H "Authorization: Bearer ffa_test_..."

DELETE /v1/members/{member_id}

Remove a member (owner)

Parameters

DELETE /v1/members/{member_id} parameters
NameInTypeRequiredNotes
member_idpathstringyes

Responses

DELETE /v1/members/{member_id} responses
StatusMeaning
204Successful Response
422Validation Error

Example

curl https://api.faxforagents.com/v1/members/MEMBER_ID \
  -X DELETE \
  -H "Authorization: Bearer ffa_test_..."

PATCH /v1/members/{member_id}

Change a member's role

Parameters

PATCH /v1/members/{member_id} parameters
NameInTypeRequiredNotes
member_idpathstringyes

Request body application/json, required

PATCH /v1/members/{member_id} request body
FieldTypeRequiredDescription
rolestring (owner, admin, member, viewer) or nullnoRequired. Optional in the schema so a foreign id is a 404 first.

Responses

PATCH /v1/members/{member_id} responses
StatusMeaning
200Successful Response
422Validation Error

Response fields

PATCH /v1/members/{member_id} response fields
FieldTypeRequiredDescription
created_atstringyes
emailstringyes
idstringyes
namestring or nullyes
rolestring (owner, admin, member, viewer)yes
user_idstring or nullyes

Example

curl https://api.faxforagents.com/v1/members/MEMBER_ID \
  -X PATCH \
  -H "Authorization: Bearer ffa_test_..."

organizations

GET /v1/organizations

The organizations you belong to

Responses

GET /v1/organizations responses
StatusMeaning
200Successful Response

Response fields

GET /v1/organizations response fields
FieldTypeRequiredDescription
itemsarray of object OrganizationSummaryyes

Example

curl https://api.faxforagents.com/v1/organizations \
  -H "Authorization: Bearer ffa_test_..."

GET /v1/organizations/current

The organization you are looking at

Responses

GET /v1/organizations/current responses
StatusMeaning
200Successful Response

Response fields

GET /v1/organizations/current response fields
FieldTypeRequiredDescription
created_atstringyes
idstringyes
membersintegeryes
namestringyes
rolestring (owner, admin, member, viewer) or nullyes

Example

curl https://api.faxforagents.com/v1/organizations/current \
  -H "Authorization: Bearer ffa_test_..."

PATCH /v1/organizations/current

Rename the organization

Request body application/json, required

PATCH /v1/organizations/current request body
FieldTypeRequiredDescription
namestringyes

Responses

PATCH /v1/organizations/current responses
StatusMeaning
200Successful Response
422Validation Error

Response fields

PATCH /v1/organizations/current response fields
FieldTypeRequiredDescription
created_atstringyes
idstringyes
membersintegeryes
namestringyes
rolestring (owner, admin, member, viewer) or nullyes

Example

curl https://api.faxforagents.com/v1/organizations/current \
  -X PATCH \
  -H "Authorization: Bearer ffa_test_..."

POST /v1/organizations/current/deletion-requests

Ask for the organization and its data to be deleted (owner)

Responses

POST /v1/organizations/current/deletion-requests responses
StatusMeaning
202Successful Response

Response fields

POST /v1/organizations/current/deletion-requests response fields
FieldTypeRequiredDescription
kindstring (export, deletion)yes
messagestringyes
requestedbooleanyes

Example

curl https://api.faxforagents.com/v1/organizations/current/deletion-requests \
  -X POST \
  -H "Authorization: Bearer ffa_test_..."

POST /v1/organizations/current/export-requests

Ask for an export of the organization's data (owner)

Responses

POST /v1/organizations/current/export-requests responses
StatusMeaning
202Successful Response

Response fields

POST /v1/organizations/current/export-requests response fields
FieldTypeRequiredDescription
kindstring (export, deletion)yes
messagestringyes
requestedbooleanyes

Example

curl https://api.faxforagents.com/v1/organizations/current/export-requests \
  -X POST \
  -H "Authorization: Bearer ffa_test_..."

policies

GET /v1/policies

List the organization's policies

Responses

GET /v1/policies responses
StatusMeaning
200Successful Response

Response fields

GET /v1/policies response fields
FieldTypeRequiredDescription
itemsarray of object Policyyes

Example

curl https://api.faxforagents.com/v1/policies \
  -H "Authorization: Bearer ffa_test_..."

POST /v1/policies

Create a delegated policy (version 1)

Request body application/json, required

POST /v1/policies request body
FieldTypeRequiredDescription
enabledbooleanno
namestringyes
purposestring or nullnoWhy this policy exists. Shown, never evaluated.
rulesobjectyesSee the PolicyRules schema in docs/APPROVALS.md.

Responses

POST /v1/policies responses
StatusMeaning
201Successful Response
422Validation Error

Response fields

POST /v1/policies response fields
FieldTypeRequiredDescription
created_atstringyes
created_bystringyes
current_version_idstring or nullyes
enabledbooleanyes
idstringyes
namestringyes
purposestring or nullyes
rulesobjectyes
updated_atstringyes
versionintegeryes

Example

curl https://api.faxforagents.com/v1/policies \
  -X POST \
  -H "Authorization: Bearer ffa_test_..."

GET /v1/policies/effective

What the calling key may do on its own, and whether a human is needed otherwise

Responses

GET /v1/policies/effective responses
StatusMeaning
200Successful Response

Response fields

GET /v1/policies/effective response fields
FieldTypeRequiredDescription
actorstringyes
approval_required_without_policybooleanyes
environmentstring (live, test)yes
policiesarray of object Policyyes
rules_orderarray of stringyes
under_policybooleanyes

Example

curl https://api.faxforagents.com/v1/policies/effective \
  -H "Authorization: Bearer ffa_test_..."

GET /v1/policies/{policy_id}

Read a policy (its current version)

Parameters

GET /v1/policies/{policy_id} parameters
NameInTypeRequiredNotes
policy_idpathstringyes

Responses

GET /v1/policies/{policy_id} responses
StatusMeaning
200Successful Response
422Validation Error

Response fields

GET /v1/policies/{policy_id} response fields
FieldTypeRequiredDescription
created_atstringyes
created_bystringyes
current_version_idstring or nullyes
enabledbooleanyes
idstringyes
namestringyes
purposestring or nullyes
rulesobjectyes
updated_atstringyes
versionintegeryes

Example

curl https://api.faxforagents.com/v1/policies/POLICY_ID \
  -H "Authorization: Bearer ffa_test_..."

PATCH /v1/policies/{policy_id}

Change a policy: a new immutable version

Parameters

PATCH /v1/policies/{policy_id} parameters
NameInTypeRequiredNotes
policy_idpathstringyes

Request body application/json, required

PATCH /v1/policies/{policy_id} request body
FieldTypeRequiredDescription
enabledboolean or nullno
namestring or nullno
purposestring or nullno
rulesobject or nullno

Responses

PATCH /v1/policies/{policy_id} responses
StatusMeaning
200Successful Response
422Validation Error

Response fields

PATCH /v1/policies/{policy_id} response fields
FieldTypeRequiredDescription
created_atstringyes
created_bystringyes
current_version_idstring or nullyes
enabledbooleanyes
idstringyes
namestringyes
purposestring or nullyes
rulesobjectyes
updated_atstringyes
versionintegeryes

Example

curl https://api.faxforagents.com/v1/policies/POLICY_ID \
  -X PATCH \
  -H "Authorization: Bearer ffa_test_..."

GET /v1/policies/{policy_id}/versions

Every version, oldest first

Parameters

GET /v1/policies/{policy_id}/versions parameters
NameInTypeRequiredNotes
policy_idpathstringyes

Responses

GET /v1/policies/{policy_id}/versions responses
StatusMeaning
200Successful Response
422Validation Error

Response fields

GET /v1/policies/{policy_id}/versions response fields
FieldTypeRequiredDescription
itemsarray of object PolicyVersionyes

Example

curl https://api.faxforagents.com/v1/policies/POLICY_ID/versions \
  -H "Authorization: Bearer ffa_test_..."

POST /v1/policy-evaluations

Dry run: would the calling key's policies allow this send? Never executes

Request body application/json, required

POST /v1/policy-evaluations request body
FieldTypeRequiredDescription
document_idstring or nullnoOr plan: this document ...
fromstring or nullno
quote_idstring or nullnoEvaluate an existing quote.
tostring or nullno... to this E.164 destination.

Responses

POST /v1/policy-evaluations responses
StatusMeaning
200Successful Response
422Validation Error

Response fields

POST /v1/policy-evaluations response fields
FieldTypeRequiredDescription
decisionstringyes
denialsarray of objectyes
executedbooleanno
planobjectyes
policy_idstring or nullyes
policy_namestring or nullyes
policy_version_idstring or nullyes
reasonstringyes
rulestring or nullyes
versioninteger or nullyes

Example

curl https://api.faxforagents.com/v1/policy-evaluations \
  -X POST \
  -H "Authorization: Bearer ffa_test_..."

sandbox

DELETE /v1/sandbox/data

Reset this organization's test data

Responses

DELETE /v1/sandbox/data responses
StatusMeaning
200Successful Response

Response fields

DELETE /v1/sandbox/data response fields
FieldTypeRequiredDescription
deletedobjectyes
resetbooleanyes
wallet_available_microintegeryes

Example

curl https://api.faxforagents.com/v1/sandbox/data \
  -X DELETE \
  -H "Authorization: Bearer ffa_test_..."

POST /v1/sandbox/inbound-faxes

Create a synthetic inbound fax (the same pipeline as a real one)

A synthetic PDF goes through ``inbox.service.receive_now``: the private document, the inbox item, the ``fax.received`` event with its download reference, exactly as a carrier delivery (M8).

Request body application/json, required

POST /v1/sandbox/inbound-faxes request body
FieldTypeRequiredDescription
fromstring or nullno
pagesintegerno
partial_contentbooleannoRehearse a cut-off transmission.
tostringyes

Responses

POST /v1/sandbox/inbound-faxes responses
StatusMeaning
201Successful Response
422Validation Error

Response fields

POST /v1/sandbox/inbound-faxes response fields
FieldTypeRequiredDescription
amount_microintegerno
document_idstring or nullyes
fromstring or nullno
idstringyes
notestring or nullno
pagesintegeryes
received_atstringyes
statusstringyes
tostringyes

Example

curl https://api.faxforagents.com/v1/sandbox/inbound-faxes \
  -X POST \
  -H "Authorization: Bearer ffa_test_..."

GET /v1/sandbox/scenarios

The scenario catalog and active fixtures

Responses

GET /v1/sandbox/scenarios responses
StatusMeaning
200Successful Response

Response fields

GET /v1/sandbox/scenarios response fields
FieldTypeRequiredDescription
destinationsarray of objectyes
fixturesarray of object SandboxFixtureyes
scenariosarray of objectyes

Example

curl https://api.faxforagents.com/v1/sandbox/scenarios \
  -H "Authorization: Bearer ffa_test_..."

POST /v1/sandbox/scenarios

Select the outcome of the next sends

Request body application/json, required

POST /v1/sandbox/scenarios request body
FieldTypeRequiredDescription
destinationstring or nullnoApply to one destination; omit for every send.
scenariostringyes

Responses

POST /v1/sandbox/scenarios responses
StatusMeaning
201Successful Response
422Validation Error

Response fields

POST /v1/sandbox/scenarios response fields
FieldTypeRequiredDescription
created_atstringyes
destinationstring or nullyes
expires_atstringyes
idstringyes
scenariostringyes

Example

curl https://api.faxforagents.com/v1/sandbox/scenarios \
  -X POST \
  -H "Authorization: Bearer ffa_test_..."

webhooks

GET /v1/webhook-deliveries

Delivery attempts (no payload secrets)

Parameters

GET /v1/webhook-deliveries parameters
NameInTypeRequiredNotes
webhook_idquerystring or nullno
event_idquerystring or nullno
cursorquerystring or nullno
limitqueryintegerno Default 50.

Responses

GET /v1/webhook-deliveries responses
StatusMeaning
200Successful Response
422Validation Error

Response fields

GET /v1/webhook-deliveries response fields
FieldTypeRequiredDescription
itemsarray of object Deliveryyes
next_cursorstring or nullno

Example

curl https://api.faxforagents.com/v1/webhook-deliveries \
  -H "Authorization: Bearer ffa_test_..."

POST /v1/webhook-deliveries/{delivery_id}/replay

Replay the event with the same event id

Parameters

POST /v1/webhook-deliveries/{delivery_id}/replay parameters
NameInTypeRequiredNotes
delivery_idpathstringyes

Responses

POST /v1/webhook-deliveries/{delivery_id}/replay responses
StatusMeaning
202Successful Response
422Validation Error

Response fields

POST /v1/webhook-deliveries/{delivery_id}/replay response fields
FieldTypeRequiredDescription
attemptintegeryes
created_atstringyes
delivered_atstring or nullyes
duration_msinteger or nullyes
errorstring or nullyes
event_idstringyes
event_typestringyes
idstringyes
next_attempt_atstring or nullyes
replay_ofstring or nullyes
response_statusinteger or nullyes
schedule_sarray of integeryes
statusstringyes
webhook_idstringyes

Example

curl https://api.faxforagents.com/v1/webhook-deliveries/DELIVERY_ID/replay \
  -X POST \
  -H "Authorization: Bearer ffa_test_..."

GET /v1/webhooks

List webhooks

Responses

GET /v1/webhooks responses
StatusMeaning
200Successful Response

Response fields

GET /v1/webhooks response fields
FieldTypeRequiredDescription
itemsarray of object Webhookyes

Example

curl https://api.faxforagents.com/v1/webhooks \
  -H "Authorization: Bearer ffa_test_..."

POST /v1/webhooks

Register a destination (secret shown once)

Request body application/json, required

POST /v1/webhooks request body
FieldTypeRequiredDescription
descriptionstring or nullno
event_typesarray of string or nullnoEmpty or omitted: every event type.
urlstringyes

Responses

POST /v1/webhooks responses
StatusMeaning
201Successful Response
422Validation Error

Response fields

POST /v1/webhooks response fields
FieldTypeRequiredDescription
created_atstringyes
descriptionstring or nullyes
event_typesarray of stringyes
idstringyes
previous_secret_expires_atstring or nullyes
secretstringyeswhsec_... Shown once. Verify webhook-signature with it.
statusstringyes
updated_atstringyes
urlstringyes

Example

curl https://api.faxforagents.com/v1/webhooks \
  -X POST \
  -H "Authorization: Bearer ffa_test_..."

DELETE /v1/webhooks/{webhook_id}

Remove a destination

Parameters

DELETE /v1/webhooks/{webhook_id} parameters
NameInTypeRequiredNotes
webhook_idpathstringyes

Responses

DELETE /v1/webhooks/{webhook_id} responses
StatusMeaning
200Successful Response
422Validation Error

Response fields

DELETE /v1/webhooks/{webhook_id} response fields
FieldTypeRequiredDescription
deletedbooleanno
idstringyes

Example

curl https://api.faxforagents.com/v1/webhooks/WEBHOOK_ID \
  -X DELETE \
  -H "Authorization: Bearer ffa_test_..."

PATCH /v1/webhooks/{webhook_id}

Change url, filters or pause

Parameters

PATCH /v1/webhooks/{webhook_id} parameters
NameInTypeRequiredNotes
webhook_idpathstringyes

Request body application/json, required

PATCH /v1/webhooks/{webhook_id} request body
FieldTypeRequiredDescription
descriptionstring or nullno
event_typesarray of string or nullno
statusstring (active, paused) or nullno
urlstring or nullno

Responses

PATCH /v1/webhooks/{webhook_id} responses
StatusMeaning
200Successful Response
422Validation Error

Response fields

PATCH /v1/webhooks/{webhook_id} response fields
FieldTypeRequiredDescription
created_atstringyes
descriptionstring or nullyes
event_typesarray of stringyes
idstringyes
previous_secret_expires_atstring or nullyes
statusstringyes
updated_atstringyes
urlstringyes

Example

curl https://api.faxforagents.com/v1/webhooks/WEBHOOK_ID \
  -X PATCH \
  -H "Authorization: Bearer ffa_test_..."

POST /v1/webhooks/{webhook_id}/rotate-secret

New secret; the old one signs too for 24 hours

Parameters

POST /v1/webhooks/{webhook_id}/rotate-secret parameters
NameInTypeRequiredNotes
webhook_idpathstringyes

Responses

POST /v1/webhooks/{webhook_id}/rotate-secret responses
StatusMeaning
200Successful Response
422Validation Error

Response fields

POST /v1/webhooks/{webhook_id}/rotate-secret response fields
FieldTypeRequiredDescription
created_atstringyes
descriptionstring or nullyes
event_typesarray of stringyes
idstringyes
previous_secret_expires_atstring or nullyes
secretstringyeswhsec_... Shown once. Verify webhook-signature with it.
statusstringyes
updated_atstringyes
urlstringyes

Example

curl https://api.faxforagents.com/v1/webhooks/WEBHOOK_ID/rotate-secret \
  -X POST \
  -H "Authorization: Bearer ffa_test_..."

POST /v1/webhooks/{webhook_id}/test

Send a signed webhook.test event to this destination

Parameters

POST /v1/webhooks/{webhook_id}/test parameters
NameInTypeRequiredNotes
webhook_idpathstringyes

Responses

POST /v1/webhooks/{webhook_id}/test responses
StatusMeaning
202Successful Response
422Validation Error

Response fields

POST /v1/webhooks/{webhook_id}/test response fields
FieldTypeRequiredDescription
correlation_idstring or nullyes
created_atstringyes
dataobjectyes
environmentstring (live, test)yes
fax_job_idstring or nullyes
idstringyes
org_idstringyes
project_idstring or nullyes
resource_idstringyes
resource_typestringyes
schema_versionintegeryes
typestringyes

Example

curl https://api.faxforagents.com/v1/webhooks/WEBHOOK_ID/test \
  -X POST \
  -H "Authorization: Bearer ffa_test_..."

Schemas

147 named objects, as the API sends and accepts them.

Accepted

Accepted fields
FieldTypeRequiredDescription
organizationobject OrganizationSummaryyes

Agent

Agent fields
FieldTypeRequiredDescription
budget_idstring or nullyes
budgetsarray of objectyes
contact_emailstring or nullyes
created_atstringyes
created_bystringyes
disabled_atstring or nullyes
enabledbooleanyes
idstringyes
keysarray of object ApiKeyyes
namestringyes
policy_idsarray of stringyes
project_idstring or nullyes
purposestring or nullyes
statusstringyes
updated_atstringyes

AgentActivity

AgentActivity fields
FieldTypeRequiredDescription
actionstringyes
actorstringyes
correlation_idstring or nullyes
created_atstringyes
dataobjectyes
idstringyes
resource_idstring or nullyes
resource_typestringyes

AgentActivityPage

AgentActivityPage fields
FieldTypeRequiredDescription
itemsarray of object AgentActivityyes
next_cursorstring or nullno

AgentCreate

AgentCreate fields
FieldTypeRequiredDescription
contact_emailstring or nullnoWhere decided approvals are mailed.
namestringyes
policy_idsarray of stringno
purposestring or nullnoShown to humans, never evaluated.

AgentKeyCreate

AgentKeyCreate fields
FieldTypeRequiredDescription
environmentstring (live, test)no
expires_in_daysinteger or nullno
labelstringno
scopesarray of string or nullnoOmit for the default agent set. Never approval:decide, key:admin, policy:admin, agent:admin.

AgentList

AgentList fields
FieldTypeRequiredDescription
itemsarray of object Agentyes

AgentUpdate

AgentUpdate fields
FieldTypeRequiredDescription
contact_emailstring or nullno
enabledboolean or nullnofalse revokes every key of the agent.
namestring or nullno
policy_idsarray of string or nullno
purposestring or nullno

ApiKey

ApiKey fields
FieldTypeRequiredDescription
agent_idstring or nullyes
created_atstringyes
environmentstring (live, test)yes
expires_atstring or nullyes
idstringyes
labelstringyes
last_used_atstring or nullyes
prefixstringyes
project_idstring or nullyes
revoked_atstring or nullyes
rotated_from_idstring or nullyes
scopesarray of stringyes

ApiKeyCreate

ApiKeyCreate fields
FieldTypeRequiredDescription
environmentstring (live, test)no
expires_in_daysinteger or nullno
labelstringyes
scopesarray of string or nullnoOmit for the default agent set; '*' for all.

ApiKeyList

ApiKeyList fields
FieldTypeRequiredDescription
itemsarray of object ApiKeyyes

ApiKeyWithSecret

ApiKeyWithSecret fields
FieldTypeRequiredDescription
agent_idstring or nullyes
created_atstringyes
environmentstring (live, test)yes
expires_atstring or nullyes
idstringyes
labelstringyes
last_used_atstring or nullyes
prefixstringyes
project_idstring or nullyes
revoked_atstring or nullyes
rotated_from_idstring or nullyes
scopesarray of stringyes
secretstringyesShown once. Store it now; it cannot be read back.

ApprovalDecision

ApprovalDecision fields
FieldTypeRequiredDescription
reasonstring or nullno

ApprovalRequest

ApprovalRequest fields
FieldTypeRequiredDescription
boundobjectyes
consumed_by_job_idstring or nullyes
created_atstringyes
decided_atstring or nullyes
decided_bystring or nullyes
expires_atstring or nullyes
idstringyes
kindstring (send, help)yes
messagestring or nullyes
notifiedboolean or nullnoOn creation: whether the organization was mailed. false when the request repeats a pending one or the organization's daily cap of request mails is reached; the request is still shown in the dashboard.
quote_idstring or nullyes
reasonstring or nullyes
requested_bystringyes
statusstring (pending, approved, rejected, revoked, expired)yes

ApprovalRequestCreate

ApprovalRequestCreate fields
FieldTypeRequiredDescription
fax_job_idstring or nullno
kindstring (send, help)no
messagestring or nullnoWhat the person should know (kind help). Shown as data.
quote_idstring or nullnoThe quote to bind (kind send).

ApprovalRequestPage

ApprovalRequestPage fields
FieldTypeRequiredDescription
itemsarray of object ApprovalRequestyes
next_cursorstring or nullno

Attempt

Attempt fields
FieldTypeRequiredDescription
attempt_numberintegeryes
errorstring or nullyes
evidenceobject or nullyes
failure_codestring or nullyes
fax_job_idstringyes
finished_atstring or nullyes
idstringyes
pages_sentintegeryes
providerstringyes
provider_refstring or nullyes
started_atstringyes
statusstringyes

AttemptPage

AttemptPage fields
FieldTypeRequiredDescription
itemsarray of object Attemptyes

AutoTopup

AutoTopup fields
FieldTypeRequiredDescription
amount_microintegeryes
created_atstringyes
daily_cap_microintegeryes
disabled_atstring or nullyes
environmentstring (live, test)yes
idstringyes
last_attempt_atstring or nullyes
payment_method_savedbooleanyes
setup_session_idstring or nullyes
setup_urlstring or nullnoWhere to save the card while status is pending_setup.
statusstring (pending_setup, active, disabled)yes
threshold_microintegeryes
updated_atstringyes

AutoTopupCreate

AutoTopupCreate fields
FieldTypeRequiredDescription
amount_microintegeryesWhole dollars, 10 to 1000 USD.
daily_cap_microintegeryesNever more than this per UTC day.
threshold_microintegeryesTop up when the available balance drops below this.

AutoTopupList

AutoTopupList fields
FieldTypeRequiredDescription
itemsarray of object AutoTopupyes

Balance

Balance fields
FieldTypeRequiredDescription
available_microintegeryes
currencystringyes
environmentstring (live, test)yes
held_microintegeryes

BillingSettings

BillingSettings fields
FieldTypeRequiredDescription
billing_emailstring or nullyes
disputedbooleanyes
low_balance_activebooleanyes
low_balance_threshold_microintegeryes
org_idstringyes
stripe_customerbooleanyes
workspacebooleanyes

BillingSettingsPatch

BillingSettingsPatch fields
FieldTypeRequiredDescription
billing_emailstring or nullno
low_balance_threshold_microinteger or nullno

Budget

Budget fields
FieldTypeRequiredDescription
agent_idstring or nullyes
created_atstringyes
environmentstring (live, test)yes
idstringyes
limit_microintegeryes
periodstring (daily, monthly)yes
project_idstring or nullyes
remaining_microintegeryes
resets_atstringyes
scopestring (organization, project, agent)yes
spent_microintegeryes
statusstring (active, disabled)yes
updated_atstringyes

BudgetCreate

BudgetCreate fields
FieldTypeRequiredDescription
agent_idstring or nullno
limit_microintegeryes
periodstring (daily, monthly)yes
project_idstring or nullno
scopestring (organization, project, agent)no

BudgetList

BudgetList fields
FieldTypeRequiredDescription
itemsarray of object Budgetyes

BudgetPatch

BudgetPatch fields
FieldTypeRequiredDescription
limit_microinteger or nullno
statusstring (active, disabled) or nullno

Capabilities

Capabilities fields
FieldTypeRequiredDescription
approvalsbooleanyes
environmentstring (live, test)yes
formatsarray of stringyes
limitsobjectyes
max_pagesintegeryes
max_upload_bytesintegeryes
numbersbooleanyes
price_versionstringyes
providerstringyes
ratesobjectyes
receivebooleanyes
routesarray of stringyes
scopesarray of stringyes
sendbooleanyes

ClassificationCreate

ClassificationCreate fields
FieldTypeRequiredDescription
abstain_belownumberno
document_idstring or nullno
document_typesarray of stringyes
inbox_item_idstring or nullno
max_pagesinteger or nullno
strictbooleannoRefuse with page_limit_exceeded when the document has more pages than would be read, instead of reading the first ones and warning.
strong_model_if_belownumberno

Correction

Correction fields
FieldTypeRequiredDescription
created_atstringyes
created_bystringyes
extraction_idstringyes
fieldstringyes
idstringyes
notestring or nullyes
valueanyyes

CorrectionCreate

CorrectionCreate fields
FieldTypeRequiredDescription
fieldstring or nullno
notestring or nullno
valueanyno

Coverage

Coverage fields
FieldTypeRequiredDescription
coverage_versionstring or nullyes
excludedobjectyes
generated_atstring or nullyes
inboundobjectyes
notestring or nullyes
orderable_nowarray of stringyes
outboundobjectyes

Deleted

Deleted fields
FieldTypeRequiredDescription
deletedbooleanno
idstringyes

Delivery

Delivery fields
FieldTypeRequiredDescription
attemptintegeryes
created_atstringyes
delivered_atstring or nullyes
duration_msinteger or nullyes
errorstring or nullyes
event_idstringyes
event_typestringyes
idstringyes
next_attempt_atstring or nullyes
replay_ofstring or nullyes
response_statusinteger or nullyes
schedule_sarray of integeryes
statusstringyes
webhook_idstringyes

DeliveryPage

DeliveryPage fields
FieldTypeRequiredDescription
itemsarray of object Deliveryyes
next_cursorstring or nullno

Document

Document fields
FieldTypeRequiredDescription
content_typestringyes
created_atstringyes
deleted_atstring or nullyes
environmentstring (live, test)yes
expires_atstring or nullyes
filenamestringyes
idstringyes
page_countintegeryes
render_reasonstring or nullyes
render_statusstringyes
sha256stringyes
size_bytesintegeryes
sourcestringyes
statusstringyes
upload_idstring or nullyes
validationobjectyes

DocumentCreate

DocumentCreate fields
FieldTypeRequiredDescription
filenamestring or nullno
htmlstring or nullnoHTML rendered to PDF by a headless browser with scripts off and no network: inline CSS and data: images print, external resources are counted as blocked. US letter unless @page says otherwise. At most 2 MiB.
markdownstring or nullnoMarkdown (headings, lists, emphasis, code) rendered to PDF.
textstring or nullnoPlain text rendered to a letter PDF.
upload_idstring or nullno

DocumentPage

DocumentPage fields
FieldTypeRequiredDescription
itemsarray of object Documentyes
next_cursorstring or nullno

DocumentPages

DocumentPages fields
FieldTypeRequiredDescription
document_idstringyes
itemsarray of object PagePreviewyes
page_countintegeryes
render_reasonstring or nullyes
render_statusstringyes

DocumentValidation

DocumentValidation fields
FieldTypeRequiredDescription
idstringyes
page_countintegeryes
render_reasonstring or nullyes
render_statusstringyes
statusstringyes
warningsarray of objectyes

EffectivePolicies

EffectivePolicies fields
FieldTypeRequiredDescription
actorstringyes
approval_required_without_policybooleanyes
environmentstring (live, test)yes
policiesarray of object Policyyes
rules_orderarray of stringyes
under_policybooleanyes

Event

Event fields
FieldTypeRequiredDescription
correlation_idstring or nullyes
created_atstringyes
dataobjectyes
environmentstring (live, test)yes
fax_job_idstring or nullyes
idstringyes
org_idstringyes
project_idstring or nullyes
resource_idstringyes
resource_typestringyes
schema_versionintegeryes
typestringyes

EventPage

EventPage fields
FieldTypeRequiredDescription
itemsarray of object Eventyes
next_cursorstring or nullno

Extraction

Extraction fields
FieldTypeRequiredDescription
completed_atstring or nullyes
confidencenumber or nullyes
correctionsarray of object or nullno
created_atstringyes
created_bystringyes
currencystringyes
document_idstringyes
document_pagesintegeryesThe document's page count. Above pages_processed on a completed row means the cap left pages unread; output.truncated and a warning say so.
environmentstring (live, test)yes
error_codestring or nullyes
idstringyes
inbox_item_idstring or nullyes
kindstring (extract, classify, summarize)yes
modelsobjectyes
optionsobjectyes
outputobject or nullyes
pagesarray of object ExtractionPageyes
pages_escalatedintegeryes
pages_processedintegeryes
pages_requestedintegeryes
price_microintegeryes
provider_cost_microintegeryes
schemaobject or nullno
schema_idstring or nullyes
started_atstring or nullyes
statusstring (pending, queued, running, completed, failed)yes

ExtractionCreate

ExtractionCreate fields
FieldTypeRequiredDescription
document_idstring or nullno
inbox_item_idstring or nullno
max_pagesinteger or nullno
schemaobject or nullnoA JSON Schema object of string, number, boolean or date fields with descriptions.
schema_idstring or nullno
strictbooleannoRefuse with page_limit_exceeded when the document has more pages than would be read, instead of reading the first ones and warning.
strong_model_if_belownumberno

ExtractionPage

ExtractionPage fields
FieldTypeRequiredDescription
confidencenumberyes
escalatedbooleanno
languagestring or nullno
modelstringyes
pageintegeryes
statusstringyes
textstringyes
warningsarray of stringno

ExtractionPageList

ExtractionPageList fields
FieldTypeRequiredDescription
itemsarray of object Extractionyes
next_cursorstring or nullno

ExtractionSchema

ExtractionSchema fields
FieldTypeRequiredDescription
created_atstringyes
created_bystringyes
descriptionstring or nullyes
idstringyes
namestringyes
schemaobjectyes
statusstringyes
versionintegeryes

ExtractionSchemaList

ExtractionSchemaList fields
FieldTypeRequiredDescription
itemsarray of object ExtractionSchemayes

FaxCreate

M9: an approved request authorizes the send; without one a quote that needs authorization is evaluated against the caller's delegated policies.

FaxCreate fields
FieldTypeRequiredDescription
approval_idstring or nullnoAn approved approval request bound to this quote. Consumed by this one send.
client_referencestring or nullno
quote_idstringyes

FaxJob

FaxJob fields
FieldTypeRequiredDescription
amount_microintegeryes
attempt_countintegeryes
billable_pagesintegeryes
cancel_requested_atstring or nullyes
captured_microintegeryes
client_referencestring or nullyes
completed_atstring or nullyes
cover_pagesintegeryes
created_atstringyes
currencystringyes
directionstringyes
document_idstringyes
document_sha256stringyes
environmentstring (live, test)yes
evidenceobject or nullnoThe carrier's evidence once delivered or partial; null before.
failure_codestring or nullyes
fromstring or nullno
idstringyes
pages_sentintegeryes
providerstringyes
provider_refstring or nullyes
quote_idstring or nullyes
routestringyes
statestring (queued, active, partial, failed, unknown, delivered)yes
tostringyes
transmitted_sha256string or nullyes
updated_atstringyes

FaxJobPage

FaxJobPage fields
FieldTypeRequiredDescription
itemsarray of object FaxJobyes
next_cursorstring or nullno

HTTPValidationError

HTTPValidationError fields
FieldTypeRequiredDescription
detailarray of object ValidationErrorno

InboxItemDetail

InboxItemDetail fields
FieldTypeRequiredDescription
amount_microintegerno
documentobject or nullno
document_idstring or nullyes
duration_secsinteger or nullno
environmentstring (live, test)no
expires_atstring or nullno
extraction_idstring or nullno
fromstring or nullno
idstringyes
media_statusstringno
notestring or nullno
number_idstring or nullno
pagesintegeryes
partial_contentbooleanno
project_idstring or nullno
providerstringno
read_atstring or nullno
received_atstringyes
statusstringyes
textstring or nullno
tostringyes

InboxPage

InboxPage fields
FieldTypeRequiredDescription
itemsarray of object faxforagents__api__routes__inbox__InboxItemyes
next_cursorstring or nullno

InboxUpdate

InboxUpdate fields
FieldTypeRequiredDescription
statusstring (received, read, archived) or nullno

Inventory

Inventory fields
FieldTypeRequiredDescription
countrystringyes
itemsarray of object InventoryNumberyes
localitystring or nullyes
notestringyes
number_typestringyes
recurring_periodstringyes

InventoryNumber

InventoryNumber fields
FieldTypeRequiredDescription
countrystringyes
currencystringyes
e164stringyes
localitystring or nullyes
monthly_microintegeryes
number_typestringyes
setup_microintegeryes

Invitation

Invitation fields
FieldTypeRequiredDescription
accepted_atstring or nullyes
created_atstringyes
emailstringyes
expires_atstringyes
idstringyes
invited_bystringyes
rolestring (owner, admin, member, viewer)yes

InvitationCreate

InvitationCreate fields
FieldTypeRequiredDescription
emailstring (email)yes
rolestring (owner, admin, member, viewer)no

InvitationList

InvitationList fields
FieldTypeRequiredDescription
itemsarray of object Invitationyes

Invoice

Invoice fields
FieldTypeRequiredDescription
amount_due_microintegeryes
amount_paid_microintegeryes
created_atstring or nullyes
currencystringyes
hosted_invoice_urlstring or nullyes
idstringyes
invoice_pdfstring or nullyes
numberstring or nullyes
statusstring or nullyes
subscription_idstring or nullyes

InvoicePage

InvoicePage fields
FieldTypeRequiredDescription
itemsarray of object Invoiceyes
next_cursorstring or nullno

LedgerEntry

LedgerEntry fields
FieldTypeRequiredDescription
accountstringyes
amount_microintegeryes
created_atstringyes
idstringyes
kindstringyes
memostring or nullyes
ref_idstring or nullyes
ref_typestring or nullyes
txn_idstringyes

LedgerPage

LedgerPage fields
FieldTypeRequiredDescription
itemsarray of object LedgerEntryyes
next_cursorstring or nullno

MagicLinkRequest

MagicLinkRequest fields
FieldTypeRequiredDescription
emailstring (email)yes
nextstring or nullnoAn in-app path to open after sign-in.

Member

Member fields
FieldTypeRequiredDescription
created_atstringyes
emailstringyes
idstringyes
namestring or nullyes
rolestring (owner, admin, member, viewer)yes
user_idstring or nullyes

MemberList

MemberList fields
FieldTypeRequiredDescription
itemsarray of object Memberyes

MemberPatch

MemberPatch fields
FieldTypeRequiredDescription
rolestring (owner, admin, member, viewer) or nullnoRequired. Optional in the schema so a foreign id is a 404 first.

Number

Number fields
FieldTypeRequiredDescription
activated_atstring or nullyes
countrystringyes
created_atstringyes
currencystringyes
e164stringyes
environmentstring (live, test)yes
idstringyes
inbound_statusstringyes
inbound_webhook_idstring or nullyes
labelstring or nullyes
localitystring or nullyes
monthly_microintegeryes
number_typestringyes
order_idstring or nullyes
project_idstring or nullyes
providerstringyes
released_atstring or nullyes
renews_atstring or nullyes
statusstringyes

NumberList

NumberList fields
FieldTypeRequiredDescription
itemsarray of object Numberyes

NumberOrder

NumberOrder fields
FieldTypeRequiredDescription
completed_atstring or nullyes
countrystring or nullyes
created_atstringyes
currencystringyes
e164string or nullyes
environmentstring (live, test)yes
errorstring or nullyes
first_month_hold_microintegeryesHeld now, captured when the number activates.
idstringyes
numberobject Number or nullyes
number_idstring or nullyes
number_typestring or nullyes
providerstringyes
recurring_charge_microintegeryesCharged every month on the activation day.
recurring_periodstringyes
statusstringyes

NumberOrderCreate

NumberOrderCreate fields
FieldTypeRequiredDescription
e164stringyesA number from GET /v1/number-inventory, E.164.
inbound_webhook_idstring or nullnoThe webhook that receives fax.received for this number (default: all).
labelstring or nullno
project_idstring or nullnoInbound faxes are filed under this project.

NumberUpdate

NumberUpdate fields
FieldTypeRequiredDescription
inbound_webhook_idstring or nullno
labelstring or nullno
project_idstring or nullno

Organization

Organization fields
FieldTypeRequiredDescription
created_atstringyes
idstringyes
membersintegeryes
namestringyes
rolestring (owner, admin, member, viewer) or nullyes

OrganizationList

OrganizationList fields
FieldTypeRequiredDescription
itemsarray of object OrganizationSummaryyes

OrganizationPatch

OrganizationPatch fields
FieldTypeRequiredDescription
namestringyes

OrganizationSummary

OrganizationSummary fields
FieldTypeRequiredDescription
idstringyes
namestringyes
rolestring (owner, admin, member, viewer)yes

PagePreview

PagePreview fields
FieldTypeRequiredDescription
height_pxinteger or nullyes
page_numberintegeryes
urlstringyes
width_pxinteger or nullyes

Passkey

Passkey fields
FieldTypeRequiredDescription
aaguidstring or nullyes
backup_eligiblebooleanyes
created_atstringyes
idstringyes
labelstring or nullyes
last_used_atstring or nullyes
transportsarray of string or nullyes

PasskeyList

PasskeyList fields
FieldTypeRequiredDescription
itemsarray of object Passkeyyes

PasskeyLoginVerify

PasskeyLoginVerify fields
FieldTypeRequiredDescription
credentialobjectyes

PasskeyRegisterVerify

PasskeyRegisterVerify fields
FieldTypeRequiredDescription
credentialobjectyes
labelstring or nullno

Policy

Policy fields
FieldTypeRequiredDescription
created_atstringyes
created_bystringyes
current_version_idstring or nullyes
enabledbooleanyes
idstringyes
namestringyes
purposestring or nullyes
rulesobjectyes
updated_atstringyes
versionintegeryes

PolicyCreate

PolicyCreate fields
FieldTypeRequiredDescription
enabledbooleanno
namestringyes
purposestring or nullnoWhy this policy exists. Shown, never evaluated.
rulesobjectyesSee the PolicyRules schema in docs/APPROVALS.md.

PolicyEvaluation

PolicyEvaluation fields
FieldTypeRequiredDescription
decisionstringyes
denialsarray of objectyes
executedbooleanno
planobjectyes
policy_idstring or nullyes
policy_namestring or nullyes
policy_version_idstring or nullyes
reasonstringyes
rulestring or nullyes
versioninteger or nullyes

PolicyEvaluationCreate

PolicyEvaluationCreate fields
FieldTypeRequiredDescription
document_idstring or nullnoOr plan: this document ...
fromstring or nullno
quote_idstring or nullnoEvaluate an existing quote.
tostring or nullno... to this E.164 destination.

PolicyList

PolicyList fields
FieldTypeRequiredDescription
itemsarray of object Policyyes

PolicyUpdate

PolicyUpdate fields
FieldTypeRequiredDescription
enabledboolean or nullno
namestring or nullno
purposestring or nullno
rulesobject or nullno

PolicyVersion

PolicyVersion fields
FieldTypeRequiredDescription
created_atstringyes
created_bystringyes
enabledbooleanyes
idstringyes
namestringyes
policy_idstringyes
purposestring or nullyes
rulesobjectyes
versionintegeryes

PolicyVersionList

PolicyVersionList fields
FieldTypeRequiredDescription
itemsarray of object PolicyVersionyes

PortOrder

PortOrder fields
FieldTypeRequiredDescription
created_atstringyes
directionstringyes
environmentstring (live, test)yes
idstringyes
milestonesarray of objectyes
numbersarray of stringyes
providerstringyes
requestobjectyes
statusstringyes
updated_atstringyes

PortOrderCreate

PortOrderCreate fields
FieldTypeRequiredDescription
notestring or nullno
numbersarray of stringyes

PortOrderList

PortOrderList fields
FieldTypeRequiredDescription
itemsarray of object PortOrderyes

PortOutRequestCreate

PortOutRequestCreate fields
FieldTypeRequiredDescription
notestring or nullno
number_idstringyes

PortabilityCheck

PortabilityCheck fields
FieldTypeRequiredDescription
checked_atstringyes
itemsarray of objectyes

PortabilityCheckCreate

PortabilityCheckCreate fields
FieldTypeRequiredDescription
numbersarray of stringyes

PortalSession

PortalSession fields
FieldTypeRequiredDescription
expires_atstringyes
urlstringyes

Providers

Providers fields
FieldTypeRequiredDescription
githubbooleanyes
googlebooleanyes
magic_linkbooleanno
passkeysbooleanno

Quote

Quote fields
FieldTypeRequiredDescription
amount_microintegeryes
authorization_requiredbooleanyes
billable_pagesintegeryes
consumed_by_job_idstring or nullyes
coverobject or nullyes
cover_pagesintegeryes
created_atstringyes
currencystringyes
document_idstringyes
document_pagesintegeryes
document_sha256stringyes
environmentstring (live, test)yes
expiredbooleanyes
expires_atstringyes
fromstring or nullno
idstringyes
per_page_microintegerno
price_versionstringyes
routestringyes
route_labelstringno
tostringyes
warningsarray of objectyes

QuoteCreate

QuoteCreate fields
FieldTypeRequiredDescription
coverobject or nullnoCover sheet fields: to_name, from_name, subject, message. Counts as a page.
document_idstringyes
fromstring or nullnoA number you own; omit for the shared pool.
tostringyesDestination in E.164, for example +12025550123.

Reauth

Reauth fields
FieldTypeRequiredDescription
credentialobject or nullno
methodstring (passkey, magic_link)yes

Receipt

Receipt fields
FieldTypeRequiredDescription
amount_microintegeryes
attemptsarray of object Attemptyes
billable_pagesintegeryes
captured_microintegeryes
completed_atstring or nullyes
created_atstringyes
currencystringyes
document_sha256stringyes
evidenceobject or nullyes
failure_codestring or nullyes
fax_job_idstringyes
fromstring or nullno
generated_atstringyes
notestringyes
pages_sentintegeryes
providerstringyes
statestringyes
tostringyes
transmitted_sha256string or nullyes

ReleaseRequest

ReleaseRequest fields
FieldTypeRequiredDescription
confirmstring or nullnoThe number itself, typed out, to confirm.

Requested

Requested fields
FieldTypeRequiredDescription
kindstring (export, deletion)yes
messagestringyes
requestedbooleanyes

Revoked

Revoked fields
FieldTypeRequiredDescription
revokedintegeryes

SandboxFixture

SandboxFixture fields
FieldTypeRequiredDescription
created_atstringyes
destinationstring or nullyes
expires_atstringyes
idstringyes
scenariostringyes

SandboxInboundCreate

SandboxInboundCreate fields
FieldTypeRequiredDescription
fromstring or nullno
pagesintegerno
partial_contentbooleannoRehearse a cut-off transmission.
tostringyes

SandboxReset

SandboxReset fields
FieldTypeRequiredDescription
deletedobjectyes
resetbooleanyes
wallet_available_microintegeryes

SandboxScenarioCreate

SandboxScenarioCreate fields
FieldTypeRequiredDescription
destinationstring or nullnoApply to one destination; omit for every send.
scenariostringyes

SandboxScenarios

SandboxScenarios fields
FieldTypeRequiredDescription
destinationsarray of objectyes
fixturesarray of object SandboxFixtureyes
scenariosarray of objectyes

SchemaCreate

SchemaCreate fields
FieldTypeRequiredDescription
descriptionstring or nullno
namestringyes
schemaobjectyes

SenderVerification

SenderVerification fields
FieldTypeRequiredDescription
created_atstringyes
environmentstring (live, test)yes
fromstringyes
idstringyes
methodstringyes
number_idstring or nullyes
statusstringyes
verified_atstring or nullyes

SenderVerificationCreate

SenderVerificationCreate fields
FieldTypeRequiredDescription
fromstringyesA number your organization owns, E.164.

Sent

Sent fields
FieldTypeRequiredDescription
messagestringyes
sentbooleanyes

ServiceStatus

ServiceStatus fields
FieldTypeRequiredDescription
databasebooleanyes
environmentstring (live, test)yes
providerstringyes
statusstring (ok, degraded)yes
status_pagestring or nullno
versionstringyes
worker_beat_age_sinteger or nullno

SessionInfo

SessionInfo fields
FieldTypeRequiredDescription
auth_methodstringyes
authenticated_atstringyes
expires_atstringyes
freshbooleanyes
fresh_untilstringyes
idstringyes

SessionList

SessionList fields
FieldTypeRequiredDescription
itemsarray of object SessionOutyes

SessionOut

SessionOut fields
FieldTypeRequiredDescription
auth_methodstringyes
authenticated_atstringyes
created_atstringyes
currentbooleanyes
expires_atstringyes
idstringyes
ipstring or nullyes
last_seen_atstringyes
user_agentstring or nullyes

SignedUrl

SignedUrl fields
FieldTypeRequiredDescription
content_typestringyes
expires_atstringyes
urlstringyes

Subscription

Subscription fields
FieldTypeRequiredDescription
cancel_at_period_endbooleanyes
canceled_atstring or nullyes
created_atstringyes
current_period_endstring or nullyes
entitledbooleanyes
idstringyes
productstringyes
statusstringyes
stripe_price_idstring or nullyes
stripe_subscription_idstringyes
updated_atstringyes

SubscriptionCheckout

SubscriptionCheckout fields
FieldTypeRequiredDescription
productstringyes
stripe_session_idstringyes
urlstringyes

SubscriptionList

SubscriptionList fields
FieldTypeRequiredDescription
itemsarray of object Subscriptionyes
next_cursorstring or nullno
workspacebooleanyes

SummaryCreate

SummaryCreate fields
FieldTypeRequiredDescription
document_idstring or nullno
inbox_item_idstring or nullno
max_pagesinteger or nullno
strictbooleannoRefuse with page_limit_exceeded when the document has more pages than would be read, instead of reading the first ones and warning.
strong_model_if_belownumberno

SwitchOrganization

SwitchOrganization fields
FieldTypeRequiredDescription
org_idstringyes

TopupCreate

TopupCreate fields
FieldTypeRequiredDescription
amount_usdintegeryesWhole US dollars, 10 to 1000 per session.

TopupSession

TopupSession fields
FieldTypeRequiredDescription
amount_microintegeryes
auto_topup_idstring or nullyes
completed_atstring or nullyes
created_atstringyes
currencystringyes
environmentstring (live, test)yes
errorstring or nullyes
expires_atstring or nullyes
idstringyes
kindstring (manual, auto, setup)yes
statusstring (open, completed, expired, canceled, failed)yes
stripe_payment_intent_idstring or nullyes
stripe_session_idstring or nullyes
urlstring or nullnoThe hosted Checkout page while the session is open.

TopupSessionPage

TopupSessionPage fields
FieldTypeRequiredDescription
itemsarray of object TopupSessionyes
next_cursorstring or nullno

UploadComplete

UploadComplete fields
FieldTypeRequiredDescription
sha256string or nullnoOptional: fail if the bytes differ.

UploadCreate

UploadCreate fields
FieldTypeRequiredDescription
content_typestringnoapplication/pdf, image/png, image/jpeg or image/tiff. An image becomes 8-bit gray letter pages, since fax is monochrome. A frame wider than it is tall is rotated. A frame above 300 dpi letter is downsampled. Every TIFF frame is a page. PNG and JPEG take the first frame. The bytes must be the declared type.
filenamestringyes
size_bytesintegeryes

UploadSession

UploadSession fields
FieldTypeRequiredDescription
completed_atstring or nullyes
content_typestringyes
created_atstringyes
declared_sizeintegeryes
expires_atstringyes
filenamestringyes
idstringyes
received_sizeintegeryes
sha256string or nullyes
statusstringyes
upload_methodstring or nullno
upload_urlstring or nullno
upload_url_expires_atstring or nullno

UsageExport

UsageExport fields
FieldTypeRequiredDescription
content_typestringyes
created_atstringyes
environmentstring (live, test)yes
expires_atstringyes
idstringyes
paramsobjectyes
row_countintegeryes
statusstring (ready, expired)yes
urlstring or nullyes

UsageExportCreate

UsageExportCreate fields
FieldTypeRequiredDescription
fromstring or nullnoISO date; default 30 days ago.
tostring or nullnoISO date; default today.

UsageItem

UsageItem fields
FieldTypeRequiredDescription
amount_microintegeryes
daystring or nullno
destinationstring or nullno
directionstring or nullno
jobsintegeryes
pagesintegeryes
project_idstring or nullno
routestring or nullno

UsageReport

UsageReport fields
FieldTypeRequiredDescription
currencystringyes
environmentstring (live, test)yes
fromstringyes
group_byarray of stringyes
itemsarray of object UsageItemyes
tostringyes
totalsobjectyes

UserOut

UserOut fields
FieldTypeRequiredDescription
created_atstringyes
emailstringyes
email_verifiedbooleanyes
idstringyes
last_login_atstring or nullyes
namestring or nullyes

ValidationError

ValidationError fields
FieldTypeRequiredDescription
ctxobjectno
inputanyno
locarray of string or integeryes
msgstringyes
typestringyes

Webhook

Webhook fields
FieldTypeRequiredDescription
created_atstringyes
descriptionstring or nullyes
event_typesarray of stringyes
idstringyes
previous_secret_expires_atstring or nullyes
statusstringyes
updated_atstringyes
urlstringyes

WebhookCreate

WebhookCreate fields
FieldTypeRequiredDescription
descriptionstring or nullno
event_typesarray of string or nullnoEmpty or omitted: every event type.
urlstringyes

WebhookList

WebhookList fields
FieldTypeRequiredDescription
itemsarray of object Webhookyes

WebhookUpdate

WebhookUpdate fields
FieldTypeRequiredDescription
descriptionstring or nullno
event_typesarray of string or nullno
statusstring (active, paused) or nullno
urlstring or nullno

WebhookWithSecret

WebhookWithSecret fields
FieldTypeRequiredDescription
created_atstringyes
descriptionstring or nullyes
event_typesarray of stringyes
idstringyes
previous_secret_expires_atstring or nullyes
secretstringyeswhsec_... Shown once. Verify webhook-signature with it.
statusstringyes
updated_atstringyes
urlstringyes

faxforagents__api__routes__inbox__InboxItem

faxforagents__api__routes__inbox__InboxItem fields
FieldTypeRequiredDescription
amount_microintegerno
document_idstring or nullyes
duration_secsinteger or nullno
environmentstring (live, test)no
expires_atstring or nullno
fromstring or nullno
idstringyes
media_statusstringno
notestring or nullno
number_idstring or nullno
pagesintegeryes
partial_contentbooleanno
project_idstring or nullno
providerstringno
read_atstring or nullno
received_atstringyes
statusstringyes
tostringyes

faxforagents__api__schemas__InboxItem

faxforagents__api__schemas__InboxItem fields
FieldTypeRequiredDescription
amount_microintegerno
document_idstring or nullyes
fromstring or nullno
idstringyes
notestring or nullno
pagesintegeryes
received_atstringyes
statusstringyes
tostringyes

faxforagents__api__schemas__Me

faxforagents__api__schemas__Me fields
FieldTypeRequiredDescription
actorstringyes
environmentstring (live, test)yes
key_idstringyes
key_prefixstringyes
org_idstringyes
project_idstringyes
scopesarray of stringyes

faxforagents__auth__schemas__Me

faxforagents__auth__schemas__Me fields
FieldTypeRequiredDescription
csrf_tokenstringyes
organizationobject OrganizationSummary or nullyes
organizationsarray of object OrganizationSummaryyes
passkeysintegeryes
providersobject Providersyes
sessionobject SessionInfoyes
userobject UserOutyes