SkySlope Documents API

The Documents API from SkySlope — 5 operation(s) for documents.

Operations 8

GET /documents/{documentId} Get Document
PATCH /documents/{documentId} Update Document
DELETE /documents/{documentId} Delete Document.
GET /files/{fileId}/documents Get File Documents
PATCH /files/{fileId}/documents Add Documents to File
GET /documents/signed/{fileId} Get Signed Documents
POST /documents/sign/subscribe/{fileId} Subscribe To Signed Documents Webhook
POST /files/{fileId}/documents/upload Upload Document to File

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/skyslope-documents-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 form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

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

OpenAPI Specification

skyslope-documents-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  x-logo:
    url: https://s3.amazonaws.com/cdn.skyslope.com/forms/forms-logo-w-top-padding.png
    href: https://skyslope.com/
    altText: SkySlope
  title: SkySlope Partnership API Reference Documents API
  version: 1.0.0
  description: "# Introduction\n  The SkySlope Forms API is organized around [REST](https://en.wikipedia.org/wiki/Representational_state_transfer).\n  Our API has predictable resource-oriented URLs, accepts JSON-encoded request bodies, returns JSON-encoded responses,\n  and uses standard HTTP response codes, authentication, and verbs.<br/><br/>\n  NOTE: Endpoints marked with an asterisk (*) will be available to our partners in the near future.\n  # Authentication\n  This API uses [OAuth 2.0 authorization code flow](https://www.oauth.com/oauth2-servers/server-side-apps/authorization-code/)\n  to obtain an access token that can be used to authenticate subsequent API requests.\n  ## Access Tokens\n  ### Request\n  To obtain an access token, first redirect the user to the authorization endpoint:\n  ```\n  https://accounts.skyslope.com/oauth2/authorize?\n    response_type=code\n    &client_id={YOUR_CLIENT_ID}\n    &redirect_uri={YOUR_REDIRECT_URI}\n    &scope=forms.files\n    &state={RANDOM_STATE_VALUE}\n    &code_challenge={CODE_CHALLENGE}\n    &code_challenge_method=S256\n  ```\n  After the user authorizes your application, they'll be redirected back to your redirect URI with an authorization code.\n  Exchange this code for an access token by making a POST request to the token endpoint:\n  ```\n  POST /oauth2/token HTTP/1.1\n  Host: accounts.skyslope.com\n  Content-Type: application/x-www-form-urlencoded\n  \n  grant_type=authorization_code\n  &client_id={YOUR_CLIENT_ID}\n  &client_secret={YOUR_CLIENT_SECRET}\n  &code={AUTHORIZATION_CODE}\n  &redirect_uri={YOUR_REDIRECT_URI}\n  &code_verifier={CODE_VERIFIER}\n  ```\n  ### Usage\n  Authentication to the API is performed by including your access token in the **Authorization** header of your\n  API requests with the Bearer authentication scheme:\n  ```\n  GET /partner/api/files HTTP/1.1\n  Host: forms.skyslope.com\n  Authorization: Bearer {YOUR_ACCESS_TOKEN}\n  ```\n  All API requests must be made over [HTTPS](https://en.wikipedia.org/wiki/HTTPS). Calls made over plain HTTP will fail.\n  API requests without authentication will also fail.\n  ## Refresh Tokens\n  Refresh tokens allow you to obtain new access tokens without requiring the user to re-authenticate. When you first\n  complete the OAuth flow, you'll receive both an access token and a refresh token.\n  ### Request\n  To receive a refresh token, include the `offline_access` scope in your initial authorization request:\n  ```\n  https://accounts.skyslope.com/oauth2/authorize?\n    response_type=code\n    &client_id={YOUR_CLIENT_ID}\n    &scope=forms.files offline_access\n    &redirect_uri={YOUR_REDIRECT_URI}\n  ```\n  ### Usage\n  When your access token expires, make a POST request to the token endpoint:\n  ```\n  POST /oauth2/token HTTP/1.1\n  Host: accounts.skyslope.com\n  Content-Type: application/x-www-form-urlencoded\n  \n  grant_type=refresh_token\n  &client_id={YOUR_CLIENT_ID}\n  &client_secret={YOUR_CLIENT_SECRET}\n  &refresh_token={YOUR_REFRESH_TOKEN}\n  ```\n  This will return a new access token and refresh token pair.\n  ### Security Best Practices\n  - Store refresh tokens securely on your backend server, never on client side\n  - Encrypt refresh tokens at rest using strong encryption\n  - Rotate refresh token on each use\n  - Set up monitoring for unusual refresh token usage patterns\n  - If a refresh token is compromised, revoke it immediately using the token revocation endpoint\n  - Implement automatic cleanup of unused refresh tokens"
  termsOfService: https://skyslope.com/terms-conditions/
  contact:
    name: Support
    url: https://support.skyslope.com/hc/en-us
    email: support@skyslope.com
