### API Overview: Clio API Documentation Source: https://docs.developers.clio.com/openapi.json # 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](mailto:api@clio.com). * For business and partnership inquiries, contact our API Partnerships team at [api.partnerships@clio.com](mailto:api.partnerships@clio.com). * For best practices and tips from the Clio development community, join the conversation in the [Clio Developer Slack Channel](https://join.slack.com/t/clio-public/shared_invite/zt-36i0eqgo1-7POORPtMJpp2N0~_auL2IQ). A community-driven [Clio Developers Stack Overflow Group](https://stackoverflow.com/questions/tagged/clio-api) also exists where you can connect and ask questions from other Clio API users. # Getting Started > **Note:** The API is available in four distinct data regions: Australia (au.app.clio.com), Canada (ca.app.clio.com), EU (eu.app.clio.com) and US (app.clio.com). > > Likewise, the developer portal is available at region-specific links for the [Australia](https://au.developers.clio.com), [Canada](https://ca.developers.clio.com), [EU](https://eu.developers.clio.com), and [US](https://developers.clio.com) regions. > > This document assumes the US region is being used (app.clio.com). If you're building in one of the other regions, you should adapt the links and examples as necessary. To start building on the Clio API, you’ll need a Clio account – you can review our [Developer Handbook](https://docs.developers.clio.com/) and follow the steps to sign up for an account. Once you have an account, you can [create a developer application](https://docs.developers.clio.com/api-docs/applications) from the [Developer Portal](https://developers.clio.com) and start building! # Authorization with OAuth 2.0 See our [Authorization documentation →](https://docs.developers.clio.com/api-docs/authorization) # Permissions See our [Permissions documentation →](https://docs.developers.clio.com/api-docs/permissions) # Fields See our [Fields documentation →](https://docs.developers.clio.com/api-docs/fields) # Rate Limiting See our [Rate Limits documentation →](https://docs.developers.clio.com/api-docs/rate-limits) # Paging See our [Pagination documentation →](https://docs.developers.clio.com/api-docs/paging) # ETags See our [ETags documentation →](https://docs.developers.clio.com/api-docs/etags) # Minor Versions API v4 supports multiple minor versions. Versions are of the form '4.X.Y'. To request a specific version, you can use an `X-API-VERSION` header in your request, with the header value set to the API version you're requesting. If this header is omitted, it will be treated as a request for the default API version. If the header is present but invalid, it will return a `410 Gone` response. If the header is present and valid, but it is no longer supported, it will return a `410 Gone` response. An `X-API-VERSION` will be included in all successful responses, with the value being set to the API version used. You can find our [API Versioning Policy and Guidelines](https://docs.developers.clio.com/api-docs/api-versioning-policy) in our documentation hub. The [API Changelog](https://docs.developers.clio.com/api-docs/api-changelog) explains each version's changes in further detail. ### [4.0.4](https://docs.developers.clio.com/api-docs/api-changelog#404) * Update `quantity` field to return values in seconds rather than hours for Activities ### [4.0.5](https://docs.developers.clio.com/api-docs/api-changelog#405) * Remove `matter_balances` field from Bills * Standardize status/state enum values * Add a Document association to completed DocumentAutomations * Add rate visibility handling for Activity's price and total ### [4.0.6](https://docs.developers.clio.com/api-docs/api-changelog#406) * Remove `document_versions` collection field from Documents ### [4.0.7](https://docs.developers.clio.com/api-docs/api-changelog#407) * Change secure link format ### [4.0.8](https://docs.developers.clio.com/api-docs/api-changelog#408) * `Activity` hours are redacted in the response based on the activity hours visibility setting for the user * Add `quantity_redacted` field to activities ### [4.0.9](https://docs.developers.clio.com/api-docs/api-changelog#409) * Contacts are filtered and redacted in the response based on the new 'Contacts Visibility' user permission setting. ### [4.0.10](https://docs.developers.clio.com/api-docs/api-changelog#4010) * Fixed validation of `type` query parameter when querying Notes ### [4.0.12](https://docs.developers.clio.com/api-docs/api-changelog#4012) * Restrict fields for CalendarEntry that should only be visible to event owners, editors, and viewers ### [4.0.13](https://docs.developers.clio.com/api-docs/api-changelog#4013) **This is the default version** * Add association limits to Contacts * Returns 422 Unprocessable Entity when association limits are exceeded ```yaml # Clio API Documentation # Version: v4 # 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](mailto:api@clio.com). * For business and partnership inquiries, contact our API Partnerships team at [api.partnerships@clio.com](mailto:api.partnerships@clio.com). * For best practices and tips from the Clio development community, join the conversation in the [Clio Developer Slack Channel](https://join.slack.com/t/clio-public/shared_invite/zt-36i0eqgo1-7POORPtMJpp2N0~_auL2IQ). A community-driven [Clio Developers Stack Overflow Group](https://stackoverflow.com/questions/tagged/clio-api) also exists where you can connect and ask questions from other Clio API users. # Getting Started > **Note:** The API is available in four distinct data regions: Australia (au.app.clio.com), Canada (ca.app.clio.com), EU (eu.app.clio.com) and US (app.clio.com). > > Likewise, the developer portal is available at region-specific links for the [Australia](https://au.developers.clio.com), [Canada](https://ca.developers.clio.com), [EU](https://eu.developers.clio.com), and [US](https://developers.clio.com) regions. > > This document assumes the US region is being used (app.clio.com). If you're building in one of the other regions, you should adapt the links and examples as necessary. To start building on the Clio API, you’ll need a Clio account – you can review our [Developer Handbook](https://docs.developers.clio.com/) and follow the steps to sign up for an account. Once you have an account, you can [create a developer application](https://docs.developers.clio.com/api-docs/applications) from the [Developer Portal](https://developers.clio.com) and start building! # Authorization with OAuth 2.0 See our [Authorization documentation →](https://docs.developers.clio.com/api-docs/authorization) # Permissions See our [Permissions documentation →](https://docs.developers.clio.com/api-docs/permissions) # Fields See our [Fields documentation →](https://docs.developers.clio.com/api-docs/fields) # Rate Limiting See our [Rate Limits documentation →](https://docs.developers.clio.com/api-docs/rate-limits) # Paging See our [Pagination documentation →](https://docs.developers.clio.com/api-docs/paging) # ETags See our [ETags documentation →](https://docs.developers.clio.com/api-docs/etags) # Minor Versions API v4 supports multiple minor versions. Versions are of the form '4.X.Y'. To request a specific version, you can use an `X-API-VERSION` header in your request, with the header value set to the API version you're requesting. If this header is omitted, it will be treated as a request for the default API version. If the header is present but invalid, it will return a `410 Gone` response. If the header is present and valid, but it is no longer supported, it will return a `410 Gone` response. An `X-API-VERSION` will be included in all successful responses, with the value being set to the API version used. You can find our [API Versioning Policy and Guidelines](https://docs.developers.clio.com/api-docs/api-versioning-policy) in our documentation hub. The [API Changelog](https://docs.developers.clio.com/api-docs/api-changelog) explains each version's changes in further detail. ### [4.0.4](https://docs.developers.clio.com/api-docs/api-changelog#404) * Update `quantity` field to return values in seconds rather than hours for Activities ### [4.0.5](https://docs.developers.clio.com/api-docs/api-changelog#405) * Remove `matter_balances` field from Bills * Standardize status/state enum values * Add a Document association to completed DocumentAutomations * Add rate visibility handling for Activity's price and total ### [4.0.6](https://docs.developers.clio.com/api-docs/api-changelog#406) * Remove `document_versions` collection field from Documents ### [4.0.7](https://docs.developers.clio.com/api-docs/api-changelog#407) * Change secure link format ### [4.0.8](https://docs.developers.clio.com/api-docs/api-changelog#408) * `Activity` hours are redacted in the response based on the activity hours visibility setting for the user * Add `quantity_redacted` field to activities ### [4.0.9](https://docs.developers.clio.com/api-docs/api-changelog#409) * Contacts are filtered and redacted in the response based on the new 'Contacts Visibility' user permission setting. ### [4.0.10](https://docs.developers.clio.com/api-docs/api-changelog#4010) * Fixed validation of `type` query parameter when querying Notes ### [4.0.12](https://docs.developers.clio.com/api-docs/api-changelog#4012) * Restrict fields for CalendarEntry that should only be visible to event owners, editors, and viewers ### [4.0.13](https://docs.developers.clio.com/api-docs/api-changelog#4013) **This is the default version** * Add association limits to Contacts * Returns 422 Unprocessable Entity when association limits are exceeded # Base URL: https://app.clio.com/api/v4 ``` -------------------------------- ### GET /document_templates/{id}/download.json Source: https://docs.developers.clio.com/openapi.json Get the contents of the DocumentTemplate ```markdown ### Parameters - **id** (integer (int64), path, required): The unique identifier for the DocumentTemplate. ### Responses #### 303 - See Other See Other #### 404 - Not Found Not Found ### Example Usage ```bash curl -X GET "https://app.clio.com/api/v4/document_templates/{id}/download.json" ``` ``` -------------------------------- ### GET /billable_matters/ids.json Source: https://docs.developers.clio.com/openapi.json This data is retrieved asynchronously ```markdown ### Parameters - **X-API-VERSION** (string, header, optional): The [API minor version](#section/Minor-Versions). Default: latest version. - **client_id** (integer (int64), query, optional): 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 BillableMatter records with the matching property. - **custom_field_values** (string (=|<|>|<=|>=), query, optional): Filter records to only those with the given custom field(s) set. The value is compared using the operator provided, or, if the value type only supports one operator, the supported operator is used. In the latter case, no check for operator is performed on the input string. The key for the custom field value filter is the custom_field.id. e.g. `custom_field_values[12345]` If an operator is used for a type that does not support it, an `400 Bad Request` is returned. *Supported operators:* * `checkbox`, `contact`, `matter`, `picklist` : `=` e.g. `?custom_field_values[1]=42` * `currency`, `date`, `time`, `numeric` : `=`, `<`, `>`, `<=`, `>=` e.g. `?custom_field_values[1]=>=105.4` * `email`, `text_area`, `text_line`, `url` : `=` e.g. `?custom_field_values[1]=url_encoded` *Multiple conditions for the same custom field:* If you want to use more than one operator to filter a custom field, you can do so by passing in an array of values. e.g. `?custom_field_values[1]=[<=50, >=45]` - **end_date** (string (date), query, optional): Filter BillableMatter records to those that have matters with unbilled activities on or before this date (Expects an ISO-8601 date). - **fields** (string, query, optional): The fields to be returned. See response samples for what fields are available. For more information see the [fields section](#section/Fields). - **limit** (integer (int32), query, optional): A limit on the number of BillableMatter records to be returned. Limit can range between 1 and 1000. Default: `1000`. - **matter_id** (integer (int64), query, optional): 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 BillableMatter records with the matching property. - **originating_attorney_id** (integer (int64), query, optional): The unique identifier for a single User. Use the keyword `null` to match those without a BillableMatter. The list will be filtered to include only the BillableMatter records with the matching property. - **page_token** (string, query, optional): A token specifying which page to return. - **query** (string, query, optional): Wildcard search for `display_number` or `number` or `description` matching a given string. - **responsible_attorney_id** (integer (int64), query, optional): The unique identifier for a single User. Use the keyword `null` to match those without a BillableMatter. The list will be filtered to include only the BillableMatter records with the matching property. - **start_date** (string (date), query, optional): Filter BillableMatter records to those that have matters with unbilled activities on or after this date (Expects an ISO-8601 date). ### Responses #### 200 - Ok **BillableMatter_Show** - **data** (object) (required) - **currency_code** (string): The currency code - **currency_id** (integer (int64)): The currency ID - **id** (integer (int64)): Unique identifier for the *BillableMatter* - **unbilled_hours** (number (double)): The unbilled number of hours for the matter - **unbilled_amount** (number (double)): The unbilled amount for the matter - **amount_in_trust** (number (double)): The trust amount available for the matter - **display_number** (string): The reference to the matter - **client** (object) - **id** (integer (int64)): Unique identifier for the *Contact* - **etag** (string): ETag for the *Contact* - **name** (string): The full name of the *Contact* - **first_name** (string): First name of the Person - **middle_name** (string): Middle name of the Person - **last_name** (string): Last name of the Person - **date_of_birth** (string (date)): Date of birth - **type** (string (Company|Person)): The type of the *Contact* ("Company"|"Person") - **created_at** (string (date-time)): The time the *Contact* was created (as a ISO-8601 timestamp) - **updated_at** (string (date-time)): The time the *Contact* was last updated (as a ISO-8601 timestamp) - **prefix** (string): The prefix of the *Contact* (Mr, Mrs, etc) - **title** (string): The designated title of the *Contact* - **initials** (string): The initials of the *Contact* - **clio_connect_email** (string): Clio Connect email if the *Contact* is a ClioConnect User - **locked_clio_connect_email** (boolean): A boolean indicating if the ability to modify this *Contacts Clio connect email is locked. - **client_connect_user_id** (integer (int64)): The ID for the Clio Connect user associated with this *Contact* - **primary_email_address** (string): The primary email address associated with this *Contact*. - **secondary_email_address** (string): The secondary email address associated with this *Contact*. - **primary_phone_number** (string): The primary phone number associated with this *Contact*. - **secondary_phone_number** (string): The secondary phone number of the *Contact*. - **ledes_client_id** (string): LEDES client id of the Contact - **has_clio_for_clients_permission** (boolean): True if at least one resource has been shared with the contact using Clio for Clients. - **is_client** (boolean): Whether or not the Contact is a client - **is_clio_for_client_user** (boolean): Whether or not this contact has client_login and client_user (can be created due to addition to client portal or client_share_permissions) - **is_co_counsel** (boolean): Whether or not the Contact has matters shared as co-counsel - **is_bill_recipient** (boolean): Whether the Contact is a bill recipient on at least one matter. - **sales_tax_number** (string): The sales tax number of the *Contact* - **currency** (object): Currency of the *Contact* #### 400 - Bad Request **Error** - **error** (object) (required) - **type** (string) (required): Unique name for this error - **message** (string) (required): Detailed message about the error #### 401 - Unauthorized **Error** - **error** (object) (required) - **type** (string) (required): Unique name for this error - **message** (string) (required): Detailed message about the error #### 403 - Forbidden **Error** - **error** (object) (required) - **type** (string) (required): Unique name for this error - **message** (string) (required): Detailed message about the error #### 429 - Too Many Requests **Error** - **error** (object) (required) - **type** (string) (required): Unique name for this error - **message** (string) (required): Detailed message about the error ### Example Usage ```bash curl -X GET "https://app.clio.com/api/v4/billable_matters/ids.json?client_id=0&custom_field_values==&end_date=2023-01-01&fields=string&limit=0&matter_id=0&originating_attorney_id=0&page_token=string&query=string&responsible_attorney_id=0&start_date=2023-01-01" ``` ``` -------------------------------- ### Schema: Client_Show Source: https://docs.developers.clio.com/openapi.json Schema definition for Client_Show ```markdown ## Schema: Client_Show Schema definition for Client_Show **Type:** object - **data** (object) (required) - **id** (integer (int64)): Unique identifier for the *Client* - **name** (string): The full name of the *Client* - **first_name** (string): First name of the Person - **middle_name** (string): Middle name of the Person - **last_name** (string): Last name of the Person - **type** (string (Company|Person)): The type of the *Client* ("Company"|"Person") - **created_at** (string (date-time)): The time the *Client* was created (as a ISO-8601 timestamp) - **updated_at** (string (date-time)): The time the *Client* was last updated (as a ISO-8601 timestamp) - **prefix** (string): The prefix of the *Client* (Mr, Mrs, etc) - **title** (string): The designated title of the *Client* - **initials** (string): The initials of the *Client* - **is_matter_client** (boolean): Whether or not the Client is also the client of the matter - **primary_email_address** (string): The primary email address of client - **primary_phone_number** (string): The primary phone number of client - **client_connect_user_id** (integer (int64)): The client connect ID of the contacts associated user - **date_of_birth** (string (date)): Date of Birth - **avatar** (object) - **id** (integer (int64)): Unique identifier for the *Avatar* - **etag** (string): ETag for the *Avatar* - **created_at** (string (date-time)): The time the *Avatar* was created (as a ISO-8601 timestamp) - **updated_at** (string (date-time)): The time the *Avatar* was last updated (as a ISO-8601 timestamp) - **url** (string): The URL for the *Avatar* - **_destroy** (boolean): Whether to destroy the *Avatar* - **company** (object) - **id** (integer (int64)): Unique identifier for the *Contact* - **etag** (string): ETag for the *Contact* - **name** (string): The full name of the *Contact* - **first_name** (string): First name of the Person - **middle_name** (string): Middle name of the Person - **last_name** (string): Last name of the Person - **date_of_birth** (string (date)): Date of birth - **type** (string (Company|Person)): The type of the *Contact* ("Company"|"Person") - **created_at** (string (date-time)): The time the *Contact* was created (as a ISO-8601 timestamp) - **updated_at** (string (date-time)): The time the *Contact* was last updated (as a ISO-8601 timestamp) - **prefix** (string): The prefix of the *Contact* (Mr, Mrs, etc) - **title** (string): The designated title of the *Contact* - **initials** (string): The initials of the *Contact* - **clio_connect_email** (string): Clio Connect email if the *Contact* is a ClioConnect User - **locked_clio_connect_email** (boolean): A boolean indicating if the ability to modify this *Contacts Clio connect email is locked. - **client_connect_user_id** (integer (int64)): The ID for the Clio Connect user associated with this *Contact* - **primary_email_address** (string): The primary email address associated with this *Contact*. - **secondary_email_address** (string): The secondary email address associated with this *Contact*. - **primary_phone_number** (string): The primary phone number associated with this *Contact*. - **secondary_phone_number** (string): The secondary phone number of the *Contact*. - **ledes_client_id** (string): LEDES client id of the Contact - **has_clio_for_clients_permission** (boolean): True if at least one resource has been shared with the contact using Clio for Clients. - **is_client** (boolean): Whether or not the Contact is a client - **is_clio_for_client_user** (boolean): Whether or not this contact has client_login and client_user (can be created due to addition to client portal or client_share_permissions) - **is_co_counsel** (boolean): Whether or not the Contact has matters shared as co-counsel - **is_bill_recipient** (boolean): Whether the Contact is a bill recipient on at least one matter. - **sales_tax_number** (string): The sales tax number of the *Contact* - **currency** (object): Currency of the *Contact* - **addresses** (array (Address_base)): Address Array items: - **id** (integer (int64)): Unique identifier for the *Address* - **etag** (string): ETag for the *Address* - **street** (string): Street of the *Address* - **city** (string): City of the *Address* - **province** (string): Province or state of the *Address* - **postal_code** (string): Postal code of the *Address* - **country** (string): Country of the *Address* - **name** (string (Work|Home|Billing|Other)): The name of the *Address* ("Work"|"Home"|"Billing"|"Other") - **created_at** (string (date-time)): The time the *Address* was created (as a ISO-8601 timestamp) - **updated_at** (string (date-time)): The time the *Address* was last updated (as a ISO-8601 timestamp) - **primary** (boolean): Whether it is the default for this contact - **email_addresses** (array (EmailAddress_base)): EmailAddress Array items: - **id** (integer (int64)): Unique identifier for the *EmailAddress* - **etag** (string): ETag for the *EmailAddress* - **address** (string): The address of the *EmailAddress* - **name** (string): A descriptive name for the *EmailAddress. Common values include `Home`, `Work`, and `Other`, as these are the only selectable options within Clio Manage, but other values may be returned for this field. - **primary** (boolean): Whether it is the default for this contact - **created_at** (string (date-time)): The time the *EmailAddress* was created (as a ISO-8601 timestamp) - **updated_at** (string (date-time)): The time the *EmailAddress* was last updated (as a ISO-8601 timestamp) - **phone_numbers** (array (PhoneNumber_base)): PhoneNumber Array items: - **id** (integer (int64)): Unique identifier for the *PhoneNumber* - **etag** (string): ETag for the *PhoneNumber* - **number** (string): Contact's Phone Number - **name** (string (Work|Personal|Other)): The type of *PhoneNumber* it is ("Work"|"Personal"|"Other") - **primary** (boolean): Whether it is default for this contact - **created_at** (string (date-time)): The time the *PhoneNumber* was created (as a ISO-8601 timestamp) - **updated_at** (string (date-time)): The time the *PhoneNumber* was last updated (as a ISO-8601 timestamp) - **web_sites** (array (WebSite_base)): WebSite Array items: - **id** (integer (int64)): Unique identifier for the *WebSite* - **etag** (string): ETag for the *WebSite* - **address** (string): The address of the *WebSite* - **name** (string (Work|Personal|Twitter|Facebook|LinkedIn|Instant Messenger|Other)): The type of *WebSite* it is ("Work"|"Personal"|"Twitter"|"Facebook"|"LinkedIn"|"Instant Messenger"|"Other") - **default_web_site** (boolean): Whether it is the default for this contact - **created_at** (string (date-time)): The time the *WebSite* was created (as a ISO-8601 timestamp) - **updated_at** (string (date-time)): The time the *WebSite* was last updated (as a ISO-8601 timestamp) ```