API Guide

Welcome to the Developer API documentation. This guide is intended to help integrators identify and consume the appropriate endpoints to automate workflows within their applications. Review this documentation carefully before implementing integrations. Please also review our platform documentation here for details on processes.

If you have questions, require additional endpoints, or encounter issues, please contact our support team here.

All API requests must include the "X-AUTH-HEADER" HTTP header with a valid API key as its value. Requests that do not include this header will be rejected.

Documents

GET /api/v1/esign/documents

Returns an array of active documents for the account.

Parameters:

  1. page_number
    • Required: false
    • Type: Integer
    • Default: 1
    • Desc: The paginated page number to view starting with the index of 1.
  2. page_length
    • Required: false
    • Type: Integer
    • Values: [10, 25, 50, 100]
    • Default: 10
    • Desc: How many results to display per page.
  3. from_date
    • Required: false
    • Type: DateTime
    • Desc: Return records >= this date with a ISO 8601 UTC timestamp (Ex. 2026-02-10T18:34:22Z).
  4. to_date
    • Required: false
    • Type: DateTime
    • Desc: Return records <= this date with a ISO 8601 UTC timestamp (Ex. 2026-02-12T18:34:22Z).

Example Payload:

{ "page_number": 1, "page_length": 10, "from_date": "2026-02-10T18:34:22Z", "to_date": "2026-02-14T18:34:22Z" }

Example Response:

{   "successful": true,   "total_pages": 1,   "total_count": 2,   "page_number": 1,   "page_length": 10,   "documents": [     {       "name": "Payment Documents",       "enforce_signing_order": true,       "reminder_interval": 7,       "completed_at": null,       "declined_at": null,       "uuid": "N3WI-AGRD-B8S1",       "external_id": null,       "created_at": "2026-02-14T02:11:51+0000",        "signers": [          {            "name": "Mack Lanes",            "sequence": 1,            "email": null,            "phone_number": "702-123-1234",            "phone_number_country_code": "US",            "party_id": "Green Party",            "reminder_last_sent_at": "2026-02-14T05:43:01+0000",            "invite_first_sent_at": "2026-02-12405:43:01+0000",            "declined_at": null,            "downloaded_at": null,            "audit_log_downloaded_at": null,            "completed_at": "2026-02-14T05:53:01+0000"          },          {            "name": "John Smith",            "sequence": 2,            "email": "john@example.com",            "phone_number": null,            "phone_number_country_code": null,            "party_id": "Purple Party",            "reminder_last_sent_at": null,            "invite_first_sent_at": null,            "declined_at": null,            "downloaded_at": null,            "audit_log_downloaded_at": null,            "completed_at": null          }        ]     },     {       "name": "NDA Paperwork",       "enforce_signing_order": false,       "reminder_interval": null,       "completed_at": "2026-02-015T01:27:24+0000",       "declined_at": null,       "uuid": "4XAH-5FPT-CECI",       "external_id": null,       "created_at": "2026-02-14T01:25:17+0000",       "signers": []     }   ] }

Error Response From API:

{ "error": "API error explanation" }

POST /api/v1/esign/documents

To create an eSign Document programatically based off of a given template UUID, use the following parameters below. When assigning contact information to signers, a signer must have either an email address or a phone number and country code, but not both. All documents will be enqueued for processing and if there are errors in processing, they can be viewed through the dashboard side navigation menu under eSignatures -> Templates -> Bulk Send History.

