Clio Custom Fields API
The Custom Fields API from Clio — 2 operation(s) for custom fields.
The Custom Fields API from Clio — 2 operation(s) for custom fields.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.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.curl "https://apis.io/api/v1/apis/clio-custom-fields-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
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.
openapi: 3.2.0
info:
title: Clio API Documentation Custom Fields API
contact:
name: Clio API Support
email: api@clio.com
description: '# Developer Support and Feedback
* Clio takes the availability and stability of our API seriously; please report any **degradations** or **breakages** to Clio''s API Support team at api@clio.com.'
version: v4
x-logo:
url: https://www.clio.com/wp-content/uploads/2015/05/Container-5-Logo.png
servers:
- url: https://app.clio.com/api/v4
description: US region Production Server
- url: https://eu.app.clio.com/api/v4
description: Europe region Production Server
- url: https://ca.app.clio.com/api/v4
description: Canada region Production Server
- url: https://au.app.clio.com/api/v4
description: Australia region Production Server
tags:
- name: Custom Fields
description: ''
paths:
/custom_fields.json:
get:
tags:
- Custom Fields
summary: Return the data for all CustomFields
operationId: CustomField#index
description: Outlines the parameters, optional and required, used when requesting the data for all CustomFields
parameters:
- name: X-API-VERSION
in: header
description: 'The [API minor version](#section/Minor-Versions). Default: latest version.'
required: false
schema:
type: string
- name: created_since
in: query
description: Filter CustomField records to those having the `created_at` field after a specific time. (Expects an ISO-8601 timestamp).
required: false
schema:
type: string
format: date-time
- name: deleted
in: query
description: Filter CustomField records to those that have been deleted for future use.
required: false
schema:
type: boolean
- name: field_type
in: query
description: Field type of this custom field
required: false
schema:
type: string
enum:
- checkbox
- contact
- currency
- date
- time
- email
- matter
- numeric
- picklist
- text_area
- text_line
- url
- name: fields
in: query
description: The fields to be returned. See response samples for what fields are available. For more information see the [fields section](#section/Fields).
required: false
schema:
type: string
- name: ids[]
in: query
description: Filter CustomField records to those having the specified unique identifiers.
required: false
schema:
type: integer
format: int64
- name: limit
in: query
description: 'A limit on the number of CustomField records to be returned. Limit can range between 1 and 200. Default: `200`.'
required: false
schema:
type: integer
format: int32
- name: order
in: query
description: 'Orders the CustomField records by the given field. Default: `id(asc)`.'
required: false
schema:
type: string
enum:
- id(asc)
- id(desc)
- name(asc)
- name(desc)
- display_order(asc)
- display_order(desc)
- name: page_token
in: query
description: A token specifying which page to return.
required: false
schema:
type: string
- name: parent_type
in: query
description: Filter CustomField records to those that have the specified `parent_type`.
required: false
schema:
type: string
enum:
- matter
- contact
- name: query
in: query
description: Wildcard search for `name` matching a given string.
required: false
schema:
type: string
- name: updated_since
in: query
description: Filter CustomField records to those having the `updated_at` field after a specific time. (Expects an ISO-8601 timestamp).
required: false
schema:
type: string
format: date-time
- name: visible_and_required
in: query
description: Filter CustomField records to those that are visible and required.
required: false
schema:
type: boolean
responses:
'200':
description: Ok
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/CustomField_List'
'400':
description: Bad Request
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/Error'
'401':
description: Unauthorized
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/Error'
'403':
description: Forbidden
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/Error'
'429':
description: Too Many Requests
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/Error'
post:
tags:
- Custom Fields
summary: Create a new CustomField
operationId: CustomField#create
description: Outlines the parameters and data fields used when creating a new CustomField
parameters:
- name: X-API-VERSION
in: header
description: 'The [API minor version](#section/Minor-Versions). Default: latest version.'
required: false
schema:
type: string
- name: fields
in: query
description: The fields to be returned. See response samples for what fields are available. For more information see the [fields section](#section/Fields).
required: false
schema:
type: string
responses:
'201':
description: Created
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/CustomField_Show'
'400':
description: Bad Request
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/Error'
'403':
description: Forbidden
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/Error'
'404':
description: Not Found
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/Error'
'422':
description: Unprocessable Entity
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/Error'
'401':
description: Unauthorized
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/Error'
'429':
description: Too Many Requests
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/Error'
requestBody:
description: Request Body for Custom Fields
content:
application/json:
schema:
type: object
required:
- data
properties:
data:
type: object
properties:
display_order:
type: integer
format: int32
description: The display position of the CustomField.
displayed:
type: boolean
default: true
description: Whether or not the CustomField should be displayed by default.
field_type:
type: string
enum:
- checkbox
- contact
- currency
- date
- time
- email
- matter
- numeric
- picklist
- text_area
- text_line
- url
description: Field type of the CustomField.
name:
type: string
description: CustomField name.
parent_type:
type: string
enum:
- Contact
- Matter
description: Type of object the CustomField is for.
picklist_options:
type: array
items:
type: object
properties:
id:
type: integer
format: int64
description: The unique identifier for a single PicklistOption associated with the CustomField. The keyword `null` is not valid for this field. Not required for creating new PicklistOptions, but required for updating or deleting existing ones.
option:
type: string
description: The option value.
_deleted:
type: boolean
description: Whether or not the PicklistOption should be deleted.
required:
type: boolean
default: false
description: Whether or not the CustomField should require a value.
required:
- name
- parent_type
- field_type
application/x-www-form-urlencoded:
schema:
type: object
required:
- data
properties:
data:
type: object
properties:
display_order:
type: integer
format: int32
description: The display position of the CustomField.
displayed:
type: boolean
default: true
description: Whether or not the CustomField should be displayed by default.
field_type:
type: string
enum:
- checkbox
- contact
- currency
- date
- time
- email
- matter
- numeric
- picklist
- text_area
- text_line
- url
description: Field type of the CustomField.
name:
type: string
description: CustomField name.
parent_type:
type: string
enum:
- Contact
- Matter
description: Type of object the CustomField is for.
picklist_options:
type: array
items:
type: object
properties:
id:
type: integer
format: int64
description: The unique identifier for a single PicklistOption associated with the CustomField. The keyword `null` is not valid for this field. Not required for creating new PicklistOptions, but required for updating or deleting existing ones.
option:
type: string
description: The option value.
_deleted:
type: boolean
description: Whether or not the PicklistOption should be deleted.
required:
type: boolean
default: false
description: Whether or not the CustomField should require a value.
required:
- name
- parent_type
- field_type
multipart/form-data:
schema:
type: object
required:
- data
properties:
data:
type: object
properties:
display_order:
type: integer
format: int32
description: The display position of the CustomField.
displayed:
type: boolean
default: true
description: Whether or not the CustomField should be displayed by default.
field_type:
type: string
enum:
- checkbox
- contact
- currency
- date
- time
- email
- matter
- numeric
- picklist
- text_area
- text_line
- url
description: Field type of the CustomField.
name:
type: string
description: CustomField name.
parent_type:
type: string
enum:
- Contact
- Matter
description: Type of object the CustomField is for.
picklist_options:
type: array
items:
type: object
properties:
id:
type: integer
format: int64
description: The unique identifier for a single PicklistOption associated with the CustomField. The keyword `null` is not valid for this field. Not required for creating new PicklistOptions, but required for updating or deleting existing ones.
option:
type: string
description: The option value.
_deleted:
type: boolean
description: Whether or not the PicklistOption should be deleted.
required:
type: boolean
default: false
description: Whether or not the CustomField should require a value.
required:
- name
- parent_type
- field_type
required: false
/custom_fields/{id}.json:
get:
tags:
- Custom Fields
summary: Return the data for a single CustomField
operationId: CustomField#show
description: Outlines the parameters, optional and required, used when requesting the data for a single CustomField
parameters:
- name: IF-MODIFIED-SINCE
in: header
description: The server will send the requested resource with a 200 status, but only if it has been modified after the given date. (Expects an RFC 2822 timestamp).
required: false
schema:
type: string
format: date
- name: IF-NONE-MATCH
in: header
description: The server will send the requested resource with a 200 status, but only if the existing resource's [ETag](#section/ETags) doesn't match any of the values listed.
required: false
schema:
type: string
- name: X-API-VERSION
in: header
description: 'The [API minor version](#section/Minor-Versions). Default: latest version.'
required: false
schema:
type: string
- name: fields
in: query
description: The fields to be returned. See response samples for what fields are available. For more information see the [fields section](#section/Fields).
required: false
schema:
type: string
- name: id
in: path
description: The unique identifier for the CustomField.
required: true
schema:
type: integer
format: int64
responses:
'200':
description: Ok
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/CustomField_Show'
'400':
description: Bad Request
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/Error'
'403':
description: Forbidden
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/Error'
'404':
description: Not Found
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/Error'
'401':
description: Unauthorized
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/Error'
'429':
description: Too Many Requests
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/Error'
'304':
description: Not Modified
patch:
tags:
- Custom Fields
summary: Update a single CustomField
operationId: CustomField#update
description: Outlines the parameters and data fields used when updating a single CustomField
parameters:
- name: IF-MATCH
in: header
description: The server will update the requested resource and send back a 200 status, but only if value in the header matches the existing resource's [ETag](#section/ETags).
required: false
schema:
type: string
- name: X-API-VERSION
in: header
description: 'The [API minor version](#section/Minor-Versions). Default: latest version.'
required: false
schema:
type: string
- name: fields
in: query
description: The fields to be returned. See response samples for what fields are available. For more information see the [fields section](#section/Fields).
required: false
schema:
type: string
- name: id
in: path
description: The unique identifier for the CustomField.
required: true
schema:
type: integer
format: int64
responses:
'200':
description: Ok
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/CustomField_Show'
'400':
description: Bad Request
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/Error'
'403':
description: Forbidden
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/Error'
'404':
description: Not Found
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/Error'
'422':
description: Unprocessable Entity
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/Error'
'401':
description: Unauthorized
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/Error'
'429':
description: Too Many Requests
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/Error'
'412':
description: Precondition Failed
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/Error'
requestBody:
description: Request Body for Custom Fields
content:
application/json:
schema:
type: object
required:
- data
properties:
data:
type: object
properties:
display_order:
type: integer
format: int32
description: The display position of the CustomField.
displayed:
type: boolean
default: true
description: Whether or not the CustomField should be displayed by default.
name:
type: string
description: CustomField name.
picklist_options:
type: array
items:
type: object
properties:
id:
type: integer
format: int64
description: The unique identifier for a single PicklistOption associated with the CustomField. The keyword `null` is not valid for this field. Not required for creating new PicklistOptions, but required for updating or deleting existing ones.
option:
type: string
description: The option value.
_deleted:
type: boolean
description: Whether or not the PicklistOption should be deleted.
required:
type: boolean
default: false
description: Whether or not the CustomField should require a value.
application/x-www-form-urlencoded:
schema:
type: object
required:
- data
properties:
data:
type: object
properties:
display_order:
type: integer
format: int32
description: The display position of the CustomField.
displayed:
type: boolean
default: true
description: Whether or not the CustomField should be displayed by default.
name:
type: string
description: CustomField name.
picklist_options:
type: array
items:
type: object
properties:
id:
type: integer
format: int64
description: The unique identifier for a single PicklistOption associated with the CustomField. The keyword `null` is not valid for this field. Not required for creating new PicklistOptions, but required for updating or deleting existing ones.
option:
type: string
description: The option value.
_deleted:
type: boolean
description: Whether or not the PicklistOption should be deleted.
required:
type: boolean
default: false
description: Whether or not the CustomField should require a value.
multipart/form-data:
schema:
type: object
required:
- data
properties:
data:
type: object
properties:
display_order:
type: integer
format: int32
description: The display position of the CustomField.
displayed:
type: boolean
default: true
description: Whether or not the CustomField should be displayed by default.
name:
type: string
description: CustomField name.
picklist_options:
type: array
items:
type: object
properties:
id:
type: integer
format: int64
description: The unique identifier for a single PicklistOption associated with the CustomField. The keyword `null` is not valid for this field. Not required for creating new PicklistOptions, but required for updating or deleting existing ones.
option:
type: string
description: The option value.
_deleted:
type: boolean
description: Whether or not the PicklistOption should be deleted.
required:
type: boolean
default: false
description: Whether or not the CustomField should require a value.
required: false
delete:
tags:
- Custom Fields
summary: Delete a single CustomField
operationId: CustomField#destroy
description: Outlines the parameters, optional and required, used when deleting the record for a single CustomField
parameters:
- name: X-API-VERSION
in: header
description: 'The [API minor version](#section/Minor-Versions). Default: latest version.'
required: false
schema:
type: string
- name: id
in: path
description: The unique identifier for the CustomField.
required: true
schema:
type: integer
format: int64
responses:
'204':
description: No Content
'403':
description: Forbidden
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/Error'
components:
schemas:
CustomField_List:
type: object
required:
- data
properties:
data:
type: array
description: CustomField List Response
items:
$ref: '#/components/schemas/CustomField'
CustomField_Show:
type: object
required:
- data
properties:
data:
$ref: '#/components/schemas/CustomField'
CustomField_base:
type: object
properties:
id:
type: integer
format: int64
description: Unique identifier for the *CustomField*
etag:
type: string
description: ETag for the *CustomField*
created_at:
type: string
format: date-time
description: The time the *CustomField* was created (as a ISO-8601 timestamp)
updated_at:
type: string
format: date-time
description: The time the *CustomField* was last updated (as a ISO-8601 timestamp)
name:
type: string
description: The name of the *CustomField*
parent_type:
type: string
enum:
- Contact
- Matter
description: Type of object the *CustomField* is for
field_type:
type: string
enum:
- checkbox
- contact
- currency
- date
- time
- email
- matter
- numeric
- picklist
- text_area
- text_line
- url
description: Field type of the *CustomField*
displayed:
type: boolean
description: Whether the *CustomField* is displayed by default
deleted:
type: boolean
description: Whether the *CustomField* is deleted for future use
required:
type: boolean
description: Whether the *CustomField* requires a value
display_order:
type: integer
format: int32
description: The display position of the *CustomField*
Error:
type: object
required:
- error
properties:
error:
$ref: '#/components/schemas/ErrorDetail'
CustomField:
allOf:
- $ref: '#/components/schemas/CustomField_base'
- type: object
properties:
picklist_options:
type: array
items:
$ref: '#/components/schemas/PicklistOption_base'
description: PicklistOption
ErrorDetail:
type: object
required:
- type
- message
properties:
type:
type: string
description: Unique name for this error
message:
type: string
description: Detailed message about the error
PicklistOption_base:
type: object
properties:
id:
type: integer
format: int64
description: Unique identifier for the *PicklistOption*
etag:
type: string
description: ETag for the *PicklistOption*
created_at:
type: string
format: date-time
description: The time the *PicklistOption* was created (as a ISO-8601 timestamp)
updated_at:
type: string
format: date-time
description: The time the *PicklistOption* was last updated (as a ISO-8601 timestamp)
option:
type: string
description: The value of the *PicklistOption*
deleted_at:
type: string
format: date-time
description: The time the *PicklistOption* was deleted (as a ISO-8601 timestamp)
x-tagGroups:
- name: Api
tags:
- Custom Actions
- Webhooks
- name: Activities
tags:
- Activities
- Activity Descriptions
- Activity Rates
- Expense Categories
- Timers
- Utbms Codes
- Utbms Sets
- name: Accounting
tags:
- Bank Accounts
- Bank Transactions
- Bank Transfers
- name: Billing
tags:
- Bills
- Billable Clients
- Billable Matters
- Bill Themes
- Interest Charges
- Line Items
- Outstanding Client Balances
- name: Calendars
tags:
- Calendars
- Calendar Entries
- Calendar Entry Event Types
- Calendar Visibilities
- Reminders
- name: Clio Payments
tags:
- Clio Payments Links
- Clio Payments Payments
- name: Communications
tags:
- Communications
- Conversations
- Conversation Messages
- name: Contacts
tags:
- Contacts
- Email Addresses
- Phone Numbers
- Notes
- Log Entries
- name: Court Rules
tags:
- Jurisdictions To Triggers
- Jurisdictions
- Matter Dockets
- Service Types
- name: Custom Fields
tags:
- Custom Fields
- Custom Field Sets
- name: Documents
tags:
- Documents
- Document Versions
- Folders
- Document Archives
- Document Automations
- Document Categories
- Document Templates
- Comments
- name: In-app Notifications
tags:
- My Events
- Event Metrics
- name: Matters
tags:
- Matters
- Relationships
- Clients
- Related Contacts
- Matter Contacts
- Notes
- Practice Areas
- Log Entries
- Matter Stages
- Medical Records Details
- Medical Records
- Medical Bills
- Damages
- name: Payments
tags:
- Allocations
# --- truncated at 32 KB (32 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/clio/refs/heads/main/openapi/clio-custom-fields-api-openapi.yml