Filevine Documents API

Upload, list, and read documents attached to Filevine projects. Documents support folders, tags, versioning, locking, and optional sharing to the secure client portal.

Filevine Documents API is one of 9 APIs that Filevine publishes on the APIs.io network, described by a machine-readable OpenAPI specification.

This API exposes 1 machine-runnable capability that can be deployed as REST, MCP, or Agent Skill surfaces via Naftiko and 1 JSON Schema definition.

Tagged areas include Legal, Documents, and Files. The published artifact set on APIs.io includes API documentation, an OpenAPI specification, 1 Naftiko capability spec, and 1 JSON Schema.

OpenAPI Specification

filevine-documents-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Filevine Documents API
  description: >
    The Documents API manages the files and folders attached to a Filevine
    project. It supports listing the document tree, uploading new documents
    (with optional client-portal sharing), retrieving metadata, and
    downloading content. Documents support tags, versioning, and locking.
  version: '2.0'
  contact:
    name: Filevine API Support
    url: https://developer.filevine.io/
  license:
    name: Filevine Terms of Service
    url: https://www.filevine.com/terms-of-service/

servers:
  - url: https://api.filevine.io
    description: Filevine API Gateway (US)
  - url: https://api.filevineapp.ca
    description: Filevine API Gateway (Canada)

security:
  - BearerAuth: []

tags:
  - name: Documents
    description: Project documents and folders.

paths:
  /core/projects/{projectId}/documents:
    parameters:
      - name: projectId
        in: path
        required: true
        schema: { type: integer, format: int64 }
    get:
      summary: Filevine List Project Documents
      description: List documents in a project with optional folder, tag, and modified-since filters.
      operationId: listProjectDocuments
      tags: [Documents]
      parameters:
        - name: folderId
          in: query
          schema: { type: integer, format: int64 }
        - name: tag
          in: query
          schema: { type: string }
      responses:
        '200':
          description: A list of documents.
          content:
            application/json:
              schema: { $ref: '#/components/schemas/DocumentList' }
    post:
      summary: Filevine Upload Project Document
      description: Upload a document into a project. Supports optional folder placement, tags, and client-portal sharing.
      operationId: uploadProjectDocument
      tags: [Documents]
      requestBody:
        required: true
        content:
          multipart/form-data:
            schema: { $ref: '#/components/schemas/UploadDocumentRequest' }
      responses:
        '201':
          description: Document uploaded.
          content:
            application/json:
              schema: { $ref: '#/components/schemas/Document' }
  /core/documents/{documentId}:
    parameters:
      - name: documentId
        in: path
        required: true
        schema: { type: integer, format: int64 }
    get:
      summary: Filevine Get Document
      description: Retrieve a document's metadata by ID.
      operationId: getDocument
      tags: [Documents]
      responses:
        '200':
          description: Document found.
          content:
            application/json:
              schema: { $ref: '#/components/schemas/Document' }

components:
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
  schemas:
    Document:
      type: object
      properties:
        documentId: { type: integer, format: int64 }
        projectId: { type: integer, format: int64 }
        folderId: { type: integer, format: int64 }
        filename: { type: string }
        size: { type: integer }
        contentType: { type: string }
        tags:
          type: array
          items: { type: string }
        sharedToPortal: { type: boolean }
        version: { type: integer }
        uploadedBy: { type: integer, format: int64 }
        createdDate: { type: string, format: date-time }
        modifiedDate: { type: string, format: date-time }
    DocumentList:
      type: object
      properties:
        items:
          type: array
          items: { $ref: '#/components/schemas/Document' }
        hasMore: { type: boolean }
    UploadDocumentRequest:
      type: object
      required: [file]
      properties:
        file:
          type: string
          format: binary
        folderId: { type: integer, format: int64 }
        tags:
          type: array
          items: { type: string }
        sharedToPortal: { type: boolean }