Evisort Field and Metadata Extraction API

Read and write the AI-extracted fields, clauses, and metadata associated with a document, supporting import and export of structured contract data.

OpenAPI Specification

evisort-openapi.yml Raw ↑
openapi: 3.0.1
info:
  title: Evisort API
  description: >-
    Partial, externally-reconstructed OpenAPI description of the Evisort REST API
    (Evisort is now Workday Contract Lifecycle Management, powered by Evisort). The
    full, authoritative reference lives behind Evisort's developer portals
    (developers.evisort.com, documents.developers.evisort.com,
    workflow.developers.evisort.com, admin.developers.evisort.com), which require an
    authenticated account and are not publicly crawlable. The base URL, the API-key
    to JWT authentication flow, and the endpoints described here were confirmed from
    publicly available integration and developer documentation. Endpoints whose exact
    request and response schemas are not publicly documented are described accurately
    rather than fabricated.
  version: '1.0'
  contact:
    name: Evisort Developer Support
    url: https://developers.evisort.com/
  termsOfService: https://www.evisort.com/legal
servers:
  - url: https://api.evisort.com/v1
    description: Evisort production REST API
security:
  - bearerAuth: []
tags:
  - name: Authentication
    description: Exchange an Evisort API key for a short-lived JWT bearer token.
  - name: Documents
    description: Upload, retrieve, and download contract documents.
  - name: Fields
    description: Read and write AI-extracted fields, clauses, and metadata.
  - name: Search
    description: Query documents across a workspace.
  - name: Workflows
    description: Contract generation and review workflow tickets.
  - name: Webhooks
    description: Event subscriptions for workspace activity.
paths:
  /auth/token:
    post:
      operationId: createToken
      tags:
        - Authentication
      summary: Generate a JWT token from an Evisort API key
      description: >-
        Exchanges an Evisort API key (created in the Evisort UI under the admin
        console / API management) for a short-lived JWT bearer token. The returned
        token is supplied as `Authorization: Bearer {token}` on all subsequent
        requests.
      parameters:
        - name: EVISORT-API-KEY
          in: header
          required: true
          description: The Evisort API key issued from the Evisort UI.
          schema:
            type: string
      responses:
        '200':
          description: A JWT bearer token.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TokenResponse'
        '401':
          description: Invalid or missing API key.
  /search:
    post:
      operationId: searchDocuments
      tags:
        - Search
      summary: Search documents in a workspace
      description: >-
        Searches contracts and documents in the workspace by type, category, field
        filters, clauses, and free-text terms. Results are paginated and can
        optionally include field-to-document mapping and unique field values.
      parameters:
        - name: page
          in: query
          schema:
            type: integer
            default: 1
        - name: pageSize
          in: query
          schema:
            type: integer
        - name: includeMapping
          in: query
          schema:
            type: boolean
            default: false
        - name: returnUniqueFieldValues
          in: query
          schema:
            type: boolean
            default: false
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SearchQuery'
      responses:
        '200':
          description: A paginated list of matching documents with metadata.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SearchResults'
  /documents/{evisortId}/content:
    get:
      operationId: getDocumentContent
      tags:
        - Documents
      summary: Download document content
      description: >-
        Downloads the file content of a document identified by its Evisort document
        ID, optionally as OCR'd text and in a requested file format (e.g. PDF or
        DOCX).
      parameters:
        - name: evisortId
          in: path
          required: true
          schema:
            type: string
        - name: ocr
          in: query
          schema:
            type: boolean
        - name: type
          in: query
          schema:
            type: string
            enum:
              - pdf
              - docx
      responses:
        '200':
          description: The document file content.
          content:
            application/octet-stream:
              schema:
                type: string
                format: binary
  /documents:
    post:
      operationId: uploadDocument
      tags:
        - Documents
      summary: Upload a document
      description: >-
        Uploads a contract or supporting file into Evisort for AI processing,
        field extraction, and search indexing. The exact multipart request schema
        is documented in Evisort's authenticated developer portal and is not
        reproduced in full here to avoid misrepresentation.
      requestBody:
        required: true
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                file:
                  type: string
                  format: binary
      responses:
        '200':
          description: Document accepted for processing.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Document'
  /documents/{evisortId}/fields:
    get:
      operationId: getDocumentFields
      tags:
        - Fields
      summary: Get extracted fields and metadata for a document
      description: >-
        Returns the AI-extracted fields, clauses, and metadata associated with a
        document. The precise field schema is defined per workspace and documented
        in Evisort's authenticated developer portal.
      parameters:
        - name: evisortId
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: The document's extracted fields and metadata.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FieldSet'
components:
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: >-
        JWT bearer token obtained from POST /auth/token by presenting an
        Evisort API key.
  schemas:
    TokenResponse:
      type: object
      properties:
        token:
          type: string
          description: A JWT bearer token used on subsequent API calls.
    SearchQuery:
      type: object
      description: >-
        Search query object. Supports document type, category, field filters, and
        free-text search terms. The full filter grammar is documented in Evisort's
        authenticated developer portal.
      properties:
        query:
          type: object
          additionalProperties: true
    SearchResults:
      type: object
      properties:
        documents:
          type: array
          items:
            $ref: '#/components/schemas/Document'
        page:
          type: integer
        pageSize:
          type: integer
        total:
          type: integer
    Document:
      type: object
      properties:
        evisortId:
          type: string
          description: Unique Evisort document identifier.
        name:
          type: string
        fields:
          $ref: '#/components/schemas/FieldSet'
    FieldSet:
      type: object
      description: >-
        A collection of extracted fields and metadata keyed by field name. Field
        definitions are workspace-specific.
      additionalProperties: true