--- openapi: 3.0.1 info: title: SignWell Developer API description: API for creating, managing, and tracking electronic signature workflows. version: v1 termsOfService: https://www.signwell.com/terms/ contact: email: support@signwell.com tags: - name: Document description: Create, send, and manage documents for electronic signing. - name: Template description: Create and manage reusable document templates. - name: Bulk Send description: Send a document to multiple recipients in batch using templates. - name: Webhooks description: Subscribe to document lifecycle events via webhook callbacks. - name: API Application description: Manage API application settings and branding. - name: Me description: Retrieve account information for the authenticated API key. - name: Regional description: Access region-specific endpoints for data residency compliance. paths: "/api/v1/documents": get: summary: List Documents description: Returns a paginated list of documents for the authenticated account. tags: - Document security: - api_key: [] operationId: listDocuments x-internal: true parameters: - name: page in: query schema: "$ref": "#/components/schemas/Page" required: false - name: limit in: query schema: "$ref": "#/components/schemas/Limit" required: false responses: '200': description: successful content: application/json: example: documents: - id: a83ff091-11fc-4091-8111-6dd2ee8e3393 archived: false created_at: '2026-03-31T15:46:45Z' decline_message: embedded_edit_url: https://www.signwell.com/edit/document/cb858cfc-3bd0-41a8-9b29-abb1da693aac/ error_message: embedded_preview_url: language: en name: miscarriage-relationship/omnis.mp3 requester_email_address: 1_scary_terry@keeling-bahringer.example status: Created test_mode: false updated_at: '2026-03-31T15:46:45Z' allow_decline: true allow_reassign: true api_application_id: custom_requester_email: custom_requester_name: decline_redirect_url: embedded_signing: false expires_in: 30 metadata: {} redirect_url: reminders: true apply_signing_order: false message: "
Hey there,
Please review and complete this document. You can click on the document below to get started.
" subject: Please complete miscarriage-relationship/omnis.mp3 labels: [] fields: [] files: [] copied_contacts: [] recipients: [] checkbox_groups: [] - id: f9bce8ff-2f98-4959-92e4-c895a1367341 archived: false created_at: '2026-03-31T15:46:45Z' decline_message: embedded_edit_url: https://www.signwell.com/edit/document/302e3717-2a9d-4126-a5f1-b7143b21a018/ error_message: embedded_preview_url: language: en name: miscarriage-linger/et.mp4 requester_email_address: 1_scary_terry@keeling-bahringer.example status: Created test_mode: false updated_at: '2026-03-31T15:46:45Z' allow_decline: true allow_reassign: true api_application_id: custom_requester_email: custom_requester_name: decline_redirect_url: embedded_signing: false expires_in: 30 metadata: {} redirect_url: reminders: true apply_signing_order: false message: "Hey there,
Please review and complete this document. You can click on the document below to get started.
" subject: Please complete miscarriage-linger/et.mp4 labels: [] fields: [] files: [] copied_contacts: [] recipients: [] checkbox_groups: [] - id: 1b03215e-f3cc-446b-a9dc-293af294c988 archived: false created_at: '2026-03-31T15:46:45Z' decline_message: embedded_edit_url: https://www.signwell.com/edit/document/28e9b87a-88dd-4f08-a1a2-633649ccfa3c/ error_message: embedded_preview_url: language: en name: dictate_publish/error.avi requester_email_address: 1_scary_terry@keeling-bahringer.example status: Created test_mode: false updated_at: '2026-03-31T15:46:45Z' allow_decline: true allow_reassign: true api_application_id: custom_requester_email: custom_requester_name: decline_redirect_url: embedded_signing: false expires_in: 30 metadata: {} redirect_url: reminders: true apply_signing_order: false message: "Hey there,
Please review and complete this document. You can click on the document below to get started.
" subject: Please complete dictate_publish/error.avi labels: [] fields: [] files: [] copied_contacts: [] recipients: [] checkbox_groups: [] current_page: 1 next_page: previous_page: total_count: 3 total_pages: 1 schema: "$ref": "#/components/schemas/DocumentListResponse" '401': description: unauthorized content: application/json: example: message: Missing or invalid authorization key meta: error: api_key_unauthorized_error message: Not valid authorization token messages: - Not valid authorization token schema: "$ref": "#/components/schemas/ErrorResponse" '429': description: rate limit exceeded content: application/json: schema: "$ref": "#/components/schemas/RateLimitErrorResponse" post: summary: Create Document description: Creates and optionally sends a new document for signing. If `draft` is set to true the document will not be sent. tags: - Document security: - api_key: [] operationId: createDocument parameters: [] responses: '201': description: created content: application/json: example: id: 6a8b63de-1885-4ab8-bf0a-77ebd3686c00 archived: false created_at: '2026-03-31T15:46:47Z' decline_message: embedded_edit_url: https://www.signwell.com/edit/document/3560287f-49f5-423e-a37a-37cd7403c1c8/ error_message: embedded_preview_url: language: en name: Agreement requester_email_address: requester@domain.com status: Created test_mode: false updated_at: '2026-03-31T15:46:47Z' allow_decline: true allow_reassign: true api_application_id: custom_requester_email: requester@domain.com custom_requester_name: Requester decline_redirect_url: https://www.domain.com/decline_path/ embedded_signing: false expires_in: 365 metadata: key1: value1 key2: value2 redirect_url: https://www.domain.com/redirect_path/ reminders: true apply_signing_order: false message: Normal Body subject: Normal subject labels: - id: 7af3624f-fc72-4f69-bed6-de920ba4f72b name: My First Label - id: 00f4b0c6-c24b-4320-9ebf-0a3b068cfc05 name: My Second Label - id: bd7c048f-dc98-4a32-b84f-46e8a117839e name: My Third Label fields: - - api_id: DateField_1 height: '19.0' page: 1 required: true type: date value: 06/05/2021 width: '86.0' x: 230.0 "y": 60.0 date_format: DD/MM/YYYY formula: '' lock_sign_date: true recipient_id: recipient_id_1 - api_id: DateSigned_1 height: '19.0' page: 1 required: true type: autofill_date_signed value: width: '86.0' x: 260.0 "y": 80.0 recipient_id: recipient_id_1 - api_id: Company_1 height: '19.0' page: 1 required: true type: autofill_company value: Great Company width: '86.0' x: 260.0 "y": 80.0 recipient_id: recipient_id_1 - api_id: Email_1 height: '19.0' page: 1 required: true type: autofill_email value: recipient1@domain.com width: '86.0' x: 260.0 "y": 90.0 recipient_id: recipient_id_1 - api_id: Name_1 height: '19.0' page: 1 required: true type: autofill_name value: Recipient One width: '86.0' x: 260.0 "y": 80.0 recipient_id: recipient_id_1 - api_id: FirstName_1 height: '19.0' page: 1 required: true type: autofill_name value: Recipient width: '86.0' x: 260.0 "y": 80.0 recipient_id: recipient_id_1 - api_id: LastName_1 height: '19.0' page: 1 required: true type: autofill_name value: One width: '86.0' x: 260.0 "y": 80.0 recipient_id: recipient_id_1 - api_id: Phone_1 height: '19.0' page: 1 required: true type: autofill_phone value: '123456789' width: '86.0' x: 260.0 "y": 100.0 recipient_id: recipient_id_1 - api_id: Title_1 height: '19.0' page: 1 required: true type: autofill_title value: Important Title width: '86.0' x: 260.0 "y": 100.0 recipient_id: recipient_id_1 - - api_id: DateField_2 height: '2.0' page: 1 required: true type: date value: 05/06/2021 width: '1.0' x: 260.0 "y": 80.0 date_format: MM/DD/YYYY formula: '' lock_sign_date: false recipient_id: recipient_id_2 - api_id: Signature_1 height: '32.0' page: 2 required: true type: signature value: width: '112.0' x: 260.0 "y": 80.0 recipient_id: recipient_id_2 - api_id: Signature_2 height: '2.0' page: 1 required: true type: signature value: width: '1.0' x: 260.0 "y": 80.0 recipient_id: recipient_id_2 - api_id: CheckBox_1 height: '13.0' page: 1 required: true type: checkbox value: t width: '13.0' x: 260.0 "y": 80.0 name: recipient_id: recipient_id_2 - api_id: CheckBox_2 height: '2.0' page: 1 required: true type: checkbox value: t width: '1.0' x: 260.0 "y": 80.0 name: Checkbox name recipient_id: recipient_id_2 - api_id: Initials_1 height: '32.0' page: 2 required: true type: initials value: width: '44.0' x: 260.0 "y": 80.0 recipient_id: recipient_id_2 - api_id: Initials_2 height: '2.0' page: 1 required: true type: initials value: width: '1.0' x: 260.0 "y": 80.0 recipient_id: recipient_id_2 - api_id: TextField_1 height: '19.0' page: 1 required: true type: text value: '123456' width: '86.0' x: 260.0 "y": 80.0 fixed_width: true label: label validation: numbers recipient_id: recipient_id_2 - api_id: TextField_2 height: '2.0' page: 1 required: true type: text value: '123456' width: '1.0' x: 260.0 "y": 80.0 fixed_width: true label: label validation: numbers recipient_id: recipient_id_2 - api_id: TextField_3 height: '20.0' page: 1 required: true type: text value: '123456' width: '100.0' x: 260.0 "y": 80.0 fixed_width: true label: label validation: numbers recipient_id: recipient_id_2 - api_id: TextField_4 height: '20.0' page: 1 required: true type: text value: '123456' width: '100.0' x: 260.0 "y": 80.0 fixed_width: true label: label validation: numbers recipient_id: recipient_id_2 - api_id: Company_2 height: '19.0' page: 1 required: true type: autofill_company value: Great Company width: '86.0' x: 260.0 "y": 80.0 recipient_id: recipient_id_1 - api_id: Email_2 height: '19.0' page: 1 required: true type: autofill_email value: recipient1@domain.com width: '86.0' x: 260.0 "y": 90.0 recipient_id: recipient_id_1 - api_id: Name_2 height: '19.0' page: 1 required: true type: autofill_name value: Recipient One width: '86.0' x: 260.0 "y": 80.0 recipient_id: recipient_id_1 - api_id: FirstName_2 height: '19.0' page: 1 required: true type: autofill_name value: Recipient width: '86.0' x: 260.0 "y": 80.0 recipient_id: recipient_id_1 - api_id: LastName_2 height: '19.0' page: 1 required: true type: autofill_name value: One width: '86.0' x: 260.0 "y": 80.0 recipient_id: recipient_id_1 - api_id: Phone_2 height: '19.0' page: 1 required: true type: autofill_phone value: '123456789' width: '86.0' x: 260.0 "y": 100.0 recipient_id: recipient_id_1 - api_id: Title_2 height: '19.0' page: 1 required: true type: autofill_title value: Important Title width: '86.0' x: 260.0 "y": 100.0 recipient_id: recipient_id_1 files: - name: filename1.pdf pages_number: 0 - name: filename2.pdf pages_number: 0 copied_contacts: - name: CC one email: cc1@domain.com recipients: - email: recipient1@domain.com id: recipient_id_1 message: This is a message name: Recipient One passcode: '123' send_email: false send_email_delay: 0 status: created subject: Hi, please sign this contract signing_order: 1 signing_url: https://www.signwell.com/docs/d549fd60a0/ bounced: bounced_details: attachment_requests: - name: normal name required: true url: https://www.signwell.com/document_attachments/boe984aG7RUlK6YP2jZrInX6ywR/?access=2dd579d0-5e1d-4fd5-abd4-ebe5a228284d - email: recipient2@domain.com id: recipient_id_2 message: name: Recipient 2 passcode: send_email: false send_email_delay: 0 status: created subject: signing_order: 2 signing_url: https://www.signwell.com/docs/bf45f2dad5/ bounced: bounced_details: attachment_requests: - name: Driver License required: false url: https://www.signwell.com/document_attachments/LgbPkXRrZDTdzzNRGLkXSplYMMJ/?access=2dd579d0-5e1d-4fd5-abd4-ebe5a228284d checkbox_groups: - id: 6f69b18a-5fd7-4d74-8829-e7cc707a34f3 group_name: Group 1 recipient_id: checkbox_ids: - CheckBox_1 - CheckBox_2 validation: minimum required: true min_value: 1 schema: "$ref": "#/components/schemas/DocumentResponse" '400': description: bad request content: application/json: example: errors: message: The request contains invalid key values. invalid_keys: - name schema: "$ref": "#/components/schemas/ValidationErrorResponse" '422': description: unprocessable entity content: application/json: example: errors: custom_requester_email: - is invalid custom_requester_name: - is too long (maximum is 100 characters) decline_redirect_url: - is not a valid URL redirect_url: - is not a valid URL expires_in: - must be less than or equal to 365 metadata: - The key/value pairs must not exceed 50 - 'Check the following keys: [qgtxtpsnyxjwzvbzhnmrjziscxsmgcugpqanuygve], length needs to be less than 40 characters' - 'Check the value of the following keys: [ke50], length needs to be less than 500 characters and must be a string' api_application_id: - The provided API application id is invalid subject: - is too long (maximum is 255 characters) message: - is too long (maximum is 4000 characters) recipients: duplicated_ids: 'These ids are duplicated: recipient_id_1.' duplicated_emails: 'These emails are duplicated: recipient1domain.com.' recipient_1: name: - is too long (maximum is 255 characters) email: - format is invalid. recipient_2: email: - format is invalid. copied_contacts: copied_contact_1: name: - is too long (maximum is 255 characters) email: - format is invalid. copied_contact_2: email: - format is invalid. - is already a recipient attachment_requests: invalid_ids: 'These recipient ids are not present in the recipients array: [recipient_id_3]' fields: duplicated_api_ids: 'These api ids are duplicated: CheckBox_2.' invalid_ids: 'These recipient ids are not present in the recipients array: [recipient_id_2, recipient_id_3]' file_1: field_1: date_format: - Not allowed for text. lock_sign_date: - Not allowed for text. file_2: field_1: date_format: - Not allowed for checkbox. fixed_width: - Not allowed for checkbox. validation: - Not allowed for checkbox. label: - Not allowed for checkbox. lock_sign_date: - Not allowed for checkbox. field_2: invalid_date_value: DateField value must be in Iso8601 format. fixed_width: - Not allowed for date. validation: - Not allowed for date. label: - Not allowed for date. date_format: - 'Allowed formats for date fields are: MM/DD/YYYY | DD/MM/YYYY | YYYY/MM/DD | Month DD, YYYY | MM/DD/YYYY hh:mm:ss a' field_3: date_format: - Not allowed for initials. fixed_width: - Not allowed for initials. validation: - Not allowed for initials. label: - Not allowed for initials. lock_sign_date: - Not allowed for initials. field_4: date_format: - Not allowed for signature. fixed_width: - Not allowed for signature. validation: - Not allowed for signature. label: - Not allowed for signature. lock_sign_date: - Not allowed for signature. checkbox_groups: min_value_negative: The min value must be greater than or equal to 0 in the checkbox group Group 1 files: file_1: file_data: - At least one of file_url or file_base64 should be present file_2: file_data: - Only one of file_url or file_base64 should be present, not both file_3: file_url: - is not a valid URL file_4: file_base64: - 'the file type is unsupported, we support the following formats: application/msword, application/pdf, application/octet-stream, application/x-ole-storage, application/vnd.openxmlformats-officedocument.wordprocessingml.document, application/vnd.ms-powerpoint, application/vnd.openxmlformats-officedocument.presentationml.presentation, application/vnd.ms-excel, application/vnd.openxmlformats-officedocument.spreadsheetml.sheet, application/x-iwork-keynote-sffkey, application/x-iwork-numbers-sffnumbers, application/x-iwork-pages-sffpages, image/jpeg, image/png, image/tiff, image/webp, text/html' file_5: name: - The file extension is invalid. file_6: name: - can't be blank schema: "$ref": "#/components/schemas/ValidationErrorResponse" '429': description: rate limit exceeded content: application/json: schema: "$ref": "#/components/schemas/RateLimitErrorResponse" requestBody: content: application/json: schema: "$ref": "#/components/schemas/DocumentRequest" required: true "/api/v1/documents/{id}": get: summary: Get Document description: Returns a document and all associated document data. Supply the unique document ID from either a document creation request or Document page URL. tags: - Document security: - api_key: [] operationId: getDocument parameters: - name: id in: path schema: "$ref": "#/components/schemas/DocumentId" required: true responses: '200': description: successful content: application/json: example: id: 2707ac1d-5dd3-4d95-8ae9-f0ac55f51203 archived: false created_at: '2026-03-31T15:46:45Z' decline_message: embedded_edit_url: https://www.signwell.com/edit/document/bf0ff8a4-50ec-42d7-8167-72fb404a5276/ error_message: embedded_preview_url: language: en name: diagram_arena/architecto.mp3 requester_email_address: jerry.smith.2@yundt-weber.test status: Created test_mode: false updated_at: '2026-03-31T15:46:45Z' allow_decline: false allow_reassign: true api_application_id: custom_requester_email: rosalia_fisher@lehner.test custom_requester_name: Bendu decline_redirect_url: http://bosco.example/shani embedded_signing: false expires_in: 10 metadata: ut: quam itaque: cumque redirect_url: http://bogan.example/eldora.kiehn reminders: false apply_signing_order: false message: "Hey there,
Please review and complete this document. You can click on the document below to get started.
" subject: Please complete diagram_arena/architecto.mp3 labels: - id: 915b493e-8ba3-44aa-9e8b-ceb4044ac294 name: Frances Goodwin - id: 9acee41c-ee12-452d-bf40-f6645ee4b6ce name: Gov. Roy Kohler fields: - - api_id: CheckBox_2 height: '13.0' page: 1 required: true type: checkbox value: width: '13.0' x: 1.1 "y": 1.1 name: recipient_id: signing_elements_group_id: 6cd1fb22-417c-48e9-8674-d95c9613ff73 - api_id: CheckBox_3 height: '13.0' page: 1 required: true type: checkbox value: width: '13.0' x: 1.1 "y": 1.1 name: recipient_id: - api_id: Signature_1 height: '32.0' page: 1 required: true type: signature value: width: '112.0' x: 1.1 "y": 1.1 recipient_id: e052eeae-0706-4dd9-8ec2-68a918290223 files: - name: velit.numbers pages_number: 1 copied_contacts: - name: Jon Auer email: david@cummings-dicki.example recipients: - email: kimbery_kreiger@hoeger-littel.example id: e052eeae-0706-4dd9-8ec2-68a918290223 message: name: Rodolfo Daniel passcode: send_email: send_email_delay: status: created subject: signing_order: 1 signing_url: https://www.signwell.com/docs/05791040ca/ bounced: bounced_details: attachment_requests: - name: introduction_premium/vitae.html required: true url: https://www.signwell.com/document_attachments/n4dXkq0XLoioY3K7Z9k4SX1ezWd/?access=3550e3ab-f2da-4193-897f-cfba53272548 - email: ira@metz-dare.test id: 34e316a6-0f62-4751-81fe-145afa405f34 message: name: Laurette Rohan passcode: send_email: send_email_delay: status: created subject: signing_order: 2 signing_url: https://www.signwell.com/docs/2eb80d8fb8/ bounced: bounced_details: attachment_requests: [] checkbox_groups: - id: 6cd1fb22-417c-48e9-8674-d95c9613ff73 group_name: recipient_id: checkbox_ids: - CheckBox_2 validation: required: false schema: "$ref": "#/components/schemas/DocumentResponse" '404': description: not_found content: application/json: example: message: Not found meta: error: record_not_found message: Couldn't find the document requested messages: - Couldn't find the document requested schema: "$ref": "#/components/schemas/ErrorResponse" '429': description: rate limit exceeded content: application/json: schema: "$ref": "#/components/schemas/RateLimitErrorResponse" delete: summary: Delete Document description: Deletes a document. Deleting a document will also cancel document signing (if in progress). Supply the unique document ID from either a Create Document request or document page URL. tags: - Document security: - api_key: [] operationId: deleteDocument parameters: - name: id in: path schema: "$ref": "#/components/schemas/DocumentId" required: true responses: '204': description: no content '404': description: not found content: application/json: example: message: Not found meta: error: record_not_found message: Couldn't find the document requested messages: - Couldn't find the document requested schema: "$ref": "#/components/schemas/ErrorResponse" '429': description: rate limit exceeded content: application/json: schema: "$ref": "#/components/schemas/RateLimitErrorResponse" "/api/v1/document_templates/documents": post: summary: Create Document from Template description: Creates and optionally sends a new document for signing. If `draft` is set to true the document will not be sent. tags: - Document security: - api_key: [] operationId: createDocumentFromTemplate parameters: [] responses: '201': description: created content: application/json: example: id: d30a5382-698d-4dfc-a5ac-fe89fbd74689 archived: false created_at: '2026-03-31T15:46:49Z' decline_message: embedded_edit_url: https://www.signwell.com/edit/document/9cc6abb4-874c-48c3-920f-499c12b8d56a/ error_message: embedded_preview_url: language: en name: Agreement requester_email_address: requester@domain.com status: Created test_mode: false updated_at: '2026-03-31T15:46:49Z' template_ids: - f3374520-a554-454c-ba90-d3d95f51212a - b44029f8-87a7-4f05-85d5-f343b0e5dbc1 allow_decline: true allow_reassign: true api_application_id: custom_requester_email: requester@domain.com custom_requester_name: Requester decline_redirect_url: https://www.domain.com/decline_path/ embedded_signing: false expires_in: 365 metadata: key1: value1 key2: value2 redirect_url: https://www.domain.com/redirect_path/ reminders: true apply_signing_order: false message: Normal Body subject: Normal subject labels: [] fields: - - api_id: Signature_1 height: '19.0' page: 1 required: true type: signature value: '' width: '86.0' x: 1.1 "y": 1.1 recipient_id: document_sender - api_id: TextField_1 height: '19.0' page: 1 required: true type: text value: a_valid_email@domain.com width: '86.0' x: 1.1 "y": 1.1 fixed_width: false label: '' validation: no_text_validation recipient_id: recipient_1 - api_id: DateField_1 height: '19.0' page: 1 required: true type: date value: 05/06/2021 width: '86.0' x: 1.1 "y": 1.1 date_format: MM/DD/YYYY formula: '' lock_sign_date: false recipient_id: recipient_1 - api_id: DateField_2 height: '19.0' page: 1 required: true type: date value: width: '86.0' x: 1.1 "y": 1.1 date_format: MM/DD/YYYY formula: '' lock_sign_date: true recipient_id: recipient_1 - api_id: CheckBox_1 height: '19.0' page: 1 required: true type: checkbox value: t width: '86.0' x: 1.1 "y": 1.1 name: recipient_id: recipient_1 - - api_id: Initials_1 height: '19.0' page: 1 required: true type: initials value: '' width: '86.0' x: 1.1 "y": 1.1 recipient_id: document_sender - - api_id: DateField_1_1 height: '19.0' page: 1 required: true type: date value: width: '86.0' x: 230.0 "y": 60.0 date_format: DD/MM/YYYY formula: '' lock_sign_date: true recipient_id: recipient_1 - api_id: DateField_2_1 height: '19.0' page: 1 required: true type: date value: 05/06/2021 width: '86.0' x: 230.0 "y": 120.0 date_format: MM/DD/YYYY formula: '' lock_sign_date: false recipient_id: recipient_1 - - api_id: Signature_1_1 height: '32.0' page: 2 required: true type: signature value: width: '112.0' x: 260.0 "y": 80.0 recipient_id: recipient_2 - api_id: CheckBox_3 height: '13.0' page: 1 required: true type: checkbox value: t width: '13.0' x: 260.0 "y": 80.0 name: recipient_id: recipient_2 - api_id: Initials_4 height: '32.0' page: 2 required: true type: initials value: width: '44.0' x: 260.0 "y": 80.0 recipient_id: recipient_2 - api_id: TextField_5 height: '19.0' page: 1 required: true type: text value: '123456' width: '86.0' x: 260.0 "y": 80.0 fixed_width: true label: label validation: numbers recipient_id: recipient_2 files: - name: inventore.wav pages_number: 2 - name: consequatur.odp pages_number: 2 - name: filename1.pdf pages_number: 0 - name: filename2.pdf pages_number: 0 copied_contacts: - name: CC one email: cc1@domain.com - name: CC 2 email: cc2@domain.com recipients: - email: document_sender@domain.com id: document_sender message: name: Recipient 0 passcode: '123' send_email: false send_email_delay: 0 status: created subject: signing_order: 1 signing_url: https://www.signwell.com/docs/b073120ed1/ bounced: bounced_details: placeholder_name: Document Sender attachment_requests: [] - email: recipient_1@domain.com id: recipient_1 message: name: Recipient 1 passcode: send_email: false send_email_delay: 0 status: created subject: signing_order: 2 signing_url: https://www.signwell.com/docs/4cd4755817/ bounced: bounced_details: placeholder_name: Placeholder 1 attachment_requests: - name: normal name required: true url: https://www.signwell.com/document_attachments/pW6aNG7REwIRRE3BGPpdFNwQDBY/?access=225a83c4-1f7f-4a6e-91e2-05cca38ade3e - email: recipient_2@domain.com id: recipient_2 message: name: Recipient 2 passcode: send_email: false send_email_delay: 0 status: created subject: signing_order: 3 signing_url: https://www.signwell.com/docs/558335fef6/ bounced: bounced_details: placeholder_name: Placeholder 2 attachment_requests: - name: Driver License required: false url: https://www.signwell.com/document_attachments/bYYjEqk62ocW3BDrlYJrCbYb45K/?access=225a83c4-1f7f-4a6e-91e2-05cca38ade3e checkbox_groups: [] schema: "$ref": "#/components/schemas/DocumentFromTemplateResponse" '400': description: bad request content: application/json: example: errors: message: The request contains invalid key values. invalid_keys: - name schema: "$ref": "#/components/schemas/ValidationErrorResponse" '422': description: unprocessable entity content: application/json: example: errors: template_id_or_ids: At least one of template_id or template_ids should be present. custom_requester_email: - is invalid custom_requester_name: - is too long (maximum is 100 characters) decline_redirect_url: - is not a valid URL redirect_url: - is not a valid URL expires_in: - must be less than or equal to 365 metadata: - The key/value pairs must not exceed 50 - 'Check the following keys: [qgtxtpsnyxjwzvbzhnmrjziscxsmgcugpqanuygve], length needs to be less than 40 characters' - 'Check the value of the following keys: [ke50], length needs to be less than 500 characters and must be a string' api_application_id: - The provided API application id is invalid subject: - is too long (maximum is 255 characters) message: - is too long (maximum is 4000 characters) recipients: duplicated_ids: 'These ids are duplicated: recipient_id_1.' duplicated_emails: 'These emails are duplicated: recipient1domain.com.' recipient_1: name: - is too long (maximum is 255 characters) email: - format is invalid. recipient_2: email: - format is invalid. copied_contacts: copied_contact_1: name: - is too long (maximum is 255 characters) email: - format is invalid. copied_contact_2: email: - format is invalid. - is already a recipient attachment_requests: invalid_ids: 'These recipient ids are not present in the recipients array: [recipient_id_3]' fields: duplicated_api_ids: 'These api ids are duplicated: CheckBox_2.' invalid_ids: 'These recipient ids are not present in the recipients array: [recipient_id_2, recipient_id_3]' file_1: field_1: date_format: - Not allowed for text. lock_sign_date: - Not allowed for text. file_2: field_1: date_format: - Not allowed for checkbox. fixed_width: - Not allowed for checkbox. validation: - Not allowed for checkbox. label: - Not allowed for checkbox. lock_sign_date: - Not allowed for checkbox. field_2: invalid_date_value: DateField value must be in Iso8601 format. fixed_width: - Not allowed for date. validation: - Not allowed for date. label: - Not allowed for date. date_format: - 'Allowed formats for date fields are: MM/DD/YYYY | DD/MM/YYYY | YYYY/MM/DD | Month DD, YYYY | MM/DD/YYYY hh:mm:ss a' field_3: date_format: - Not allowed for initials. fixed_width: - Not allowed for initials. validation: - Not allowed for initials. label: - Not allowed for initials. lock_sign_date: - Not allowed for initials. field_4: date_format: - Not allowed for signature. fixed_width: - Not allowed for signature. validation: - Not allowed for signature. label: - Not allowed for signature. lock_sign_date: - Not allowed for signature. checkbox_groups: min_value_negative: The min value must be greater than or equal to 0 in the checkbox group Group 1 files: file_1: file_data: - At least one of file_url or file_base64 should be present file_2: file_data: - Only one of file_url or file_base64 should be present, not both file_3: file_url: - is not a valid URL file_4: file_base64: - 'the file type is unsupported, we support the following formats: application/msword, application/pdf, application/octet-stream, application/x-ole-storage, application/vnd.openxmlformats-officedocument.wordprocessingml.document, application/vnd.ms-powerpoint, application/vnd.openxmlformats-officedocument.presentationml.presentation, application/vnd.ms-excel, application/vnd.openxmlformats-officedocument.spreadsheetml.sheet, application/x-iwork-keynote-sffkey, application/x-iwork-numbers-sffnumbers, application/x-iwork-pages-sffpages, image/jpeg, image/png, image/tiff, image/webp, text/html' file_5: name: - The file extension is invalid. file_6: name: - can't be blank schema: "$ref": "#/components/schemas/ValidationErrorResponse" '429': description: rate limit exceeded content: application/json: schema: "$ref": "#/components/schemas/RateLimitErrorResponse" requestBody: content: application/json: schema: "$ref": "#/components/schemas/DocumentFromTemplateRequest" required: true "/api/v1/documents/{id}/send": post: summary: Update and Send Document description: Updates a draft document and sends it to be signed by recipients. tags: - Document security: - api_key: [] operationId: sendDocument parameters: - name: id in: path schema: "$ref": "#/components/schemas/DocumentId" required: true responses: '201': description: created content: application/json: example: id: deca430d-99eb-4f40-8042-a6b41624f19e archived: false copied_contacts: - email: alleen@smitham.example name: Joye Hills created_at: '2026-03-31T15:46:51Z' custom_requester_email: crystle.ohara@konopelski-boyer.test custom_requester_name: Jango Fett decline_redirect_url: https://www.domain.com/decline_path/ embedded_edit_url: https://www.signwell.com/edit/document/c030b003-efc9-4462-a30f-333e4fb416c7/ embedded_preview_url: error_message: fields: - - api_id: CheckBox_8 height: '13.0' required: true type: checkbox value: width: '13.0' x: 1.1 "y": 1.1 name: page: 1 recipient_id: - api_id: CheckBox_9 height: '13.0' required: true type: checkbox value: width: '13.0' x: 1.1 "y": 1.1 name: page: 1 recipient_id: - api_id: Signature_7 height: '32.0' required: true type: signature value: width: '112.0' x: 1.1 "y": 1.1 page: 1 recipient_id: b9bc58e7-a95c-4137-933c-7968aa9122cd labels: - id: 7388da56-d911-4b3a-b809-3b4a56e0ee5f name: My First Label - id: c639eb49-f658-486b-9dbc-dd2ab79a3dda name: My Second Label - id: 46557ebc-6d03-4a8e-a1a8-02b44e178c13 name: My Third Label language: en metadata: key1: value1 key2: value2 name: Agreement recipients: - id: b9bc58e7-a95c-4137-933c-7968aa9122cd attachment_requests: [] email: enrique.kohler@price.test message: name: Clarinda Block CPA passcode: send_email_delay: signing_order: 7 status: draft subject: bounced: bounced_details: send_email: signing_url: https://www.signwell.com/docs/e9be3e29e7/ - id: 30ca2873-cf42-4fba-abaa-2aaaaac8e532 attachment_requests: [] email: trent_pouros@pfeffer-runte.example message: name: Shandi Kuphal passcode: send_email_delay: signing_order: 8 status: draft subject: bounced: bounced_details: send_email: signing_url: https://www.signwell.com/docs/c3fe92b5c2/ subject: Normal subject test_mode: false updated_at: '2026-03-31T15:46:51Z' decline_message: api_application_id: allow_decline: true allow_reassign: true apply_signing_order: false embedded_signing: false expires_in: 365 message: Normal Body reminders: true requester_email_address: poopybutthole_15_mr@runolfsson-nienow.example redirect_url: https://www.domain.com/redirect_path/ status: Draft files: - name: consectetur.jpeg pages_number: 1 schema: "$ref": "#/components/schemas/DocumentResponse" '422': description: unprocessable entity content: application/json: example: errors: decline_redirect_url: - is not a valid URL redirect_url: - is not a valid URL expires_in: - must be less than or equal to 365 metadata: - The key/value pairs must not exceed 50 - 'Check the following keys: [qgtxtpsnyxjwzvbzhnmrjziscxsmgcugpqanuygve], length needs to be less than 40 characters' - 'Check the value of the following keys: [ke50], length needs to be less than 500 characters and must be a string' subject: - is too long (maximum is 255 characters) message: - is too long (maximum is 4000 characters) schema: "$ref": "#/components/schemas/ValidationErrorResponse" '429': description: rate limit exceeded content: application/json: schema: "$ref": "#/components/schemas/RateLimitErrorResponse" requestBody: content: application/json: schema: "$ref": "#/components/schemas/UpdateDocumentAndSendRequest" required: true "/api/v1/documents/{id}/recipients": patch: summary: Update Recipients description: 'Updates one or more recipients on a document that has already been sent. Only recipients who have not started signing may be updated. Recipient IDs must be retrieved from the Get Document response. Allowed document statuses: sent, viewed, pending, bounced. For non-embedded documents, updated recipients will receive a new notification email. For embedded signing documents, email behavior follows each recipient''s send_email setting.' tags: - Document security: - api_key: [] operationId: updateRecipients parameters: - name: id in: path schema: "$ref": "#/components/schemas/DocumentId" required: true responses: '200': description: successful content: application/json: example: id: 8e9b4d47-0648-44a0-a65c-20bba1a1f96b archived: false created_at: '2026-03-31T15:46:52Z' decline_message: embedded_edit_url: error_message: embedded_preview_url: https://www.signwell.com/preview/document/8e9b4d47-0648-44a0-a65c-20bba1a1f96b/ language: en name: cutting-relationship/cumque.odp requester_email_address: abradolf_lincler_21@rohan.example status: Sent test_mode: false updated_at: '2026-03-31T15:46:53Z' allow_decline: true allow_reassign: true api_application_id: custom_requester_email: hugh@larkin.test custom_requester_name: Yoda decline_redirect_url: http://tremblay.test/lorenzo_predovic embedded_signing: false expires_in: 10 metadata: velit: occaecati pariatur: ut redirect_url: http://beier-schimmel.example/cornell.reichert reminders: false apply_signing_order: false message: "Hey there,
Please review and complete this document. You can click on the document below to get started.
" subject: Please complete cutting-relationship/cumque.odp labels: - id: f50f20b5-f669-4275-b6dc-59f1fd5e70f5 name: Curtis Cummerata - id: 22a174fa-d60d-4ab8-ad87-f1b1d0c9e59c name: Fr. Ike Grant fields: - - api_id: CheckBox_14 height: '13.0' page: 1 required: true type: checkbox value: width: '13.0' x: 1.1 "y": 1.1 name: recipient_id: signing_elements_group_id: 2afe4442-28ce-4297-87fd-b4cc84dcb12e - api_id: CheckBox_15 height: '13.0' page: 1 required: true type: checkbox value: width: '13.0' x: 1.1 "y": 1.1 name: recipient_id: - api_id: Signature_13 height: '32.0' page: 1 required: true type: signature value: width: '112.0' x: 1.1 "y": 1.1 recipient_id: cb5cdf15-ba7e-439b-8805-1a2a93f124d4 files: - name: et.mov pages_number: 1 copied_contacts: - name: Palmira Johnson email: gerry_tremblay@casper-kuhic.example recipients: - email: updated@example.com id: cb5cdf15-ba7e-439b-8805-1a2a93f124d4 message: name: Updated Name passcode: send_email: send_email_delay: status: subject: signing_order: 13 signing_url: https://www.signwell.com/docs/4df237952f/ bounced: bounced_details: attachment_requests: - name: stuff_exhibition/ea.jpeg required: true url: https://www.signwell.com/document_attachments/X1zKblna5Gf2QRnLKw1ohRBWZ71/?access=12f2922b-6ad7-47c3-9604-0fedf58ddb3b - email: kacey.kautzer@kutch.test id: d4aa0b84-f4d2-46d8-a6ac-9e42d9786789 message: name: Exie Vandervort passcode: send_email: send_email_delay: status: subject: signing_order: 14 signing_url: https://www.signwell.com/docs/42f6910bae/ bounced: bounced_details: attachment_requests: [] checkbox_groups: - id: 2afe4442-28ce-4297-87fd-b4cc84dcb12e group_name: recipient_id: checkbox_ids: - CheckBox_14 validation: required: false schema: "$ref": "#/components/schemas/DocumentResponse" '409': description: conflict - document not in eligible state content: application/json: example: errors: base: - Document in 'completed' status cannot have recipients managed. Only sent, viewed, pending, or bounced documents are eligible. '400': description: bad request - invalid structure content: application/json: example: errors: invalid_keys: - recipients base: - The request contains invalid key values. '422': description: unprocessable entity - business rule violation content: application/json: example: errors: recipients[59cc95d7-2c7e-44b7-8767-f9b0904e74ce]: - Amb. Mitchel Gutkowski (fredric@kihn.test) has started signing so you can't edit or replace them now. You can Update & Resend if you need to change recipients who already started signing. '404': description: not found content: application/json: example: message: Not found meta: error: record_not_found message: Couldn't find the document requested messages: - Couldn't find the document requested '429': description: rate limit exceeded content: application/json: schema: "$ref": "#/components/schemas/RateLimitErrorResponse" requestBody: content: application/json: schema: "$ref": "#/components/schemas/update_recipients_request" required: true "/api/v1/documents/{id}/remind": post: summary: Send Reminder description: Sends a reminder email to recipients that have not signed yet. tags: - Document security: - api_key: [] operationId: sendReminder parameters: - name: id in: path schema: "$ref": "#/components/schemas/DocumentId" required: true responses: '201': description: created content: application/json: example: id: 55c90c31-54e1-48c0-8b01-a57324764f50 archived: false created_at: '2026-03-31T15:46:56Z' decline_message: embedded_edit_url: error_message: embedded_preview_url: https://www.signwell.com/preview/document/55c90c31-54e1-48c0-8b01-a57324764f50/ language: en name: cutting_confuse/et.avi requester_email_address: 36.arthricia@damore.test status: Sent test_mode: false updated_at: '2026-03-31T15:46:57Z' allow_decline: true allow_reassign: true api_application_id: custom_requester_email: bryce@bayer.example custom_requester_name: Wedge Antilles decline_redirect_url: http://orn-grady.test/eryn embedded_signing: false expires_in: 10 metadata: est: quae iure: perspiciatis redirect_url: http://corkery.example/jared.reinger reminders: true apply_signing_order: false message: "Hey there,
Please review and complete this document. You can click on the document below to get started.
" subject: Please complete cutting_confuse/et.avi labels: - id: 2aab0d33-2ac9-4687-9b13-fcddb10f68ea name: Chance Braun - id: 20bdd21c-377c-40a2-a546-2902da2e2ac2 name: The Hon. Rico Koch fields: - - api_id: CheckBox_29 height: '13.0' page: 1 required: true type: checkbox value: width: '13.0' x: 1.1 "y": 1.1 name: recipient_id: signing_elements_group_id: a2c21918-23b3-49aa-b387-be1a7fe6d0ba - api_id: CheckBox_30 height: '13.0' page: 1 required: true type: checkbox value: width: '13.0' x: 1.1 "y": 1.1 name: recipient_id: - api_id: Signature_28 height: '32.0' page: 1 required: true type: signature value: width: '112.0' x: 1.1 "y": 1.1 recipient_id: c93c0059-57a2-4db3-9bc7-142ab408848a files: - name: magni.png pages_number: 1 copied_contacts: - name: Gov. Tanner Volkman email: jonas_towne@cronin.test recipients: - email: lowell@yost.example id: c93c0059-57a2-4db3-9bc7-142ab408848a message: name: Lupe Padberg passcode: send_email: send_email_delay: status: subject: signing_order: 28 signing_url: https://www.signwell.com/docs/3bf8835bc7/ bounced: bounced_details: attachment_requests: - name: doctor_agree/perferendis.mov required: true url: https://www.signwell.com/document_attachments/8R3LMelr37iBjDYnq3onF88KaKg/?access=d0a14244-884b-4a00-b629-f11faad3e816 - email: elwanda@wuckert-wolf.test id: 912aebe7-868a-414f-b553-9182641c4686 message: name: Pat Bergnaum Sr. passcode: send_email: send_email_delay: status: subject: signing_order: 29 signing_url: https://www.signwell.com/docs/a7bc69c79e/ bounced: bounced_details: attachment_requests: [] checkbox_groups: - id: a2c21918-23b3-49aa-b387-be1a7fe6d0ba group_name: recipient_id: checkbox_ids: - CheckBox_29 validation: required: false '422': description: unprocessable entity content: application/json: example: errors: document: The document is in a status that cannot be reminded schema: "$ref": "#/components/schemas/ValidationErrorResponse" '404': description: not found content: application/json: example: message: Not found meta: error: record_not_found message: Couldn't find the document requested messages: - Couldn't find the document requested schema: "$ref": "#/components/schemas/ErrorResponse" '429': description: rate limit exceeded content: application/json: schema: "$ref": "#/components/schemas/RateLimitErrorResponse" requestBody: content: application/json: schema: "$ref": "#/components/schemas/SendReminderRequest" required: true "/api/v1/documents/{id}/completed_pdf": get: summary: Completed PDF description: Gets a completed document PDF or ZIP file. Supply the unique document ID from either a document creation request or document page URL. tags: - Document security: - api_key: [] operationId: getCompletedPdf parameters: - name: id in: path schema: "$ref": "#/components/schemas/CompletedDocumentId" required: true - name: url_only in: query schema: "$ref": "#/components/schemas/UrlOnly" - name: audit_page in: query schema: "$ref": "#/components/schemas/IncludeAuditPage" - name: file_format in: query schema: "$ref": "#/components/schemas/FileFormat" responses: '200': description: successful, returns the final completed PDF, or if url_only is set to true, a JSON object is returned. When url_only=false (default), the response is the raw PDF or ZIP binary data. content: application/json: example: file_url: https://www.signwell.com/signed/9rrKOB86EBc7ZMwwdYN8Ha63Wrl.pdf?audit_page=true schema: "$ref": "#/components/schemas/CompletedPdfResponse" '404': description: not_found content: application/json: example: message: Not found meta: error: record_not_found message: Couldn't find the document requested messages: - Couldn't find the document requested schema: "$ref": "#/components/schemas/ErrorResponse" '429': description: rate limit exceeded content: application/json: schema: "$ref": "#/components/schemas/RateLimitErrorResponse" "/api/v1/document_templates": get: summary: List Templates description: Returns a paginated list of templates for the authenticated account. tags: - Template security: - api_key: [] operationId: listTemplates x-internal: true parameters: - name: page in: query schema: "$ref": "#/components/schemas/Page" required: false - name: limit in: query schema: "$ref": "#/components/schemas/Limit" required: false responses: '200': description: successful content: application/json: example: templates: - id: bb3c3fba-116f-4b76-8ad8-5469c435f990 archived: false created_at: '2026-03-31T15:47:00Z' embedded_edit_url: https://www.signwell.com/edit/template/33f4447c-bdb2-4d3e-87b1-f57126549715/ language: en name: miscarriage_branch/pariatur.tiff requester_email_address: 53.tiny.rick@towne.example status: Created template_link: https://www.signwell.com/new_doc/y8cjPd25fuSHMBvi/ updated_at: '2026-03-31T15:47:00Z' allow_decline: allow_reassign: api_application_id: decline_redirect_url: expires_in: redirect_url: reminders: metadata: fields: [] files: [] copied_placeholders: [] placeholders: [] checkbox_groups: [] - id: 959e6f6a-8a95-47b1-9e86-eb8b1da5a8aa archived: false created_at: '2026-03-31T15:47:00Z' embedded_edit_url: https://www.signwell.com/edit/template/d5f6572b-bcae-4c48-b187-540e577fb95a/ language: en name: story_patience/eos.jpg requester_email_address: 53.tiny.rick@towne.example status: Created template_link: https://www.signwell.com/new_doc/GfCKlbdBrLhLsHtX/ updated_at: '2026-03-31T15:47:00Z' allow_decline: allow_reassign: api_application_id: decline_redirect_url: expires_in: redirect_url: reminders: metadata: fields: [] files: [] copied_placeholders: [] placeholders: [] checkbox_groups: [] - id: 2038bbde-3423-43b1-991b-89e93a679511 archived: false created_at: '2026-03-31T15:47:00Z' embedded_edit_url: https://www.signwell.com/edit/template/e15e7107-498a-49c7-a5b2-4b0815744da1/ language: en name: book-notebook/iure.mov requester_email_address: 53.tiny.rick@towne.example status: Created template_link: https://www.signwell.com/new_doc/Qz2nb9ZeTqpsoBId/ updated_at: '2026-03-31T15:47:00Z' allow_decline: allow_reassign: api_application_id: decline_redirect_url: expires_in: redirect_url: reminders: metadata: fields: [] files: [] copied_placeholders: [] placeholders: [] checkbox_groups: [] current_page: 1 next_page: previous_page: total_count: 3 total_pages: 1 schema: "$ref": "#/components/schemas/DocumentTemplateListResponse" '401': description: unauthorized content: application/json: example: message: Missing or invalid authorization key meta: error: api_key_unauthorized_error message: Not valid authorization token messages: - Not valid authorization token schema: "$ref": "#/components/schemas/ErrorResponse" '429': description: rate limit exceeded content: application/json: schema: "$ref": "#/components/schemas/RateLimitErrorResponse" post: summary: Create Template description: Creates a new template. tags: - Template security: - api_key: [] operationId: createTemplate parameters: [] responses: '201': description: created content: application/json: example: id: 751f9aae-cb96-4fbe-805b-0135232823c4 archived: false created_at: '2026-03-31T15:47:02Z' embedded_edit_url: https://www.signwell.com/edit/template/4fe3455d-6434-429f-bcd5-521c76f660f9/ language: en name: Agreement requester_email_address: loggins_76@howe-hessel.test status: Created template_link: https://www.signwell.com/new_doc/c60LSiR31AhpOqZN/ updated_at: '2026-03-31T15:47:02Z' allow_decline: true allow_reassign: api_application_id: decline_redirect_url: https://www.domain.com/decline_path/ expires_in: 365 redirect_url: https://www.domain.com/redirect_path/ reminders: true metadata: key1: value1 key2: value2 apply_signing_order: false message: Normal Body subject: Normal subject labels: - id: 7409f919-0ad1-4b58-90b6-293177798f0a name: My First Label - id: eff4718b-56b2-47e8-9ffa-8b4420937169 name: My Second Label - id: 29039f21-4b22-44d1-8dfa-5ee0696c7040 name: My Third Label fields: - - api_id: DateField_1 height: '19.0' page: 1 required: true type: date value: 2021/05/06 width: '86.0' x: 230.0 "y": 60.0 date_format: YYYY/MM/DD formula: '' lock_sign_date: true placeholder_name: Placeholder One - - api_id: Signature_2 height: '32.0' page: 1 required: true type: signature value: width: '112.0' x: 260.0 "y": 80.0 placeholder_name: Placeholder 2 - api_id: CheckBox_3 height: '13.0' page: 1 required: true type: checkbox value: t width: '13.0' x: 260.0 "y": 80.0 name: placeholder_name: Placeholder 2 - api_id: CheckBox_4 height: '13.0' page: 1 required: true type: checkbox value: t width: '13.0' x: 270.0 "y": 80.0 name: placeholder_name: Placeholder 2 - api_id: Initials_4 height: '32.0' page: 1 required: true type: initials value: width: '44.0' x: 260.0 "y": 80.0 placeholder_name: Placeholder 2 - api_id: TextField_5 height: '19.0' page: 1 required: true type: text value: '1' width: '86.0' x: 260.0 "y": 80.0 fixed_width: true label: label validation: numbers placeholder_name: Placeholder 2 files: - name: filename1.pdf pages_number: 0 - name: filename2.pdf pages_number: 0 copied_placeholders: - id: '1' name: Copied Placeholder 1 subject: message: - id: '2' name: Copied Placeholder 2 subject: message: preassigned_recipient_name: Nelson Copied 2 preassigned_recipient_email: nelson+copied2@docsketch.com placeholders: - id: placeholder_id_1 name: Placeholder One subject: message: preassigned_recipient_name: recipient 1 preassigned_recipient_email: recipient1@domain.com signing_order: 1 attachment_requests: - name: normal name required: true url: https://www.signwell.com/document_attachments/GRJPOMRKppHWdGeeXwbefy4EblMb/?access=fa3580f5-3914-447b-8b4c-c5c28b0bc8f2 - id: placeholder_id_2 name: Placeholder 2 subject: message: signing_order: 2 attachment_requests: - name: Driver License required: false url: https://www.signwell.com/document_attachments/LRlW8OWw3pUGzP0jqa7Oi8kwJPY/?access=fa3580f5-3914-447b-8b4c-c5c28b0bc8f2 checkbox_groups: - id: 076c3f53-a7a3-4dfa-820b-22cd9c66382a group_name: Group 1 recipient_id: checkbox_ids: - CheckBox_3 - CheckBox_4 validation: minimum required: true min_value: 1 schema: "$ref": "#/components/schemas/DocumentTemplateResponse" '400': description: bad request content: application/json: example: errors: message: The request contains invalid key values. invalid_keys: - name schema: "$ref": "#/components/schemas/ValidationErrorResponse" '422': description: unprocessable entity content: application/json: example: errors: decline_redirect_url: - is not a valid URL redirect_url: - is not a valid URL expires_in: - must be less than or equal to 365 metadata: - The key/value pairs must not exceed 50 - 'Check the following keys: [qgtxtpsnyxjwzvbzhnmrjziscxsmgcugpqanuygve], length needs to be less than 40 characters' - 'Check the value of the following keys: [ke50], length needs to be less than 500 characters and must be a string' api_application_id: - The provided API application id is invalid message: - is too long (maximum is 4000 characters) placeholders: duplicated_ids: 'These ids are duplicated: placeholder_id_1.' placeholder_1: name: - is too long (maximum is 255 characters) preassigned_recipient_email: - format is invalid. preassigned_recipient_name: - is too long (maximum is 255 characters) placeholder_2: preassigned_recipient_email: - format is invalid. all_preassigned: At least one placeholder should be left unassigned attachment_requests: invalid_ids: 'These placeholder ids are not present in the placeholders array: [placeholder_id_3]' fields: duplicated_api_ids: 'These api ids are duplicated: CheckBox_2.' invalid_ids: 'These placeholder ids are not present in the placeholders array: [placeholder_id_2, placeholder_id_3]' file_2: field_2: invalid_date_value: DateField value must be in Iso8601 format. date_format: - 'Allowed formats for date fields are: MM/DD/YYYY | DD/MM/YYYY | YYYY/MM/DD | Month DD, YYYY | MM/DD/YYYY hh:mm:ss a' files: file_1: file_data: - At least one of file_url or file_base64 should be present file_2: file_data: - Only one of file_url or file_base64 should be present, not both file_3: file_url: - is not a valid URL file_4: file_base64: - 'the file type is unsupported, we support the following formats: application/msword, application/pdf, application/octet-stream, application/x-ole-storage, application/vnd.openxmlformats-officedocument.wordprocessingml.document, application/vnd.ms-powerpoint, application/vnd.openxmlformats-officedocument.presentationml.presentation, application/vnd.ms-excel, application/vnd.openxmlformats-officedocument.spreadsheetml.sheet, application/x-iwork-keynote-sffkey, application/x-iwork-numbers-sffnumbers, application/x-iwork-pages-sffpages, image/jpeg, image/png, image/tiff, image/webp, text/html' file_5: name: - The file extension is invalid. file_6: name: - can't be blank checkbox_groups: min_value_negative: The min value must be greater than or equal to 0 in the checkbox group Group 1 schema: "$ref": "#/components/schemas/ValidationErrorResponse" '429': description: rate limit exceeded content: application/json: schema: "$ref": "#/components/schemas/RateLimitErrorResponse" requestBody: content: application/json: schema: "$ref": "#/components/schemas/DocumentTemplateRequest" required: true "/api/v1/document_templates/{id}": get: summary: Get Template description: Returns a template and all associated template data. Supply the unique template ID from either a Create Template request or template page URL. tags: - Template security: - api_key: [] operationId: getTemplate parameters: - name: id in: path schema: "$ref": "#/components/schemas/TemplateId" required: true responses: '200': description: successful content: application/json: example: id: 65564a6f-5582-4a3a-ada7-43ec1ceda89f archived: false created_at: '2026-03-31T15:47:00Z' embedded_edit_url: https://www.signwell.com/edit/template/ce591363-26ef-4e28-9261-4fb74ec9fca3/ language: en name: conglomerate-glow/sint.mp4 requester_email_address: 54.birdperson@oberbrunner.test status: Available template_link: https://www.signwell.com/new_doc/04G5HrgwsXPPHFQv/ updated_at: '2026-03-31T15:47:00Z' allow_decline: allow_reassign: api_application_id: decline_redirect_url: expires_in: redirect_url: reminders: metadata: apply_signing_order: false message: Consequatur possimus delectus officia. subject: aut fields: - - api_id: Signature_43 height: '32.0' page: 1 required: true type: signature value: width: '112.0' x: 1.1 "y": 1.1 placeholder_name: Dark Blob Girl 1 - api_id: Signature_44 height: '32.0' page: 2 required: true type: signature value: width: '112.0' x: 1.1 "y": 1.1 placeholder_name: Doctor Falcon Strange 2 files: - name: cum.flac pages_number: 2 copied_placeholders: - id: '3' name: Penguin Iii 3 subject: message: - id: '4' name: Red Monarch Skull 4 subject: message: preassigned_recipient_name: Audrie Romaguera preassigned_recipient_email: freeman.doyle@kreiger-mclaughlin.example placeholders: - id: '1' name: Dark Blob Girl 1 subject: message: preassigned_recipient_name: Chung Gerlach preassigned_recipient_email: danyell_toy@hudson.example signing_order: 1 attachment_requests: - name: distant_general/totam.xls required: true url: https://www.signwell.com/document_attachments/LG3l69ld2pIRQygpJK8oH56qQYp/?access=49fa240b-cb8b-48e0-ba0e-eda8808457d8 - id: '2' name: Doctor Falcon Strange 2 subject: message: signing_order: 2 attachment_requests: [] checkbox_groups: - id: 48cae2b3-c81d-4e53-a91c-b70def9c01af group_name: recipient_id: checkbox_ids: - CheckBox_45 validation: required: false schema: "$ref": "#/components/schemas/DocumentTemplateResponse" '404': description: not_found content: application/json: example: message: Not found meta: error: record_not_found message: Couldn't find the template requested messages: - Couldn't find the template requested schema: "$ref": "#/components/schemas/ErrorResponse" '429': description: rate limit exceeded content: application/json: schema: "$ref": "#/components/schemas/RateLimitErrorResponse" put: summary: Update Template description: Updates an existing template. tags: - Template security: - api_key: [] operationId: updateTemplate parameters: - name: id in: path schema: "$ref": "#/components/schemas/TemplateId" required: true responses: '200': description: ok content: application/json: example: id: 2316597f-56b6-433f-a4a1-8f6356b2a5a5 archived: false created_at: '2026-03-31T15:47:03Z' embedded_edit_url: https://www.signwell.com/edit/template/abbd8d88-9dfe-4a7f-9309-38cc7094a26d/ language: en name: Broly requester_email_address: michael_79_jan_vincent@murray-lockman.example status: Available template_link: https://www.signwell.com/new_doc/5p8G0m8DiJ0XwNWB/ updated_at: '2026-03-31T15:47:04Z' allow_decline: true allow_reassign: true api_application_id: cc86d352-f069-44e7-b23f-9a759209e2cd decline_redirect_url: http://weissnat.example/holly expires_in: 1 redirect_url: http://williamson.example/patricia.pfeffer reminders: true metadata: some: metadata apply_signing_order: true message: Nisi blanditiis aut ut. subject: Rem recusandae placeat ut. fields: - - api_id: Signature_55 height: '32.0' page: 1 required: true type: signature value: width: '112.0' x: 1.1 "y": 1.1 placeholder_name: Blink Ix 13 - api_id: Signature_56 height: '32.0' page: 2 required: true type: signature value: width: '112.0' x: 1.1 "y": 1.1 placeholder_name: Arclight 14 files: - name: sunt.pptx pages_number: 2 copied_placeholders: - id: '3' name: Bloodwraith 15 subject: message: - id: '4' name: Banshee 16 subject: message: preassigned_recipient_name: Rev. Sammy Wiza preassigned_recipient_email: marcus@von.test placeholders: - id: '1' name: Blink Ix 13 subject: message: preassigned_recipient_name: Mikaela Legros preassigned_recipient_email: dexter.hintz@dicki-oberbrunner.example signing_order: 1 attachment_requests: - name: fruit-linger/non.js required: true url: https://www.signwell.com/document_attachments/5BO4O8z6DDHOqJ04on5OFzAa0e8/?access=ebfcdb81-ce6f-4e6e-b5eb-73495c0691c2 - id: '2' name: Arclight 14 subject: message: signing_order: 2 attachment_requests: [] checkbox_groups: - id: b5b92745-c30e-462a-80bb-60ae8dab9b2b group_name: recipient_id: checkbox_ids: - CheckBox_57 validation: required: false schema: "$ref": "#/components/schemas/DocumentTemplateResponse" '400': description: bad request content: application/json: example: errors: message: The request contains invalid key values. invalid_keys: - name schema: "$ref": "#/components/schemas/ValidationErrorResponse" '422': description: unprocessable entity content: application/json: example: errors: decline_redirect_url: - is not a valid URL redirect_url: - is not a valid URL expires_in: - must be less than or equal to 365 metadata: - The key/value pairs must not exceed 50 - 'Check the following keys: [qgtxtpsnyxjwzvbzhnmrjziscxsmgcugpqanuygve], length needs to be less than 40 characters' - 'Check the value of the following keys: [ke50], length needs to be less than 500 characters and must be a string' api_application_id: - The provided API application id is invalid message: - is too long (maximum is 4000 characters) schema: "$ref": "#/components/schemas/ValidationErrorResponse" '429': description: rate limit exceeded content: application/json: schema: "$ref": "#/components/schemas/RateLimitErrorResponse" requestBody: content: application/json: schema: "$ref": "#/components/schemas/DocumentTemplateUpdateRequest" required: true delete: summary: Delete Template description: Deletes a template. Supply the unique template ID from either a Create Template request or template page URL. tags: - Template security: - api_key: [] operationId: deleteTemplate parameters: - name: id in: path schema: "$ref": "#/components/schemas/TemplateId" required: true responses: '204': description: no content '404': description: not found content: application/json: example: message: Not found meta: error: record_not_found message: Couldn't find the template requested messages: - Couldn't find the template requested schema: "$ref": "#/components/schemas/ErrorResponse" '429': description: rate limit exceeded content: application/json: schema: "$ref": "#/components/schemas/RateLimitErrorResponse" "/api/v1/api_applications/{id}": get: summary: Get API Application description: Gets the details of a specific API Application within an account. Supply the unique Application ID from either the Create API Application response or the API Application edit page. tags: - API Application security: - api_key: [] operationId: getApiApplication parameters: - name: id in: path schema: type: string format: uuid description: Unique identifier for the API Application. required: true responses: '200': description: successful content: application/json: example: id: 86cbb357-7b1b-4c43-894a-d0e94b649126 callback_urls: [] created_at: '2026-03-31T15:47:06Z' name: Opela updated_at: '2026-03-31T15:47:06Z' owner: id: ed63535c-75c0-4a72-875c-6426d9210b71 account_id: 43a98242-d533-4f82-bbfe-87cf8e983e73 name: Arthricia email: arthricia_105@rohan.test preferences: button_text_color: '610505' buttons_border_radius: 10 custom_logo_file: "/Users/signwell/Code/docsketch/tmp/test_files/files_number/api_application_preferences/000/000/003/original.png" link_text_color: BCBC80 primary_color: '898952' schema: "$ref": "#/components/schemas/ApiApplicationResponse" '404': description: not_found content: application/json: example: message: Not found meta: error: record_not_found message: Couldn't find the api_application requested messages: - Couldn't find the api_application requested schema: "$ref": "#/components/schemas/ErrorResponse" '429': description: rate limit exceeded content: application/json: schema: "$ref": "#/components/schemas/RateLimitErrorResponse" delete: summary: Delete API Application description: Deletes an API Application from an account. Supply the unique Application ID from either the Create API Application response or the API Application edit page tags: - API Application security: - api_key: [] operationId: deleteApiApplication parameters: - name: id in: path schema: type: string format: uuid description: Unique identifier for the API Application. required: true responses: '204': description: no content '404': description: not found content: application/json: example: message: Not found meta: error: record_not_found message: Couldn't find the api_application requested messages: - Couldn't find the api_application requested schema: "$ref": "#/components/schemas/ErrorResponse" '429': description: rate limit exceeded content: application/json: schema: "$ref": "#/components/schemas/RateLimitErrorResponse" "/api/v1/hooks": get: summary: List Webhooks description: List all the webhooks in the account. tags: - Webhooks security: - api_key: [] operationId: listWebhooks responses: '200': description: ok content: application/json: example: - id: a6b55a29-218d-4766-ad94-8d418c5bda98 callback_url: http://greenfelder.example/ngoc - id: 1afbb05a-42e4-4304-8c11-ec3978c00056 callback_url: http://olson-ledner.example/mack - id: b9b5527b-d2ce-4816-bde0-c0942b5c9d66 callback_url: http://wyman.test/quintin - id: 2677e7fa-de5f-4de0-8e40-c4706923889f callback_url: http://spinka.test/athena.gerlach api_application_id: 5e544e05-56db-48f5-9b47-061dd985b2c6 - id: f6be99fa-1dac-487d-a352-994d48c8a158 callback_url: http://schmidt.example/nanci api_application_id: 5e544e05-56db-48f5-9b47-061dd985b2c6 - id: 84491f67-989d-485d-b46c-44e022fac543 callback_url: http://cassin-walker.test/kaley api_application_id: 5e544e05-56db-48f5-9b47-061dd985b2c6 - id: c2f3cbd5-7277-42c8-ba99-56436870e9f7 callback_url: http://schiller-sauer.test/sybil api_application_id: 5e544e05-56db-48f5-9b47-061dd985b2c6 - id: af0e3552-8116-4fc6-80d1-beb8f8e13d1a callback_url: http://greenfelder-conroy.example/carmelo.stokes api_application_id: 5e544e05-56db-48f5-9b47-061dd985b2c6 schema: "$ref": "#/components/schemas/WebhookListResponse" '429': description: rate limit exceeded content: application/json: schema: "$ref": "#/components/schemas/RateLimitErrorResponse" post: summary: Create Webhook description: Register a callback URL that we will post document events to. tags: - Webhooks security: - api_key: [] operationId: createWebhook parameters: [] responses: '201': description: created content: application/json: example: id: 782111c8-f182-4067-8fc0-d7ba8d3e87ae callback_url: http://prohaska.test/della schema: "$ref": "#/components/schemas/WebhookResponse" '400': description: bad request content: application/json: example: message: Bad request (bad request data) meta: error: invalid_parameter message: 'Invalid parameter: callback_url must be present' messages: - 'Invalid parameter: callback_url must be present' schema: "$ref": "#/components/schemas/ErrorResponse" '429': description: rate limit exceeded content: application/json: schema: "$ref": "#/components/schemas/RateLimitErrorResponse" requestBody: content: application/json: schema: type: object properties: callback_url: type: string format: url description: URL that we will post document events to. example: https://example.com/webhook api_application_id: type: string format: uuid description: Unique identifier for the API Application. required: - callback_url required: true "/api/v1/hooks/{id}": delete: summary: Delete Webhook description: Deletes a registered callback URL that we are posting document events to. tags: - Webhooks security: - api_key: [] operationId: deleteWebhook parameters: - name: id in: path schema: type: string format: uuid description: Unique identifier for a webhook. required: true responses: '204': description: no content '404': description: not found content: application/json: example: message: Not found meta: error: record_not_found message: Couldn't find the hook requested messages: - Couldn't find the hook requested schema: "$ref": "#/components/schemas/ErrorResponse" '429': description: rate limit exceeded content: application/json: schema: "$ref": "#/components/schemas/RateLimitErrorResponse" "/api/v1/me": get: summary: Get credentials description: Retrieves the account information associated with the API key being used. tags: - Me security: - api_key: [] operationId: getMe responses: '200': description: successful content: application/json: example: id: 2efeb26c-f151-4ff7-9341-81d5741f5e28 role: owner archived: false user: id: b4905391-fd3b-402c-a8ca-b3201a5549c0 name: Snuffles email: snuffles_115@hoeger.test has_google_registration: false first_name: Snuffles account: id: 0bdaab15-ae90-4638-8b43-60b6ca3a5032 name: Gleichner, Kohler and Ruecker plan_tier: free active_templates: 0 can_create_template: true can_create_tracking_document: true can_create_completion_document: true active_users: - id: b4905391-fd3b-402c-a8ca-b3201a5549c0 name: Snuffles email: snuffles_115@hoeger.test has_google_registration: false workspace: id: 0bdaab15-ae90-4638-8b43-60b6ca3a5032 name: Gleichner, Kohler and Ruecker plan_tier: free active_templates: 0 can_create_template: true can_create_tracking_document: true can_create_completion_document: true active_users: - id: b4905391-fd3b-402c-a8ca-b3201a5549c0 name: Snuffles email: snuffles_115@hoeger.test has_google_registration: false contact: id: bd5ebc93-bfb3-4a0b-ac31-545bd756236b email: snuffles_115@hoeger.test name: Snuffles company_name: Koch Group phone_number: "(956) 121-4217" alt_phone_number: 464 603 7752 website: http://mann.test/lorriane initials: SN archived: false schema: "$ref": "#/components/schemas/MeResponse" '401': description: unauthorized content: application/json: example: message: Missing or invalid authorization key meta: error: api_key_unauthorized_error message: Not valid authorization token messages: - Not valid authorization token schema: "$ref": "#/components/schemas/ErrorResponse" '429': description: rate limit exceeded content: application/json: schema: "$ref": "#/components/schemas/RateLimitErrorResponse" "/api/v1/bulk_sends/{id}": get: summary: Get Bulk Send description: Returns information about the Bulk Send. parameters: - name: id in: path schema: "$ref": "#/components/schemas/BulkSendId" required: true tags: - Bulk Send security: - api_key: [] operationId: getBulkSend responses: '200': description: successful content: application/json: example: id: 3a337429-7411-4796-9d1c-bd68cfe0d256 name: Parth Galen api_application_id: documents_count: 0 documents_completed: 0 documents_not_completed: 0 created_at: '2026-03-31T15:47:08Z' user_id: status: Created templates: - id: b985f6f9-579a-485b-96c1-35d16dc8c8bf name: scale_nursery/totam.key schema: "$ref": "#/components/schemas/BulkSendResponse" '401': description: unauthorized content: application/json: example: message: Missing or invalid authorization key meta: error: api_key_unauthorized_error message: Not valid authorization token messages: - Not valid authorization token schema: "$ref": "#/components/schemas/ErrorResponse" '404': description: not found content: application/json: example: message: Not found meta: error: record_not_found message: Couldn't find the bulk_send requested messages: - Couldn't find the bulk_send requested schema: "$ref": "#/components/schemas/ErrorResponse" '429': description: rate limit exceeded content: application/json: schema: "$ref": "#/components/schemas/RateLimitErrorResponse" "/api/v1/bulk_sends": get: summary: List Bulk Sendings description: Returns information about the Bulk Send. tags: - Bulk Send security: - api_key: [] operationId: listBulkSends parameters: - name: user_email in: query required: false schema: "$ref": "#/components/schemas/UserEmail" - name: limit in: query required: false schema: "$ref": "#/components/schemas/Limit" - name: page in: query required: false schema: "$ref": "#/components/schemas/Page" - name: api_application_id in: query required: false schema: "$ref": "#/components/schemas/ApiApplicationId" responses: '200': description: successful content: application/json: example: bulk_sends: - id: 81c057c3-8569-4b1d-9a7b-d46f584d815d name: Argonath api_application_id: documents_count: 0 documents_completed: 0 documents_not_completed: 0 created_at: '2026-03-31T15:47:09Z' user_id: status: Created template_ids: - a3a6b56e-7d5c-4531-843a-047de9ae1a1e - id: '087c6e94-528f-462c-9601-db6b1741a7e9' name: Nargothrond api_application_id: documents_count: 0 documents_completed: 0 documents_not_completed: 0 created_at: '2026-03-31T15:47:09Z' user_id: status: Created template_ids: - a3a6b56e-7d5c-4531-843a-047de9ae1a1e - id: 7544ffc3-6d1a-4328-9e97-c6882e6f2e6b name: Luthany api_application_id: documents_count: 0 documents_completed: 0 documents_not_completed: 0 created_at: '2026-03-31T15:47:09Z' user_id: status: Created template_ids: - a3a6b56e-7d5c-4531-843a-047de9ae1a1e - id: 5d9cbb3e-f517-4dea-b13f-351866a8f9e7 name: Tol-in-Gaurhoth api_application_id: documents_count: 0 documents_completed: 0 documents_not_completed: 0 created_at: '2026-03-31T15:47:09Z' user_id: status: Created template_ids: - a3a6b56e-7d5c-4531-843a-047de9ae1a1e - id: f515d01f-a50f-4633-b604-58a0cfd84ace name: Marish api_application_id: documents_count: 0 documents_completed: 0 documents_not_completed: 0 created_at: '2026-03-31T15:47:09Z' user_id: status: Created template_ids: - a3a6b56e-7d5c-4531-843a-047de9ae1a1e current_page: 1 next_page: previous_page: total_count: 5 total_pages: 1 schema: "$ref": "#/components/schemas/BulkSendListResponse" '401': description: unauthorized content: application/json: example: message: Missing or invalid authorization key meta: error: api_key_unauthorized_error message: Not valid authorization token messages: - Not valid authorization token schema: "$ref": "#/components/schemas/ErrorResponse" '429': description: rate limit exceeded content: application/json: schema: "$ref": "#/components/schemas/RateLimitErrorResponse" post: summary: Create Bulk Send description: Creates a bulk send, and it validates the CSV file before creating the bulk send. tags: - Bulk Send security: - api_key: [] operationId: createBulkSend parameters: [] responses: '201': description: successful content: application/json: example: id: 6a287375-c151-435c-9bbe-856074348b25 template_ids: - 3f0cead6-c915-4119-99a1-06ad11f1f684 api_application_id: 38916d06-bdf2-4cf7-b97c-c2fb72b8c1a8 documents_count: 0 created_at: '2026-03-31T15:47:10Z' user_id: 810157d0-83c5-4309-8d75-830d4464379e status: Enqueuing schema: "$ref": "#/components/schemas/BulkSendCreateResponse" '422': description: unprocessable entity content: application/json: example: errors: bulk_send_csv: - row: 2 data: document_sender_email: not an email document_sender_name: email@signwell.com document_sender_label: Label recipient_email: recipient@signwell.com recipient_name: Recipient recipient_label: Recipient errors: - 'The following columns have an email address invalid: document_sender_email.' schema: "$ref": "#/components/schemas/ValidationErrorResponse" '401': description: unauthorized content: application/json: example: message: Missing or invalid authorization key meta: error: api_key_unauthorized_error message: Not valid authorization token messages: - Not valid authorization token schema: "$ref": "#/components/schemas/ErrorResponse" '429': description: rate limit exceeded content: application/json: schema: "$ref": "#/components/schemas/RateLimitErrorResponse" requestBody: content: application/json: schema: "$ref": "#/components/schemas/CreateBulkSendRequest" required: true "/api/v1/bulk_sends/csv_template": get: summary: Get Bulk Send CSV Template description: 'Fetches a CSV template that corresponds to the provided document template IDs. CSV templates are blank CSV files that have columns containing required and optional data that can be sent when creating a bulk send. Fields can be referenced by the field label. Example: [placeholder name]_[field label] could be something like customer_address or signer_company_name (if ''Customer'' and ''Signer'' were placeholder names for templates set up in SignWell).' parameters: - name: template_ids[] in: query required: true schema: "$ref": "#/components/schemas/BulkSendTemplateIds" - name: base64 in: query schema: "$ref": "#/components/schemas/Base64Flag" tags: - Bulk Send security: - api_key: [] operationId: getBulkSendCsvTemplate responses: '200': description: successful content: application/octet-stream: schema: type: string format: binary example: | document_sender_email,document_sender_name fart_138@becker.test,Fart application/json: example: data: ZG9jdW1lbnRfc2VuZGVyX2VtYWlsLGRvY3VtZW50X3NlbmRlcl9uYW1lCnRlcnJ5X3NjYXJ5XzE0MkBuaWNvbGFzLnRlc3QsU2NhcnkgVGVycnkK schema: "$ref": "#/components/schemas/BulkSendCsvTemplateResponse" '401': description: unauthorized content: application/json: example: message: Missing or invalid authorization key meta: error: api_key_unauthorized_error message: Not valid authorization token messages: - Not valid authorization token schema: "$ref": "#/components/schemas/ErrorResponse" '404': description: not found content: application/json: example: message: Not found meta: error: record_not_found message: Couldn't find the template requested messages: - Couldn't find the template requested schema: "$ref": "#/components/schemas/ErrorResponse" '429': description: rate limit exceeded content: application/json: schema: "$ref": "#/components/schemas/RateLimitErrorResponse" "/api/v1/bulk_sends/validate_csv": post: summary: Validate Bulk Send CSV description: Validates a Bulk Send CSV file before creating the Bulk Send. It will check the structure of the CSV and the data it contains, and return any errors found. parameters: [] tags: - Bulk Send security: - api_key: [] operationId: validateBulkSendCsv responses: '200': description: successful content: application/json: example: bulk_send_csv: IkRvY3VtZW50IFNlbmRlciBFbWFpbCIsJ0RvY3VtZW50IFNlbmRlciBOYW1lJywvXERvY3VtZW50LSBTZW5kZXIgPUxhYmVsLEBSZWNpcGllbnRfIEVtYWlsLFJlY2lwaWVudCAqTmFtZSxgUmVjaXBpZW50fiFAIyQlXiYqKCl7fVtdPD4uPyBMYWJlbGAKc2VuZGVyQHNpZ253ZWxsLmNvbSxTZW5kZXIsU2VuZGVyLHJlY2lwaWVudEBzaWdud2VsbC5jb20sUmVjaXBpZW50LFJlY2lwaWVudAplbWFpbEBzb21lLmNvbSwsLGVtYWlsMkBzb21lLmNvbQo= template_ids: - a80001a0-2936-44ae-b0a2-4eb4e70ef3ef skip_row_errors: false api_application_id: name: arena_linger/in.css subject: Please complete arena_linger/in.css message: "Hey there,
Please review and complete this document. You can click on the document below to get started.
" apply_signing_order: false schema: "$ref": "#/components/schemas/BulkSendValidateCsvResponse" '422': description: unprocessable entity content: application/json: example: errors: bulk_send_csv: - row: 2 data: document_sender_email: not an email document_sender_name: email@signwell.com document_sender_label: Label recipient_email: recipient@signwell.com recipient_name: Recipient recipient_label: Recipient errors: - 'The following columns have an email address invalid: document_sender_email.' schema: "$ref": "#/components/schemas/ValidationErrorResponse" '401': description: unauthorized content: application/json: example: message: Missing or invalid authorization key meta: error: api_key_unauthorized_error message: Not valid authorization token messages: - Not valid authorization token schema: "$ref": "#/components/schemas/ErrorResponse" '429': description: rate limit exceeded content: application/json: schema: "$ref": "#/components/schemas/RateLimitErrorResponse" requestBody: content: application/json: schema: "$ref": "#/components/schemas/BulkSendCsvRequest" required: true "/api/v1/bulk_sends/{id}/documents": get: summary: Get Bulk Send Documents description: Returns information about the Bulk Send. tags: - Bulk Send security: - api_key: [] operationId: getBulkSendDocuments parameters: - name: id in: path schema: "$ref": "#/components/schemas/BulkSendId" required: true - name: limit in: query required: false schema: "$ref": "#/components/schemas/Limit" - name: page in: query required: false schema: "$ref": "#/components/schemas/Page" responses: '200': description: successful content: application/json: example: id: 5d88cabc-9352-458a-b19c-80991c4a8255 name: Minas Tirith api_application_id: created_at: '2026-03-31T15:47:14Z' user_id: status: Created documents: - id: 66891ea4-616f-4ecc-ada9-80e5283273f6 archived: false created_at: '2026-03-31T15:47:13Z' decline_message: embedded_edit_url: https://www.signwell.com/edit/document/5153b085-19b0-4688-9694-100eff33b4e3/ error_message: embedded_preview_url: language: en name: cruelty_notebook/sint.flac requester_email_address: 158_terry_scary@von.example status: Created test_mode: false updated_at: '2026-03-31T15:47:13Z' allow_decline: true allow_reassign: true api_application_id: custom_requester_email: carolynn_okuneva@predovic.test custom_requester_name: Kylo Ren decline_redirect_url: http://aufderhar-shanahan.test/mira embedded_signing: false expires_in: 10 metadata: et: numquam molestias: dolores redirect_url: http://emard.example/preston_heathcote reminders: false apply_signing_order: false message: "Hey there,
Please review and complete this document. You can click on the document below to get started.
" subject: Please complete cruelty_notebook/sint.flac labels: - id: e980859e-f839-404c-8f0d-b4808fec2821 name: Malcom Thompson - id: ce0ee7ec-ceb4-43cc-881e-35bf56c5a901 name: Melony Stracke fields: - - api_id: CheckBox_71 height: '13.0' page: 1 required: true type: checkbox value: width: '13.0' x: 1.1 "y": 1.1 name: recipient_id: signing_elements_group_id: d6b47015-754d-417f-8c53-9ffa43cba00a - api_id: CheckBox_72 height: '13.0' page: 1 required: true type: checkbox value: width: '13.0' x: 1.1 "y": 1.1 name: recipient_id: - api_id: Signature_70 height: '32.0' page: 1 required: true type: signature value: width: '112.0' x: 1.1 "y": 1.1 recipient_id: afc00701-d0db-4cad-9fee-f3f12e9d513e files: - name: eveniet.doc pages_number: 1 copied_contacts: - name: The Hon. Noel Schowalter email: benjamin@turner-witting.example recipients: - email: lloyd@krajcik-gottlieb.test id: afc00701-d0db-4cad-9fee-f3f12e9d513e message: name: Pres. Syreeta Kreiger passcode: send_email: send_email_delay: status: created subject: signing_order: 46 signing_url: https://www.signwell.com/docs/ba8dcb6e10/ bounced: bounced_details: attachment_requests: - name: arena-corn/nostrum.jpeg required: true url: https://www.signwell.com/document_attachments/D98kY33DQZcn6N0OjW6Di615KBLw/?access=f5b4e237-bad0-46b1-864c-225debae311f - email: caterina@lesch-rolfson.example id: 65ef4984-18b1-4b19-9ca0-258c607c5acd message: name: Napoleon Schuster passcode: send_email: send_email_delay: status: created subject: signing_order: 47 signing_url: https://www.signwell.com/docs/f82f345105/ bounced: bounced_details: attachment_requests: [] checkbox_groups: - id: d6b47015-754d-417f-8c53-9ffa43cba00a group_name: recipient_id: checkbox_ids: - CheckBox_71 validation: required: false current_page: 1 next_page: previous_page: total_count: 1 total_pages: 1 schema: "$ref": "#/components/schemas/BulkSendDocumentsResponse" '401': description: unauthorized content: application/json: example: message: Missing or invalid authorization key meta: error: api_key_unauthorized_error message: Not valid authorization token messages: - Not valid authorization token schema: "$ref": "#/components/schemas/ErrorResponse" '404': description: not found content: application/json: example: message: Not found meta: error: record_not_found message: Couldn't find the bulk_send requested messages: - Couldn't find the bulk_send requested schema: "$ref": "#/components/schemas/ErrorResponse" '429': description: rate limit exceeded content: application/json: schema: "$ref": "#/components/schemas/RateLimitErrorResponse" "/api/v1/documents/{id}/nom151_certificate": get: summary: MX – NOM-151 Certificate description: Download NOM-151 certificate for a completed document. Returns a ZIP file, download URL, or raw certificate data based on query parameters. tags: - Regional security: - api_key: [] operationId: getNom151Certificate parameters: - name: id in: path schema: "$ref": "#/components/schemas/CompletedDocumentId" required: true - name: url_only in: query schema: "$ref": "#/components/schemas/UrlOnly" description: If true, returns JSON with download URL instead of downloading the file - name: object_only in: query schema: "$ref": "#/components/schemas/ObjectOnly" responses: '200': description: successful content: application/json: example: file_url: https://www.signwell.com/completed_docs/yzQaZQykwATojZNwPdpyFAeyz9A/nom151_certificate/ schema: "$ref": "#/components/schemas/Nom151UrlResponse" '404': description: not_found content: application/json: example: message: Not found meta: error: record_not_found message: Couldn't find the document requested messages: - Couldn't find the document requested schema: "$ref": "#/components/schemas/ErrorResponse" '422': description: unprocessable_entity content: application/json: example: errors: not_available: NOM-151 certificate not available schema: "$ref": "#/components/schemas/ValidationErrorResponse" '429': description: rate limit exceeded content: application/json: schema: "$ref": "#/components/schemas/RateLimitErrorResponse" components: securitySchemes: api_key: type: apiKey name: X-Api-Key in: header schemas: FieldType: type: string enum: - initials - signature - checkbox - date - select - text - dropdown - autofill_company - autofill_email - autofill_first_name - autofill_last_name - autofill_name - autofill_phone - autofill_title - autofill_date_signed description: Type of signing field TextValidation: type: string enum: - no_text_validation - numbers - letters - email_address - us_phone_number - us_zip_code - us_ssn - us_age - alphanumeric - us_bank_routing_number - us_bank_account_number description: Validation rule for text fields DateFormat: type: string enum: - MM/DD/YYYY - DD/MM/YYYY - YYYY/MM/DD - Month DD, YYYY - MM/DD/YYYY hh:mm:ss a description: 'Date format for date fields. Valid values: MM/DD/YYYY, DD/MM/YYYY, YYYY/MM/DD, Month DD, YYYY, MM/DD/YYYY hh:mm:ss a. Default: MM/DD/YYYY' CheckboxValidation: type: string enum: - minimum - maximum - range - exact description: Validation rule for checkbox groups FileInfo: type: object description: File information properties: name: type: string description: File name pages_number: type: integer description: Number of pages in the file required: - name - pages_number LabelInfo: type: object description: Label information properties: id: type: string description: Label ID name: type: string description: Label name CopiedContactInfo: type: object description: Copied contact information properties: id: type: string description: Contact ID name: type: string description: Contact name email: type: string format: email description: Contact email required: - email CheckboxGroupInfo: type: object description: Checkbox group configuration properties: id: type: string format: uuid description: Checkbox group ID group_name: type: string nullable: true description: Name of the checkbox group recipient_id: type: string nullable: true description: Recipient ID associated with the group checkbox_ids: type: array items: type: string description: IDs of checkboxes in this group validation: "$ref": "#/components/schemas/CheckboxValidation" nullable: true required: type: boolean description: Whether at least one checkbox must be checked min_value: type: integer description: Minimum number of checkboxes to check max_value: type: integer description: Maximum number of checkboxes to check exact_value: type: integer description: Exact number of checkboxes that must be checked required: - id - checkbox_ids - required AttachmentRequestInfo: type: object description: Attachment request information properties: name: type: string description: Name of the attachment request url: type: string format: url description: URL of the uploaded attachment (when available) required: type: boolean description: Whether the attachment is required required: - name - required AdditionalFields: type: array description: Fields to be added to any appended files (not existing files). Document fields placed on a document for collecting data or signatures from recipients. Field data should be sent as a 2-dimensional JSON array. One array of fields is needed for each file in the files array. An array of fields can be empty if you have a file that does not contain any fields. items: type: array description: Array of Fields you're adding to each file. items: type: object properties: x: type: number format: float description: Horizontal value in the coordinates of the field (in pixels). Coordinates are specific to the page where fields are located. "y": type: number format: float description: Vertical value in the coordinates of the field (in pixels). Coordinates are specific to the page where fields are located. page: type: integer description: The page number within the file. If the page does not exist within the file then the field won't be created. recipient_id: type: string description: Unique identifier of the recipient assigned to the field. Recipients assigned to fields will be the only ones that will see and be able to complete those fields. type: "$ref": "#/components/schemas/FieldType" description: 'Field type of the field. Valid field types: initials, signatures, checkbox, date, and text. To autofill fields with contact data, use an autofill field type. To group checkbox fields, enter an api_id for each checkbox and add the checkbox_groups parameter.' required: type: boolean default: true description: Whether the field must be completed by the recipient. Defaults to `true` except for checkbox type fields. label: type: string description: 'Text and Date fields only: label that is displayed when the field is empty.' value: oneOf: - type: string - type: boolean - type: number description: Varies according to the field type. Text fields accept strings or numbers. Date fields accept Iso8601 date strings. CheckBoxes accept booleans. Signature and Initials fields can't be signed through API requests. Autofill text fields accept strings or numbers. api_id: type: string description: Unique identifier of the field. Useful when needing to reference specific field values or update a document and its fields. name: type: string description: Checkbox fields only. At least 2 checkbox fields in an array of fields must be assigned to the same recipient and grouped with selection requirements. validation: "$ref": "#/components/schemas/TextValidation" description: 'Text fields only: optional validation for field values. Valid values: numbers, letters, email_address, us_phone_number, us_zip_code, us_ssn, us_age, alphanumeric, us_bank_routing_number, us_bank_account.' fixed_width: type: boolean default: false description: 'Text fields only: whether the field width will stay fixed and text will display in multiple lines, rather than one long line. If set to `false` the field width will automatically grow horizontally to fit text on one line. Defaults to `false`.' lock_sign_date: type: boolean default: false description: 'Date fields only: makes fields readonly and automatically populates with the date the recipient signed. Defaults to `false`.' date_format: "$ref": "#/components/schemas/DateFormat" description: 'Date fields only: date format to use for the field. Valid values: MM/DD/YYYY, DD/MM/YYYY, YYYY/MM/DD, Month DD, YYYY, and MM/DD/YYYY hh:mm:ss a. Defaults to MM/DD/YYYY.' formula: type: string description: 'Date fields only (text field formulas coming soon): formulas are a way to prefill fields with calculated future or past dates. Addition, subtraction, and parentheses are allowed. Valid event dates are `created_date`, `sent_date`, and `signed_date`. Valid time periods are `day`, `days`, `week`, `weeks`, `month`, and `months`. Example: `formula: ''sent_date + 10 days''`. Use with `lock_sign_date` if you''d like to make the field readonly and prevent signers from choosing a different date.' height: type: number format: float description: 'Height of the field (in pixels). Maximum height varies by field type: Signature/Initials (200px), others (74px). When using text tags if the height is greater than the maximum height, the height will be set to the maximum height.' width: type: number format: float description: Width of the field (in pixels). For text fields, width will auto-grow unless `fixed_width` is true. options: type: array description: Array of dropdown options (for dropdown/select fields only) items: "$ref": "#/components/schemas/DropdownOption" default_option: type: string description: Default selected option (for dropdown/select fields only) allow_other: type: boolean description: Whether to allow "Other" option with text input (for dropdown/select fields only) default: false required: - x - "y" - page - recipient_id - type AdditionalFiles: type: array items: type: object description: 'Additional files to be appended to the document. Will not replace existing files from the template. Document files can be uploaded by specifying a file URL or base64 string. Either `file_url` or `file_base64` must be present (not both). Valid file types are: .pdf, .docx, .jpg, .png, .ppt, .xls, .pages, and .txt.' properties: name: type: string description: Name of the file that will be uploaded. file_url: type: string format: url description: Publicly available URL of the file to be uploaded. file_base64: type: string format: byte description: A RFC 4648 base64 string of the file to be uploaded. required: - name ApiApplicationId: type: string format: uuid description: Unique identifier for API Application settings to use. API Applications are optional and mainly used when isolating OAuth apps or for more control over embedded API settings TemplateAttachmentRequests: type: array description: Attachments that a recipient must upload to complete the signing process. Attachment requests are shown after all document fields have been completed. items: type: object properties: name: type: string description: Name of the requested attachment. placeholder_id: type: string description: Unique identifier of the recipient that will view the attachment request. required: type: boolean default: true description: Whether the recipient will need to upload the attachment to successfully complete/sign the document. Defaults to `true`. required: - name - placeholder_id AttachmentRequests: type: array description: Attachments that a recipient must upload to complete the signing process. Attachment requests are shown after all document fields have been completed. items: type: object properties: name: type: string description: Name of the requested attachment. recipient_id: type: string description: Unique identifier of the recipient that will view the attachment request. required: type: boolean default: true description: Whether the recipient will need to upload the attachment to successfully complete/sign the document. Defaults to `true`. required: - name - recipient_id TemplateCheckboxGroups: type: array description: Checkbox fields that are placed on a document can be grouped with selection requirements. At least 2 checkbox fields in an array of fields must be assigned to the same recipient. items: type: object properties: group_name: type: string description: A unique identifier for the checkbox group. placeholder_id: type: string description: The recipient ID associated with the checkbox group. checkbox_ids: type: array items: type: string description: A unique identifier for each checkbox in a group. ID must match the api_id of the checkbox field. validation: "$ref": "#/components/schemas/CheckboxValidation" description: 'Set requirements for the group of one or multiple selections by the recipient. Defaults to minimum. Validation values: minimum, maximum, exact, range.' required: type: boolean default: false description: Whether the group must be completed by the recipient. Defaults to false. min_value: type: integer description: 'The minimum number of checkboxes that must be checked in the group. (Only for validation: minimum and range)' max_value: type: integer description: 'The maximum number of checkboxes that can be checked in the group. (Only for validation: maximum and range)' exact_value: type: integer description: 'The exact number of checkboxes that must be checked in the group. (Only for validation: exact)' required: - group_name - placeholder_id - checkbox_ids CheckboxGroups: type: array description: Checkbox fields that are placed on a document can be grouped with selection requirements. At least 2 checkbox fields in an array of fields must be assigned to the same recipient. items: type: object properties: group_name: type: string description: A unique identifier for the checkbox group. recipient_id: type: string description: The recipient ID associated with the checkbox group. checkbox_ids: type: array items: type: string description: A unique identifier for each checkbox in a group. ID must match the api_id of the checkbox field. validation: "$ref": "#/components/schemas/CheckboxValidation" description: 'Set requirements for the group of one or multiple selections by the recipient. Defaults to minimum. Validation values: minimum, maximum, exact, range.' required: type: boolean default: false description: Whether the group must be completed by the recipient. Defaults to false. min_value: type: integer description: 'The minimum number of checkboxes that must be checked in the group. (Only for validation: minimum and range)' max_value: type: integer description: 'The maximum number of checkboxes that can be checked in the group. (Only for validation: maximum and range)' exact_value: type: integer description: 'The exact number of checkboxes that must be checked in the group. (Only for validation: exact)' required: - group_name - recipient_id - checkbox_ids BulkSendCsv: type: string description: A RFC 4648 base64 string of the template CSV file to be validated. Base64Flag: type: boolean description: When true, returns the CSV as a base64-encoded string in a JSON response instead of a binary file download. BulkSendCsvTemplateResponse: type: object description: Base64-encoded CSV template properties: data: type: string format: byte description: Base64-encoded CSV content required: - data BulkSendId: type: string format: uuid description: Unique identifier for a bulk send. BulkSendTemplateIds: type: array description: Specify one or more templates to generate a single blank CSV file that will contain available columns for your recipient data. The template_ids[] parameter is an array of template IDs (e.g.,`/?template_ids[]=5a67dbd7-928a-4ea0-a7e2-e476a0eb045f&template_ids[]=d7315111-c671-4b15-8354-c9a19bbaefa0`). Each ID should be a separate parameter in the query string. items: type: string format: uuid CopiedContacts: type: array description: Copied contacts are emailed the final document once it has been completed by all recipients. items: type: object properties: name: type: string description: Name of the copied contact. email: type: string format: email description: Email for the copied contact. required: - email CopiedPlaceholders: type: array description: Copied placeholders are emailed the final document once it has been completed by all recipients. items: type: object properties: name: type: string description: Name of the placeholder. preassigned_recipient_name: type: string description: In some cases, it may be necessary to pre-fill the name and email for a placeholder because it will always be the same person for all documents created from this template. This sets the name. preassigned_recipient_email: type: string format: email description: In some cases, it may be necessary to pre-fill the name and email for a placeholder because it will always be the same person for all documents created from this template. This sets the email. required: - name CompletedDocumentId: type: string format: uuid description: Unique identifier for a completed document. DocumentId: type: string format: uuid description: Unique identifier for a document. Recipients: type: array description: Document recipients are people that must complete and/or sign a document. items: type: object properties: id: type: string description: A unique identifier that you will give to each recipient. We recommend numbering sequentially from 1 to X. IDs are required for associating recipients to fields and more. name: type: string description: Name of the recipient. email: type: string format: email description: Email address for the recipient. example: signer@example.com passcode: type: string description: If set, signers assigned with a passcode will be required to enter the passcode before they’re able to view and complete the document. subject: type: string description: Email subject for the signature request that the recipient will see. Overrides the general subject for the document. message: type: string description: Email message for the signature request that the recipient will see. Overrides the general message for the document. send_email: type: boolean default: false description: Applies on when `embedded_signing` is `true`. By default, recipients are not notified through email to sign when doing embedded signing. Setting this to `true` will send a notification email to the recipient. Default is `false`. send_email_delay: type: integer default: 0 description: If `send_email` is `true` recipients will receive a new document notification immediately. In the case of embedded signing, you can delay this notification to only send if the document is not completed within a few minutes. The email notification will not go out if the document is completed before the delay time is over. Valid values are in minutes ranging from `0` to `60`. Defaults to `0`. required: - id - email Fields: type: array description: Document fields placed on a document for collecting data or signatures from recipients. At least one field must be present in the Create Document request if `draft` is `false` (unless adding a signature page by using `with_signature_page`). Field data should be sent as a 2-dimensional JSON array. One array of fields is needed for each file in the files array. An array of fields can be empty if you have a file that does not contain any fields. items: type: array description: Array of Fields you're adding to each file. items: type: object properties: x: type: number format: float description: Horizontal value in the coordinates of the field (in pixels). Coordinates are specific to the page where fields are located. "y": type: number format: float description: Vertical value in the coordinates of the field (in pixels). Coordinates are specific to the page where fields are located. page: type: integer description: The page number within the file. If the page does not exist within the file then the field won't be created. recipient_id: type: string description: Unique identifier of the recipient assigned to the field. Recipients assigned to fields will be the only ones that will see and be able to complete those fields. type: "$ref": "#/components/schemas/FieldType" description: 'Field type of the field. Valid field types: initials, signatures, checkbox, date, and text. To autofill fields with contact data, use an autofill field type. To group checkbox fields, enter an api_id for each checkbox and add the checkbox_groups parameter.' required: type: boolean default: true description: Whether the field must be completed by the recipient. Defaults to `true` except for checkbox type fields. label: type: string description: 'Text and Date fields only: label that is displayed when the field is empty.' value: oneOf: - type: string - type: boolean - type: number description: Varies according to the field type. Text fields accept strings or numbers. Date fields accept Iso8601 date strings. CheckBoxes accept booleans. Signature and Initials fields can't be signed through API requests. Autofill text fields accept strings or numbers. api_id: type: string description: Unique identifier of the field. Useful when needing to reference specific field values or update a document and its fields. name: type: string description: Checkbox fields only. At least 2 checkbox fields in an array of fields must be assigned to the same recipient and grouped with selection requirements. validation: "$ref": "#/components/schemas/TextValidation" description: 'Text fields only: optional validation for field values. Valid values: numbers, letters, email_address, us_phone_number, us_zip_code, us_ssn, us_age, alphanumeric, us_bank_routing_number, us_bank_account.' fixed_width: type: boolean default: false description: 'Text fields only: whether the field width will stay fixed and text will display in multiple lines, rather than one long line. If set to `false` the field width will automatically grow horizontally to fit text on one line. Defaults to `false`.' lock_sign_date: type: boolean default: false description: 'Date fields only: makes fields readonly and automatically populates with the date the recipient signed. Defaults to `false`.' date_format: "$ref": "#/components/schemas/DateFormat" description: 'Date fields only: date format to use for the field. Valid values: MM/DD/YYYY, DD/MM/YYYY, YYYY/MM/DD, Month DD, YYYY, and MM/DD/YYYY hh:mm:ss a. Defaults to MM/DD/YYYY.' height: type: number format: float description: 'Height of the field (in pixels). Maximum height varies by field type: Signature/Initials (200px), others (74px). When using text tags if the height is greater than the maximum height, the height will be set to the maximum height.' width: type: number format: float description: Width of the field (in pixels). For text fields, width will auto-grow unless `fixed_width` is true. options: type: array description: Array of dropdown options (for dropdown/select fields only) items: "$ref": "#/components/schemas/DropdownOption" default_option: type: string description: Default selected option (for dropdown/select fields only) allow_other: type: boolean description: Whether to allow "Other" option with text input (for dropdown/select fields only) default: false required: - x - "y" - page - recipient_id - type TemplateFields: type: array description: Document fields placed on a document for collecting data or signatures from recipients. At least one field must be present in the Create Document request if `draft` is `false` (unless adding a signature page by using `with_signature_page`). Field data should be sent as a 2-dimensional JSON array. One array of fields is needed for each file in the files array. An array of fields can be empty if you have a file that does not contain any fields. items: type: array description: Array of Fields you're adding to each file. items: type: object properties: x: type: number format: float description: Horizontal value in the coordinates of the field (in pixels). Coordinates are specific to the page where fields are located. "y": type: number format: float description: Vertical value in the coordinates of the field (in pixels). Coordinates are specific to the page where fields are located. page: type: integer description: The page number within the file. If the page does not exist within the file then the field won't be created. placeholder_id: type: string description: Unique identifier of the placeholder assigned to the field. type: "$ref": "#/components/schemas/FieldType" description: 'Field type of the field. Valid field types: initials, signatures, checkbox, date, and text. To autofill fields with contact data, use an autofill field type. To group checkbox fields, enter an api_id for each checkbox and add the checkbox_groups parameter.' required: type: boolean default: true description: Whether the field must be completed by the recipient. Defaults to `true` except for checkbox type fields. label: type: string description: 'Text and Date fields only: label that is displayed when the field is empty.' value: oneOf: - type: string - type: boolean - type: number description: Varies according to the field type. Text fields accept strings or numbers. Date fields accept Iso8601 date strings. CheckBoxes accept booleans. Signature and Initials fields can't be signed through API requests. Autofill text fields accept strings or numbers. api_id: type: string description: Unique identifier of the field. Useful when needing to reference specific field values or update a document and its fields. name: type: string description: Checkbox fields only. At least 2 checkbox fields in an array of fields must be assigned to the same recipient and grouped with selection requirements. validation: "$ref": "#/components/schemas/TextValidation" description: 'Text fields only: optional validation for field values. Valid values: numbers, letters, email_address, us_phone_number, us_zip_code, us_ssn, us_age, alphanumeric, us_bank_routing_number, us_bank_account.' fixed_width: type: boolean default: false description: 'Text fields only: whether the field width will stay fixed and text will display in multiple lines, rather than one long line. If set to `false` the field width will automatically grow horizontally to fit text on one line. Defaults to `false`.' lock_sign_date: type: boolean default: false description: 'Date fields only: makes fields readonly and automatically populates with the date the recipient signed. Defaults to `false`.' date_format: "$ref": "#/components/schemas/DateFormat" description: 'Date fields only: date format to use for the field. Valid values: MM/DD/YYYY, DD/MM/YYYY, YYYY/MM/DD, Month DD, YYYY, and MM/DD/YYYY hh:mm:ss a. Defaults to MM/DD/YYYY.' height: type: number format: float description: 'Height of the field (in pixels). Maximum height varies by field type: Signature/Initials (200px), others (74px). When using text tags if the height is greater than the maximum height, the height will be set to the maximum height.' width: type: number format: float description: Width of the field (in pixels). For text fields, width will auto-grow unless `fixed_width` is true. options: type: array description: Array of dropdown options (for dropdown/select fields only) items: "$ref": "#/components/schemas/DropdownOption" default_option: type: string description: Default selected option (for dropdown/select fields only) allow_other: type: boolean description: Whether to allow "Other" option with text input (for dropdown/select fields only) default: false required: - x - "y" - page - placeholder_id - type Files: type: array description: 'Document files can be uploaded by specifying a file URL or base64 string. Either `file_url` or `file_base64` must be present (not both). Valid file types are: .pdf, .doc, .docx, .pages, .ppt, .pptx, .key, .xls, .xlsx, .numbers, .jpg, .jpeg, .png, .tiff, .tif, .webp, .html, and .htm' items: type: object properties: name: type: string description: Name of the file that will be uploaded. file_url: type: string format: url description: Publicly available URL of the file to be uploaded. file_base64: type: string format: byte description: A RFC 4648 base64 string of the file to be uploaded. required: - name Limit: type: integer minimum: 1 maximum: 50 default: 10 description: The number of documents to fetch. Defaults to 10, max is 50. Page: type: integer minimum: 1 default: 1 description: The page number for pagination. Defaults to the first page. Placeholders: type: array description: Placeholders are generally job roles that must complete and/or sign the document. For example, a placeholder might be “Client” or “Legal Department”. When a document is created from the template, you assign a person to each placeholder. items: type: object properties: id: type: string description: A unique identifier that you will give to each placeholder. We recommend numbering sequentially from 1 to X. IDs are required for associating recipients to fields and more. name: type: string description: Name of the placeholder. preassigned_recipient_name: type: string description: In some cases, it may be necessary to pre-fill the name and email for a placeholder because it will always be the same person for all documents created from this template. This sets the name. preassigned_recipient_email: type: string format: email description: In some cases, it may be necessary to pre-fill the name and email for a placeholder because it will always be the same person for all documents created from this template. This sets the email. required: - id - name ReminderRecipients: type: array description: Optional list if recipients within the document to send a reminder email to. If none are specified, all recipients that have not signed yet will receive a reminder email. items: type: object properties: name: type: string description: Recipient's name (required if multiple recipients share the same email). email: type: string format: email description: Recipient's email address. update_recipients_map: type: array description: List of recipients to update on the document. items: type: object required: - id - name - email properties: id: type: string description: The recipient's unique identifier from the Get Document response. name: type: string description: Updated name for the recipient. email: type: string format: email example: jane@example.com description: Updated email address for the recipient. subject: type: string description: Updated email subject for the signature request that this recipient will see. message: type: string description: Updated email message for the signature request that this recipient will see. passcode: type: string description: Updated passcode for the recipient. If set, the signer will be required to enter the passcode before viewing and completing the document. TemplateFieldValues: type: array description: Fields of your template(s) that you can prepopulate with values. Signature and Initials fields cannot be signed through the API. items: type: object properties: api_id: type: string description: The API ID of the field in your template. This field is case sensitive. value: oneOf: - type: string - type: boolean - type: number description: TextField value must be a string or a number. required: - api_id - value TemplateId: type: string format: uuid description: Unique identifier for a template. TemplateIds: type: array items: type: string format: uuid description: Unique identifiers for a list of templates. TemplateRecipients: type: array description: Document recipients are people that must complete and/or sign a document. Recipients of the document must be assigned to a placeholder of the template. Recipients will inherit all placeholder fields and settings. items: type: object properties: id: type: string description: A unique identifier that you will give to each recipient. We recommend numbering sequentially from 1 to X. IDs are required for associating recipients to fields and more. name: type: string description: Name of the recipient. email: type: string format: email description: Email address for the recipient. example: signer@example.com placeholder_name: type: string description: The name of the placeholder you want this recipient assigned to. passcode: type: string description: If set, signers assigned with a passcode will be required to enter the passcode before they’re able to view and complete the document. subject: type: string description: Email subject for the signature request that the recipient will see. Overrides the general subject for the template. message: type: string description: Email message for the signature request that the recipient will see. Overrides the general message for the template. send_email: type: boolean default: false description: Applies on when `embedded_signing` is `true`. By default, recipients are not notified through email to sign when doing embedded signing. Setting this to `true` will send a notification email to the recipient. Default is `false`. send_email_delay: type: integer default: 0 description: If `send_email` is `true` recipients will receive a new document notification immediately. In the case of embedded signing, you can delay this notification to only send if the document is not completed within a few minutes. The email notification will not go out if the document is completed before the delay time is over. Valid values are in minutes ranging from `0` to `60`. Defaults to `0`. required: - id - email UrlOnly: type: boolean default: false description: Whether to return the URL of the completed PDF or the actual PDF content. Defaults to `false`. ObjectOnly: type: boolean default: false description: If true, returns raw NOM-151 constancia certificate object as JSON instead of a zip file or URL. IncludeAuditPage: type: boolean default: true description: Whether to include the audit page as part of the document. Defaults to `true` FileFormat: type: string enum: - pdf - zip description: Format of the file to be downloaded. Supported formats are 'pdf' and 'zip'. UserEmail: type: string format: email description: The email address of the user that sent the Bulk Send. Must have the `admin` or `manager` role to view Bulk Sends of other users. Defaults to the user that the API key belongs to. Labels: type: array description: Labels can be used to organize documents in a way that can make it easy to find using the document search in SignWell. A document can have multiple labels. items: "$ref": "#/components/schemas/LabelRequest" LabelsUpdate: type: array description: Labels can be used to organize documents in a way that can make it easy to find using the document search in SignWell. A document can have multiple labels. Updating labels on a document will replace any existing labels for that document. items: "$ref": "#/components/schemas/LabelRequest" LabelsResponse: type: array description: Labels can be used to organize documents in a way that can make it easy to find using the document search in SignWell. A document can have multiple labels. Updating labels on a document will replace any existing labels for that document. items: "$ref": "#/components/schemas/LabelResponse" LabelResponse: type: object description: Labels can be used to organize documents and templates in a way that can make it easy to find using the document search/template search in SignWell. Labels can be used to organize documents in a way that can make it easy to find using the document search in SignWell. properties: id: type: string format: uuid name: type: string required: - name LabelRequest: type: object description: Labels can be used to organize documents and templates in a way that can make it easy to find using the document search/template search in SignWell. Labels can be used to organize documents in a way that can make it easy to find using the document search in SignWell. properties: name: type: string required: - name DropdownOption: oneOf: - type: string title: SimpleOption description: Simple string option - type: object title: DetailedOption description: Detailed option object properties: name: type: string description: Option display name api_id: type: string description: Unique identifier for the option is_other: type: boolean description: Whether this is the special "Other" option default: false required: - name description: A dropdown option - either a simple string or a detailed object with name and optional api_id CreateBulkSendRequest: type: object properties: template_ids: type: array items: type: string format: uuid example: 00000000-0000-0000-0000-000000000000 description: Unique identifiers for a list of templates. bulk_send_csv: type: string description: A RFC 4648 base64 string of the template CSV file to be validated. example: bmFtZSxlbWFpbApUZXN0LHRlc3RAZXhhbXBsZS5jb20K skip_row_errors: type: boolean default: false description: Whether to skip errors in the rows. Defaults to `false`. api_application_id: type: string format: uuid description: Unique identifier for API Application settings to use. API Applications are optional and mainly used when isolating OAuth apps or for more control over embedded API settings name: type: string description: The name of the Bulk Send. Will be used as the document name for each of the documents. subject: type: string description: Email subject for the signature request that recipients will see. Defaults to the default system subject or a template subject. message: type: string description: Email message for the signature request that recipients will see. Defaults to the default system message or a template message. apply_signing_order: type: boolean default: false description: When set to `true` recipients will sign one at a time in the order of the `recipients` collection of this request. custom_requester_name: type: string description: Sets the custom requester name for the document. When set, this is the name used for all email communications, signing notifications, and in the audit file. custom_requester_email: type: string format: email description: Sets the custom requester email for the document. When set, this is the email used for all email communications, signing notifications, and in the audit file. required: - template_ids - bulk_send_csv BulkSendCsvRequest: type: object properties: template_ids: type: array description: Specify one or more templates to generate a single blank CSV file that will contain available columns for your recipient data. The template_ids[] parameter is an array of template IDs (e.g.,`/?template_ids[]=5a67dbd7-928a-4ea0-a7e2-e476a0eb045f&template_ids[]=d7315111-c671-4b15-8354-c9a19bbaefa0`). Each ID should be a separate parameter in the query string. items: type: string format: uuid example: 00000000-0000-0000-0000-000000000000 bulk_send_csv: type: string description: A RFC 4648 base64 string of the template CSV file to be validated. example: bmFtZSxlbWFpbApUZXN0LHRlc3RAZXhhbXBsZS5jb20K required: - template_ids - bulk_send_csv DocumentRequest: type: object properties: test_mode: type: boolean default: false description: Set to `true` to enable Test Mode. Documents created with Test Mode do not count towards API billing and are not legally binding. Defaults to `false` files: "$ref": "#/components/schemas/Files" name: type: string description: The name of the document. subject: type: string description: Email subject for the signature request that recipients will see. Defaults to the default system subject or a template subject (if the document is created from a template). message: type: string description: Email message for the signature request that recipients will see. Defaults to the default system message or a template message (if the document is created from a template). recipients: "$ref": "#/components/schemas/Recipients" draft: type: boolean default: false description: Whether the document can still be updated before sending a signature request. If set to `false` the document is sent for signing as part of this request. Defaults to `false`. self_sign: type: boolean default: false description: When set to true the document will enter self-sign mode, which allows the document creator to sign and complete a document without any field setup. Must use the embedded_edit_url in the response and (if embedding) the embedded requesting workflow. with_signature_page: type: boolean default: false description: When set to `true` the document will have a signature page added to the end, and all signers will be required to add their signature on that page. expires_in: type: integer minimum: 1 description: Number of days before the signature request expires. Defaults to the account expiration setting or template expiration (if the document is created from a template). reminders: type: boolean default: true description: Whether to send signing reminders to recipients. Reminders are sent on day 3, day 6, and day 10 if set to `true`. Defaults to `true`. apply_signing_order: type: boolean default: false description: When set to `true` recipients will sign one at a time in the order of the `recipients` collection of this request. api_application_id: type: string format: uuid description: Unique identifier for API Application settings to use. API Applications are optional and mainly used when isolating OAuth apps or for more control over embedded API settings embedded_signing: type: boolean default: false description: When set to `true` it enables embedded signing in your website/web application. Embedded functionality works with an iFrame and email authentication is disabled. :embedded_signinig defaults to `false`. embedded_signing_notifications: type: boolean default: false description: On embedding signing, document owners (and CC'd contacts) do not get a notification email when documents have been completed. Setting this param to `true` will send out those final completed notifications. Default is `false` text_tags: type: boolean default: false description: An alternative way (if you can’t use the recommended way) of placing fields in specific locations of your document by using special text tags. Useful when changing the content of your files changes the location of fields. See API documentation for “Text Tags” for details. Defaults to false. custom_requester_name: type: string description: Sets the custom requester name for the document. When set, this is the name used for all email communications, signing notifications, and in the audit file. custom_requester_email: type: string format: email description: Sets the custom requester email for the document. When set, this is the email used for all email communications, signing notifications, and in the audit file. redirect_url: type: string format: url description: A URL that recipients are redirected to after successfully signing a document. allow_decline: type: boolean default: true description: Whether to allow recipients the option to decline signing a document. If multiple signers are involved in a document, any single recipient can cancel the entire document signing process by declining to sign. allow_reassign: type: boolean default: true description: In some cases a signer is not the right person to sign and may need to reassign their signing responsibilities to another person. This feature allows them to reassign the document to someone else. decline_redirect_url: type: string format: url description: A URL that recipients are redirected to if the document is declined. language: type: string description: 'Sets the language for all recipients on the document and updates all recipient side interactions including the document email and the document itself. Accepted languages: English, Français, Español, Deutsch, Polski, Português, Dansk, Nederlands, Italiano, Русский, Svenska, العربية, Ελληνικά, Türkçe, Slovenčina. Defaults to English. Language should be sent in ISO 639-1 format: en, fr, es, de, pl, pt, da, nl, it, ru, sv, ar, el, tr, sk.' metadata: type: object additionalProperties: type: string description: Optional key-value data that can be associated with the document. If set, will be available every time the document data is returned. fields: "$ref": "#/components/schemas/Fields" attachment_requests: "$ref": "#/components/schemas/AttachmentRequests" copied_contacts: "$ref": "#/components/schemas/CopiedContacts" labels: "$ref": "#/components/schemas/Labels" checkbox_groups: "$ref": "#/components/schemas/CheckboxGroups" required: - files - recipients DocumentFromTemplateRequest: type: object properties: test_mode: type: boolean default: false description: Set to `true` to enable Test Mode. Documents created with Test Mode do not count towards API billing and are not legally binding. Defaults to `false` template_id: type: string format: uuid description: Use when you have to create a document from a single template. Either :template_id or :template_ids must be present in the request, not both. template_ids: type: array description: Use when you have to create a document from multiple templates. Either :template_id or :template_ids must be present in the request, not both. items: type: string name: type: string description: The name of the document. subject: type: string description: Email subject for the signature request that recipients will see. Defaults to the default system subject or a template subject (if the document is created from a template). message: type: string description: Email message for the signature request that recipients will see. Defaults to the default system message or a template message (if the document is created from a template). recipients: "$ref": "#/components/schemas/TemplateRecipients" exclude_placeholders: type: array description: Exclude one or more template placeholders when creating a document from a template. Any excluded placeholders (and their associated recipients and fields) will not be included on the created document. Values must match placeholder names on the template. You can't exclude all placeholders (at least one recipient must remain). items: type: string draft: type: boolean default: false description: Whether the document can still be updated before sending a signature request. If set to `false` the document is sent for signing as part of this request. Defaults to `false`. with_signature_page: type: boolean default: false description: When set to `true` the document will have a signature page added to the end, and all signers will be required to add their signature on that page. expires_in: type: integer minimum: 1 description: Number of days before the signature request expires. Defaults to the account expiration setting or template expiration (if the document is created from a template). reminders: type: boolean default: true description: Whether to send signing reminders to recipients. Reminders are sent on day 3, day 6, and day 10 if set to `true`. Defaults to `true`. apply_signing_order: type: boolean default: false description: When set to `true` recipients will sign one at a time in the order of the `recipients` collection of this request. api_application_id: type: string format: uuid description: Unique identifier for API Application settings to use. API Applications are optional and mainly used when isolating OAuth apps or for more control over embedded API settings embedded_signing: type: boolean default: false description: When set to `true` it enables embedded signing in your website/web application. Embedded functionality works with an iFrame and email authentication is disabled. :embedded_signinig defaults to `false`. embedded_signing_notifications: type: boolean default: false description: On embedding signing, document owners (and CC'd contacts) do not get a notification email when documents have been completed. Setting this param to `true` will send out those final completed notifications. Default is `false` text_tags: type: boolean default: false description: An alternative way (if you can’t use the recommended way) of placing fields in specific locations of your document by using special text tags. Useful when changing the content of your files changes the location of fields. See API documentation for “Text Tags” for details. Defaults to false. custom_requester_name: type: string description: Sets the custom requester name for the document. When set, this is the name used for all email communications, signing notifications, and in the audit file. custom_requester_email: type: string format: email description: Sets the custom requester email for the document. When set, this is the email used for all email communications, signing notifications, and in the audit file. redirect_url: type: string format: url description: A URL that recipients are redirected to after successfully signing a document. allow_decline: type: boolean default: true description: Whether to allow recipients the option to decline signing a document. If multiple signers are involved in a document, any single recipient can cancel the entire document signing process by declining to sign. allow_reassign: type: boolean default: true description: In some cases a signer is not the right person to sign and may need to reassign their signing responsibilities to another person. This feature allows them to reassign the document to someone else. decline_redirect_url: type: string format: url description: A URL that recipients are redirected to if the document is declined. language: type: string description: 'Sets the language for all recipients on the document and updates all recipient side interactions including the document email and the document itself. Accepted languages: English, Français, Español, Deutsch, Polski, Português, Dansk, Nederlands, Italiano, Русский, Svenska, العربية, Ελληνικά, Türkçe, Slovenčina. Defaults to English. Language should be sent in ISO 639-1 format: en, fr, es, de, pl, pt, da, nl, it, ru, sv, ar, el, tr, sk.' metadata: type: object additionalProperties: type: string description: Optional key-value data that can be associated with the document. If set, will be available every time the document data is returned. template_fields: "$ref": "#/components/schemas/TemplateFieldValues" files: "$ref": "#/components/schemas/AdditionalFiles" fields: "$ref": "#/components/schemas/AdditionalFields" attachment_requests: "$ref": "#/components/schemas/AttachmentRequests" copied_contacts: "$ref": "#/components/schemas/CopiedContacts" labels: "$ref": "#/components/schemas/LabelsUpdate" checkbox_groups: "$ref": "#/components/schemas/CheckboxGroups" required: - recipients UpdateDocumentAndSendRequest: type: object properties: test_mode: type: boolean default: false description: Set to `true` to enable Test Mode. Documents created with Test Mode do not count towards API billing and are not legally binding. Defaults to `false` name: type: string description: The name of the document. subject: type: string description: Email subject for the signature request that recipients will see. Defaults to the default system subject or a template subject (if the document is created from a template). message: type: string description: Email message for the signature request that recipients will see. Defaults to the default system message or a template message (if the document is created from a template). expires_in: type: integer minimum: 1 description: Number of days before the signature request expires. Defaults to the account expiration setting or template expiration (if the document is created from a template). reminders: type: boolean default: true description: Whether to send signing reminders to recipients. Reminders are sent on day 3, day 6, and day 10 if set to `true`. Defaults to `true`. apply_signing_order: type: boolean default: false description: When set to `true` recipients will sign one at a time in the order of the `recipients` collection of this request. api_application_id: type: string format: uuid description: Unique identifier for API Application settings to use. API Applications are optional and mainly used when isolating OAuth apps or for more control over embedded API settings embedded_signing: type: boolean default: false description: When set to `true` it enables embedded signing in your website/web application. Embedded functionality works with an iFrame and email authentication is disabled. :embedded_signinig defaults to `false`. embedded_signing_notifications: type: boolean default: false description: On embedding signing, document owners (and CC'd contacts) do not get a notification email when documents have been completed. Setting this param to `true` will send out those final completed notifications. Default is `false` custom_requester_name: type: string description: Sets the custom requester name for the document. When set, this is the name used for all email communications, signing notifications, and in the audit file. custom_requester_email: type: string format: email description: Sets the custom requester email for the document. When set, this is the email used for all email communications, signing notifications, and in the audit file. redirect_url: type: string format: url description: A URL that recipients are redirected to after successfully signing a document. allow_decline: type: boolean default: true description: Whether to allow recipients the option to decline signing a document. If multiple signers are involved in a document, any single recipient can cancel the entire document signing process by declining to sign. allow_reassign: type: boolean default: true description: In some cases a signer is not the right person to sign and may need to reassign their signing responsibilities to another person. This feature allows them to reassign the document to someone else. decline_redirect_url: type: string format: url description: A URL that recipients are redirected to if the document is declined. metadata: type: object additionalProperties: type: string description: Optional key-value data that can be associated with the document. If set, will be available every time the document data is returned. labels: "$ref": "#/components/schemas/LabelsUpdate" checkbox_groups: "$ref": "#/components/schemas/CheckboxGroups" SendReminderRequest: type: object properties: recipients: "$ref": "#/components/schemas/ReminderRecipients" update_recipients_request: type: object properties: recipients: "$ref": "#/components/schemas/update_recipients_map" required: - recipients DocumentTemplateRequest: type: object properties: files: "$ref": "#/components/schemas/Files" name: type: string description: The name of the template. subject: type: string description: Email subject for the signature request that recipients will see. Defaults to the default system subject or a template subject (if the document is created from a template). message: type: string description: Email message for the signature request that recipients will see. Defaults to the default system message or a template message (if the document is created from a template). placeholders: "$ref": "#/components/schemas/Placeholders" copied_placeholders: "$ref": "#/components/schemas/CopiedPlaceholders" draft: type: boolean default: false description: Whether the template can still be updated before it is ready for usage. If set to `false` the template is marked as `Available` and it will be ready for use. Defaults to `false`. expires_in: type: integer minimum: 1 description: Number of days before the signature request expires. Defaults to the account expiration setting or template expiration (if the document is created from a template). reminders: type: boolean default: true description: Whether to send signing reminders to recipients. Reminders are sent on day 3, day 6, and day 10 if set to `true`. Defaults to `true`. apply_signing_order: type: boolean default: false description: When set to `true` recipients will sign one at a time in the order of the `recipients` collection of this request. api_application_id: type: string format: uuid description: Unique identifier for API Application settings to use. API Applications are optional and mainly used when isolating OAuth apps or for more control over embedded API settings text_tags: type: boolean default: false description: An alternative way (if you can’t use the recommended way) of placing fields in specific locations of your document by using special text tags. Useful when changing the content of your files changes the location of fields. See API documentation for “Text Tags” for details. Defaults to false. redirect_url: type: string format: url description: A URL that recipients are redirected to after successfully signing a document. allow_decline: type: boolean default: true description: Whether to allow recipients the option to decline signing a document. If multiple signers are involved in a document, any single recipient can cancel the entire document signing process by declining to sign. allow_reassign: type: boolean default: true description: In some cases a signer is not the right person to sign and may need to reassign their signing responsibilities to another person. This feature allows them to reassign the document to someone else. decline_redirect_url: type: string format: url description: A URL that recipients are redirected to if the document is declined. language: type: string description: 'Sets the language for the template and documents created from the template for all recipient side interactions including the document email and the document itself. Accepted languages: English, Français, Español, Deutsch, Polski, Português, Dansk, Nederlands, Italiano, Русский, Svenska, العربية, Ελληνικά, Türkçe, Slovenčina. Language should be sent in ISO 639-1 format: en, fr, es, de, pl, pt, da, nl, it, ru, sv, ar, el, tr, sk.' metadata: type: object additionalProperties: type: string description: Optional key-value data that can be associated with the document. If set, will be available every time the document data is returned. fields: "$ref": "#/components/schemas/TemplateFields" attachment_requests: "$ref": "#/components/schemas/TemplateAttachmentRequests" labels: "$ref": "#/components/schemas/Labels" checkbox_groups: "$ref": "#/components/schemas/TemplateCheckboxGroups" required: - files - placeholders DocumentTemplateUpdateRequest: type: object properties: name: type: string description: The name of the template. subject: type: string description: Email subject for the signature request that recipients will see. Defaults to the default system subject or a template subject (if the document is created from a template). message: type: string description: Email message for the signature request that recipients will see. Defaults to the default system message or a template message (if the document is created from a template). draft: type: boolean default: false description: Whether the template can still be updated before it is ready for usage. If set to `false` the template is marked as `Available` and it will be ready for use. Defaults to `false`. expires_in: type: integer minimum: 1 description: Number of days before the signature request expires. Defaults to the account expiration setting or template expiration (if the document is created from a template). reminders: type: boolean default: true description: Whether to send signing reminders to recipients. Reminders are sent on day 3, day 6, and day 10 if set to `true`. Defaults to `true`. apply_signing_order: type: boolean default: false description: When set to `true` recipients will sign one at a time in the order of the `recipients` collection of this request. api_application_id: type: string format: uuid description: Unique identifier for API Application settings to use. API Applications are optional and mainly used when isolating OAuth apps or for more control over embedded API settings redirect_url: type: string format: url description: A URL that recipients are redirected to after successfully signing a document. allow_decline: type: boolean default: true description: Whether to allow recipients the option to decline signing a document. If multiple signers are involved in a document, any single recipient can cancel the entire document signing process by declining to sign. allow_reassign: type: boolean default: true description: In some cases a signer is not the right person to sign and may need to reassign their signing responsibilities to another person. This feature allows them to reassign the document to someone else. decline_redirect_url: type: string format: url description: A URL that recipients are redirected to if the document is declined. metadata: type: object additionalProperties: type: string description: Optional key-value data that can be associated with the document. If set, will be available every time the document data is returned. labels: "$ref": "#/components/schemas/LabelsUpdate" checkbox_groups: "$ref": "#/components/schemas/TemplateCheckboxGroups" CompletedPdfResponse: oneOf: - "$ref": "#/components/schemas/CompletedPdfUrlResponse" - "$ref": "#/components/schemas/CompletedPdfBinaryResponse" - "$ref": "#/components/schemas/CompletedPdfZipResponse" CompletedPdfUrlResponse: type: object description: JSON response containing the URL to the completed PDF file (returned when url_only=true) properties: file_url: type: string format: url description: URL to download the completed document required: - file_url CompletedPdfBinaryResponse: type: string format: binary description: Raw PDF binary data (default response when url_only=false) CompletedPdfZipResponse: type: string format: binary description: ZIP file containing the completed PDF (returned when file_format=zip) Nom151CertificateResponse: type: object description: NOM-151 certificate data returned when object_only=true properties: nom151: type: object properties: status: type: string description: Certificate status (pending, issued, failed) transactionId: type: string description: RSA signature / Transaction ID hash: type: string description: Document digest (SHA-256 hash) folio: type: string description: Certificate number / Folio issuedAt: type: string format: date-time description: Certificate issuance timestamp provider: type: string description: Certificate provider (e.g., SeguriData) validationUrl: type: string format: url description: URL to validate the certificate constancia: type: string description: Base64-encoded certificate file required: - status - transactionId - hash - folio - issuedAt - provider - validationUrl - constancia required: - nom151 Nom151UrlResponse: type: object description: NOM-151 download URL returned when url_only=true properties: file_url: type: string format: url description: Public URL to download the certificate ZIP file required: - file_url DocumentResponse: type: object properties: test_mode: type: boolean id: type: string api_application_id: type: string format: uuid nullable: true requester_email_address: type: string format: email custom_requester_name: type: string nullable: true custom_requester_email: type: string format: email nullable: true name: type: string subject: type: string message: type: string metadata: type: object additionalProperties: type: string nullable: true created_at: type: string format: date-time updated_at: type: string format: date-time recipients: type: array items: type: object properties: id: type: string name: type: string email: type: string body: type: string message: type: string nullable: true subject: type: string nullable: true send_email: type: boolean nullable: true send_email_delay: type: integer nullable: true signing_order: type: integer signing_url: type: string format: url nullable: true embedded_signing_url: type: string format: url nullable: true bounced: type: boolean nullable: true bounced_details: type: string nullable: true attachment_requests: type: array items: "$ref": "#/components/schemas/AttachmentRequestInfo" passcode: type: string nullable: true status: type: string nullable: true required: - name - email status: type: string description: 'Possible values: Draft, Created, Sending, Sent, Pending, Viewed, Completed, Manually completed, Declined, Canceled, Bounced, Blocked, Error, Expired' reminders: type: boolean archived: type: boolean embedded_signing: type: boolean embedded_edit_url: type: string format: url nullable: true embedded_preview_url: type: string format: url nullable: true apply_signing_order: type: boolean redirect_url: type: string format: url nullable: true decline_redirect_url: type: string format: url nullable: true language: type: string expires_in: type: integer decline_message: type: string nullable: true error_message: type: string nullable: true template_id: type: string nullable: true template_ids: type: array items: type: string embedded_signing_notifications: type: boolean attachment_requests: type: array items: type: object properties: name: type: string recipient_id: type: string required: type: boolean required: - name - recipient_id files: type: array items: "$ref": "#/components/schemas/FileInfo" copied_contacts: type: array items: "$ref": "#/components/schemas/CopiedContactInfo" fields: type: array items: type: array items: type: object properties: x: type: number format: float "y": type: number format: float page: type: integer recipient: type: object properties: email: type: string format: email name: type: string required: - email - name api_id: type: string format: uuid name: type: string nullable: true date_format: "$ref": "#/components/schemas/DateFormat" fixed_width: type: boolean formula: type: string label: type: string lock_sign_date: type: boolean required: type: boolean type: "$ref": "#/components/schemas/FieldType" validation: "$ref": "#/components/schemas/TextValidation" value: oneOf: - type: string - type: boolean - type: number nullable: true height: type: string width: type: string recipient_id: type: string nullable: true signing_elements_group_id: type: string format: uuid placeholder_name: type: string options: type: array description: Dropdown options (for dropdown/select fields) items: type: object properties: name: type: string api_id: type: string is_other: type: boolean default_option: type: string description: Default selected option allow_other: type: boolean description: Whether "Other" option is allowed required: - x - "y" - page allow_decline: type: boolean nullable: true allow_reassign: type: boolean nullable: true labels: type: array items: "$ref": "#/components/schemas/LabelInfo" checkbox_groups: type: array items: "$ref": "#/components/schemas/CheckboxGroupInfo" required: - id - test_mode DocumentTemplateResponse: type: object properties: id: type: string api_application_id: type: string format: uuid nullable: true requester_email_address: type: string format: email custom_requester_name: type: string nullable: true custom_requester_email: type: string format: email nullable: true name: type: string subject: type: string message: type: string metadata: type: object nullable: true additionalProperties: type: string created_at: type: string format: date-time updated_at: type: string format: date-time placeholders: type: array items: type: object properties: id: type: string name: type: string subject: type: string nullable: true message: type: string nullable: true preassigned_recipient_name: type: string preassigned_recipient_email: type: string signing_order: type: integer attachment_requests: type: array items: "$ref": "#/components/schemas/AttachmentRequestInfo" required: - name copied_placeholders: type: array items: type: object properties: id: type: string placeholder_id: type: string name: type: string subject: type: string nullable: true message: type: string nullable: true preassigned_recipient_name: type: string preassigned_recipient_email: type: string required: - name status: type: string reminders: type: boolean nullable: true archived: type: boolean embedded_edit_url: type: string format: url nullable: true template_link: type: string format: url template_id: type: string nullable: true apply_signing_order: type: boolean redirect_url: type: string format: url nullable: true decline_redirect_url: type: string format: url nullable: true language: type: string expires_in: type: integer nullable: true files: type: array items: "$ref": "#/components/schemas/FileInfo" fields: type: array items: type: array items: type: object properties: x: type: number format: float "y": type: number format: float page: type: integer recipient: type: object properties: email: type: string format: email name: type: string required: - email - name api_id: type: string format: uuid name: type: string nullable: true date_format: "$ref": "#/components/schemas/DateFormat" fixed_width: type: boolean formula: type: string label: type: string lock_sign_date: type: boolean required: type: boolean type: "$ref": "#/components/schemas/FieldType" validation: "$ref": "#/components/schemas/TextValidation" value: oneOf: - type: string - type: boolean - type: number nullable: true height: type: string width: type: string recipient_id: type: string nullable: true signing_elements_group_id: type: string format: uuid placeholder_name: type: string options: type: array description: Dropdown options (for dropdown/select fields) items: type: object properties: name: type: string api_id: type: string is_other: type: boolean default_option: type: string description: Default selected option allow_other: type: boolean description: Whether "Other" option is allowed required: - x - "y" - page allow_decline: type: boolean nullable: true allow_reassign: type: boolean nullable: true labels: type: array items: "$ref": "#/components/schemas/LabelInfo" checkbox_groups: type: array items: "$ref": "#/components/schemas/CheckboxGroupInfo" required: - id DocumentFromTemplateResponse: type: object properties: test_mode: type: boolean id: type: string template_id: type: string template_ids: type: array items: type: string api_application_id: type: string format: uuid nullable: true requester_email_address: type: string format: email custom_requester_name: type: string nullable: true custom_requester_email: type: string format: email nullable: true name: type: string subject: type: string message: type: string metadata: type: object additionalProperties: type: string nullable: true created_at: type: string format: date-time updated_at: type: string format: date-time recipients: type: array items: type: object properties: id: type: string name: type: string email: type: string role: type: string message: type: string nullable: true subject: type: string nullable: true send_email: type: boolean nullable: true send_email_delay: type: integer nullable: true signing_order: type: integer signing_url: type: string format: url nullable: true embedded_signing_url: type: string format: url nullable: true bounced: type: boolean nullable: true bounced_details: type: string nullable: true attachment_requests: type: array items: "$ref": "#/components/schemas/AttachmentRequestInfo" passcode: type: string nullable: true status: type: string placeholder_name: type: string required: - email status: type: string description: 'Possible values: Draft, Created, Sending, Sent, Pending, Viewed, Completed, Manually completed, Declined, Canceled, Bounced, Blocked, Error, Expired' reminders: type: boolean archived: type: boolean embedded_signing: type: boolean embedded_edit_url: type: string format: url embedded_preview_url: type: string format: url nullable: true apply_signing_order: type: boolean redirect_url: type: string format: url nullable: true decline_redirect_url: type: string format: url nullable: true language: type: string expires_in: type: integer decline_message: type: string nullable: true error_message: type: string nullable: true embedded_signing_notifications: type: boolean attachment_requests: type: array items: type: object properties: name: type: string recipient_id: type: string required: type: boolean required: - name - recipient_id files: type: array items: "$ref": "#/components/schemas/FileInfo" copied_contacts: type: array items: "$ref": "#/components/schemas/CopiedContactInfo" fields: type: array items: type: array items: type: object properties: x: type: number format: float "y": type: number format: float page: type: integer recipient: type: object properties: email: type: string format: email name: type: string role: type: string required: - email - name api_id: type: string format: uuid name: type: string nullable: true date_format: "$ref": "#/components/schemas/DateFormat" fixed_width: type: boolean formula: type: string label: type: string lock_sign_date: type: boolean required: type: boolean type: "$ref": "#/components/schemas/FieldType" validation: "$ref": "#/components/schemas/TextValidation" value: oneOf: - type: string - type: boolean - type: number nullable: true height: type: string width: type: string recipient_id: type: string nullable: true signing_elements_group_id: type: string format: uuid placeholder_name: type: string options: type: array description: Dropdown options (for dropdown/select fields) items: type: object properties: name: type: string api_id: type: string is_other: type: boolean default_option: type: string description: Default selected option allow_other: type: boolean description: Whether "Other" option is allowed required: - x - "y" - page allow_decline: type: boolean nullable: true allow_reassign: type: boolean nullable: true labels: type: array items: "$ref": "#/components/schemas/LabelInfo" checkbox_groups: type: array items: "$ref": "#/components/schemas/CheckboxGroupInfo" required: - id - test_mode PaginationMeta: type: object description: Pagination metadata for list responses properties: current_page: type: integer description: Current page number next_page: type: integer nullable: true description: Next page number, null if on last page previous_page: type: integer nullable: true description: Previous page number, null if on first page total_count: type: integer description: Total number of records total_pages: type: integer description: Total number of pages required: - current_page - total_count - total_pages DocumentListResponse: type: object description: List of documents with pagination properties: documents: type: array items: "$ref": "#/components/schemas/DocumentResponse" current_page: type: integer next_page: type: integer nullable: true previous_page: type: integer nullable: true total_count: type: integer total_pages: type: integer required: - documents - current_page - total_count - total_pages DocumentTemplateListResponse: type: object description: List of templates with pagination properties: templates: type: array items: "$ref": "#/components/schemas/DocumentTemplateResponse" current_page: type: integer next_page: type: integer nullable: true previous_page: type: integer nullable: true total_count: type: integer total_pages: type: integer required: - templates - current_page - total_count - total_pages BulkSendListItem: type: object description: Bulk send summary in list responses properties: id: type: string format: uuid name: type: string api_application_id: type: string format: uuid nullable: true documents_count: type: integer documents_completed: type: integer documents_not_completed: type: integer created_at: type: string format: date-time user_id: type: string format: uuid nullable: true status: type: string template_ids: type: array items: type: string format: uuid required: - id - name - documents_count - documents_completed - documents_not_completed - created_at - status - template_ids BulkSendListResponse: type: object description: List of bulk sends with pagination properties: bulk_sends: type: array items: "$ref": "#/components/schemas/BulkSendListItem" current_page: type: integer next_page: type: integer nullable: true previous_page: type: integer nullable: true total_count: type: integer total_pages: type: integer required: - bulk_sends - current_page - total_count - total_pages AccountInfoResponse: type: object description: Account or workspace information properties: id: type: string format: uuid name: type: string plan_tier: type: string active_templates: type: integer can_create_template: type: boolean can_create_tracking_document: type: boolean can_create_completion_document: type: boolean active_users: type: array items: type: object properties: id: type: string format: uuid name: type: string email: type: string format: email has_google_registration: type: boolean required: - id - name - email preferences: type: object properties: date_format: type: string days_until_links_expire: type: integer disable_apply_everywhere: type: boolean disable_apply_everywhere_effective: type: boolean disable_drawn_signatures: type: boolean disable_typed_signatures: type: boolean disable_uploaded_signatures: type: boolean enable_redirect: type: boolean hide_document_id_in_audit: type: boolean mute_branding: type: boolean redirect_url: type: string nullable: true separate_audit_pdf: type: boolean separate_completed_file: type: boolean enable_nom151_compliance: type: boolean required: - id - name - plan_tier MeResponse: type: object description: Account information associated with the API key properties: id: type: string format: uuid description: Membership ID role: type: string description: Role within the account (e.g. owner, admin, member) archived: type: boolean user: type: object description: The authenticated user properties: id: type: string format: uuid name: type: string email: type: string format: email has_google_registration: type: boolean first_name: type: string preferences: type: object properties: sales_document: type: boolean time_zone: type: string smart_fields: type: boolean required: - id - name - email account: "$ref": "#/components/schemas/AccountInfoResponse" workspace: "$ref": "#/components/schemas/AccountInfoResponse" contact: type: object description: The contact record for the authenticated user properties: id: type: string format: uuid email: type: string format: email name: type: string company_name: type: string nullable: true phone_number: type: string nullable: true alt_phone_number: type: string nullable: true website: type: string nullable: true initials: type: string archived: type: boolean required: - id - email - name required: - id - role - user - account - workspace - contact ApiApplicationResponse: type: object description: API application details properties: id: type: string format: uuid name: type: string callback_urls: type: array items: type: string nullable: true created_at: type: string format: date-time updated_at: type: string format: date-time owner: type: object properties: id: type: string format: uuid account_id: type: string format: uuid name: type: string email: type: string format: email required: - id - name - email preferences: type: object properties: button_text_color: type: string nullable: true buttons_border_radius: type: integer custom_logo_file: type: string nullable: true link_text_color: type: string nullable: true primary_color: type: string nullable: true required: - id - name BulkSendResponse: type: object description: Bulk send details properties: id: type: string format: uuid name: type: string api_application_id: type: string format: uuid nullable: true documents_count: type: integer documents_completed: type: integer documents_not_completed: type: integer created_at: type: string format: date-time user_id: type: string format: uuid nullable: true status: type: string templates: type: array items: type: object properties: id: type: string format: uuid name: type: string required: - id - name required: - id - documents_count - created_at - status BulkSendCreateResponse: type: object description: Bulk send creation response properties: id: type: string format: uuid template_ids: type: array items: type: string format: uuid api_application_id: type: string format: uuid nullable: true documents_count: type: integer created_at: type: string format: date-time user_id: type: string format: uuid nullable: true status: type: string required: - id - template_ids - documents_count - created_at - status BulkSendDocumentsResponse: type: object description: Paginated list of documents in a bulk send properties: id: type: string format: uuid name: type: string api_application_id: type: string format: uuid nullable: true created_at: type: string format: date-time user_id: type: string format: uuid nullable: true status: type: string documents: type: array items: "$ref": "#/components/schemas/DocumentResponse" current_page: type: integer next_page: type: integer nullable: true previous_page: type: integer nullable: true total_count: type: integer total_pages: type: integer required: - id - documents - current_page - total_count - total_pages BulkSendValidateCsvResponse: type: object description: Validated bulk send CSV response with defaults applied properties: bulk_send_csv: type: string description: Base64-encoded CSV content template_ids: type: array items: type: string format: uuid skip_row_errors: type: boolean api_application_id: type: string format: uuid nullable: true name: type: string subject: type: string message: type: string apply_signing_order: type: boolean required: - bulk_send_csv - template_ids WebhookResponse: type: object description: Webhook subscription properties: id: type: string format: uuid callback_url: type: string format: url api_application_id: type: string format: uuid nullable: true required: - id - callback_url WebhookListResponse: type: array description: List of webhook subscriptions items: "$ref": "#/components/schemas/WebhookResponse" ErrorResponse: type: object description: Standard error response properties: message: type: string description: Human-readable error message meta: type: object properties: error: type: string description: Error code identifier message: type: string description: Detailed error message messages: type: array items: type: string description: List of error messages required: - error - message ValidationErrorResponse: type: object description: Validation error response. The errors object contains field-specific error details with dynamic keys. properties: errors: type: object additionalProperties: true description: Field-specific validation errors. Keys are field names (e.g., recipients, fields, files). Values can be strings, arrays of strings, or nested objects with further field-specific errors. required: - errors RateLimitErrorResponse: type: object description: Rate limit exceeded error response (HTTP 429) properties: error: type: string description: Rate limit error message indicating the limit and reset time required: - error servers: - url: https://www.signwell.com