Use case

Get every answer signers typed as JSON, not retyped from a PDF

A signed application holds data you need elsewhere: the applicant's address, their start date, the plan they ticked. Retyping it from the PDF is slow and error-prone. SignMaster keeps every value as data, and hands it over as JSON in three ways, depending on whether you want it in bulk, on request or the moment it's signed.

Updated November 5, 2026 · 2 min read

On this page
  1. Three ways to get JSON
  2. A download for a whole template
  3. The REST API, on request
  4. Webhooks, the moment it's signed
  5. Labels make clean data
  6. Questions

Three ways to get JSON

Responses downloadREST APIWebhooks
What you getEvery envelope from one templateOne envelope, or every response to a templateEach envelope as it's signed
HowDownload JSON on the template's Responses tabGET requests with an API keySignMaster posts to your URL
Code neededNoneYesNone with Zapier, Make or n8n
PlansSolo, Crew and CompanyCrew and CompanyCrew and Company
Getting signer data out as JSON

A download for a whole template

Open a template and choose Responses. Filter by status, dates or a bulk send, then press Download JSON. The file has a columns list, with each column's key, label, field type and role, and a rows list with one entry per envelope: its id, title, status, when it was sent and completed, which bulk send it came from, how it was created (sent, bulk, public link or API), the people on it, and a values object keyed by column. Labels shared by two roles get the role added to the key, so two Address fields stay apart.

You need the Export data permission to download, and every download is recorded on the envelopes it covers. Prefer a spreadsheet? Download CSV has the same rows with a column per label.

The REST API, on request

  • GET /api/v1/envelopes/{id}/data returns one envelope's fields: each with its label, type, page, file, the recipient's name and email, the value and when it was filled.
  • GET /api/v1/templates/{id}/responses returns the same rows as the Responses download, a page at a time, with a next_cursor to fetch the next page and filters for status, dates and bulk send.
  • Both need a key with the envelopes:read scope, created in Settings › Developers. See the API overview.

Webhooks, the moment it's signed

When one signer finishes (recipient.completed) or the whole envelope does (envelope.completed), a webhook carries data.fields, a list with each field's id, label, type, value, owner and whether the signer or the sender filled it, plus data.fields_by_label, a simple label-to-value map that no-code tools handle easily. Setup is on the webhooks page.

Labels make clean data

  • Label every field you'll want out. An unlabeled text box has nothing to be called in your JSON.
  • Use the same label on every template for the same thing, like Start date, so one integration reads them all.
  • Use the right field type. A date field gives a real date and a number field a real number, where a text box would give whatever was typed.

Signature and initials images are never included. Upload fields come through as the file name, and in webhooks as a name with a short-lived download link.

Questions? Answers.

Can I export one envelope's data without the API?

Yes, as CSV: choose Export data on the envelope. For JSON without code, use the template's Responses download.

Are signatures in the JSON?

No. Signature, initials and similar fields never appear as images. The data holds what people typed, ticked and chose.

What if two signers fill the same label?

Responses keep them apart by adding the role to the key, and webhooks add the role or the person's name to the label.

Do envelopes from public links appear?

Yes. The Responses download includes envelopes from public links, bulk sends, the API and regular sends, with a source on each.

Your next contract,
signed today.

Start free in any browser and send your first document.