servers:
- url: https://forms.skyslope.com/partner/api
  description: Production server
- url: https://staging-forms.skyslope.com/partner/api
  description: Staging server
- url: https://integ-forms.skyslope.com/partner/api
  description: Integration server
tags:
- name: Documents
paths:
  /documents/{documentId}:
    get:
      summary: Get Document
      tags:
      - Documents
      description: 'Retrieve the details and field definitions for a document by its id.<div style="color: rgba(38, 50, 56, 0.5); border-bottom: 1px solid rgba(38, 50, 56, 0.3); padding-bottom: 1px;">REQUIRED SCOPES:</div><div style="display: inline-flex; gap: 5px; padding: 5px;"><div style="border-radius: 2px; border: 1px solid rgba(128,128,255,0.5); background-color: rgba(64,64,255,0.25); padding: 0px 5px;">forms.documents</div><div style="border-radius: 2px; border: 1px solid rgba(128,128,255,0.5); background-color: rgba(64,64,255,0.25); padding: 0px 5px;">forms.documents.read</div></div>'
      parameters:
      - schema:
          type: integer
          minimum: 1
          default: 1
        in: query
        name: page
        required: false
        description: The page number of fields to retrieve.
      - schema:
          type: integer
          minimum: 1
          maximum: 500
          default: 10
        in: query
        name: pageSize
        required: false
        description: The number of fields returned per page.
      - schema:
          type: integer
          minimum: 1
        in: path
        name: documentId
        required: true
        description: The id of the document to retrieve.
      responses:
        '200':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                description: An object containing the details of the document.
                properties:
                  id:
                    type: number
                    description: The id of the document.
                  formName:
                    type: string
                    description: The name of the document.
                  formId:
                    type:
                    - 'null'
                    - number
                    description: The id of the form.
                  formVersionId:
                    type: number
                    description: The id of the form version.
                  fileId:
                    type: number
                    description: The id of the file that the document belongs to.
                  formURL:
                    type: string
                    description: The URL to the form in storage.
                  thumbnailURL:
                    type: string
                    description: The url of the thumbnail of the document.
                  pageCount:
                    type:
                    - 'null'
                    - number
                    description: The number of pages in the document.
                  documentType:
                    type: string
                    description: The type of the document.
                  createdBy:
                    type: string
                    description: The id of the user who created the document.
                  updatedBy:
                    type:
                    - 'null'
                    - string
                    description: The id of the user who last updated the document.
                  createdOn:
                    type: string
                    description: The date and time the document was created.
                  updatedOn:
                    type: string
                    description: The date and time the document was last updated.
                  ownedBy:
                    type: string
                    description: The id of the user who owns the document.
                  page:
                    type: number
                    description: The current page number.
                  pageSize:
                    type: number
                    description: The number of fields returned per page.
                  totalItems:
                    type: number
                    description: The total number of fields on the document.
                  totalPages:
                    type: number
                    description: The total number of pages available.
                  fields:
                    type: array
                    description: A paginated array of the fields defined on the document.
                    items:
                      type: object
                      properties:
                        id:
                          type: string
                          description: The unique identifier for the field.
                        name:
                          type: string
                          description: The name of the field.
                        dataRef:
                          type: string
                          description: The data reference key for the field.
                        type:
                          type: string
                          description: The field type (e.g. "text", "checkbox").
                        originalType:
                          type: string
                          description: The original field type as defined in the form template.
                        xCoordinate:
                          type: number
                          description: The X coordinate position of the field on the page.
                        yCoordinate:
                          type: number
                          description: The Y coordinate position of the field on the page.
                        width:
                          type: number
                          description: The width of the field.
                        height:
                          type: number
                          description: The height of the field.
                        pageNumber:
                          type: number
                          description: The zero-based page number the field appears on.
                        fontSize:
                          type: number
                          description: The font size for the field.
                        isReadOnly:
                          type: boolean
                          description: Evaluates to true if the field is read-only.
                        isTabbable:
                          type: boolean
                          description: Evaluates to true if the field is reachable via tab.
                        isFirstAggregateField:
                          type: boolean
                          description: Evaluates to true if the field is the first in an aggregate group.
                        isGlobal:
                          type: boolean
                          description: Evaluates to true if the field is globally scoped across forms.
                        isOptional:
                          type: boolean
                          description: Evaluates to true if the field is optional.
                        isDefaultToday:
                          type: boolean
                          description: Evaluates to true if the field defaults to today's date.
                        digisignAllowOverrideIsOptional:
                          type: boolean
                          description: Evaluates to true if DigiSign is allowed to override the optional setting.
                        format:
                          type:
                          - 'null'
                          - string
                          description: The format string applied to the field value.
                        order:
                          type:
                          - 'null'
                          - number
                          description: The tab order of the field.
                        clientType:
                          type:
                          - 'null'
                          - string
                          description: The contact type associated with the field.
                        position:
                          type:
                          - 'null'
                          - number
                          description: The position of the field within its group.
                        entityDisplayRule:
                          type:
                          - 'null'
                          - string
                          description: Display rule controlling field visibility.
                        fieldDisplay:
                          type:
                          - 'null'
                          - string
                          description: Additional display metadata for the field.
                        listingFieldName:
                          type:
                          - 'null'
                          - string
                          description: The listing field name mapped to this field.
                        listingTableName:
                          type:
                          - 'null'
                          - string
                          description: The listing table name mapped to this field.
                        referenceListingFieldName:
                          type:
                          - 'null'
                          - string
                          description: The reference listing field name mapped to this field.
                        group:
                          type:
                          - 'null'
                          - object
                          description: The field group this field belongs to.
                        domainFieldMetaData:
                          type:
                          - 'null'
                          - object
                          description: Domain-specific metadata for the field.
                        associatedDataRefs:
                          type: array
                          description: Data references associated with this field.
                          items:
                            type: string
              example:
                id: 211469
                formName: Purchase Agreement Form
                formId: null
                formVersionId: 28081
                fileId: 582186
                formURL: https://s3.us-west-2.amazonaws.com/example-bucket/forms/28081.pdf
                thumbnailURL: https://s3.us-west-2.amazonaws.com/example-bucket/thumbnails/28081.png
                pageCount: 3
                documentType: Forms
                createdBy: 00u1j6qlmwclWMB9O357
                updatedBy: null
                createdOn: '2024-01-15T10:30:00Z'
                updatedOn: '2026-02-02T18:32:58Z'
                ownedBy: 00u1j6qlmwclWMB9O357
                page: 1
                pageSize: 10
                totalItems: 1
                totalPages: 1
                fields:
                - id: Text1-482.70001220703125-104.5369873046875-0
                  name: Text1
                  dataRef: Text1
                  type: text
                  originalType: textinputblock
                  xCoordinate: 482.70001220703125
                  yCoordinate: 104.5369873046875
                  width: 92.16796875
                  height: 11.880000114440918
                  pageNumber: 0
                  fontSize: 8
                  isReadOnly: false
                  isTabbable: true
                  isFirstAggregateField: false
                  isGlobal: false
                  isOptional: false
                  isDefaultToday: false
                  digisignAllowOverrideIsOptional: true
                  format: null
                  order: null
                  clientType: null
                  position: null
                  entityDisplayRule: null
                  fieldDisplay: null
                  listingFieldName: null
                  listingTableName: null
                  referenceListingFieldName: null
                  group: null
                  domainFieldMetaData: null
                  associatedDataRefs: []
        default:
          description: An object containing the error that occurred.
          content:
            application/json:
              schema:
                type: object
                description: An object containing the error that occurred.
                properties:
                  code:
                    type: string
                    description: A code that represents the error that occurred.
                  message:
                    type: string
                    description: A description of the error that occurred.
                  errors:
                    type: array
                    description: An array of the errors that occurred.
                    items:
                      type: string
                  traceId:
                    type: string
                    description: A request correlation ID.
    patch:
      summary: Update Document
      tags:
      - Documents
      description: 'Update the field values of a document. Only the fields supplied in the request body will be updated; existing values of other fields are preserved.<div style="color: rgba(38, 50, 56, 0.5); border-bottom: 1px solid rgba(38, 50, 56, 0.3); padding-bottom: 1px;">REQUIRED SCOPES:</div><div style="display: inline-flex; gap: 5px; padding: 5px;"><div style="border-radius: 2px; border: 1px solid rgba(128,128,255,0.5); background-color: rgba(64,64,255,0.25); padding: 0px 5px;">forms.documents</div></div>'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              additionalProperties: true
              description: A JSON object containing the document field data references and their values to be updated. Only the fields supplied will be updated; existing values of other fields are preserved.
        description: A JSON object containing the document field data references and their values to be updated. Only the fields supplied will be updated; existing values of other fields are preserved.
      parameters:
      - schema:
          type: integer
          minimum: 1
        in: path
        name: documentId
        required: true
        description: The id of the document to update.
      responses:
        '200':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  documentId:
                    type: number
                    description: The id of the document that was updated.
                  didAddendumsChange:
                    type: boolean
                    description: Evaluates to true if the number of addendum pages changed as a result of the update.
              example:
                documentId: 123456
                didAddendumsChange: false
        default:
          description: An object containing the error that occurred.
          content:
            application/json:
              schema:
                type: object
                description: An object containing the error that occurred.
                properties:
                  code:
                    type: string
                    description: A code that represents the error that occurred.
                  message:
                    type: string
                    description: A description of the error that occurred.
                  errors:
                    type: array
                    description: An array of the errors that occurred.
                    items:
                      type: string
                  traceId:
                    type: string
                    description: A request correlation ID.
    delete:
      summary: Delete Document.
      tags:
      - Documents
      description: 'Delete a document.<div style="color: rgba(38, 50, 56, 0.5); border-bottom: 1px solid rgba(38, 50, 56, 0.3); padding-bottom: 1px;">REQUIRED SCOPES:</div><div style="display: inline-flex; gap: 5px; padding: 5px;"><div style="border-radius: 2px; border: 1px solid rgba(128,128,255,0.5); background-color: rgba(64,64,255,0.25); padding: 0px 5px;">forms.documents</div></div>'
      parameters:
      - schema:
          type: integer
          minimum: 1
        in: path
        name: documentId
        required: true
        description: The id of the document to delete.
      responses:
        '200':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                required:
                - documentId
                properties:
                  documentId:
                    type: number
                    description: The id of the document that was deleted from the file.
              example:
                documentId: 123456
        default:
          description: An object containing the error that occurred.
          content:
            application/json:
              schema:
                type: object
                description: An object containing the error that occurred.
                properties:
                  code:
                    type: string
                    description: A code that represents the error that occurred.
                  message:
                    type: string
                    description: A description of the error that occurred.
                  errors:
                    type: array
                    description: An array of the errors that occurred.
                    items:
                      type: string
                  traceId:
                    type: string
                    description: A request correlation ID.
  /files/{fileId}/documents:
    get:
      summary: Get File Documents
      tags:
      - Documents
      description: 'Retrieve the documents metadata for a file. To download documents with proper branding and data stamping, use the /files/:fileId/documents/download or /files/:fileId/documents/download/pdf endpoints.<div style="color: rgba(38, 50, 56, 0.5); border-bottom: 1px solid rgba(38, 50, 56, 0.3); padding-bottom: 1px;">REQUIRED SCOPES:</div><div style="display: inline-flex; gap: 5px; padding: 5px;"><div style="border-radius: 2px; border: 1px solid rgba(128,128,255,0.5); background-color: rgba(64,64,255,0.25); padding: 0px 5px;">forms.documents</div><div style="border-radius: 2px; border: 1px solid rgba(128,128,255,0.5); background-color: rgba(64,64,255,0.25); padding: 0px 5px;">forms.documents.read</div></div>'
      parameters:
      - schema:
          type: integer
          minimum: 1
        in: path
        name: fileId
        required: true
        description: The id of the file to retrieve documents for.
      responses:
        '200':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                description: An object containing the documents found for the file.
                properties:
                  totalRecords:
                    type: number
                    description: The total number of documents found for the file.
                  documents:
                    type: array
                    description: An array containing the documents found for the file.
                    items:
                      type: object
                      properties:
                        id:
                          type: number
                          description: The id of the document.
                        formName:
                          type: string
                          description: The name of the document.
                        formId:
                          type: number
                          description: The id of the form.
                        formVersionId:
                          type: number
                          description: The id of the form version.
                        fileId:
                          type: number
                          description: The id of the file that the document belongs to.
                        thumbnailURL:
                          type: string
                          description: The url of the thumbnail of the document.
                        pageCount:
                          type:
                          - 'null'
                          - number
                          description: The number of pages in the document.
                        documentType:
                          type: string
                          description: The type of the document.
                        createdBy:
                          type: string
                          description: The id of the user who created the document.
                        updatedBy:
                          type: string
                          description: The id of the user who last updated the document.
                        createdOn:
                          type: string
                          description: The date and time the document was created.
                        updatedOn:
                          type: string
                          description: The date and time the document was last updated.
                        ownedBy:
                          type: string
                          description: The id of the user who owns the document.
              example:
                totalRecords: 1
                documents:
                - id: 123456
                  formName: Purchase Agreement Form
                  formId: 789
                  formVersionId: 1011
                  fileId: 456789
                  thumbnailURL: https://example.com/thumbnails/form-12345.png
                  pageCount: 5
                  documentType: Forms
                  createdBy: 00u123456789abcdef
                  updatedBy: 00u123456789abcdef
                  createdOn: '2024-01-15T10:30:00Z'
                  updatedOn: '2024-01-15T10:30:00Z'
                  ownedBy: 00u123456789abcdef
        default:
          description: An object containing the error that occurred.
          content:
            application/json:
              schema:
                type: object
                description: An object containing the error that occurred.
                properties:
                  code:
                    type: string
                    description: A code that represents the error that occurred.
                  message:
                    type: string
                    description: A description of the error that occurred.
                  errors:
                    type: array
                    description: An array of the errors that occurred.
                    items:
                      type: string
                  traceId:
                    type: string
                    description: A request correlation ID.
    patch:
      summary: Add Documents to File
      tags:
      - Documents
      description: 'Add one or more documents to a file.<div style="color: rgba(38, 50, 56, 0.5); border-bottom: 1px solid rgba(38, 50, 56, 0.3); padding-bottom: 1px;">REQUIRED SCOPES:</div><div style="display: inline-flex; gap: 5px; padding: 5px;"><div style="border-radius: 2px; border: 1px solid rgba(128,128,255,0.5); background-color: rgba(64,64,255,0.25); padding: 0px 5px;">forms.files</div><div style="border-radius: 2px; border: 1px solid rgba(128,128,255,0.5); background-color: rgba(64,64,255,0.25); padding: 0px 5px;">forms.documents</div></div>'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              additionalProperties: false
              required:
              - formIds
              properties:
                formIds:
                  type: array
                  description: An array of the Form Ids of the Forms to add to the file.
                  minItems: 1
                  items:
                    type: integer
                    description: A Form Id of the Form to add to the file.
        required: true
      parameters:
      - schema:
          type: integer
          minimum: 1
        in: path
        name: fileId
        required: true
        description: The id of the file to add the documents to.
      responses:
        '200':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  documentIds:
                    type: array
                    description: An array of the documentIds that were added to the file.
                    items:
                      type: number
              example:
                documentIds:
                - 1
                - 2
                - 3
        default:
          description: An object containing the error that occurred.
          content:
            application/json:
              schema:
                type: object
                description: An object containing the error that occurred.
                properties:
                  code:
                    type: string
                    description: A code that represents the error that occurred.
                  message:
                    type: string
                    description: A description of the error that occurred.
                  errors:
                    type: array
                    description: An array of the errors that occurred.
                    items:
                      type: string
                  traceId:
                    type: string
                    description: A request correlation ID.
  /documents/signed/{fileId}:
    get:
      summary: Get Signed Documents
      tags:
      - Documents
      description: 'Retrieve the signed documents for a file.<div style="color: rgba(38, 50, 56, 0.5); border-bottom: 1px solid rgba(38, 50, 56, 0.3); padding-bottom: 1px;">REQUIRED SCOPES:</div><div style="display: inline-flex; gap: 5px; padding: 5px;"><div style="border-radius: 2px; border: 1px solid rgba(128,128,255,0.5); background-color: rgba(64,64,255,0.25); padding: 0px 5px;">forms.documents</div><div style="border-radius: 2px; border: 1px solid rgba(128,128,255,0.5); background-color: rgba(64,64,255,0.25); padding: 0px 5px;">forms.documents.read</div></div>'
      parameters:
      - schema:
          type: integer
          minimum: 1
        in: path
        name: fileId
        required: true
        description: The id of the file to retrieve signed documents for.
      responses:
        '200':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                description: An object containing the signed documents found for the authenticated user.
                properties:
                  totalRecords:
                    type: number
                    description: The total number of signed documents found for the authenticated user.
                  documents:
                    type: array
                    description: An array containing the signed documents found for the authenticated user.
                    items:
                      type: object
                      properties:
                        documentId:
                          type: number
                          description: The id of the document.
                        documentName:
                          type: string
                          description: The name of the document.
                        filename:
                          type: string
                          description: The name of the file that the document belongs to.
                        pageCount:
                          type: number
                          description: The number of pages in the document.
                        externalDocumentId:
                          type: string
                          description: The external id of the document.
                        fileId:
                          type: number
                          description: The id of the file that the document belongs to.
                        envelopeId:
                          type: string
                          description: The id of the envelope that the document belongs to.
                        envelopeName:
                          type: string
                          description: T

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