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

# Quickstart

> Create your first signature request and get an embeddable signing URL.

This guide takes you from zero to a live, embeddable signing session. You'll upload a document, send it for signature, and generate a URL your signer can open.

## Prerequisites

Before you begin, you need:

* **API credentials** (client ID and secret) from [support@formabledocs.com](mailto:support@formabledocs.com)
* An **access token** — see [Authentication](/authentication)
* A **PDF or DOCX file** under 40MB to send for signature

<Info>
  The examples below use the production base URL `https://formable-production.up.railway.app/api`. Replace `$TOKEN` with your access token.
</Info>

## Steps

<Steps>
  <Step title="Upload a template">
    Upload your document as `multipart/form-data`. Formable returns a `templateId` you'll use to send the document.

    ```bash theme={null}
    curl --request POST \
      --url https://formable-production.up.railway.app/api/v0/templates \
      --header "Authorization: Bearer $TOKEN" \
      --form 'file=@./agreement.pdf' \
      --form 'filename=agreement.pdf'
    ```

    ```json Response theme={null}
    {
      "templateId": "abc123xyz",
      "editTemplateAccess": {
        "editUrl": "https://app.formabledocs.com/template-setup/abc123xyz",
        "expiresAt": "2024-01-16T10:30:00.000Z"
      }
    }
    ```

    <Tip>
      Open the `editUrl` in a browser to place signature, text, and date fields on the document. See [Manage templates](/guides/templates).
    </Tip>
  </Step>

  <Step title="Create a signature request">
    Create a signature request from the template. Provide the `signer` (who signs) and the `sender` (who's sending it).

    ```bash theme={null}
    curl --request POST \
      --url https://formable-production.up.railway.app/api/v0/signature-requests \
      --header "Authorization: Bearer $TOKEN" \
      --header 'Content-Type: application/json' \
      --data '{
        "templateId": "abc123xyz",
        "signer": { "email": "signer@example.com", "name": "Jane Doe" },
        "sender": { "email": "you@yourcompany.com", "name": "Your Company" }
      }'
    ```

    ```json Response theme={null}
    {
      "signatureRequestId": "sr_456def"
    }
    ```
  </Step>

  <Step title="Generate a signing URL">
    Turn the signature request into an embeddable signing URL. The URL expires one hour after creation.

    ```bash theme={null}
    curl --request POST \
      --url https://formable-production.up.railway.app/api/v0/signature-requests/sr_456def/url \
      --header "Authorization: Bearer $TOKEN"
    ```

    ```json Response theme={null}
    {
      "signingUrl": "https://app.formabledocs.com/sign/embedded/xyz789abc",
      "expiresAt": "2024-01-16T10:30:00.000Z"
    }
    ```

    Load the `signingUrl` in an iframe or redirect the signer to it:

    ```html theme={null}
    <iframe src="https://app.formabledocs.com/sign/embedded/xyz789abc" width="100%" height="800"></iframe>
    ```
  </Step>

  <Step title="Retrieve the signed document">
    Once the signer completes the document, download the signed PDF from a presigned URL.

    ```bash theme={null}
    curl --request GET \
      --url https://formable-production.up.railway.app/api/v0/signature-requests/sr_456def/signed-envelope \
      --header "Authorization: Bearer $TOKEN"
    ```

    ```json Response theme={null}
    {
      "signedEnvelopePresignedUrl": "https://s3.amazonaws.com/bucket/signed-envelope.pdf?..."
    }
    ```

    <Note>
      This endpoint returns `409` until the document is signed. Poll [signature request events](/api-reference/endpoint/get-signature-request-events) or check the [signature request](/api-reference/endpoint/get-signature-request) `status` to know when it's `Completed`.
    </Note>
  </Step>
</Steps>

## Next steps

<CardGroup cols={2}>
  <Card title="E-signature workflow" icon="signature" href="/guides/e-signatures">
    Prefill fields, use test mode, and track completion.
  </Card>

  <Card title="Redlining workflow" icon="pen-line" href="/guides/redlining">
    Run a turn-based contract negotiation between two parties.
  </Card>

  <Card title="Core concepts" icon="book" href="/concepts">
    Understand templates, envelopes, and redline roles.
  </Card>

  <Card title="API reference" icon="code" href="/api-reference/introduction">
    Browse every endpoint with a live playground.
  </Card>
</CardGroup>
