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