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

# List milestones

> Every milestone in one call: the tenant's onboarding steps (`setup`) and
the milestones the authenticated operator reached by key (`milestones`:
product tours seen, features tried), oldest first.



## OpenAPI

````yaml /api/services-api.yaml get /v1/tenants/{tenantID}/milestones
openapi: 3.0.3
info:
  description: >-
    Talqui is an omnichannel customer service platform that unifies
    conversations from WhatsApp, Instagram, Telegram, and many other channels
    into a single attendant panel, alongside a broader ecosystem of plugins and
    integrations. This API gives developers programmatic access to Talqui's
    services layer, exposing the operations needed to read and manage tenants,
    conversations, plugins, and related resources that power that platform.


    Authentication is available on behalf of an Operator (the default for this
    API), a Plugin Connection, or a Plugin — see the [Talqui authentication
    guide](https://docs.talqui.chat/guides/introduction/authentication/) for how
    each token is obtained and when to use it.


    Need help or have questions not covered here? Reach out to
    support@talqui.com.
  license:
    name: ISC
    url: https://opensource.org/license/isc-license-txt
  title: Talqui - Services API
  version: 0.95.1
servers:
  - description: Production
    url: https://services-api.talqui.chat
security: []
tags:
  - name: Tenants
  - name: Settings
  - name: Analytics/Reports
  - name: Analytics
  - name: Campaigns
  - name: Campaigns/Models
  - name: Contacts
  - name: Contacts/Imports
  - name: Handoff links
  - name: Inboxes
  - name: Messages
  - name: Notifications
  - name: Sessions
  - name: Operators/Shortcuts
  - name: Operators
  - name: Plugins
  - name: Milestones
paths:
  /v1/tenants/{tenantID}/milestones:
    get:
      tags:
        - Milestones
      summary: List milestones
      description: |-
        Every milestone in one call: the tenant's onboarding steps (`setup`) and
        the milestones the authenticated operator reached by key (`milestones`:
        product tours seen, features tried), oldest first.
      operationId: ListMilestonesController
      parameters:
        - in: path
          name: tenantID
          required: true
          schema:
            description: The tenant the operator works in.
            format: uuid
            pattern: >-
              ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                additionalProperties: false
                properties:
                  data:
                    additionalProperties: false
                    properties:
                      milestones:
                        description: >-
                          Every milestone the operator reached by key, oldest
                          first.
                        items:
                          additionalProperties: false
                          properties:
                            createdAt:
                              description: When the operator first reached it.
                              format: date-time
                              type: string
                            milestoneKey:
                              description: The milestone name.
                              type: string
                          required:
                            - milestoneKey
                            - createdAt
                          type: object
                        type: array
                      setup:
                        additionalProperties: false
                        description: >-
                          Onboarding steps of the tenant (WhatsApp, Telegram,
                          teammates, chatbox, shortcuts).
                        properties:
                          disabled:
                            description: >-
                              Whether the onboarding checklist is disabled for
                              this tenant.
                            type: boolean
                          states:
                            additionalProperties: false
                            description: Completion state of each onboarding step.
                            properties:
                              chatbox:
                                additionalProperties: false
                                description: Chatbox/widget setup onboarding step.
                                properties:
                                  done:
                                    description: >-
                                      Whether this onboarding step has been
                                      completed.
                                    type: boolean
                                  trial:
                                    description: >-
                                      Remaining trial count/quota associated
                                      with this step, if applicable.
                                    type: number
                                required:
                                  - done
                                  - trial
                                type: object
                              shortcuts:
                                additionalProperties: false
                                description: Shortcuts setup onboarding step.
                                properties:
                                  done:
                                    description: >-
                                      Whether this onboarding step has been
                                      completed.
                                    type: boolean
                                  trial:
                                    description: >-
                                      Remaining trial count/quota associated
                                      with this step, if applicable.
                                    type: number
                                required:
                                  - done
                                  - trial
                                type: object
                              teammates:
                                additionalProperties: false
                                description: Invite teammates onboarding step.
                                properties:
                                  done:
                                    description: >-
                                      Whether this onboarding step has been
                                      completed.
                                    type: boolean
                                  trial:
                                    description: >-
                                      Remaining trial count/quota associated
                                      with this step, if applicable.
                                    type: number
                                required:
                                  - done
                                  - trial
                                type: object
                              telegram:
                                additionalProperties: false
                                description: Telegram connection onboarding step.
                                properties:
                                  done:
                                    description: >-
                                      Whether this onboarding step has been
                                      completed.
                                    type: boolean
                                  trial:
                                    description: >-
                                      Remaining trial count/quota associated
                                      with this step, if applicable.
                                    type: number
                                required:
                                  - done
                                  - trial
                                type: object
                              whatsapp:
                                additionalProperties: false
                                description: WhatsApp connection onboarding step.
                                properties:
                                  done:
                                    description: >-
                                      Whether this onboarding step has been
                                      completed.
                                    type: boolean
                                  trial:
                                    description: >-
                                      Remaining trial count/quota associated
                                      with this step, if applicable.
                                    type: number
                                required:
                                  - done
                                  - trial
                                type: object
                            required:
                              - whatsapp
                              - telegram
                              - teammates
                              - chatbox
                              - shortcuts
                            type: object
                        required:
                          - disabled
                          - states
                        type: object
                    required:
                      - setup
                      - milestones
                    type: object
                required:
                  - data
                type: object
          description: Response for status 200.
        '400':
          content:
            application/json:
              schema:
                properties:
                  errors:
                    items:
                      $ref: '#/components/schemas/MissingOperatorIDError'
                    maxItems: 1
                    minItems: 1
                    type: array
                required:
                  - errors
                type: object
          description: >-
            MissingOperatorIDError (error_code 1063): the resolved identity
            carries no operatorID.
        '401':
          content:
            application/json:
              schema:
                properties:
                  errors:
                    items:
                      $ref: '#/components/schemas/UnauthorizedError'
                    maxItems: 1
                    minItems: 1
                    type: array
                required:
                  - errors
                type: object
          description: 'UnauthorizedError (error_code 1003): missing/invalid operator token.'
        '403':
          content:
            application/json:
              schema:
                properties:
                  errors:
                    items:
                      $ref: '#/components/schemas/ForbiddenError'
                    maxItems: 1
                    minItems: 1
                    type: array
                required:
                  - errors
                type: object
          description: >-
            ForbiddenError (error_code 1004): the operator does not belong to
            the tenant.
        '500':
          content:
            application/json:
              schema:
                properties:
                  errors:
                    items:
                      $ref: '#/components/schemas/UnknownError'
                    maxItems: 1
                    minItems: 1
                    type: array
                required:
                  - errors
                type: object
          description: >-
            UnknownError (error_code 5999): Unexpected internal error not
            otherwise documented for this endpoint.
components:
  schemas:
    MissingOperatorIDError:
      additionalProperties: false
      properties:
        error:
          enum:
            - MissingOperatorIDError
          type: string
        error_code:
          enum:
            - 1063
          type: number
        message:
          example: operatorID is required.
          type: string
        statusCode:
          enum:
            - 400
          type: number
      required:
        - statusCode
        - error
        - error_code
        - message
      type: object
    UnauthorizedError:
      additionalProperties: false
      properties:
        error:
          enum:
            - UnauthorizedError
          type: string
        error_code:
          enum:
            - 1003
          type: number
        message:
          example: You are not authorized to perform this request.
          type: string
        statusCode:
          enum:
            - 401
          type: number
      required:
        - statusCode
        - error
        - error_code
        - message
      type: object
    ForbiddenError:
      additionalProperties: false
      properties:
        error:
          enum:
            - ForbiddenError
          type: string
        error_code:
          enum:
            - 1004
          type: number
        message:
          example: You do not have access to this resource.
          type: string
        statusCode:
          enum:
            - 403
          type: number
      required:
        - statusCode
        - error
        - error_code
        - message
      type: object
    UnknownError:
      additionalProperties: false
      properties:
        error:
          enum:
            - UnknownError
          type: string
        error_code:
          enum:
            - 5999
          type: number
        message:
          example: For some unknown reason your request has not succeeded.
          type: string
        statusCode:
          enum:
            - 500
          type: number
      required:
        - statusCode
        - error
        - error_code
        - message
      type: object

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.