Help us improve
Share bugs, ideas, or general feedback.
From sinch-claude-plugin
Sends and receives faxes programmatically via Sinch Fax API using Node.js, Python, Java, .NET SDKs or REST calls. Supports workflows, fax-to-email, webhooks, status checks, cover pages.
npx claudepluginhub sinch/sinch-plugins --plugin sinch-claude-pluginHow this skill is triggered — by the user, by Claude, or both
Slash command
/sinch-claude-plugin:faxThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
The Sinch Fax API lets you send and receive faxes programmatically. It supports multiple file formats, webhooks for incoming faxes, fax-to-email delivery, and automatic retries. Used for healthcare, legal, financial, and government applications where fax remains a required communication channel.
Provides curl examples for Telnyx Fax API to send/receive faxes, manage applications/media, configure webhooks, and handle errors/pagination.
Sends and receives iMessage, SMS, and RCS via the Sendblue HTTP API. Covers text, media, group messages, reactions, typing indicators, status callbacks, and inbound webhooks.
Works with the Resend email API: send transactional emails, receive inbound webhooks, manage templates, domains, contacts, broadcasts, automations, events. Covers idempotency keys, webhook verification, template variable syntax.
Share bugs, ideas, or general feedback.
The Sinch Fax API lets you send and receive faxes programmatically. It supports multiple file formats, webhooks for incoming faxes, fax-to-email delivery, and automatic retries. Used for healthcare, legal, financial, and government applications where fax remains a required communication channel.
Auth: HTTP Basic (keyId:keySecret) or OAuth2 bearer token. All examples use Basic auth. See sinch-authentication for setup.
Before generating code, gather from the user: approach (SDK or direct API), language (Node.js, Python, Java, .NET, curl), and use case (sending, receiving, fax-to-email, or managing services). Do not assume defaults.
When the user chooses SDK, fetch the relevant API reference docs linked in Links for accurate method signatures. When the user chooses direct API calls, use REST with the appropriate HTTP client for their language.
| Language | Package | Install |
|---|---|---|
| Node.js | @sinch/sdk-core (preview — not recommended for production) | npm install @sinch/sdk-core |
| Python | sinch | pip install sinch |
| Java | com.sinch.sdk:sinch-sdk-java | Maven dependency |
| .NET | Sinch | dotnet add package Sinch |
curl (replace {projectId} with your project ID from the Sinch dashboard):
curl -X POST \
'https://fax.api.sinch.com/v3/projects/{projectId}/faxes' \
-H 'Content-Type: application/json' \
-u YOUR_key_id:YOUR_key_secret \
-d '{
"to": "+12025550134",
"contentUrl": "https://example.com/document.pdf",
"callbackUrl": "https://yourserver.com/fax-callback"
}'
Node.js SDK: See Send a Fax with Node.js.
Test number: Send to +19898989898 to emulate a real fax without charges (always suggest this for integration testing).
Fax Services — Logical containers for fax configuration. Associate numbers, set defaults, and manage routing.
Fax Numbers — Phone numbers provisioned for fax. Must be configured in your Sinch dashboard.
Faxes — Individual fax transmissions (inbound or outbound). Each has a unique ID, status, and metadata.
Fax statuses — QUEUED → IN_PROGRESS → COMPLETED or FAILURE. Error details in errorType and errorMessage fields.
Supported formats — PDF (most reliable), DOC, DOCX, TIF/TIFF, JPG, PNG, TXT, HTML.
Webhooks/Callbacks — HTTP POST notifications for fax events. Default content type is multipart/form-data (fax content as attachment). Set callbackUrlContentType: "application/json" for JSON callbacks.
Cover Pages — Customizable cover pages per service. Attach via coverPageId and coverPageData on send.
Fax-to-Email — Incoming faxes auto-forwarded to email addresses.
Retries — Auto-retry on failure. Default set per fax service; maximum: 5.
Retention — Fax logs and media retained for 13 months. Use DELETE /faxes/{id}/file to remove earlier.
Three ways to deliver content: contentUrl for URLs (recommended — supports basic auth), multipart/form-data for local files, or contentBase64 for in-memory bytes. contentUrl can be a single URL or an array of URLs to compose multi-document faxes.
For HTTPS URLs, ensure your SSL certificate (including intermediate certs) is valid and up-to-date. You can optionally specify from to set the sender number.
multipart/form-data for local files, JSON with contentUrl for URLs.callbackUrlContentType (see Key Concepts). Check direction === 'INBOUND' on the fax object. See Receive a Fax with Node.js.GET /faxes/{id}GET /faxes/{id}/file.pdf (.pdf suffix required)DELETE /faxes/{id}/file (removes stored content before 13-month expiry)POST/GET/DELETE /services/{id}/coverPages — see Services referenceGET /faxes/{id} — look at status, errorType (DOCUMENT_CONVERSION_ERROR, CALL_ERROR, FAX_ERROR, FATAL_ERROR, GENERAL_ERROR), and errorMessagecontentUrl was used with HTTPS, verify the SSL certificate (including intermediate certs) is validcallbackUrl for status tracking — fax delivery is async. Prefer callbacks over polling.DELETE /faxes/{id}/file to remove earlier, or download and archive if longer retention is needed.resolution: "SUPERFINE" (400 dpi) for faxes with small text or detailed images; default FINE (200 dpi) works for most cases.