Filevine · AsyncAPI Specification

Filevine Webhook Events

Version 2.0

Filevine emits webhook events to subscribed callback URLs when activity occurs in the platform. Subscriptions are configured per organization and select from a curated event catalog. Each subscription has a unique signing key used to validate inbound deliveries.

View Spec View on GitHub LegalCase ManagementMatterIntakeDocumentsLOISWebhookLegal AIPersonal InjuryMass TortsAsyncAPIEventsWebhooks

Channels

ProjectCreated
ProjectUpdated
DocumentUploaded
NoteCreated
DeadlineCreated
TaskCompleted
PaymentCreated
PaymentUpdated

Messages

✉
ProjectEvent
ProjectEvent
✉
DocumentEvent
DocumentEvent
✉
NoteEvent
NoteEvent
✉
DeadlineEvent
DeadlineEvent
✉
TaskEvent
TaskEvent
✉
PaymentEvent
PaymentEvent

Servers

https
filevineUsGateway
Filevine US API Gateway.

AsyncAPI Specification

Raw ↑
asyncapi: 3.0.0
info:
  title: Filevine Webhook Events
  version: '2.0'
  description: >
    Filevine emits webhook events to subscribed callback URLs when activity
    occurs in the platform. Subscriptions are configured per organization
    and select from a curated event catalog. Each subscription has a unique
    signing key used to validate inbound deliveries.
  contact:
    name: Filevine Support
    url: https://support.filevine.com/hc/en-us/articles/13644331859611-Webhooks-Subscriptions

defaultContentType: application/json

servers:
  filevineUsGateway:
    host: api.filevine.io
    protocol: https
    description: Filevine US API Gateway.

channels:
  ProjectCreated:
    address: project.created
    messages:
      ProjectCreatedMessage:
        $ref: '#/components/messages/ProjectEvent'
  ProjectUpdated:
    address: project.updated
    messages:
      ProjectUpdatedMessage:
        $ref: '#/components/messages/ProjectEvent'
  DocumentUploaded:
    address: document.uploaded
    messages:
      DocumentUploadedMessage:
        $ref: '#/components/messages/DocumentEvent'
  NoteCreated:
    address: note.created
    messages:
      NoteCreatedMessage:
        $ref: '#/components/messages/NoteEvent'
  DeadlineCreated:
    address: deadline.created
    messages:
      DeadlineCreatedMessage:
        $ref: '#/components/messages/DeadlineEvent'
  TaskCompleted:
    address: task.completed
    messages:
      TaskCompletedMessage:
        $ref: '#/components/messages/TaskEvent'
  PaymentCreated:
    address: payment.created
    messages:
      PaymentCreatedMessage:
        $ref: '#/components/messages/PaymentEvent'
  PaymentUpdated:
    address: payment.updated
    messages:
      PaymentUpdatedMessage:
        $ref: '#/components/messages/PaymentEvent'

operations:
  receiveProjectCreated:
    action: receive
    channel: { $ref: '#/channels/ProjectCreated' }
  receiveProjectUpdated:
    action: receive
    channel: { $ref: '#/channels/ProjectUpdated' }
  receiveDocumentUploaded:
    action: receive
    channel: { $ref: '#/channels/DocumentUploaded' }
  receiveNoteCreated:
    action: receive
    channel: { $ref: '#/channels/NoteCreated' }
  receiveDeadlineCreated:
    action: receive
    channel: { $ref: '#/channels/DeadlineCreated' }
  receiveTaskCompleted:
    action: receive
    channel: { $ref: '#/channels/TaskCompleted' }
  receivePaymentCreated:
    action: receive
    channel: { $ref: '#/channels/PaymentCreated' }
  receivePaymentUpdated:
    action: receive
    channel: { $ref: '#/channels/PaymentUpdated' }

components:
  messages:
    ProjectEvent:
      name: ProjectEvent
      payload: { $ref: '#/components/schemas/ProjectEventPayload' }
    DocumentEvent:
      name: DocumentEvent
      payload: { $ref: '#/components/schemas/DocumentEventPayload' }
    NoteEvent:
      name: NoteEvent
      payload: { $ref: '#/components/schemas/NoteEventPayload' }
    DeadlineEvent:
      name: DeadlineEvent
      payload: { $ref: '#/components/schemas/DeadlineEventPayload' }
    TaskEvent:
      name: TaskEvent
      payload: { $ref: '#/components/schemas/TaskEventPayload' }
    PaymentEvent:
      name: PaymentEvent
      payload: { $ref: '#/components/schemas/PaymentEventPayload' }
  schemas:
    EventEnvelope:
      type: object
      required: [eventId, eventType, occurredAt, orgId]
      properties:
        eventId: { type: string }
        eventType: { type: string }
        occurredAt: { type: string, format: date-time }
        orgId: { type: integer }
        signingKeyId: { type: string }
    ProjectEventPayload:
      allOf:
        - $ref: '#/components/schemas/EventEnvelope'
        - type: object
          properties:
            data:
              type: object
              properties:
                projectId: { type: integer }
                projectName: { type: string }
                projectTypeId: { type: integer }
                phaseName: { type: string }
    DocumentEventPayload:
      allOf:
        - $ref: '#/components/schemas/EventEnvelope'
        - type: object
          properties:
            data:
              type: object
              properties:
                documentId: { type: integer }
                projectId: { type: integer }
                filename: { type: string }
                size: { type: integer }
    NoteEventPayload:
      allOf:
        - $ref: '#/components/schemas/EventEnvelope'
        - type: object
          properties:
            data:
              type: object
              properties:
                noteId: { type: integer }
                projectId: { type: integer }
                kind: { type: string }
    DeadlineEventPayload:
      allOf:
        - $ref: '#/components/schemas/EventEnvelope'
        - type: object
          properties:
            data:
              type: object
              properties:
                deadlineId: { type: integer }
                projectId: { type: integer }
                dueDate: { type: string, format: date-time }
    TaskEventPayload:
      allOf:
        - $ref: '#/components/schemas/EventEnvelope'
        - type: object
          properties:
            data:
              type: object
              properties:
                taskId: { type: integer }
                projectId: { type: integer }
                status: { type: string }
    PaymentEventPayload:
      allOf:
        - $ref: '#/components/schemas/EventEnvelope'
        - type: object
          properties:
            data:
              type: object
              properties:
                paymentId: { type: integer }
                projectId: { type: integer }
                amount: { type: number }
                currency: { type: string }
                voided: { type: boolean }

Work with this as data

Every AsyncAPI spec 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 asyncapi

4 MCP tools reach this
  • find_asyncapisBrowse and filter every AsyncAPI spec in the catalog.
  • 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 AsyncAPI spec
curl "https://apis.io/api/v1/asyncapis/filevine-events-asyncapi"
All asyncapi
curl "https://apis.io/api/v1/asyncapis?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.