SignWell Document API

Create, send, and manage documents for electronic signing.

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/signwell-document-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

signwell-document-api-openapi.yml Raw ↑
openapi: 3.0.1
info:
  title: SignWell Developer API Application Document API
  description: API for creating, managing, and tracking electronic signature workflows.
  version: v1
  termsOfService: https://www.signwell.com/terms/
  contact:
    email: support@signwell.com
servers:
- url: https://www.signwell.com
tags:
- name: Document
  description: Create, send, and manage documents for electronic signing.
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: null
                  embedded_edit_url: https://www.signwell.com/edit/document/cb858cfc-3bd0-41a8-9b29-abb1da693aac/
                  error_message: null
                  embedded_preview_url: null
                  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: null
                  custom_requester_email: null
                  custom_requester_name: null
                  decline_redirect_url: null
                  embedded_signing: false
                  expires_in: 30
                  metadata: {}
                  redirect_url: null
                  reminders: true
                  apply_signing_order: false
                  message: <p>Hey there,</p><p>&nbsp;</p><p>Please review and complete this document. You can click on the document below to get started.</p>
                  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: null
                  embedded_edit_url: https://www.signwell.com/edit/document/302e3717-2a9d-4126-a5f1-b7143b21a018/
                  error_message: null
                  embedded_preview_url: null
                  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: null
                  custom_requester_email: null
                  custom_requester_name: null
                  decline_redirect_url: null
                  embedded_signing: false
                  expires_in: 30
                  metadata: {}
                  redirect_url: null
                  reminders: true
                  apply_signing_order: false
                  message: <p>Hey there,</p><p>&nbsp;</p><p>Please review and complete this document. You can click on the document below to get started.</p>
                  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: null
                  embedded_edit_url: https://www.signwell.com/edit/document/28e9b87a-88dd-4f08-a1a2-633649ccfa3c/
                  error_message: null
                  embedded_preview_url: null
                  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: null
                  custom_requester_email: null
                  custom_requester_name: null
                  decline_redirect_url: null
                  embedded_signing: false
                  expires_in: 30
                  metadata: {}
                  redirect_url: null
                  reminders: true
                  apply_signing_order: false
                  message: <p>Hey there,</p><p>&nbsp;</p><p>Please review and complete this document. You can click on the document below to get started.</p>
                  subject: Please complete dictate_publish/error.avi
                  labels: []
                  fields: []
                  files: []
                  copied_contacts: []
                  recipients: []
                  checkbox_groups: []
                current_page: 1
                next_page: null
                previous_page: null
                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: null
                embedded_edit_url: https://www.signwell.com/edit/document/3560287f-49f5-423e-a37a-37cd7403c1c8/
                error_message: null
                embedded_preview_url: null
                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: null
                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: null
                    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: null
                    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: null
                    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: null
                    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: null
                    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: null
                    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: null
                  bounced_details: null
                  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: null
                  name: Recipient 2
                  passcode: null
                  send_email: false
                  send_email_delay: 0
                  status: created
                  subject: null
                  signing_order: 2
                  signing_url: https://www.signwell.com/docs/bf45f2dad5/
                  bounced: null
                  bounced_details: null
                  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: null
                  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: null
                embedded_edit_url: https://www.signwell.com/edit/document/bf0ff8a4-50ec-42d7-8167-72fb404a5276/
                error_message: null
                embedded_preview_url: null
                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: null
                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: <p>Hey there,</p><p>&nbsp;</p><p>Please review and complete this document. You can click on the document below to get started.</p>
                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: null
                    width: '13.0'
                    x: 1.1
                    y: 1.1
                    name: null
                    recipient_id: null
                    signing_elements_group_id: 6cd1fb22-417c-48e9-8674-d95c9613ff73
                  - api_id: CheckBox_3
                    height: '13.0'
                    page: 1
                    required: true
                    type: checkbox
                    value: null
                    width: '13.0'
                    x: 1.1
                    y: 1.1
                    name: null
                    recipient_id: null
                  - api_id: Signature_1
                    height: '32.0'
                    page: 1
                    required: true
                    type: signature
                    value: null
                    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: null
                  name: Rodolfo Daniel
                  passcode: null
                  send_email: null
                  send_email_delay: null
                  status: created
                  subject: null
                  signing_order: 1
                  signing_url: https://www.signwell.com/docs/05791040ca/
                  bounced: null
                  bounced_details: null
                  attachment_requests:
                  - name: introduction_premium/vitae.html
                    required: true
             

# --- truncated at 32 KB (136 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/signwell/refs/heads/main/openapi/signwell-document-api-openapi.yml