> ## 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.

# Get track details

> Retrieve a specific track by ID, including step summaries and enrollment metrics. Only accessible if the user is an admin of the track.



## OpenAPI

````yaml /openapi.json get /v1/tracks/{trackId}
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/{trackId}:
    get:
      tags:
        - Tracks
      summary: Get track details
      description: >-
        Retrieve a specific track by ID, including step summaries and enrollment
        metrics. Only accessible if the user is an admin of the track.
      parameters:
        - schema:
            type: string
            minLength: 1
            description: The unique identifier of the track
            example: wf_abc123
          required: true
          description: The unique identifier of the track
          name: trackId
          in: path
      responses:
        '200':
          description: Track details with steps and metrics
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TrackDetail'
        '400':
          description: Invalid path 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'
        '404':
          description: Track not found or user does not have access
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      security:
        - apiKey: []
components:
  schemas:
    TrackDetail:
      allOf:
        - $ref: '#/components/schemas/TrackSummary'
        - type: object
          properties:
            steps:
              type: array
              items:
                $ref: '#/components/schemas/StepSummary'
              description: Steps in the track
            metrics:
              allOf:
                - $ref: '#/components/schemas/TrackMetrics'
                - description: Enrollment and completion metrics
          required:
            - steps
            - metrics
    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
    StepSummary:
      oneOf:
        - $ref: '#/components/schemas/MessageStepSummary'
        - $ref: '#/components/schemas/QuizStepSummary'
        - $ref: '#/components/schemas/PollStepSummary'
        - $ref: '#/components/schemas/SurveyStepSummary'
        - $ref: '#/components/schemas/DelayStepSummary'
        - $ref: '#/components/schemas/IndividualIntroductionsStepSummary'
        - $ref: '#/components/schemas/MentorAssignmentStepSummary'
        - $ref: '#/components/schemas/AddToWorkflowStepSummary'
        - $ref: '#/components/schemas/TasksStepSummary'
      discriminator:
        propertyName: type
        mapping:
          message:
            $ref: '#/components/schemas/MessageStepSummary'
          quiz:
            $ref: '#/components/schemas/QuizStepSummary'
          poll:
            $ref: '#/components/schemas/PollStepSummary'
          survey:
            $ref: '#/components/schemas/SurveyStepSummary'
          delay:
            $ref: '#/components/schemas/DelayStepSummary'
          individualIntroductions:
            $ref: '#/components/schemas/IndividualIntroductionsStepSummary'
          mentorAssignment:
            $ref: '#/components/schemas/MentorAssignmentStepSummary'
          addToWorkflow:
            $ref: '#/components/schemas/AddToWorkflowStepSummary'
          tasks:
            $ref: '#/components/schemas/TasksStepSummary'
    TrackMetrics:
      type: object
      properties:
        object:
          type: string
          enum:
            - track_metrics
          description: Object type identifier
          example: track_metrics
        users_added_last_30_days:
          type: integer
          description: Number of users added to the track in the last 30 days
          example: 25
        users_added_all_time:
          type: integer
          description: Total number of users ever added to the track
          example: 145
        active_users:
          type: integer
          description: Number of users currently active in the track
          example: 30
        delivered_users:
          type: integer
          description: >-
            Number of users who have received all track steps but have NOT
            completed all required user actions (surveys, quizzes, tasks). These
            users are not included in completed_users.
          example: 15
        completed_users:
          type: integer
          description: >-
            Number of users who have fully completed the track including all
            user actions. These users are not included in delivered_users.
          example: 100
      required:
        - object
        - users_added_last_30_days
        - users_added_all_time
        - active_users
        - delivered_users
        - completed_users
    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
    MessageStepSummary:
      type: object
      properties:
        object:
          type: string
          enum:
            - step
          description: Object type identifier
          example: step
        id:
          type: string
          description: Unique step identifier
          example: step_abc123
        title:
          type: string
          nullable: true
          description: Step title
          example: Welcome Message
        order:
          type: integer
          description: Position in the track (1-indexed)
          example: 1
        type:
          type: string
          enum:
            - message
          description: Step type
          example: message
        message:
          type: string
          description: Message content in markdown format
          example: Welcome to the team! Here's what you need to know...
      required:
        - object
        - id
        - title
        - order
        - type
        - message
    QuizStepSummary:
      type: object
      properties:
        object:
          type: string
          enum:
            - step
          description: Object type identifier
          example: step
        id:
          type: string
          description: Unique step identifier
          example: step_abc123
        title:
          type: string
          nullable: true
          description: Step title
          example: Welcome Message
        order:
          type: integer
          description: Position in the track (1-indexed)
          example: 1
        type:
          type: string
          enum:
            - quiz
          description: Step type
          example: quiz
        quiz_id:
          type: string
          description: Quiz identifier
          example: quiz_abc123
        play_mode:
          $ref: '#/components/schemas/PlayMode'
        scoring_mode:
          $ref: '#/components/schemas/ScoringMode'
        expires:
          $ref: '#/components/schemas/DelaySettings'
        due:
          allOf:
            - $ref: '#/components/schemas/DelaySettings'
            - description: How long after being sent does the user have to answer
        intro_message:
          type: string
          nullable: true
          description: Introductory message for the quiz
          example: Test your knowledge!
        mandatory_completion:
          $ref: '#/components/schemas/MandatoryCompletion'
      required:
        - object
        - id
        - title
        - order
        - type
        - quiz_id
        - play_mode
        - scoring_mode
        - expires
        - due
        - intro_message
        - mandatory_completion
    PollStepSummary:
      type: object
      properties:
        object:
          type: string
          enum:
            - step
          description: Object type identifier
          example: step
        id:
          type: string
          description: Unique step identifier
          example: step_abc123
        title:
          type: string
          nullable: true
          description: Step title
          example: Welcome Message
        order:
          type: integer
          description: Position in the track (1-indexed)
          example: 1
        type:
          type: string
          enum:
            - poll
          description: Step type
          example: poll
        survey_id:
          type: string
          description: Poll survey identifier
          example: survey_abc123
        preview:
          type: string
          description: Preview text of the poll
          example: What's your favorite team activity?
      required:
        - object
        - id
        - title
        - order
        - type
        - survey_id
        - preview
    SurveyStepSummary:
      type: object
      properties:
        object:
          type: string
          enum:
            - step
          description: Object type identifier
          example: step
        id:
          type: string
          description: Unique step identifier
          example: step_abc123
        title:
          type: string
          nullable: true
          description: Step title
          example: Welcome Message
        order:
          type: integer
          description: Position in the track (1-indexed)
          example: 1
        type:
          type: string
          enum:
            - survey
          description: Step type
          example: survey
        survey_id:
          type: string
          description: Survey identifier
          example: survey_abc123
        preview:
          type: string
          description: Preview text of the survey
          example: Please share your feedback
      required:
        - object
        - id
        - title
        - order
        - type
        - survey_id
        - preview
    DelayStepSummary:
      type: object
      properties:
        object:
          type: string
          enum:
            - step
          description: Object type identifier
          example: step
        id:
          type: string
          description: Unique step identifier
          example: step_abc123
        title:
          type: string
          nullable: true
          description: Step title
          example: Welcome Message
        order:
          type: integer
          description: Position in the track (1-indexed)
          example: 1
        type:
          type: string
          enum:
            - delay
          description: Step type
          example: delay
        delay_settings:
          allOf:
            - $ref: '#/components/schemas/DelaySettings'
            - description: Delay configuration
      required:
        - object
        - id
        - title
        - order
        - type
        - delay_settings
    IndividualIntroductionsStepSummary:
      type: object
      properties:
        object:
          type: string
          enum:
            - step
          description: Object type identifier
          example: step
        id:
          type: string
          description: Unique step identifier
          example: step_abc123
        title:
          type: string
          nullable: true
          description: Step title
          example: Welcome Message
        order:
          type: integer
          description: Position in the track (1-indexed)
          example: 1
        type:
          type: string
          enum:
            - individualIntroductions
          description: Step type
          example: individualIntroductions
        intro_message:
          type: string
          description: Introduction message in markdown format
          example: '**Meet your new colleague!**'
        duration:
          type: integer
          description: Meeting duration in minutes
          example: 30
        max_matches_per_user:
          type: integer
          description: Maximum number of matches per user
          example: 3
        frequency:
          $ref: '#/components/schemas/Frequency'
        allowed_meeting_locations:
          type: array
          items:
            $ref: '#/components/schemas/MeetingLocation'
          description: Allowed locations for meetings
          example:
            - google_meet
            - zoom
        remind_to_meet:
          $ref: '#/components/schemas/RemindToMeet'
      required:
        - object
        - id
        - title
        - order
        - type
        - intro_message
        - duration
        - max_matches_per_user
        - frequency
        - allowed_meeting_locations
        - remind_to_meet
    MentorAssignmentStepSummary:
      type: object
      properties:
        object:
          type: string
          enum:
            - step
          description: Object type identifier
          example: step
        id:
          type: string
          description: Unique step identifier
          example: step_abc123
        title:
          type: string
          nullable: true
          description: Step title
          example: Welcome Message
        order:
          type: integer
          description: Position in the track (1-indexed)
          example: 1
        type:
          type: string
          enum:
            - mentorAssignment
          description: Step type
          example: mentorAssignment
      required:
        - object
        - id
        - title
        - order
        - type
    AddToWorkflowStepSummary:
      type: object
      properties:
        object:
          type: string
          enum:
            - step
          description: Object type identifier
          example: step
        id:
          type: string
          description: Unique step identifier
          example: step_abc123
        title:
          type: string
          nullable: true
          description: Step title
          example: Welcome Message
        order:
          type: integer
          description: Position in the track (1-indexed)
          example: 1
        type:
          type: string
          enum:
            - addToWorkflow
          description: Step type
          example: addToWorkflow
        target_workflow_id:
          type: string
          description: ID of the workflow to add users to
          example: wf_xyz789
        automatically_add:
          type: boolean
          description: Whether users are automatically added to the workflow
          example: true
        ask_user_to_join_button_text:
          type: string
          nullable: true
          description: Text for the join button when not automatic
          example: Join Training Program
        add_previous_users:
          type: boolean
          description: Whether to add users who previously started the workflow
          example: false
      required:
        - object
        - id
        - title
        - order
        - type
        - target_workflow_id
        - automatically_add
        - ask_user_to_join_button_text
        - add_previous_users
    TasksStepSummary:
      type: object
      properties:
        object:
          type: string
          enum:
            - step
          description: Object type identifier
          example: step
        id:
          type: string
          description: Unique step identifier
          example: step_abc123
        title:
          type: string
          nullable: true
          description: Step title
          example: Welcome Message
        order:
          type: integer
          description: Position in the track (1-indexed)
          example: 1
        type:
          type: string
          enum:
            - tasks
          description: Step type
          example: tasks
        tasks:
          type: array
          items:
            $ref: '#/components/schemas/TaskItem'
          description: List of tasks in this step
      required:
        - object
        - id
        - title
        - order
        - type
        - tasks
    PlayMode:
      type: string
      enum:
        - OneQuestionPerDay
        - OneRoundPerDay
        - QuizOnDayOnce
      description: How the quiz is delivered
      example: OneRoundPerDay
    ScoringMode:
      type: string
      enum:
        - correct
        - points
      description: How the quiz is scored
      example: correct
    DelaySettings:
      type: object
      nullable: true
      properties:
        amount:
          type: integer
          minimum: 0
          exclusiveMinimum: true
          description: The amount of time to delay
          example: 2
        unit:
          $ref: '#/components/schemas/DelayUnit'
      required:
        - amount
        - unit
      description: How long after posting a question does it expire
    MandatoryCompletion:
      type: object
      nullable: true
      properties:
        enabled:
          type: boolean
          description: Whether mandatory completion is enabled
          example: true
        reminder_interval_days:
          type: integer
          description: Days between reminders
          example: 3
        max_reminder_window_days:
          type: integer
          description: Maximum days to send reminders
          example: 14
        custom_reminder_message:
          type: string
          nullable: true
          description: Custom reminder message in markdown format
          example: '**Please complete** your quiz!'
      required:
        - enabled
        - reminder_interval_days
        - max_reminder_window_days
        - custom_reminder_message
      description: Mandatory completion settings
    Frequency:
      type: string
      enum:
        - daily
        - weekly
        - biweekly
        - monthly
        - quarterly
        - semiannually
        - annually
      description: How often matches are made
      example: weekly
    MeetingLocation:
      type: string
      enum:
        - doozy_room
        - google_meet
        - teams
        - zoom
        - in_person
        - other
    RemindToMeet:
      type: object
      nullable: true
      properties:
        remind_matches_to_meet:
          type: boolean
          description: Whether to remind matches to meet
          example: true
        total_reminders_to_send:
          type: integer
          description: Total number of reminders to send
          example: 2
      required:
        - remind_matches_to_meet
        - total_reminders_to_send
      description: Reminder settings for matches
    TaskItem:
      type: object
      properties:
        id:
          type: string
          description: Unique task identifier
          example: task_abc123
        details:
          type: string
          description: Task details in markdown format
          example: '**Complete** the onboarding checklist'
      required:
        - id
        - details
    DelayUnit:
      type: string
      enum:
        - minutes
        - hours
        - days
        - weeks
        - months
      description: The unit of time for the delay
      example: days
  securitySchemes:
    apiKey:
      type: apiKey
      in: header
      name: x-api-key
      description: API key for authentication. Generate keys in the Doozy dashboard.

````