Filevine Contacts API

Manage the global Filevine contact list and project-scoped contact attachments. Contacts represent clients, opposing parties, witnesses, experts, and adjusters with structured emails, phones, and organization affiliation.

Filevine Contacts 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 and Contacts. The published artifact set on APIs.io includes API documentation, an OpenAPI specification, 1 Naftiko capability spec, and 1 JSON Schema.

OpenAPI Specification

filevine-contacts-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Filevine Contacts API
  description: >
    Contact cards represent people and organizations associated with a
    project — clients, opposing parties, witnesses, adjusters, experts, and
    third parties. The Contacts API exposes the global contact list as well
    as project-scoped contact attachments and roles.
  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: Contacts
    description: Filevine contact cards.

paths:
  /core/contacts:
    get:
      summary: Filevine List Contacts
      description: List contacts in the organization with optional filters.
      operationId: listContacts
      tags: [Contacts]
      parameters:
        - name: offset
          in: query
          schema: { type: integer }
        - name: limit
          in: query
          schema: { type: integer, default: 50, maximum: 1000 }
        - name: q
          in: query
          schema: { type: string }
      responses:
        '200':
          description: A page of contacts.
          content:
            application/json:
              schema: { $ref: '#/components/schemas/ContactList' }
    post:
      summary: Filevine Create Contact
      description: Create a new contact card in the organization.
      operationId: createContact
      tags: [Contacts]
      requestBody:
        required: true
        content:
          application/json:
            schema: { $ref: '#/components/schemas/CreateContactRequest' }
      responses:
        '201':
          description: Contact created.
          content:
            application/json:
              schema: { $ref: '#/components/schemas/Contact' }
  /core/contacts/{contactId}:
    parameters:
      - name: contactId
        in: path
        required: true
        schema: { type: integer, format: int64 }
    get:
      summary: Filevine Get Contact
      description: Retrieve a contact card by ID.
      operationId: getContact
      tags: [Contacts]
      responses:
        '200':
          description: Contact found.
          content:
            application/json:
              schema: { $ref: '#/components/schemas/Contact' }
  /core/projects/{projectId}/contacts:
    parameters:
      - name: projectId
        in: path
        required: true
        schema: { type: integer, format: int64 }
    post:
      summary: Filevine Attach Project Contact
      description: Attach a contact card to a project with an optional role (e.g. opposing party, witness, adjuster).
      operationId: attachProjectContact
      tags: [Contacts]
      requestBody:
        required: true
        content:
          application/json:
            schema: { $ref: '#/components/schemas/AttachContactRequest' }
      responses:
        '201':
          description: Attached.

components:
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
  schemas:
    Contact:
      type: object
      properties:
        contactId: { type: integer, format: int64 }
        firstName: { type: string }
        lastName: { type: string }
        fullName: { type: string }
        organization: { type: string }
        emails:
          type: array
          items: { type: string, format: email }
        phones:
          type: array
          items: { type: string }
        createdDate: { type: string, format: date-time }
        modifiedDate: { type: string, format: date-time }
    ContactList:
      type: object
      properties:
        items:
          type: array
          items: { $ref: '#/components/schemas/Contact' }
        hasMore: { type: boolean }
    CreateContactRequest:
      type: object
      properties:
        firstName: { type: string }
        lastName: { type: string }
        organization: { type: string }
        emails:
          type: array
          items: { type: string, format: email }
        phones:
          type: array
          items: { type: string }
    AttachContactRequest:
      type: object
      required: [contactId]
      properties:
        contactId: { type: integer, format: int64 }
        role: { type: string, description: "e.g. Client, Opposing Party, Witness, Adjuster, Expert" }