Skip to main content

Documentation Index

Fetch the complete documentation index at: https://developers.luminpdf.com/llms.txt

Use this file to discover all available pages before exploring further.

This guide walks you through getting authenticated and sending your first signature request using the Lumin API.

Prerequisites

  • A Lumin account with Workspace Owner access
  • curl or an HTTP client of your choice
1

Get your API key

  1. Log in to Lumin and go to Settings → Developer settings → API keys.
  2. Click Generate key, enter a name for the key, and click Create.
  3. Copy and securely store the key — you won’t be able to see it again.
Treat your API key like a password. Do not commit it to source control or expose it in client-side code.
2

Verify your credentials

Confirm your API key works by calling GET /user/info:
curl -X GET "https://api.luminpdf.com/v1/user/info" \
  -H "X-API-KEY: YOUR_API_KEY"
A successful response returns your user details:
{
  "user": {
    "id": "usr_a1b2c3d4",
    "email": "[email protected]",
    "name": "Your Name"
  }
}
If you receive a 401 or 403, double-check that your API key was copied correctly and that you are passing it in the X-API-KEY header.
3

Send a signature request

Use POST /signature_request/send to send a document to one or more signers.The example below sends a PDF from a public URL to a single signer:
curl -X POST "https://api.luminpdf.com/v1/signature_request/send" \
  -H "X-API-KEY: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "title": "Financial Year-End Report Authorization",
    "file_url": "https://example.com/path/to/document.pdf",
    "signers": [
      {
        "email_address": "[email protected]",
        "name": "John Doe"
      }
    ],
    "expires_at": 1927510980694
  }'
A 201 Created response returns the new signature request:
{
  "signature_request": {
    "signature_request_id": "sr_a1b2c3d4e5f6",
    "status": "WAITING_FOR_PROCESSING",
    "created_at": "2026-04-01T10:00:00Z"
  }
}
The signer receives an email with a link to review and sign the document. The status moves from WAITING_FOR_PROCESSING to NEED_TO_SIGN once the document is ready.
The expires_at field is a Unix timestamp in milliseconds. Set it to a date in the future. To send to multiple signers simultaneously, add more objects to the signers array and set signing_type to SAME_TIME. For sequential signing, set signing_type to ORDER and assign a group number to each signer.

Next steps