Clio Timers API

Timers are used to track time spent on billable work. They are used with hourly-billable [Time Entries](https://docs.developers.clio.com/clio-manage/api-reference/#tag/Activities). The Timer modal is accessed by clicking the timer in the application's header, or by clicking the Timer icon on a Time Entry. [Support Link](https://help.clio.com/hc/en-us/articles/9289741706779-Time-Entries#timer-0-2) Used within Clio in the timer modal which can be accessed by clicking the timer in the header or on the create/edit Time Entry form.

Operations 3

GET /timer.json Return the data for a single Timer #
DELETE /timer.json Delete a single Timer #
POST /timer.json Create a new Timer #

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-timers-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-timers-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Clio API Documentation Timers 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: Timers
  description: 'Timers are used to track time spent on billable work. They are used with hourly-billable Time Entries.


    The Timer modal is accessed by clicking the timer in the application''s header, or by clicking the Timer icon on a Time Entry.


    Support Link


    Used within Clio in the timer modal which can be accessed by clicking the timer in the header or on the create/edit Time Entry form.'
paths:
  /timer.json:
    get:
      tags:
      - Timers
      summary: Return the data for a single Timer
      operationId: Timer#show
      description: Outlines the parameters, optional and required, used when requesting the data for a single Timer
      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
      responses:
        '200':
          description: Ok
          content:
            application/json; charset=utf-8:
              schema:
                $ref: '#/components/schemas/Timer_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
    delete:
      tags:
      - Timers
      summary: Delete a single Timer
      operationId: Timer#destroy
      description: Outlines the parameters, optional and required, used when deleting the record for a single Timer
      parameters:
      - name: X-API-VERSION
        in: header
        description: 'The [API minor version](#section/Minor-Versions). Default: latest version.'
        required: false
        schema:
          type: string
      responses:
        '204':
          description: No Content
        '403':
          description: Forbidden
          content:
            application/json; charset=utf-8:
              schema:
                $ref: '#/components/schemas/Error'
    post:
      tags:
      - Timers
      summary: Create a new Timer
      operationId: Timer#create
      description: Outlines the parameters and data fields used when creating a new Timer
      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/Timer_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 Timers
        content:
          application/json:
            schema:
              type: object
              required:
              - data
              properties:
                data:
                  type: object
                  properties:
                    activity:
                      type: object
                      properties:
                        id:
                          type: integer
                          format: int64
                          description: The unique identifier for a single Activity associated with the Timer. The keyword `null` is not valid for this field.
                      required:
                      - id
                  required:
                  - activity
          application/x-www-form-urlencoded:
            schema:
              type: object
              required:
              - data
              properties:
                data:
                  type: object
                  properties:
                    activity:
                      type: object
                      properties:
                        id:
                          type: integer
                          format: int64
                          description: The unique identifier for a single Activity associated with the Timer. The keyword `null` is not valid for this field.
                      required:
                      - id
                  required:
                  - activity
          multipart/form-data:
            schema:
              type: object
              required:
              - data
              properties:
                data:
                  type: object
                  properties:
                    activity:
                      type: object
                      properties:
                        id:
                          type: integer
                          format: int64
                          description: The unique identifier for a single Activity associated with the Timer. The keyword `null` is not valid for this field.
                      required:
                      - id
                  required:
                  - activity
        required: false
components:
  schemas:
    Timer:
      allOf:
      - $ref: '#/components/schemas/Timer_base'
      - type: object
        properties:
          activity:
            $ref: '#/components/schemas/Activity_base'
            description: Activity
    Activity_base:
      type: object
      properties:
        id:
          type: integer
          format: int64
          description: Unique identifier for the *Activity*
        etag:
          type: string
          description: ETag for the *Activity*
        type:
          type: string
          enum:
          - TimeEntry
          - ExpenseEntry
          - HardCostEntry
          - SoftCostEntry
          description: The type of the *Activity*
        date:
          type: string
          format: date
          description: The date the *Activity* was performed (as a ISO-8601 date)
        quantity_in_hours:
          type: number
          format: double
          description: The number of hours the TimeEntry took.
        rounded_quantity_in_hours:
          type: number
          format: double
          description: 'The number of hours rounded accordingly to the billing settings.

            The rounded value is used to calculate the total.

            '
        quantity:
          type: number
          format: double
          description: 'The field is applicable to TimeEntry, ExpenseEntry, and SoftCostEntry.


            **Version <= 4.0.3:**

            The number of hours the TimeEntry took.


            **Latest version:**

            The number of seconds the TimeEntry took.

            '
        rounded_quantity:
          type: number
          format: double
          description: 'The field is applicable to time entries only.


            **Version <= 4.0.3:**

            The number of hours rounded accordingly to the billing settings.

            The rounded value is used to calculate the total.


            **Latest version:**

            The number of seconds rounded accordingly to the billing settings.

            The rounded value is used to calculate the total.

            '
        quantity_redacted:
          type: boolean
          description: 'Is `true` if any of the following fields are redacted:

            `quantity`, `rounded_quantity`, `rounded_quantity_in_hours`, `quantity_in_hours`, `total`, `non_billable_total`

            '
        price:
          type: number
          format: double
          description: The hourly or flat rate of the *Activity*
        note:
          type: string
          description: The details about the *Activity*
        flat_rate:
          type: boolean
          description: Whether the *Activity* is a flat rate
        billed:
          type: boolean
          description: Whether the *Activity* has been added to an active bill that is in the state of `awaiting_payment` or `paid`
        on_bill:
          type: boolean
          description: Whether the *Activity* has been added to an active bill that is in the state of `draft`, `awaiting_approval`, `awaiting_payment` or `paid`
        total:
          type: number
          format: double
          description: The total cost of draft, billable and billed items in the *Activity*
        contingency_fee:
          type: boolean
          description: Whether or not the *Activity* is a contingency fee
        created_at:
          type: string
          format: date-time
          description: The time the *Activity* was created (as a ISO-8601 timestamp)
        updated_at:
          type: string
          format: date-time
          description: The time the *Activity* was last updated (as a ISO-8601 timestamp)
        reference:
          type: string
          description: A check reference for a HardCostEntry.
        non_billable:
          type: boolean
          description: Whether the *Activity* is non-billable
        non_billable_total:
          type: number
          format: double
          description: The total cost of non-billable items in the *Activity*
        no_charge:
          type: boolean
          description: Whether the non-billable *Activity* is shown on the bill.
        tax_setting:
          type: string
          enum:
          - no_tax
          - tax_1_only
          - tax_2_only
          - tax_1_and_tax_2
          description: The option denoting whether primary tax, secondary tax, or both is applied to an expense entry.
        tax_settings:
          type: array
          items:
            type: object
          description: Array of objects, with each object representing a tax setting that is applied to an expense entry with 'tax_rate_configuration_id', 'order', and 'rule' as the object properties.
        currency:
          type: object
          description: The currency of the *Activity*
    Timer_base:
      type: object
      properties:
        id:
          type: integer
          format: int64
          description: Unique identifier for the *Timer*
        etag:
          type: string
          description: ETag for the *Timer*
        start_time:
          type: string
          format: date-time
          description: The time the *Timer* was started (as ISO-8601 timestamp)
        elapsed_time:
          type: number
          format: double
          description: How much time has elapsed, in hours, since the timer was started
        created_at:
          type: string
          format: date-time
          description: The time the *Timer* was created (as a ISO-8601 timestamp)
        updated_at:
          type: string
          format: date-time
          description: The time the *Timer* was last updated (as a ISO-8601 timestamp)
    Timer_Show:
      type: object
      required:
      - data
      properties:
        data:
          $ref: '#/components/schemas/Timer'
    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
    Error:
      type: object
      required:
      - error
      properties:
        error:
          $ref: '#/components/schemas/ErrorDetail'
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
  - Credit Memos
- name: Reporting
  tags:
  - Reports
  - Report Presets
  - Report Schedules
- name: Settings
  tags:
  - Text Snippets
  - Billing Settings
  - Currencies
  - Tax Rate Configurations
- name: Tasks
  tags:
  - Tasks
  - Task Templates
  - Task Template Lists
  - Task Types
- name: Trust
  tags:
  - Trust Line Items
  - Trust Requests
- name: Users
  tags:
  - Users
  - Groups
- name: Legal Aid US
  tags:
  - Grants
  - Grant Funding Sources
- name: Legal Aid England & Wales
  tags:
  - Civil Controlled Rates
  - Civil Certificated Rates
  - Criminal Controlled Rates
  - Expense Categories