Parameters:

  1. template_uuid
    • Required: true
    • Type: String
    • Desc: The UUID of the template found in the browser's URL address. (Ex. 4K2T-YXNZ-UXQT)
  2. documents
    • Required: true
    • Type: Array
    • Desc: An array of eSign documents with signers to create using the provided template UUID. A limit of 1000 is allowed per request.
  3. documents[document_name]
    • Required: true
    • Type: String
    • Desc: The name of the document (Ex. John's Employment Onboarding Documents)
  4. documents[send_as]
    • Required: true
    • Type: String
    • Values: ["account_name", "company"]
    • Desc: Would you like to send the document in your name or the company name on the account.
  5. documents[enforce_signing_order]
    • Required: true
    • Type: String
    • Values: ["0", "1"]
  6. documents[expires_at]
    • Required: false
    • Type: Date
    • Desc: When the document expires, must be the following format: "MM/DD/YYYY"
  7. documents[send_via_email]
    • Required: false
    • Type: String
    • Values: ["0", "1"]
    • Desc: Whether or not to send the signed PDFs as attachments within an email.
  8. documents[email_audit_log]
    • Required: false
    • Type: String
    • Values: ["0", "1"]
    • Desc: Whether or not to include the audit log PDF within the final email.
  9. documents[show_title_on_landing_page]
    • Required: false
    • Type: String
    • Values: ["0", "1"]
    • Desc: When accessing the portal, should the document name be displayed at the top?
  10. documents[reminder_interval]
    • Required: false
    • Type: Integer
    • Values: [3, 7, 14, 30]
    • Desc: How often reminder emails/texts go out in days if not signed. Leave blank (null) to not send reminders.
  11. documents[email_subject]
    • Required: false
    • Type: String
    • Min length: 1
    • Max length: 100
    • Desc: Customized email subject shown to all signatories if they are signing via email address.
  12. documents[email_body]
    • Required: false
    • Type: String
    • Min length: 1
    • Max length: 10000
    • Desc: Customized email body shown to all signatories if they are signing via email address.
  13. documents[external_id]
    • Required: false
    • Type: String
    • Min length: 1
    • Max length: 255
    • Desc: A unique external id used for identifying the document in an external system and used through the API and webhooks for status updates and tracking.
  14. documents[signers]
    • Required: true
    • Type: Array
    • Desc: An array of signers needing to sign the document. There must be at least 1 signer. The order of the signers in the array is the signing order of the document if enforce_signing_order is enabled.
  15. documents[signers][signer_name]
    • Required: true
    • Type: String
  16. documents[signers][party_id]
    • Required: true
    • Type: String
    • Values: ["Green Party", "Purple Party", "Red Party", "Blue Party", "Cyan Party", "Orange Party", "Pink Party", "Yellow Party", "Silver Party", "Gold Party"]
  17. documents[signers][signer_email]
    • Required: false
    • Type: String
  18. documents[signers][access_code]
    • Required: false
    • Type: String
    • Desc: Additional code used when authenticating via the eSign Portal. Must be 6 alphanumerical digits.
  19. documents[signers][signer_phone_number_country_code]
    • Required: false
    • Type: String
    • Values: ["AD", "AE", "AF", "AG", "AL", "AM", "AO", "AR", "AT", "AU", "AZ", "BA", "BB", "BD", "BE", "BF", "BG", "BH", "BI", "BJ", "BN", "BO", "BR", "BS", "BT", "BW", "BY", "BZ", "CA", "CD", "CF", "CG", "CH", "CL", "CM", "CN", "CO", "CR", "CU", "CV", "CY", "CZ", "DE", "DJ", "DK", "DM", "DO", "DZ", "EC", "EE", "EG", "ER", "ES", "ET", "FI", "FJ", "FM", "FR", "GA", "GB", "GD", "GE", "GH", "GM", "GN", "GQ", "GR", "GT", "GW", "GY", "HN", "HR", "HT", "HU", "ID", "IE", "IL", "IN", "IQ", "IR", "IS", "IT", "JM", "JO", "JP", "KE", "KG", "KH", "KI", "KM", "KN", "KP", "KR", "KW", "KZ", "LA", "LB", "LC", "LI", "LK", "LR", "LS", "LT", "LU", "LV", "LY", "MA", "MC", "MD", "ME", "MG", "MH", "ML", "MM", "MN", "MR", "MT", "MU", "MV", "MW", "MX", "MY", "MZ", "NA", "NE", "NG", "NI", "NL", "NO", "NP", "NR", "NZ", "OM", "PA", "PE", "PG", "PH", "PK", "PL", "PT", "PW", "PY", "QA", "RO", "RS", "RU", "RW", "SA", "SB", "SC", "SD", "SE", "SG", "SI", "SK", "SL", "SM", "SN", "SO", "SR", "SS", "ST", "SV", "SY", "SZ", "TD", "TG", "TH", "TJ", "TM", "TN", "TO", "TR", "TT", "TV", "TW", "TZ", "UA", "UG", "US", "UY", "UZ", "VA", "VC", "VE", "VN", "VU", "WS", "YE", "ZA", "ZM", "ZW"]
    • Desc: The two letter country code of the phone number (Ex. US, CA, MX).
  20. documents[signers][signer_phone_number]
    • Required: false
    • Type: String
    • Desc: The signatory's phone number excluding any country codes (Ex. 702-111-1123).
  21. documents[signers][fields]
    • Required: false
    • Type: Array
    • Desc: An array of eSign fields to prefill with values on the eSign document using the template fields tag values. The tag values are not unique and the same value can be used accross other parties and fields. See Platform Documentation Bulk CSV Send for more details.
  22. documents[signers][fields][tag_value]
    • Required: true
    • Type: String
    • Desc: The tag value of the field assigned through the eSign edit page user interface (Ex. address_field_1).
  23. documents[signers][fields][field_value]
    • Required: true
    • Type: String
    • Desc: The tag value of the field assigned through the eSign edit page user interface.


Example Payload:

 {     "template_uuid": "4K2T-YXNZ-UXQT",     "documents": [       {         "document_name": "Jack's NDA",         "expires_at": "12/12/2026",         "enforce_signing_order": "1",         "send_via_email": "1",         "email_audit_log": "0",         "reminder_interval": "7",         "send_as": "company",         "show_title_on_landing_page": "1",         "email_subject": null,         "email_body": null,         "external_id": "T-90AB99",         "signers": [           {             "signer_name": "Jack forst",             "party_id": "Green Party",             "signer_email": "jack@example.com",             "access_code": null,             "signer_phone_number_country_code": null,             "signer_phone_number": null           },           {             "signer_name": "John Smith",             "party_id": "Purple Party",             "signer_email": null,             "access_code": null,             "signer_phone_number_country_code": "US",             "signer_phone_number": "702-123-1234",             "fields": [               {                 "tag_value": "address_field_1",                 "field_value": "Abc Street"               }             ]           }         ]       }     ]   }

Example Response:

{ "successful": true }

Error Response From Resource Creation:

{ "successful": false, "errors": ["..."] }

Error Response From API:

{ "error": "API error explanation" }

GET /api/v1/esign/documents/search

Returns an active eSign document for the account by UUID or external_id.

Parameters:

  1. external_id
    • Required: false
    • Type: String
    • Min length: 1
    • Max length: 255
    • Desc: The external ID assigned to the created eSign document through the API.
  2. uuid
    • Required: false
    • Type: String
    • Desc: The UUID of the document found in the URL of the platform. (Ex. 4K2T-YXNZ-UXQT)

Example Payload:

{ "uuid": "N3WI-AGRD-B8S1" }

Example Response:

{   "successful": true,   "document": {     "name": "Payment Documents",     "enforce_signing_order": true,     "reminder_interval": 7,     "completed_at": null,     "declined_at": null,     "uuid": "N3WI-AGRD-B8S1",     "external_id": null,     "created_at": "2026-02-14T02:11:51+0000",      "signers": [        {          "name": "Mack Lanes",          "sequence": 1,          "email": null,          "phone_number": "702-123-1234",          "phone_number_country_code": "US",          "party_id": "Green Party",          "reminder_last_sent_at": "2026-02-14T05:43:01+0000",          "invite_first_sent_at": "2026-02-12405:43:01+0000",          "declined_at": null,          "downloaded_at": null,          "audit_log_downloaded_at": null,          "completed_at": "2026-02-14T05:53:01+0000"        },        {          "name": "John Smith",          "sequence": 2,          "email": "john@example.com",          "phone_number": null,          "phone_number_country_code": null,          "party_id": "Purple Party",          "reminder_last_sent_at": null,          "invite_first_sent_at": null,          "declined_at": null,          "downloaded_at": null,          "audit_log_downloaded_at": null,          "completed_at": null        }      ]   } }

Error Response From API:

{ "error": "API error explanation" }

Templates

GET /api/v1/esign/templates

Returns an array of active templates for the account.

  1. page_number
    • Required: false
    • Type: Integer
    • Default: 1
    • Desc: The paginated page number to view starting with the index of 1.
  2. page_length
    • Required: false
    • Type: Integer
    • Values: [10, 25, 50, 100]
    • Default: 10
    • Desc: How many results to display per page.

Example Payload:

 {     "successful": true,     "total_pages": 1,     "total_count": 3,     "page_number": 1,     "page_length": 10,     "templates": [       {         "name": "Residential Disclosure Guide",         "uuid": "ASZ0-I6Q7-KK6E",         "created_at": "2025-12-27T23:58:48+0000"       },       {         "name": "NDA",         "uuid": "GEVG-ZMOK-J1P8",         "created_at": "2025-11-08T00:14:04+0000"       },       {         "name": "Employment Onboarding Documents",         "uuid": "DPEQ-LTBP-SZ7B",         "created_at": "2025-11-22T18:00:33+0000"       }     ]   }

{ "page_number": 1, "page_length": 10 }

Example Response:

Error Response From API:

{ "error": "API error explanation" }

GET /api/v1/esign/templates/:template_uuid/fields

Returns an array of active fields on the provided template UUID for the account.

  1. template_uuid
    • Required: true
    • Type: String
    • Desc: The template UUID. (Ex. 4K2T-YXNZ-UXQT)
  2. page_number
    • Required: false
    • Type: Integer
    • Default: 1
    • Desc: The paginated page number to view starting with the index of 1.
  3. page_length
    • Required: false
    • Type: Integer
    • Values: [10, 25, 50, 100]
    • Default: 10
    • Desc: How many results to display per page.

Example Payload:

{ "page_number": 1, "page_length": 10 }

Example Response:

 {     "successful": true,     "total_pages": 1,     "total_count": 7,     "page_number": 1,     "page_length": 10,     "fields": [       {         "uuid": "bb5bcba0-025f-11f1-9812-191426ad75c3",         "party_id": "Purple Party",         "field_type": "text",         "tag_value": "city_1",         "created_at": "2026-02-14T06:56:21+0000"       },       {         "uuid": "ce356bf0-f666-11f0-a10e-055520e8d993",         "party_id": "Purple Party",         "field_type": "text",         "tag_value": "address_1",         "created_at": "2026-01-17T01:16:33+0000"       },       {         "uuid": "d0342220-f666-11f0-a10e-055520e8d993",         "party_id": "Purple Party",         "field_type": "number",         "tag_value": null,         "created_at": "2026-01-17T01:16:33+0000"       },       {         "uuid": "d1b43270-f666-11f0-a10e-055520e8d993",         "party_id": "Red Party",         "field_type": "signature",         "tag_value": null,         "created_at": "2026-01-17T01:16:33+0000"       },       {         "uuid": "5fbdc7d0-d523-11f0-86aa-0742f7b6c8b8",         "party_id": "Green Party",         "field_type": "initials",         "tag_value": null,         "created_at": "2025-12-13T17:20:37+0000"       },       {         "uuid": "e6197a80-ce8f-11f0-86ca-737a14d3ad33",         "party_id": "Green Party",         "field_type": "file",         "tag_value": null,         "created_at": "2025-12-13T08:30:01+0000"       },       {         "uuid": "e87fa510-ce8f-11f0-86ca-737a14d3ad33",         "party_id": "Green Party",         "field_type": "image",         "tag_value": null,         "created_at": "2025-12-13T08:30:01+0000"       }     ]   }

Error Response From API:

{ "error": "API error explanation" }