---
title: "E-Signature API & Document Generation SDK for Developers | TurboDocx"
description: "Ship e-signatures in 5 minutes with our REST API. Open source document generation with 180K+ monthly downloads. SDKs for TypeScript, Python, PHP, Go, Java, and Ruby."
url: "https://www.turbodocx.com/developers"
---

# Legally Binding Signatures. One API Call.

> Ship e-signatures in 5 minutes. Not 5 meetings. TurboDocx offers an e-signature REST API, an open source document generation library with 180K+ monthly downloads, and SDKs for TypeScript, Python, PHP, Go, Java, and Ruby.

- 10K+ e-signatures sent
- 6 SDKs ([API and SDK](https://www.turbodocx.com/products/api-and-sdk.md))
- [REST API](https://www.turbodocx.com/document-signing-api.md)
- 5 free signatures per month
- Audit trail included

Start here: [View the E-Sign API docs](https://docs.turbodocx.com/docs/SDKs/javascript), [get an API key for free](https://app.turbodocx.com/?utm_source=website&utm_medium=developers&utm_campaign=hero-esign), or browse the [GitHub SDK](https://github.com/TurboDocx/sdk). See also the [E-Signature API](https://www.turbodocx.com/e-signature-api.md).

## Agentic Quickstart Skill

New: install TurboDocx in your AI coding agent with the [Agentic Quickstart Skill](https://www.turbodocx.com/quickstart.md). Works with Claude Code, Cursor, GitHub Copilot, OpenCode, Codex CLI, and Gemini CLI.

```bash
npx skills add TurboDocx/quickstart
```

## Send for signature in a few lines

The hero shows a TypeScript example (send-for-signature.ts) that configures the SDK and calls `TurboSign.sendSignature` with a file link, a recipient, and a signature field positioned by the `{SignHere}` template anchor. It ends with the status "Signature request sent". Language-specific guides:

- [JavaScript](https://www.turbodocx.com/guides/sign-documents-with-javascript.md)
- [TypeScript](https://www.turbodocx.com/guides/sign-documents-with-typescript.md)
- [Python](https://www.turbodocx.com/guides/sign-documents-with-python.md)
- [PHP](https://www.turbodocx.com/guides/sign-documents-with-php.md)
- [Go](https://www.turbodocx.com/guides/sign-documents-with-go.md)
- [Java](https://www.turbodocx.com/guides/sign-documents-with-java.md)

## Open Source: @turbodocx/html-to-docx

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

- 170 GitHub stars (live count shown on the page; 170 is the shipped fallback)
- 180K+ downloads per month (live count; 180K+ is the shipped fallback)
- 26 forks

Links: [GitHub](https://github.com/turbodocx/html-to-docx) and [npm](https://www.npmjs.com/package/@turbodocx/html-to-docx).

```bash
npm install @turbodocx/html-to-docx
```

```javascript
// 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.

Featured video: "How to Send Documents for E-Signature from Your Node.js App (TurboSign API)" (https://www.youtube.com/watch?v=786895srODU).

- [Send for e-signature series](https://www.youtube.com/playlist?list=PLVXyt4RRtmw0)
- [Embedded signing series](https://www.youtube.com/playlist?list=PLe0Y3BjRALjc)

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

## SDKs for Every Stack

First-class support for your favorite language: TypeScript, Python, PHP, Go, Java, and Ruby. All are in the [TurboDocx SDK repository](https://github.com/TurboDocx/sdk).

## Start Building in Minutes

Choose between our TypeScript SDK for the best developer experience, or use our REST API directly. The code window has three tabs (TypeScript SDK, Other SDKs, REST API) and two placement methods (Template Tags, which is recommended, and Coordinates).

### TypeScript SDK, Template Tags (recommended)

```typescript
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
```

### TypeScript SDK, Coordinates

```typescript
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 exact coordinates
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',
      page: 1,
      x: 100,
      y: 650,
      width: 200,
      height: 50,
    },
    {
      type: 'date',
      recipientEmail: 'john@acme.com',
      page: 1,
      x: 320,
      y: 650,
      width: 150,
      height: 30,
    },
  ],
});

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

Need Python, Go, or other SDKs? Check out the full SDK documentation for all supported languages and frameworks: [Browse All SDKs](https://github.com/TurboDocx/sdk).

### Other SDKs

Official SDKs in 6 Languages. Production-ready SDKs with full type definitions, comprehensive documentation, and working examples. Open source and actively maintained (MIT Licensed). Languages: TypeScript, Python, PHP, Go, Java, Ruby. [View on GitHub](https://github.com/TurboDocx/sdk).

### REST API, Template Tags (recommended)

```javascript
// Auto-position fields using template anchor tags
const formData = new FormData();
formData.append('file', pdfFile);
formData.append('recipients', JSON.stringify([
  { name: 'John Doe', email: 'john@acme.com', signingOrder: 1 },
  { name: 'Jane Smith', email: 'jane@acme.com', signingOrder: 2 }
]));

// Fields auto-position at anchor tags like {SalesSigner}
formData.append('fields', JSON.stringify([
  { recipientEmail: 'john@acme.com', type: 'signature',
    template: { anchor: '{SalesSigner}', placement: 'replace',
      size: { width: 200, height: 50 } } },
  { recipientEmail: 'john@acme.com', type: 'date',
    template: { anchor: '{SalesDate}', placement: 'replace',
      size: { width: 150, height: 30 } } }
]));
formData.append('documentName', 'Service Agreement');

const response = await fetch('https://api.turbodocx.com/turbosign/single/prepare-for-signing', {
  method: 'POST',
  headers: {
    'Authorization': `Bearer ${apiKey}`,
    'x-rapiddocx-org-id': orgId
  },
  body: formData
});

const { success, documentId, message } = await response.json();
// Returns: { success: true, documentId, message }
// Signers automatically receive email with signing link
```

### REST API, Coordinates

```javascript
// Position fields using exact coordinates
const formData = new FormData();
formData.append('file', pdfFile);
formData.append('recipients', JSON.stringify([
  { name: 'John Doe', email: 'john@acme.com', signingOrder: 1 },
  { name: 'Jane Smith', email: 'jane@acme.com', signingOrder: 2 }
]));

// Specify exact x, y coordinates and dimensions
formData.append('fields', JSON.stringify([
  { recipientEmail: 'john@acme.com', type: 'signature',
    page: 1, x: 100, y: 700, width: 200, height: 50 },
  { recipientEmail: 'john@acme.com', type: 'date',
    page: 1, x: 100, y: 640, width: 150, height: 30 }
]));
formData.append('documentName', 'Service Agreement');

const response = await fetch('https://api.turbodocx.com/turbosign/single/prepare-for-signing', {
  method: 'POST',
  headers: {
    'Authorization': `Bearer ${apiKey}`,
    'x-rapiddocx-org-id': orgId
  },
  body: formData
});

const { success, documentId, message } = await response.json();
// Returns: { success: true, documentId, message }
// Signers automatically receive email with signing link
```

Need help integrating? Join the [Discord community](https://discord.gg/NYKwz4BcpX) to get answers from the team and other developers. Full docs are at [docs.turbodocx.com](https://docs.turbodocx.com).

## Developer Resources

Everything you need to build with TurboDocx.

- [API Documentation](https://docs.turbodocx.com/docs/SDKs/javascript): Complete API reference with examples.
- [GitHub SDKs](https://github.com/TurboDocx/sdk): Official SDKs in 6 languages.
- [Discord Community](https://discord.gg/NYKwz4BcpX): Get help from the team and community.

## FAQ

### How do I add e-signatures to my application?

Install the TurboDocx SDK (npm install @turbodocx/sdk), configure with your API key, and call TurboSign.sendSignature() with your document and recipient details. E-signatures can be embedded in 5 minutes.

### Is the document generation library open source?

Yes, @turbodocx/html-to-docx is fully open source under the MIT license. It has 180K+ monthly downloads on npm and converts HTML to Word documents in pure JavaScript.

### What programming languages are supported?

TurboDocx provides official SDKs for TypeScript/JavaScript, Python, PHP, Go, Java, and Ruby. All SDKs ship with comprehensive documentation, and the SDKs for typed languages include full type definitions.

### Is there a document generation SDK for JavaScript?

Yes. The TurboDocx TypeScript/JavaScript SDK generates DOCX, PDF, and PPTX documents from templates, and the open source @turbodocx/html-to-docx package (180K+ monthly npm downloads) converts HTML to DOCX in pure JavaScript.

## Ready to Ship E-Signatures?

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

[Get API Key](https://app.turbodocx.com/signup?utm_source=website&utm_medium=developers&utm_campaign=cta)
