Legally Binding Signatures.One API Call.

Ship e-signatures in 5 minutes. Not 5 meetings.

10K+ signatures sent
5 free / month
Audit trail included
Open Source

@turbodocx/html-to-docx

Powering the internet's document generation infrastructure. Production-ready, battle-tested, MIT licensed.

170 stars
180K+/mo
26 forks
terminal
$npm install@turbodocx/html-to-docx
added 1 package in 2.1s
// HTML to a Document file in 3 lines
import HtmlToDocx from "@turbodocx/html-to-docx"
const html = "<h1>Hello world</h1>"
const docx = await HtmlToDocx(html)

Video tutorials

Step-by-step tutorials show how to send documents for e-signature by email and how to embed signing in your app, in Node.js, Python, Go, PHP, Java and React.

API Products

Everything you need to automate documents

E-Signature API

Embed signing flows directly in your app. Legally binding with full audit trail.

  • Embedded signing experience
  • Template anchor tags
  • Audit trail & compliance
  • Multi-signer workflows

Document Generation for Developers

A document generation API and SDK for JavaScript, Python, PHP, Go, Java, and Ruby. Generate DOCX, PDF, and PPTX from templates with JSON data.

  • DOCX, PDF, PPTX output
  • JavaScript/TypeScript, Python, PHP, Go & Java SDKs
  • Template variables
  • Batch creation
  • Custom branding

Webhooks & Events

Real-time notifications when documents are generated, viewed, or signed.

  • Document lifecycle events
  • Signature status updates
  • Retry & dead-letter handling
  • Event filtering

Start Building in Minutes

Choose between our TypeScript SDK for the best developer experience, or use our REST API directly.

send-signature.ts
import { TurboSign } from '@turbodocx/sdk';

// Configure SDK with your credentials
TurboSign.configure({
  apiKey: process.env.TURBODOCX_API_KEY,
  orgId: process.env.TURBODOCX_ORG_ID,
});

// Send for signature using template anchor tags
const result = await TurboSign.sendSignature({
  fileLink: 'https://example.com/contract.pdf',
  documentName: 'Service Agreement',
  recipients: [
    { name: 'John Doe', email: 'john@acme.com', signingOrder: 1 }
  ],
  fields: [
    {
      type: 'signature',
      recipientEmail: 'john@acme.com',
      template: {
        anchor: '{SignHere}',
        placement: 'replace',
        size: { width: 200, height: 50 },
      },
    },
    {
      type: 'date',
      recipientEmail: 'john@acme.com',
      template: {
        anchor: '{DateHere}',
        placement: 'replace',
        size: { width: 150, height: 30 },
      },
    },
  ],
});

// Returns: { success: true, documentId: "...", message: "..." }
// Recipients automatically receive signing invitation via email

Need Python, Go, or other SDKs? Check out our full SDK documentation for all supported languages and frameworks.

Browse All SDKs

Need help integrating? Join our Discord community to get answers from our team and other developers.

Join Discord Community

Ready to Ship E-Signatures?

Get your API key and start sending signatures in minutes. 5 free signatures per month.