docubend

Sign a PDF

Draw your signature or type it, then drag it where it goes.

How it works

  1. Drop your PDF in.
  2. Draw or type your signature.
  3. Drag it into place and download.

What it does

Putting your signature on a PDF is usually a small errand with a lot of ceremony around it: an account, an upload, an email with a link. This is the errand without the ceremony. Draw your signature, put it where it goes, download the file. Nothing is sent anywhere and nobody is invited.

Drawing and placing it

The pen is set to an ink weight that looks like a signature rather than a drawing. Sign anywhere on the page, then move and resize it until it sits properly on the line. You can add the date and any other short text the same way, which covers most of what a signature block actually needs.

What this is, and what it is not

This puts an image of your signature onto a document, which is what most day-to-day signing actually asks for. It is not an e-signature service: there is no way to send the document to somebody else to sign, no identity check, and no audit trail. If you need a countersigned record with evidence of who signed and when, this is not that, and we would rather say so here than let you find out later.

Why nothing is uploaded

A document that needs signing is usually one you would not hand to a stranger. Here the file is opened, drawn on and written back out by your own browser, so there is no copy of it on our side at any point — nothing to secure, nothing to leak, and nothing to delete afterwards.

Doing this from your own code

A signature is a drawing on a layer, which is a node in the model. For a form's signature field, use the forms API instead.

curl
# fetch the model, change it, put the whole thing back
curl -s https://docubend.com/api/v1/documents/$ID.json \
  -H "Authorization: Bearer $TOKEN" -o model.json

# …edit model.json…

curl -s -X PUT https://docubend.com/api/v1/pdfs/$ID \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d "{\"model\": $(cat model.json)}"
JavaScript
const got = await fetch(`${BASE}/api/v1/documents/${id}.json`,
  { headers: { Authorization: `Bearer ${TOKEN}` } });
const model = await got.json();

// …change model.pages…

await fetch(`${BASE}/api/v1/pdfs/${id}`, {
  method: "PUT",
  headers: { Authorization: `Bearer ${TOKEN}`,
             "Content-Type": "application/json" },
  body: JSON.stringify({ model }),
});
Python
model = requests.get(f"{BASE}/api/v1/documents/{id}.json",
    headers={"Authorization": f"Bearer {TOKEN}"}, timeout=60).json()

# …change model["pages"]…

requests.put(f"{BASE}/api/v1/pdfs/{id}",
    headers={"Authorization": f"Bearer {TOKEN}"},
    json={"model": model}, timeout=60)

The model is the same JSON the editor works on. Documents reference.

Questions

Is a signature added this way legally binding?

That depends on your jurisdiction and the document, and we are not the right people to tell you. What this tool does is place your signature on the page. It does not produce an audit trail or verify who signed.

Can I send it to someone else to sign?

Not today. There is no signature-request flow — you sign a document you already have.

Can I reuse the same signature?

Draw it once and copy it to the other places it is needed within the same document. Nothing is stored between sessions, so the next document starts fresh.

Can I fill in the form fields too?

Yes, and if the PDF has real form fields the fill-in tool handles them properly rather than typing on top.

Does it work on a phone?

Yes, and a finger draws a better signature than a mouse does.

Next

Tool What it does Runs in Same thing, programmatically
Edit a PDF Change the words already in the PDF, in their original font. your browser the document model
Annotate a PDF Highlight, draw and add notes on top of the page. your browser the document model
Fill in a PDF form Fill a PDF's real form fields, and flatten them if you like. your browser POST /api/v1/forms
Password protect a PDF Put an AES-256 password on a PDF. our server POST /api/free/protect

All 16 tools · API documentation · What an account adds