> ## Documentation Index
> Fetch the complete documentation index at: https://help.doozy.live/llms.txt
> Use this file to discover all available pages before exploring further.

# List tracks

> List all tracks accessible to the authenticated user. Returns tracks where the user is an admin. Results are paginated and sorted by creation date (newest first). By default, archived tracks are excluded.



## OpenAPI

````yaml /openapi.json get /v1/tracks
openapi: 3.0.3
info:
  title: Doozy Public API
  version: 1.0.0
  description: >-
    The Doozy Public API allows you to programmatically access your
    organization's data.


    ## Authentication


    All API requests require an API key passed in the `x-api-key` header.


    ```

    x-api-key: dzy_xxxxxxxx_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

    ```


    API keys can be generated and managed through the Doozy dashboard. Each key
    is associated with a user account and inherits that user's permissions.


    ## Rate Limiting


    API requests are rate limited. Rate limiting is handled by Cloudflare. If
    you exceed the rate limit, you'll receive a 429 Too Many Requests response.


    ## Pagination


    List endpoints support cursor-based pagination using `limit` and
    `starting_after` query parameters.
  contact:
    name: Doozy Support
    email: support@doozy.live
    url: https://help.doozy.live/api
servers:
  - url: https://api.doozy.live
    description: Production
security:
  - apiKey: []
tags:
  - name: Quizzes
    description: Quiz analytics and reporting endpoints
  - name: Tracks
    description: Track management and analytics endpoints
  - name: Surveys
    description: Survey and poll analytics endpoints
  - name: Introductions
    description: Doozy Roulette and Matchmaking introduction endpoints
paths:
  /v1/tracks:
    get:
      tags:
        - Tracks
      summary: List tracks
      description: >-
        List all tracks accessible to the authenticated user. Returns tracks
        where the user is an admin. Results are paginated and sorted by creation
        date (newest first). By default, archived tracks are excluded.
      parameters:
        - schema:
            type: integer
            minimum: 1
            maximum: 100
            default: 25
            description: Maximum number of results to return (1-100, default 25)
            example: 25
          required: false
          description: Maximum number of results to return (1-100, default 25)
          name: limit
          in: query
        - schema:
            type: string
            description: >-
              Cursor for pagination - the ID of the last item from the previous
              page
            example: wf_abc123
          required: false
          description: >-
            Cursor for pagination - the ID of the last item from the previous
            page
          name: starting_after
          in: query
        - schema:
            allOf:
              - $ref: '#/components/schemas/TrackState'
              - description: Filter tracks by state
                example: active
          required: false
          description: Filter tracks by state
          name: state
          in: query
        - schema:
            allOf:
              - $ref: '#/components/schemas/TrackTriggerType'
              - description: Filter tracks by trigger type
                example: user_join
          required: false
          description: Filter tracks by trigger type
          name: trigger_type
          in: query
      responses:
        '200':
          description: List of tracks
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TrackListResponse'
        '400':
          description: Invalid request parameters
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: Authentication required - missing API key
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '403':
          description: Invalid API key
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      security:
        - apiKey: []
components:
  schemas:
    TrackState:
      type: string
      enum:
        - draft
        - active
        - paused
        - archived
    TrackTriggerType:
      type: string
      enum:
        - user_join
        - manual_user_trigger
        - schedule
        - work_anniversary
        - added_by_another_workflow
        - self_join
    TrackListResponse:
      type: object
      properties:
        object:
          type: string
          enum:
            - list
          description: String representing the object type
          example: list
        data:
          type: array
          items:
            $ref: '#/components/schemas/TrackSummary'
          description: Array of track objects
        has_more:
          type: boolean
          description: Whether there are more results available beyond this page
          example: true
        url:
          type: string
          description: The URL for accessing this list endpoint
          example: /v1/tracks
        next_cursor:
          type: string
          nullable: true
          description: >-
            Cursor to fetch the next page of results. Pass as starting_after in
            subsequent requests.
          example: wf_xyz789
        previous_cursor:
          type: string
          nullable: true
          description: >-
            Cursor to fetch the previous page of results. Pass as ending_before
            in subsequent requests.
          example: wf_abc123
      required:
        - object
        - data
        - has_more
        - url
        - next_cursor
        - previous_cursor
    ErrorResponse:
      type: object
      properties:
        error:
          type: object
          properties:
            type:
              type: string
              enum:
                - api_error
                - authentication_error
                - invalid_request_error
                - rate_limit_error
              description: The type of error returned
              example: invalid_request_error
            code:
              type: string
              nullable: true
              description: Machine-readable error code for specific error conditions
              example: resource_not_found
            message:
              type: string
              description: Human-readable error message
              example: 'No such quiz: quiz_abc123'
            param:
              type: string
              nullable: true
              description: The parameter related to the error, if applicable
              example: id
            doc_url:
              type: string
              format: uri
              description: URL to documentation about this error
              example: https://docs.doozy.live/api/errors#resource_not_found
          required:
            - type
            - code
            - message
      required:
        - error
    TrackSummary:
      type: object
      properties:
        object:
          type: string
          enum:
            - track
          description: Object type identifier
          example: track
        id:
          type: string
          description: Unique track identifier
          example: wf_abc123
        name:
          type: string
          description: Track name
          example: New Hire Onboarding
        description:
          type: string
          nullable: true
          description: Track description
          example: 30-day onboarding journey for new employees
        state:
          allOf:
            - $ref: '#/components/schemas/TrackState'
            - description: Current state of the track
              example: active
        trigger_type:
          allOf:
            - $ref: '#/components/schemas/TrackTriggerType'
            - description: How users are added to the track
              example: user_join
        step_count:
          type: integer
          description: Number of steps in the track
          example: 8
        allow_self_join:
          type: boolean
          description: Whether users can self-enroll in the track
          example: true
        created_at:
          type: string
          description: When the track was created (ISO 8601 format)
          example: '2026-01-15T10:30:00.000Z'
        updated_at:
          type: string
          description: When the track was last updated (ISO 8601 format)
          example: '2026-01-20T14:00:00.000Z'
      required:
        - object
        - id
        - name
        - description
        - state
        - trigger_type
        - step_count
        - allow_self_join
        - created_at
        - updated_at
  securitySchemes:
    apiKey:
      type: apiKey
      in: header
      name: x-api-key
      description: API key for authentication. Generate keys in the Doozy dashboard.

````