Clio

Connect your AI agents to Clio.

Authentication: OAuth. See Magic Link for the runtime auth flow, or Application credentials to bring your own OAuth app.

Sample use cases

  • Create a new matter for client Acme Corp and assign it to the litigation practice area.
  • List all open tasks due this week across my active matters.
  • Log a billable activity of 2 hours to the Johnson matter.
  • Upload the signed engagement letter to the client’s document folder.

Available Tools

list_activities

List or search time entries and expenses. Filter server-side by matter, user, type, billing status, or date range. No…

get_activity

Get one time entry or expense by ID. Use list_activities to find activity IDs. A TimeEntry’s ‘quantity’ is in seconds.

create_activity

Log a time entry or expense against a matter. type, date, and quantity are required — quantity is in SECONDS for a Ti…

update_activity

Update a time entry or expense. quantity is in SECONDS for a TimeEntry. An entry already billed may be rejected. Use…

delete_activity

Delete a time entry or expense permanently. An entry already on a bill may be rejected. Use list_activities to find a…

list_activity_descriptions

List the firm’s activity descriptions and their default rates. Call this before create_activity to get a valid activi…

list_expense_categories

List the firm’s expense categories. Call this before create_activity with type=‘ExpenseEntry’ to get a valid expense_…

list_users

List the firm’s Clio users. Call this to get the user IDs that create_matter (responsible_attorney_id, originating_at…

get_user

Get one Clio user by ID. Use list_users to find user IDs, or get_current_user for the signed-in user.

get_current_user

Get the Clio user the connection is authenticated as, including their firm account and notification_methods. Use this…

list_groups

List the firm’s groups, which control matter permissions and rates. Use this to find the group_id that create_matter…

get_group

Get one Clio group by ID, including its members. Use list_groups to find group IDs.

list_currencies

List the currencies available on the Clio account, with their codes and symbols.

list_webhooks

List the webhooks registered on this Clio connection. Check expires_at — webhooks lapse after at most 31 days unless…

get_webhook

Get one Clio webhook by ID, including its status and expiry. Use list_webhooks to find webhook IDs.

create_webhook

Register a webhook so Clio posts events to your HTTPS URL. url, model, and events are required; non-HTTPS URLs are re…

update_webhook

Update a webhook’s URL, events, payload fields, or expiry. Use this to renew a webhook before expires_at passes. Use…

delete_webhook

Delete a Clio webhook so it stops delivering events. Use list_webhooks to find webhook IDs.

list_calendar_entries

List or search Clio calendar entries (appointments and deadlines). Filter server-side by matter, calendar, or date ra…

get_calendar_entry

Get one Clio calendar entry by ID, including matter, attendees, and recurrence rule. Use list_calendar_entries to fin…

create_calendar_entry

Create a Clio calendar entry. summary, start_at, end_at and calendar_owner_id are all required — call list_calendars…

update_calendar_entry

Update a Clio calendar entry. Only supplied fields change. Call get_calendar_entry first and check recurrence_rule: i…

delete_calendar_entry

Delete a Clio calendar entry permanently. Call get_calendar_entry first and check recurrence_rule: if it is not null…

list_calendars

List the calendars visible to the authenticated user. Call this before create_calendar_entry to get a valid calendar_…

get_calendar

Get one Clio calendar by ID. Use list_calendars to find calendar IDs.

list_calendar_entry_event_types

List the firm’s calendar entry event types. Call this before create_calendar_entry or update_calendar_entry to get a…

get_calendar_entry_event_type

Get one calendar entry event type by ID. Use list_calendar_entry_event_types to find event type IDs.

list_reminders

List reminders set on calendar entries or tasks. Filter by subject_type plus subject_id to see the reminders on one e…

get_reminder

Get one Clio reminder by ID. Use list_reminders to find reminder IDs.

create_reminder

Set a reminder on a calendar entry or task, firing duration_value duration_units before it. Call get_current_user fir…

update_reminder

Change how long before its subject a reminder fires, or which notification method delivers it. Pass duration_value an…

delete_reminder

Delete a reminder. The calendar entry or task it belongs to is unaffected. Use list_reminders to find IDs.

list_contacts

List or search Clio contacts (people and companies). Pass query for free-text search across name, email, and phone, o…

get_contact

Get one Clio contact by ID. Use list_contacts to find contact IDs. Pass ‘fields’ to widen the response, e.g. to inclu…

create_contact

Create a Clio contact. type is required: use ‘Person’ with first_name and last_name, or ‘Company’ with name. For cust…

update_contact

Update fields on a Clio contact. Only supplied fields change. For nested lists such as email_addresses, include an en…

delete_contact

Delete a Clio contact permanently. Fails if the contact is the client on a matter — reassign the matter first with up…

list_contact_email_addresses

List every email address on a contact, with its label and which one is the default. Use list_contacts to find contact…

list_contact_phone_numbers

List every phone number on a contact, with its label and which one is the default. Use list_contacts to find contact…

list_custom_fields

List the firm’s custom fields on matters or contacts, with each picklist field’s allowed options. Call this before cr…

get_custom_field

Get one custom field by ID, including its picklist options. Use list_custom_fields to find custom field IDs.

create_custom_field

Create a custom field on matters or contacts. name, parent_type, and field_type are required. For field_type=‘picklis…

update_custom_field

Update a custom field’s label, visibility, or picklist options. parent_type and field_type cannot be changed after cr…

delete_custom_field

Delete a custom field. Values already recorded on matters or contacts are removed with it. To hide the field instead,…

list_custom_field_sets

List custom field sets, which group related custom fields on matters or contacts. Use list_custom_fields for the indi…

get_custom_field_set

Get one custom field set by ID, including the fields it groups. Use list_custom_field_sets to find set IDs.

create_custom_field_set

Create a custom field set grouping existing custom fields. name and parent_type are required. Use list_custom_fields…

update_custom_field_set

Rename a custom field set or replace the fields it groups. Passing custom_field_ids replaces the whole membership. Us…

delete_custom_field_set

Delete a custom field set. The custom fields it grouped are not deleted. Use list_custom_field_sets to find set IDs.

list_documents

List or search Clio documents by name, matter, contact, folder, or category. Returns metadata only — use download_doc…

get_document

Get one Clio document’s metadata by ID — name, size, category, and where it is filed. Returns no file content; use do…

upload_document

Upload a new document into Clio, filed under a matter, folder, or contact. Pass the file as base64 in content_base64,…

upload_document_version

Upload a new version of an existing Clio document, preserving its history. Pass the file as base64 in content_base64,…

download_document

Download a Clio document’s content by ID. Text-like files come back as UTF-8 text; anything else as base64 — check th…

update_document

Update a Clio document’s metadata — rename it, refile it under a different parent, or change its category. Does not c…

delete_document

Move a Clio document to the trash. Recover it with update_document and restore=true. Use list_documents to find docum…

copy_document

Copy a Clio document into another matter, folder, or contact, leaving the original in place. Use list_documents for d…

list_document_versions

List the version history of a Clio document, highest version_number first. Use the returned version IDs with restore_…

restore_document_version

Promote an earlier version of a Clio document to be the latest. Returns only a success flag — call download_document…

list_folders

List or search Clio folders by name, matter, contact, or parent folder. Use this to find folder IDs for upload_docume…

list_folder_contents

List folders and documents together in one call. Pass matter_id or contact_id to list that record’s contents, or pare…

get_folder

Get one Clio folder by ID. Use list_folders to find folder IDs.

create_folder

Create a folder inside a matter, contact, or another folder. Use list_matters, list_contacts, or list_folders to find…

update_folder

Rename a Clio folder or move it under a different parent. Set restore=true to recover a trashed folder. Use list_fold…

delete_folder

Move a Clio folder and its contents to the trash. Recover it with update_folder and restore=true. Use list_folders to…

list_document_categories

List the firm’s document categories. Call this before upload_document or update_document to get a valid document_cate…

get_document_category

Get one Clio document category by ID. Use list_document_categories to find category IDs.

create_document_category

Create a document category for filing documents. Call list_document_categories first to avoid duplicating an existing…

update_document_category

Rename a Clio document category. Use list_document_categories to find category IDs.

delete_document_category

Delete a document category. Documents filed under it are not deleted but lose the category. Use list_document_categor…

list_matters

List or search Clio matters (cases). Filter server-side by status, client, practice area, or responsible attorney, or…

get_matter

Get one Clio matter by ID, including client, practice area, stage, and responsible attorney. Use list_matters to find…

create_matter

Create a Clio matter for an existing client contact. client_id and description are required — use list_contacts to fi…

update_matter

Update fields on a Clio matter. Only supplied fields change; omitted fields are left alone. Use list_matters to find…

delete_matter

Delete a Clio matter permanently, along with its associated records. This cannot be undone — to close a matter instea…

list_matter_contacts

List every contact associated with a matter, including the client and all related contacts. Use list_matters to find…

list_related_contacts

List the related (non-client) contacts on a matter, such as opposing counsel or witnesses. Each entry’s contact_id is…

list_practice_areas

List the firm’s practice areas. Call this before create_matter or update_matter to get a valid practice_area_id — the…

list_matter_stages

List the firm’s matter stages, optionally filtered to one practice area. Call this before create_matter or update_mat…

list_relationships

List matter-to-contact relationships, optionally filtered by matter or contact. Each entry describes how a contact re…

get_relationship

Get one matter-to-contact relationship by ID. Use list_relationships to find IDs.

create_relationship

Relate an existing contact to a matter, e.g. as opposing counsel or a witness. Use list_matters for matter_id and lis…

update_relationship

Update the description on a matter-to-contact relationship. Use list_relationships to find relationship IDs.

delete_relationship

Remove a contact’s relationship to a matter. The contact itself is not deleted. Use list_relationships to find relati…

list_notes

List or search Clio notes on matters and contacts. Filter server-side by matter_id, contact_id, or type, or pass quer…

get_note

Get one Clio note by ID, including its full detail body. Use list_notes to find note IDs.

create_note

Create a note on a matter or a contact. Set type=‘Matter’ with matter_id, or type=‘Contact’ with contact_id — the two…

update_note

Update a Clio note’s subject, detail, or date. The matter or contact it is filed against cannot be changed. Use list_…

delete_note

Delete a Clio note permanently. Use list_notes to find note IDs.

list_comments

List comments left on documents and folders. Pass item_id to see the comments on one of them — use list_documents or…

get_comment

Get one comment by ID. Use list_comments to find comment IDs.

create_comment

Comment on a document or folder. Pass its ID as item_id — use list_documents or list_folders to find one. To add a no…

update_comment

Edit the text of a comment. Use list_comments to find comment IDs.

delete_comment

Delete a comment from a document or folder. Use list_comments to find comment IDs.

list_communications

List or search logged phone calls and emails. Filter server-side by matter, contact, user, type, or received-date ran…

get_communication

Get one logged phone call or email by ID, including its body and parties. Use list_communications to find communicati…

create_communication

Log a phone call or email against a matter. Set type to PhoneCommunication or EmailCommunication. Use list_matters fo…

update_communication

Update a logged phone call or email. Use list_communications to find communication IDs.

delete_communication

Delete a logged phone call or email. Use list_communications to find communication IDs.

list_log_entries

List Clio audit-log entries recording who accessed firm data and when. Read-only and account-wide; filter with create…

list_tasks

List or search Clio tasks. Filter server-side by matter, assignee, status, priority, or due-date range, or pass query…

get_task

Get one Clio task by ID, including matter, assignee, and due date. Use list_tasks to find task IDs.

create_task

Create a Clio task. name, assignee_id and assignee_type are all required — Clio rejects an unassigned task. Use list_…

update_task

Update a Clio task. Only supplied fields change. Set status=‘complete’ to close the task. Use list_tasks to find task…

delete_task

Delete a Clio task permanently. To mark it done instead, call update_task with status=‘complete’. Use list_tasks to f…

list_task_types

List the firm’s task types. Call this before create_task or update_task to get a valid task_type_id — task types are…

get_task_type

Get one Clio task type by ID. Use list_task_types to find task type IDs.

create_task_type

Create a task type the firm can assign to tasks. Use list_task_types to check for an existing one first.

update_task_type

Rename or retire a Clio task type. Clio has no delete endpoint for task types: retire one by setting deleted_at to a…