SignNow Documents API

Upload, manage, and retrieve documents

OpenAPI Specification

signnow-documents-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: SignNow REST Authentication Documents API
  description: The SignNow REST API enables developers to embed legally binding e-signature workflows into any application. It supports document upload, template-based signing workflows, signature invitations, bulk signing, user management, and webhook notifications.
  version: '2.0'
  contact:
    name: SignNow API Support
    email: api@signnow.com
    url: https://docs.signnow.com
  termsOfService: https://www.signnow.com/terms-of-service
  license:
    name: MIT
    url: https://github.com/signnow/OpenAPI-Specification/blob/master/LICENSE
servers:
- url: https://api.signnow.com
  description: Production
- url: https://api-eval.signnow.com
  description: Sandbox
security:
- BearerAuth: []
tags:
- name: Documents
  description: Upload, manage, and retrieve documents
paths:
  /document:
    get:
      operationId: listDocuments
      summary: List Documents
      description: Retrieve a list of all documents for the authenticated user.
      tags:
      - Documents
      parameters:
      - name: per_page
        in: query
        schema:
          type: integer
          default: 20
          maximum: 100
        description: Number of documents per page
      - name: page
        in: query
        schema:
          type: integer
          default: 1
        description: Page number
      responses:
        '200':
          description: List of documents
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Document'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
    post:
      operationId: uploadDocument
      summary: Upload Document
      description: Upload a PDF document to SignNow for e-signature processing.
      tags:
      - Documents
      requestBody:
        required: true
        content:
          multipart/form-data:
            schema:
              type: object
              required:
              - file
              properties:
                file:
                  type: string
                  format: binary
                  description: PDF file to upload
                Tags:
                  type: string
                  description: Comma-separated tags
      responses:
        '200':
          description: Document uploaded
          content:
            application/json:
              schema:
                type: object
                properties:
                  id:
                    type: string
                    description: Document ID
        '400':
          description: Invalid file
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /document/{document_id}:
    get:
      operationId: getDocument
      summary: Get Document
      description: Retrieve document details including fields, signers, and status.
      tags:
      - Documents
      parameters:
      - name: document_id
        in: path
        required: true
        schema:
          type: string
        description: Unique document identifier
      responses:
        '200':
          description: Document details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Document'
        '404':
          description: Document not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
    delete:
      operationId: deleteDocument
      summary: Delete Document
      description: Permanently delete a document from SignNow.
      tags:
      - Documents
      parameters:
      - name: document_id
        in: path
        required: true
        schema:
          type: string
        description: Unique document identifier
      responses:
        '200':
          description: Document deleted
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
        '404':
          description: Document not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /document/{document_id}/download:
    get:
      operationId: downloadDocument
      summary: Download Document
      description: Download a document as a PDF file, including signatures and completed fields.
      tags:
      - Documents
      parameters:
      - name: document_id
        in: path
        required: true
        schema:
          type: string
        description: Unique document identifier
      - name: type
        in: query
        schema:
          type: string
          enum:
          - collapsed
          - with_history
        description: Download type
      responses:
        '200':
          description: Document PDF
          content:
            application/pdf:
              schema:
                type: string
                format: binary
        '404':
          description: Document not found
components:
  schemas:
    SigningRequest:
      type: object
      properties:
        id:
          type: string
        signer_email:
          type: string
          format: email
        status:
          type: string
          enum:
          - pending
          - fulfilled
          - declined
          - expired
        created:
          type: string
          format: date-time
        updated:
          type: string
          format: date-time
    Document:
      type: object
      properties:
        id:
          type: string
          description: Unique document ID
        document_name:
          type: string
          description: Document name/title
        created:
          type: string
          format: date-time
          description: Creation timestamp
        updated:
          type: string
          format: date-time
          description: Last update timestamp
        origin_document_id:
          type: string
          description: Source template ID if created from template
        user_id:
          type: string
          description: Owner user ID
        roles:
          type: array
          items:
            type: object
            properties:
              unique_id:
                type: string
              name:
                type: string
              signing_order:
                type: integer
          description: Signing roles defined for this document
        fields:
          type: array
          items:
            $ref: '#/components/schemas/Field'
          description: Form fields in the document
        requests:
          type: array
          items:
            $ref: '#/components/schemas/SigningRequest'
          description: Pending signing requests
        tags:
          type: array
          items:
            type: string
          description: Document tags
        page_count:
          type: integer
          description: Number of pages in document
        signing_session_caching:
          type: boolean
        fieldinvite_status:
          type: string
          enum:
          - pending
          - fulfilled
          - declined
          - expired
          description: Overall invite status
    Error:
      type: object
      properties:
        errors:
          type: array
          items:
            type: object
            properties:
              code:
                type: integer
              message:
                type: string
    Field:
      type: object
      properties:
        type:
          type: string
          enum:
          - signature
          - initials
          - text
          - date
          - checkbox
          - dropdown
          - radiobutton
          description: Field type
        x:
          type: number
          description: X coordinate on page
        y:
          type: number
          description: Y coordinate on page
        width:
          type: number
          description: Field width
        height:
          type: number
          description: Field height
        page_number:
          type: integer
          description: Page number (0-indexed)
        role_id:
          type: string
          description: Role assigned to fill this field
        required:
          type: boolean
          description: Whether this field is required
        label:
          type: string
          description: Field label
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      description: OAuth 2.0 Bearer token. Obtain via POST /oauth2/token.
externalDocs:
  description: SignNow API Documentation
  url: https://docs.signnow.com/docs/signnow/welcome