> ## Documentation Index
> Fetch the complete documentation index at: https://docs.spitshake.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Introduction

> SpitShake is an API-first document signing platform for sending, tracking, and completing legally binding e-signatures.

SpitShake is a document signing and e-signature platform built for developers. Create document templates, send them for signing, collect legally binding signatures, and track completion -- all through a clean REST API or intuitive web interface.

Whether you are automating contract workflows, embedding signing into your product, or building a compliance-first document pipeline, SpitShake gives you the primitives to move fast without sacrificing security.

## Core concepts

SpitShake is organized around three main objects:

<AccordionGroup>
  <Accordion title="Templates" icon="file-lines">
    A **template** is a reusable document blueprint. It combines a source document (PDF, DOCX, or HTML) with a field schema that defines where signers need to fill in data -- signatures, text fields, dates, checkboxes, and more. Each template also declares one or more **submitter roles** (e.g., "Sender", "Recipient", "Witness") that represent the parties who will sign.

    Templates expose a rich field schema with 19 field types including `text`, `signature`, `initials`, `date`, `checkbox`, `select`, `radio`, `file`, `image`, `stamp`, `payment`, `phone_verification`, `cells`, and `number`. Each field is positioned on a specific page and assigned to a submitter role.
  </Accordion>

  <Accordion title="Submissions" icon="paper-plane">
    A **submission** is a single instance of a template sent out for signing. When you create a submission, you assign real people (with names and emails) to each submitter role defined in the template. SpitShake sends invitation emails, tracks progress, and collects the completed document once all parties have signed.

    Submissions move through a status lifecycle: `pending` when created, `completed` when all submitters finish, or `expired` / `archived` if the submission times out or is manually archived.
  </Accordion>

  <Accordion title="Submitters" icon="user-pen">
    A **submitter** is an individual signer within a submission. Each submitter has their own signing link, status lifecycle (`waiting` -> `sent` -> `opened` -> `completed`), and set of fields to fill. You can pre-fill values, track open/completion timestamps, and resend invitations as needed.

    Submitters can also be `declined` (signer refused) or `expired` (signing link timed out). Every status transition is recorded in an immutable audit trail with SHA-256 chain hashing.
  </Accordion>
</AccordionGroup>

## How it works

The typical signing flow follows four steps:

<Steps>
  <Step title="Create a template">
    Upload a PDF, DOCX, or HTML document. Define fields (signature, text, date, etc.) and assign them to submitter roles. You can do this via the API or the visual template builder. SpitShake can also auto-detect fields using AI analysis.
  </Step>

  <Step title="Create a submission">
    Send the template for signing by creating a submission. Provide the email, name, and optional pre-filled values for each submitter role. Choose a signing mode -- `normal`, `review_and_sign`, `confirmation_modal`, or `auto_scroll_signature` -- to control the signer experience.
  </Step>

  <Step title="Submitters sign">
    Each submitter receives an email with a secure signing link. They open the document, fill in their assigned fields, and submit. SpitShake tracks every interaction with timestamps and an immutable audit trail.
  </Step>

  <Step title="Submission completes">
    Once all submitters have signed, the submission status moves to `completed`. Download the final signed PDF with all fields filled, digital signatures applied, and a tamper-evident audit log attached.
  </Step>
</Steps>

## Key capabilities

| Capability                | Description                                                                                                                                                         |
| ------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Multi-party signing**   | Define multiple submitter roles with ordered or parallel signing workflows.                                                                                         |
| **Embeddable UI**         | Embed the signing form or template builder directly in your app with a few lines of JavaScript.                                                                     |
| **Webhooks**              | Receive real-time notifications when submissions are created, opened, completed, or declined. 14 event types across forms, fields, submissions, and templates.      |
| **AI field detection**    | Automatically detect and place fields on uploaded documents using AI analysis. Smart setup, field detection, and key assignment endpoints available.                |
| **Compliance**            | HIPAA-ready with BAA support, SOC 2 controls, AES-256 encryption at rest, immutable audit trails with SHA-256 chain hashing, and organization-wide MFA enforcement. |
| **Bulk operations**       | Send hundreds of submissions at once from CSV/XLSX uploads or the bulk API.                                                                                         |
| **Digital signatures**    | Cryptographic PDF signatures with TSA timestamping for long-term validation.                                                                                        |
| **Identity verification** | SMS OTP phone verification and knowledge-based authentication (KBA) for high-assurance signing.                                                                     |
| **Draft persistence**     | Save and resume incomplete submissions. Auto-save with conflict detection and offline queuing.                                                                      |

## API at a glance

SpitShake exposes a REST API authenticated via the `X-Auth-Token` header. All responses are JSON. The API uses cursor-based pagination and enforces a rate limit of 120 requests per minute.

```bash theme={null}
curl https://spitshake.io/api/templates \
  -H "X-Auth-Token: YOUR_API_TOKEN"
```

## Get started

<CardGroup cols={2}>
  <Card title="Quickstart" icon="rocket" href="/quickstart">
    Send your first document for signing in under 5 minutes.
  </Card>

  <Card title="API Reference" icon="code" href="/api-reference/overview">
    Explore every endpoint with request/response examples and an interactive playground.
  </Card>

  <Card title="Authentication" icon="key" href="/guides/authentication">
    Learn about API tokens, session cookies, and JWT bearer tokens.
  </Card>

  <Card title="Templates Guide" icon="file-lines" href="/guides/templates">
    Understand field schemas, submitter roles, and document management.
  </Card>

  <Card title="Submissions Guide" icon="paper-plane" href="/guides/submissions">
    Create submissions, pre-fill fields, track status, and download signed documents.
  </Card>

  <Card title="Submitters Guide" icon="user-pen" href="/guides/submitters">
    Manage individual signers, track their status, and resend invitations.
  </Card>

  <Card title="Embedding" icon="window" href="/embed/overview">
    Embed the signing form or template builder into your application.
  </Card>

  <Card title="Webhooks" icon="bell" href="/guides/webhooks">
    Set up real-time event notifications for your signing workflows.
  </Card>
</CardGroup>
