Documentation

Up and running
in under an hour.

Full REST API. OpenAPI 3.1 spec. Webhook events for every lifecycle moment.

Get API key →OpenAPI 3.1 Spec

Quick start

1

Get your API key

Sign up, navigate to API Credentials, create a client. You get a client_id and client_secret.

curl -X POST https://api.GetSigned.app/oauth/token \
  -d grant_type=client_credentials \
  -d client_id=YOUR_CLIENT_ID \
  -d client_secret=YOUR_CLIENT_SECRET

# → { "access_token": "eyJ...", "expires_in": 3600 }
2

Create an envelope

Upload a PDF, define signers and fields. Returns a signing URL immediately — sealing happens after all parties sign.

curl -X POST https://api.GetSigned.app/v1/envelopes \
  -H "Authorization: Bearer eyJ..." \
  -F "file=@./agreement.pdf" \
  -F "signers[0][email]=jamie@client.io" \
  -F "fields[0][type]=signature" \
  -F "fields[0][page]=1" \
  -F "fields[0][x]=420" \
  -F "fields[0][y]=580"

# → { "id": "env_a1b2c3", "status": "sent" }
3

Receive the sealed PDF via webhook

Register a webhook endpoint. GetSigned delivers HMAC-signed events for every state change. No polling.

// Your webhook handler (Node.js example)
app.post('/webhooks/GetSigned', (req, res) => {
  const sig = req.headers['x-GetSigned-signature'];
  if (!GetSigned.verifyWebhook(req.body, sig, SECRET)) {
    return res.status(401).end();
  }
  const { event, data } = req.body;
  if (event === 'envelope.completed') {
    // data.sealed_url — download the sealed PDF
    await processSealedDocument(data.envelope_id);
  }
  res.status(200).end();
});

API endpoints

POST/oauth/tokenGet an access token (client credentials)
POST/v1/envelopesCreate envelope with document + signers + fields
POST/v1/envelopes/{id}/sendGenerate signing links and dispatch notifications
GET/v1/envelopes/{id}Get status, audit events, and signer states
GET/v1/envelopes/{id}/documentDownload the sealed PDF
POST/v1/signing/{token}/consentRecord e-sign consent for a signer
POST/v1/signing/{token}/signApply signature, advance routing
POST/v1/webhooksRegister or update a webhook endpoint

Full reference with request/response schemas: openapi.yaml

Ready to integrate?

Create a free account, grab your API key, and send your first envelope in under an hour.

Get API key →