Clio Custom Fields API

The Custom Fields API from Clio — 2 operation(s) for custom fields.

Operations 5

GET /custom_fields.json Return the data for all CustomFields #
POST /custom_fields.json Create a new CustomField #
GET /custom_fields/{id}.json Return the data for a single CustomField #
PATCH /custom_fields/{id}.json Update a single CustomField #
DELETE /custom_fields/{id}.json Delete a single CustomField #

Work with this as data

Every API 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 apis

7 MCP tools reach this
  • 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.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/clio-custom-fields-api"
All apis
curl "https://apis.io/api/v1/apis?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.

OpenAPI Specification

clio-custom-fields-api-openapi.yml Raw ↑
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