Clio
Clio is a cloud-based legal practice management platform used by law firms for matter management, contacts, calendaring, time and billing, trust accounting, document management, tasks, and client communications. The Clio Manage API is a REST/JSON API at app.clio.com/api/v4 that uses OAuth 2.0 (authorization code flow) for authentication and exposes the full data model behind Clio Manage, with regional endpoints for the U.S., Canada, EU/UK, and Australia. Webhooks deliver near real-time event notifications, and the Clio App Directory hosts certified third-party integrations.
APIs
Clio Manage API v4
The Clio Manage API v4 is a JSON REST API that gives developers programmatic access to Clio's legal practice management data model — matters, contacts, activities, bills, trust ...
Clio Webhooks
Clio Webhooks deliver near real-time notifications when matters, contacts, activities, tasks, calendar entries, bills, and other Clio resources are created, updated, or deleted....
Clio App Directory
The Clio App Directory is the integration marketplace for certified third-party apps that connect to Clio Manage. Apps listed in the directory are reviewed by Clio's developer p...
Collections
GraphQL
Clio GraphQL Schema
This document describes a conceptual GraphQL schema for the Clio Manage API v4. Clio is a cloud-based legal practice management platform used by law firms for matter management,...
GRAPHQLSemantic Vocabularies
API Governance Rules
Resources
Sources
opencollection: 1.0.0
info:
name: Clio API Documentation
version: v4
items:
- info:
name: Activities
type: folder
items:
- info:
name: Return the data for all Activities
type: http
http:
method: GET
url: https://app.clio.com/api/v4/activities.json
headers:
- name: X-API-VERSION
value: ''
params:
- name: activity_description_id
value: ''
type: query
description: The unique identifier for a single ActivityDescription. Use the keyword `null` to match those without
a Activity. The list will be filtered to include only the Activity records with the matching property.
- name: calendar_entry_id
value: ''
type: query
description: The unique identifier for a single CalendarEntry. Use the keyword `null` to match those without a Activity.
The list will be filtered to include only the Activity records with the matching property.
- name: communication_id
value: ''
type: query
description: The unique identifier for a single Communication. Use the keyword `null` to match those without a Activity.
The list will be filtered to include only the Activity records with the matching property.
- name: contact_note_id
value: ''
type: query
description: The unique identifier for a single Note. Use the keyword `null` to match those without a Activity. The
list will be filtered to include only the Activity records with the matching property.
- name: created_since
value: ''
type: query
description: Filter Activity records to those having the `created_at` field after a specific time. (Expects an ISO-8601
timestamp).
- name: end_date
value: ''
type: query
description: Filter Activity records to those whose `date` is on or before the date provided (Expects an ISO-8601
date).
- name: expense_category_id
value: ''
type: query
description: The unique identifier for a single ExpenseCategory. Use the keyword `null` to match those without a Activity.
The list will be filtered to include only the Activity records with the matching property.
- name: fields
value: ''
type: query
description: The fields to be returned. See response samples for what fields are available. For more information see
the [fields section](#section/Fields).
- name: flat_rate
value: ''
type: query
description: Filter Activity TimeEntry records to those that have a flat rate, or not.
- name: grant_id
value: ''
type: query
description: The unique identifier for a single Grant. Use the keyword `null` to match those without a Activity. The
list will be filtered to include only the Activity records with the matching property.
- name: ids[]
value: ''
type: query
description: Filter Activity records to those having the specified unique identifiers.
- name: limit
value: ''
type: query
description: 'A limit on the number of Activity records to be returned. Limit can range between 1 and 200. Default:
`200`.'
- name: matter_id
value: ''
type: query
description: The unique identifier for a single Matter. Use the keyword `null` to match those without a Activity.
The list will be filtered to include only the Activity records with the matching property.
- name: matter_note_id
value: ''
type: query
description: The unique identifier for a single Note. Use the keyword `null` to match those without a Activity. The
list will be filtered to include only the Activity records with the matching property.
- name: only_unaccounted_for
value: ''
type: query
description: Only unaccounted for activities.
- name: order
value: ''
type: query
description: 'Orders the Activity records by the given field. Default: `id(asc)`.'
- name: page_token
value: ''
type: query
description: A token specifying which page to return.
- name: query
value: ''
type: query
description: Wildcard search for `note` matching a given string.
- name: start_date
value: ''
type: query
description: Filter Activity records to those whose `date` is on or after the date provided (Expects an ISO-8601 date).
- name: status
value: ''
type: query
description: Filter Activity records to those that are draft, billed, unbilled or non-billable.
- name: task_id
value: ''
type: query
description: The unique identifier for a single Task. Use the keyword `null` to match those without a Activity. The
list will be filtered to include only the Activity records with the matching property.
- name: type
value: ''
type: query
description: Filter Activity records to those of a specific type.
- name: updated_since
value: ''
type: query
description: Filter Activity records to those having the `updated_at` field after a specific time. (Expects an ISO-8601
timestamp).
- name: user_id
value: ''
type: query
description: The unique identifier for a single User. Use the keyword `null` to match those without a Activity. The
list will be filtered to include only the Activity records with the matching property.
docs: Outlines the parameters, optional and required, used when requesting the data for all Activities
- info:
name: Create a new Activity
type: http
http:
method: POST
url: https://app.clio.com/api/v4/activities.json
headers:
- name: X-API-VERSION
value: ''
params:
- name: fields
value: ''
type: query
description: The fields to be returned. See response samples for what fields are available. For more information see
the [fields section](#section/Fields).
body:
type: json
data: '{}'
docs: Outlines the parameters and data fields used when creating a new Activity
- info:
name: Return the data for a single Activity
type: http
http:
method: GET
url: https://app.clio.com/api/v4/activities/:id.json
headers:
- name: IF-MODIFIED-SINCE
value: ''
- name: IF-NONE-MATCH
value: ''
- name: X-API-VERSION
value: ''
params:
- name: fields
value: ''
type: query
description: The fields to be returned. See response samples for what fields are available. For more information see
the [fields section](#section/Fields).
- name: id
value: ''
type: path
description: The unique identifier for the Activity.
docs: Outlines the parameters, optional and required, used when requesting the data for a single Activity
- info:
name: Update a single Activity
type: http
http:
method: PATCH
url: https://app.clio.com/api/v4/activities/:id.json
headers:
- name: IF-MATCH
value: ''
- name: X-API-VERSION
value: ''
params:
- name: fields
value: ''
type: query
description: The fields to be returned. See response samples for what fields are available. For more information see
the [fields section](#section/Fields).
- name: id
value: ''
type: path
description: The unique identifier for the Activity.
body:
type: json
data: '{}'
docs: Outlines the parameters and data fields used when updating a single Activity
- info:
name: Delete a single Activity
type: http
http:
method: DELETE
url: https://app.clio.com/api/v4/activities/:id.json
headers:
- name: X-API-VERSION
value: ''
params:
- name: id
value: ''
type: path
description: The unique identifier for the Activity.
docs: Outlines the parameters, optional and required, used when deleting the record for a single Activity
- info:
name: Activity Rates
type: folder
items:
- info:
name: Return the data for all ActivityRates
type: http
http:
method: GET
url: https://app.clio.com/api/v4/activity_rates.json
headers:
- name: X-API-VERSION
value: ''
params:
- name: co_counsel_contact_id
value: ''
type: query
description: The unique identifier for a single Contact. The keyword `null` is not valid for this field. The list
will be filtered to include only the ActivityRate records with the matching property.
- name: contact_id
value: ''
type: query
description: The unique identifier for a single Contact. The keyword `null` is not valid for this field. The list
will be filtered to include only the ActivityRate records with the matching property.
- name: created_since
value: ''
type: query
description: Filter ActivityRate records to those having the `created_at` field after a specific time. (Expects an
ISO-8601 timestamp).
- name: fields
value: ''
type: query
description: The fields to be returned. See response samples for what fields are available. For more information see
the [fields section](#section/Fields).
- name: ids[]
value: ''
type: query
description: Filter ActivityRate records to those having the specified unique identifiers.
- name: limit
value: ''
type: query
description: 'A limit on the number of ActivityRate records to be returned. Limit can range between 1 and 200. Default:
`200`.'
- name: page_token
value: ''
type: query
description: A token specifying which page to return.
- name: updated_since
value: ''
type: query
description: Filter ActivityRate records to those having the `updated_at` field after a specific time. (Expects an
ISO-8601 timestamp).
docs: Outlines the parameters, optional and required, used when requesting the data for all ActivityRates
- info:
name: Create a new ActivityRate
type: http
http:
method: POST
url: https://app.clio.com/api/v4/activity_rates.json
headers:
- name: X-API-VERSION
value: ''
params:
- name: fields
value: ''
type: query
description: The fields to be returned. See response samples for what fields are available. For more information see
the [fields section](#section/Fields).
body:
type: json
data: '{}'
docs: Outlines the parameters and data fields used when creating a new ActivityRate
- info:
name: Return the data for a single ActivityRate
type: http
http:
method: GET
url: https://app.clio.com/api/v4/activity_rates/:id.json
headers:
- name: IF-MODIFIED-SINCE
value: ''
- name: IF-NONE-MATCH
value: ''
- name: X-API-VERSION
value: ''
params:
- name: fields
value: ''
type: query
description: The fields to be returned. See response samples for what fields are available. For more information see
the [fields section](#section/Fields).
- name: id
value: ''
type: path
description: The unique identifier for the ActivityRate.
docs: Outlines the parameters, optional and required, used when requesting the data for a single ActivityRate
- info:
name: Update a single ActivityRate
type: http
http:
method: PATCH
url: https://app.clio.com/api/v4/activity_rates/:id.json
headers:
- name: IF-MATCH
value: ''
- name: X-API-VERSION
value: ''
params:
- name: fields
value: ''
type: query
description: The fields to be returned. See response samples for what fields are available. For more information see
the [fields section](#section/Fields).
- name: id
value: ''
type: path
description: The unique identifier for the ActivityRate.
body:
type: json
data: '{}'
docs: Outlines the parameters and data fields used when updating a single ActivityRate
- info:
name: Delete a single ActivityRate
type: http
http:
method: DELETE
url: https://app.clio.com/api/v4/activity_rates/:id.json
headers:
- name: X-API-VERSION
value: ''
params:
- name: id
value: ''
type: path
description: The unique identifier for the ActivityRate.
docs: Outlines the parameters, optional and required, used when deleting the record for a single ActivityRate
- info:
name: Activity Descriptions
type: folder
items:
- info:
name: Return the data for all ActivityDescriptions
type: http
http:
method: GET
url: https://app.clio.com/api/v4/activity_descriptions.json
headers:
- name: X-API-VERSION
value: ''
params:
- name: created_since
value: ''
type: query
description: Filter ActivityDescription records to those having the `created_at` field after a specific time. (Expects
an ISO-8601 timestamp).
- name: fields
value: ''
type: query
description: The fields to be returned. See response samples for what fields are available. For more information see
the [fields section](#section/Fields).
- name: flat_rate
value: ''
type: query
description: Filter ActivityDescription records to those that have a flat rate, or not.
- name: ids[]
value: ''
type: query
description: Filter ActivityDescription records to those having the specified unique identifiers.
- name: limit
value: ''
type: query
description: 'A limit on the number of ActivityDescription records to be returned. Limit can range between 1 and 200.
Default: `200`.'
- name: page_token
value: ''
type: query
description: A token specifying which page to return.
- name: rate_for[matter_id]
value: ''
type: query
description: Matter id for rate calculation.
- name: rate_for[user_id]
value: ''
type: query
description: User id for rate calculation. If not provided, the user associated to the API request is assumed.
- name: type
value: ''
type: query
description: Filter ActivityDescription records to those of a specific type.
- name: updated_since
value: ''
type: query
description: Filter ActivityDescription records to those having the `updated_at` field after a specific time. (Expects
an ISO-8601 timestamp).
- name: user_id
value: ''
type: query
description: The unique identifier for a single User. The keyword `null` is not valid for this field. The list will
be filtered to include only the ActivityDescription records with the matching property.
docs: Outlines the parameters, optional and required, used when requesting the data for all ActivityDescriptions
- info:
name: Create a new ActivityDescription
type: http
http:
method: POST
url: https://app.clio.com/api/v4/activity_descriptions.json
headers:
- name: X-API-VERSION
value: ''
params:
- name: fields
value: ''
type: query
description: The fields to be returned. See response samples for what fields are available. For more information see
the [fields section](#section/Fields).
body:
type: json
data: '{}'
docs: Outlines the parameters and data fields used when creating a new ActivityDescription
- info:
name: Return the data for a single ActivityDescription
type: http
http:
method: GET
url: https://app.clio.com/api/v4/activity_descriptions/:id.json
headers:
- name: IF-MODIFIED-SINCE
value: ''
- name: IF-NONE-MATCH
value: ''
- name: X-API-VERSION
value: ''
params:
- name: fields
value: ''
type: query
description: The fields to be returned. See response samples for what fields are available. For more information see
the [fields section](#section/Fields).
- name: id
value: ''
type: path
description: The unique identifier for the ActivityDescription.
docs: Outlines the parameters, optional and required, used when requesting the data for a single ActivityDescription
- info:
name: Update a single ActivityDescription
type: http
http:
method: PATCH
url: https://app.clio.com/api/v4/activity_descriptions/:id.json
headers:
- name: IF-MATCH
value: ''
- name: X-API-VERSION
value: ''
params:
- name: fields
value: ''
type: query
description: The fields to be returned. See response samples for what fields are available. For more information see
the [fields section](#section/Fields).
- name: id
value: ''
type: path
description: The unique identifier for the ActivityDescription.
body:
type: json
data: '{}'
docs: Outlines the parameters and data fields used when updating a single ActivityDescription
- info:
name: Delete a single ActivityDescription
type: http
http:
method: DELETE
url: https://app.clio.com/api/v4/activity_descriptions/:id.json
headers:
- name: X-API-VERSION
value: ''
params:
- name: id
value: ''
type: path
description: The unique identifier for the ActivityDescription.
docs: Outlines the parameters, optional and required, used when deleting the record for a single ActivityDescription
- info:
name: Allocations
type: folder
items:
- info:
name: Return the data for all Allocations
type: http
http:
method: GET
url: https://app.clio.com/api/v4/allocations.json
headers:
- name: X-API-VERSION
value: ''
params:
- name: bill_id
value: ''
type: query
description: The unique identifier for a single Bill. The keyword `null` is not valid for this field. The list will
be filtered to include only the Allocation records with the matching property.
- name: contact_id
value: ''
type: query
description: The unique identifier for a single Contact. The keyword `null` is not valid for this field. The list
will be filtered to include only the Allocation records with the matching property.
- name: created_since
value: ''
type: query
description: Filter Allocation records to those having the `created_at` field after a specific time. (Expects an ISO-8601
timestamp).
- name: fields
value: ''
type: query
description: The fields to be returned. See response samples for what fields are available. For more information see
the [fields section](#section/Fields).
- name: ids[]
value: ''
type: query
description: Filter Allocation records to those having the specified unique identifiers.
- name: limit
value: ''
type: query
description: 'A limit on the number of Allocation records to be returned. Limit can range between 1 and 200. Default:
`200`.'
- name: matter_id
value: ''
type: query
description: The unique identifier for a single Matter. The keyword `null` is not valid for this field. The list will
be filtered to include only the Allocation records with the matching property.
- name: order
value: ''
type: query
description: 'Orders the Allocation records by the given field. Default: `date(asc)`.'
- name: page_token
value: ''
type: query
description: A token specifying which page to return.
- name: parent_id
value: ''
type: query
description: ID of parent (either a Payment or CreditMemo) this allocation belongs to
- name: parent_type
value: ''
type: query
description: Filter Allocation records based on whether the parent is a CreditMemo or a Payment.
- name: status
value: ''
type: query
description: Filter Allocation records to only those that are voided (`"invalid"`) or not voided (`"valid"`).
- name: updated_since
value: ''
type: query
description: Filter Allocation records to those having the `updated_at` field after a specific time. (Expects an ISO-8601
timestamp).
docs: Outlines the parameters, optional and required, used when requesting the data for all Allocations
- info:
name: Return the data for a single Allocation
type: http
http:
method: GET
url: https://app.clio.com/api/v4/allocations/:id.json
headers:
- name: IF-MODIFIED-SINCE
value: ''
- name: IF-NONE-MATCH
value: ''
- name: X-API-VERSION
value: ''
params:
- name: fields
value: ''
type: query
description: The fields to be returned. See response samples for what fields are available. For more information see
the [fields section](#section/Fields).
- name: id
value: ''
type: path
description: The unique identifier for the Allocation.
docs: Outlines the parameters, optional and required, used when requesting the data for a single Allocation
- info:
name: Bank Accounts
type: folder
items:
- info:
name: Return the data for all BankAccounts
type: http
http:
method: GET
url: https://app.clio.com/api/v4/bank_accounts.json
headers:
- name: X-API-VERSION
value: ''
params:
- name: created_since
value: ''
type: query
description: Filter BankAccount records to those having the `created_at` field after a specific time. (Expects an
ISO-8601 timestamp).
- name: fields
value: ''
type: query
description: The fields to be returned. See response samples for what fields are available. For more information see
the [fields section](#section/Fields).
- name: ids[]
value: ''
type: query
description: Filter BankAccount records to those having the specified unique identifiers.
- name: limit
value: ''
type: query
description: 'A limit on the number of BankAccount records to be returned. Limit can range between 1 and 200. Default:
`200`.'
- name: order
value: ''
type: query
description: 'Orders the BankAccount records by the given field. Default: `id(asc)`.'
- name: page_token
value: ''
type: query
description: A token specifying which page to return.
- name: show_empty_accounts
value: ''
type: query
description: Filter BankAccount records to those having a zero or non zero balance.
- name: status
value: ''
type: query
description: Filter BankAccount records to those having a specific status.
- name: type
value: ''
type: query
description: Filter BankAccount records to those having a specific type.
- name: updated_since
value: ''
type: query
description: Filter BankAccount records to those having the `updated_at` field after a specific time. (Expects an
ISO-8601 timestamp).
- name: user_id
value: ''
type: query
description: The unique identifier for a single User. Use the keyword `null` to match those without a BankAccount.
The list will be filtered to include only the BankAccount records with the matching property.
docs: Outlines the parameters, optional and required, used when requesting the data for all BankAccounts
- info:
name: Create a new BankAccount
type: http
http:
method: POST
url: https://app.clio.com/api/v4/bank_accounts.json
headers:
- name: X-API-VERSION
value: ''
params:
- name: fields
value: ''
type: query
description: The fields to be returned. See response samples for what fields are available. For more information see
the [fields section](#section/Fields).
body:
type: json
data: '{}'
docs: Outlines the parameters and data fields used when creating a new BankAccount
- info:
name: Return the data for a single BankAccount
type: http
http:
method: GET
url: https://app.clio.com/api/v4/bank_accounts/:id.json
headers:
- name: IF-MODIFIED-SINCE
value: ''
- name: IF-NONE-MATCH
value: ''
- name: X-API-VERSION
value: ''
params:
- name: fields
value: ''
type: query
description: The fields to be returned. See response samples for what fields are available. For more information see
the [fields section](#section/Fields).
- name: id
value: ''
type: path
description: The unique identifier for the BankAccount.
docs: Outlines the parameters, optional and required, used when requesting the data for a single BankAccount
- info:
name: Update a single BankAccount
type: http
http:
method: PATCH
url: https://app.clio.com/api/v4/bank_accounts/:id.json
headers:
- name: IF-MATCH
value: ''
- name: X-API-VERSION
value: ''
params:
- name: fields
value: ''
type: query
description: The fields to be returned. See response samples for what fields are available. For more information see
the [fields section](#section/Fields).
- name: id
value: ''
type: path
description: The unique identifier for the BankAccount.
body:
type: json
data: '{}'
docs: Outlines the parameters and data fields used when updating a single BankAccount
- info:
name: Delete a single BankAccount
type: http
http:
method: DELETE
url: https://app.clio.com/api/v4/bank_accounts/:id.json
headers:
- name: X-API-VERSION
value: ''
params:
- name: id
value: ''
type: path
description: The unique identifier for the BankAccount.
docs: Outlines the parameters, optional and required, used when deleting the record for a single BankAccount
- info:
name: Bank Transactions
type: folder
items:
- info:
name: Return the data for all BankTransactions
type: http
http:
method: GET
url: https://app.clio.com/api/v4/bank_transactions.json
headers:
- name: X-API-VERSION
value: ''
params:
- name: bank_account_id
value: ''
type: query
description: The unique identifier for a single BankAccount. The keyword `null` is not valid for this field. The list
will be filtered to include only the BankTransaction records with the matching property.
- name: client_id
value: ''
type: query
description: The unique identifier for a single Contact. The keyword `null` is not valid for this field. The list
will be filtered to include only the BankTransaction records with the matching property.
- name: created_since
value: ''
type: query
description: Filter BankTransaction records to those having the `created_at` field after a specific time. (Expects
an ISO-8601 timestamp).
- name: fields
value: ''
type: query
description: The fields to be returned. See response samples for what fields are available. For more information see
the [fields section](#section/Fields).
- name: ids[]
value: ''
type: query
description: Filter BankTransaction records to those having the specified unique identifiers.
- name: limit
value: ''
type: query
description: 'A limit on the number of BankTransaction records to be returned. Limit can range between 1 and 200.
Default: `200`.'
- name: matter_id
value: ''
type: query
description: The unique identifier for a single Matter. The keyword `null` is not valid for this field. The list will
be filtered to include only the BankTransaction records with the matching property.
- name: order
value: ''
type: query
description: 'Orders the BankTransaction records by the given field. Default: `id(asc)`.'
- name: page_token
value: ''
type: query
description: A token specifying which page to return.
- name: type
value: ''
type: query
description: Filter BankTransaction records to those having a specific type.
- name: unreconciled_only
value: ''
type: query
description: Filter BankTransaction records to only those that are unreconciled
- name: updated_since
value: ''
type: query
description: Filter BankTransaction records to those having the `updated_at` field after a specific time. (Expects
an ISO-8601 timestamp).
docs: Outlines the parameters, optional and required, used when requesting the data for all BankTransactions
- info:
name: Create a new BankTransaction
type: http
http:
method: POST
url: https://app.clio.com/api/v4/bank_transactions.json
headers:
- name: X-API-VERSION
value: ''
params:
- name: fields
value: ''
type: query
description: The fields to be returned. See response samples for what fields are available. For more information see
the [fields section](#section/Fields).
body:
type: json
data: '{}'
docs: Outlines the parameters and data fields used when creating a new BankTransaction
- info:
name: Return the data for a single BankTransaction
type: http
http:
method: GET
url: https://app.clio.com/api/v4/bank_transactions/:id.json
headers:
- name: IF-MODIFIED-SINCE
value: ''
- name: IF-NONE-MATCH
value: ''
- name: X-API-VERSION
value: ''
params:
- name: fields
value: ''
type: query
description: The fields to be returned. See response samples for what fields are available. For more information see
the [fields section](#section/Fields).
- name: id
value: ''
type: path
description: The unique identifier for the BankTransaction.
docs: Outlines the parameters, optional and required, used when requesting the data for a single BankTransaction
- info:
name: Update a single BankTransaction
type: http
http:
method: PATCH
url: https://app.clio.com/api/v4/bank_transactions/:id.json
headers:
- name: IF-MATCH
value: ''
- name: X-API-VERSION
value: ''
params:
- name: fields
value: ''
type: query
description: The fields to be returned. See response samples for what fields are available. For more information see
the [fields section](#section/Fields).
- name: id
value: ''
type: path
description: The unique identifier for the BankTransaction.
body:
type: json
data: '{}'
docs: Outlines the parameters and data fields used when updating a single BankTransaction
- info:
name: Delete a single BankTransaction
type: http
http:
method: DELETE
url: https://app.clio.com/api/v4/bank_transactions/:id.json
headers:
- name: X-API-VERSION
value: ''
params:
- name: id
value: ''
type: path
des
# --- truncated at 32 KB (331 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/clio/refs/heads/main/apis.yml