# List all task types

**Retrieve all task types**
Returns every task type available for the tenant, ordered alphabetically by
display name. Task types classify the work performed on time entries and
projects, and carry billing and tax settings used downstream in invoicing.
**Each task type includes:**
- Display name, code, and description
- Billing and tax flags (`billable`, `taxable`)
- Optional custom hourly rate and rate type
- Service line and category associations
- Usage counts across projects and invoices
- Aiwyn-managed vs firm-defined indicators
- Active status and audit timestamps

**Real Example:**

```bash
curl --location 'https://{{host}}/v1/task-types' \
--header 'Authorization: Bearer {{token}}'
```

Endpoint: GET /v1/task-types
Version: 1.0.0
Security: BearerAuth

## Response 200 fields (application/json):

  - `taskTypes` (array)
    List of task types ordered by display name

  - `taskTypes.id` (integer)
    Unique identifier of the task type
    Example: 1

  - `taskTypes.pmsRef` (string)
    Practice management system reference identifier
    Example: TAX-PREP

  - `taskTypes.code` (string)
    Short code used to identify the task type
    Example: TXPRP

  - `taskTypes.display` (string)
    Human-readable display name
    Example: Tax Preparation

  - `taskTypes.description` (string)
    Detailed description of the task type
    Example: Federal and state income tax preparation

  - `taskTypes.billable` (boolean)
    Whether time logged under this task type is billable
    Example: true

  - `taskTypes.taxable` (boolean)
    Whether this task type is subject to tax
    Example: false

  - `taskTypes.active` (boolean)
    Whether the task type is currently active
    Example: true

  - `taskTypes.customHourlyRate` (number)
    Optional custom hourly rate that overrides the default rate
    Example: 275

  - `taskTypes.rateTypeId` (integer)
    ID of the rate type associated with this task type
    Example: 3

  - `taskTypes.taskTypeCategoryId` (integer)
    ID of the task type category
    Example: 2

  - `taskTypes.serviceLineId` (integer)
    ID of the service line this task type belongs to
    Example: 5

  - `taskTypes.projectsUsedInCount` (integer)
    Number of projects this task type is used in
    Example: 42

  - `taskTypes.invoicesUsedInCount` (integer)
    Number of invoices this task type appears on
    Example: 118

  - `taskTypes.isCreatedByAiwyn` (boolean)
    Whether this task type was created by Aiwyn
    Example: false

  - `taskTypes.isManagedByAiwyn` (boolean)
    Whether this task type is managed by Aiwyn
    Example: false

  - `taskTypes.createdAt` (string)
    Timestamp when the task type was created
    Example: 2023-01-15T08:00:00Z

  - `taskTypes.updatedAt` (string)
    Timestamp when the task type was last updated
    Example: 2024-06-01T12:30:00Z

  - `taskTypes.version` (integer)
    Optimistic locking version number
    Example: 3

  - `total` (object)
    Aggregate count information

  - `total.aggregate` (object)

  - `total.aggregate.count` (integer)
    Total number of task types
    Example: 25

