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

# Lista atendimentos

> Lista os atendimentos da contratante dona da chave, paginados por cursor. Nunca inclui rascunhos.



## OpenAPI

````yaml /referencia/openapi.json get /v1/attendances
openapi: 3.0.0
info:
  title: Koolisys — API Pública
  description: >-
    Contrato da API pública de integração da Koolisys: atendimentos, catálogo de
    serviços, elegibilidade, cadastro e consulta de clientes e veículos e a
    própria contratante. Gerada a partir do código — rotas, DTOs de entrada,
    projeções de resposta e escopos declarados —, nunca mantida à mão.
  version: 1.0.0
  contact: {}
servers:
  - url: https://api-koolisys.eixoassistencia.com.br
    description: API pública da Koolisys
security: []
tags:
  - name: auth
    description: Emissão do token de curta duração a partir da chave de API
  - name: attendances
    description: Abertura, consulta e listagem de atendimentos
  - name: services
    description: Catálogo de serviços disponíveis
  - name: eligibility
    description: Consulta de elegibilidade de cliente e veículo
  - name: customers
    description: Cadastro, consulta, busca e listagem de clientes da contratante
  - name: vehicles
    description: Consulta e listagem de veículos da contratante
  - name: company
    description: 'A própria contratante: contratos vigentes e planos disponíveis'
  - name: meta
    description: A própria especificação
paths:
  /v1/attendances:
    get:
      tags:
        - attendances
      summary: Lista atendimentos
      description: >-
        Lista os atendimentos da contratante dona da chave, paginados por
        cursor. Nunca inclui rascunhos.
      operationId: PublicAttendancesController_list
      parameters:
        - name: limit
          required: false
          in: query
          description: Itens por página (1 a 100, padrão 20)
          schema:
            example: 20
        - name: cursor
          required: false
          in: query
          description: Cursor da próxima página, devolvido em meta.nextCursor
          schema: {}
        - name: openedTo
          required: false
          in: query
          description: Data/hora ISO 8601 máxima de abertura
          schema:
            example: '2026-08-31T23:59:59.000Z'
        - name: openedFrom
          required: false
          in: query
          description: Data/hora ISO 8601 mínima de abertura
          schema:
            example: '2026-08-01T00:00:00.000Z'
        - name: status
          required: false
          in: query
          description: Filtra por status (nunca DRAFT)
          schema:
            example: IN_PROGRESS
      responses:
        '200':
          description: Página de atendimentos
          content:
            application/json:
              schema:
                type: object
                required:
                  - data
                  - meta
                  - errors
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/PublicAttendanceSummary'
                  meta:
                    $ref: '#/components/schemas/PublicAttendancePageMeta'
                  errors:
                    type: array
                    description: Sempre vazio numa resposta de sucesso.
                    items:
                      type: object
                    maxItems: 0
              example:
                data:
                  - id: 12345
                    number: AT-2026-000123
                    status: IN_PROGRESS
                    customerDocument: '12345678900'
                    vehiclePlate: ABC1D23
                    attendanceTypeId: 17
                    attendanceTypeDetail: Pane seca no estacionamento
                    notes: Cliente aguarda no local, veículo não sai do lugar.
                    milestones:
                      openedAt: '2026-08-20T13:05:00.000Z'
                      providerDispatchedAt: '2026-08-20T13:10:00.000Z'
                      providerEnRouteAt: '2026-08-20T13:12:00.000Z'
                      providerArrivedAt: '2026-08-20T13:40:00.000Z'
                      serviceStartedAt: '2026-08-20T13:42:00.000Z'
                      concludedAt: null
                      canceledAt: null
                    createdAt: '2026-08-20T13:00:00.000Z'
                    amountCents: 15000
                    distanceKm: 12.3
                meta:
                  nextCursor: null
                errors: []
        '400':
          description: VALIDATION_ERROR
          content:
            application/json:
              example:
                data: null
                errors:
                  - code: VALIDATION_ERROR
                    message: 'customerDocument: Documento do cliente é obrigatório'
                    field: customerDocument
        '401':
          description: INVALID_TOKEN
          content:
            application/json:
              example:
                data: null
                errors:
                  - code: INVALID_TOKEN
                    message: Token inválido.
        '403':
          description: INSUFFICIENT_SCOPE
          content:
            application/json:
              example:
                data: null
                errors:
                  - code: INSUFFICIENT_SCOPE
                    message: Escopo insuficiente para este endpoint.
                    details:
                      requiredScope: attendances.read
        '429':
          description: RATE_LIMITED
          content:
            application/json:
              example:
                data: null
                errors:
                  - code: RATE_LIMITED
                    message: Limite de requisições excedido.
                    details:
                      retryAfterSeconds: 42
        '503':
          description: FEATURE_DISABLED
          content:
            application/json:
              example:
                data: null
                errors:
                  - code: FEATURE_DISABLED
                    message: 'Feature is disabled: public_api.enabled'
      security:
        - apiToken: []
components:
  schemas:
    PublicAttendanceSummary:
      type: object
      properties:
        id:
          type: integer
          format: int32
          description: Identificador do atendimento — use em GET /v1/attendances/{id}.
        number:
          type: string
          description: Número legível do atendimento, único na plataforma.
        status:
          type: string
          enum:
            - DRAFT
            - OPEN
            - SEARCHING_PROVIDER
            - PROVIDER_ASSIGNED
            - PROVIDER_ON_ROUTE
            - IN_PROGRESS
            - COMPLETED
            - CANCELED
          description: >-
            Situação do atendimento: OPEN (aberto, aguardando a central),
            SEARCHING_PROVIDER (buscando prestador), PROVIDER_ASSIGNED
            (prestador definido), PROVIDER_ON_ROUTE (prestador a caminho),
            IN_PROGRESS (em execução), COMPLETED (concluído) ou CANCELED
            (cancelado). DRAFT (rascunho) existe no vocabulário mas nunca
            aparece na listagem.
        customerDocument:
          type: string
          nullable: true
          description: CPF ou CNPJ do cliente, só dígitos, como registrado na abertura.
        vehiclePlate:
          type: string
          nullable: true
          description: Placa do veículo atendido, como registrada na abertura.
        attendanceTypeId:
          type: integer
          format: int32
          nullable: true
          description: Identificador do motivo de atendimento informado na abertura.
        attendanceTypeDetail:
          type: string
          nullable: true
          description: Detalhe livre do motivo, informado pelo integrador na abertura.
        notes:
          type: string
          nullable: true
          description: Observações informadas na abertura.
        milestones:
          description: Marcos da linha do tempo do atendimento.
          allOf:
            - $ref: '#/components/schemas/PublicAttendanceMilestones'
        createdAt:
          type: string
          format: date-time
          description: Quando o registro foi criado.
        amountCents:
          type: integer
          format: int32
          nullable: true
          description: >-
            Valor do acionamento mais recente, em centavos (ex.: 15000 = R$
            150,00). Reflete o total já concluído quando o atendimento está
            COMPLETED — não é recalculado depois. Nulo enquanto nenhum prestador
            foi acionado.
        distanceKm:
          type: number
          format: double
          nullable: true
          description: >-
            Distância percorrida no acionamento mais recente, em quilômetros.
            Congelada no momento do acionamento — nunca recalculada depois,
            mesmo que o endereço de origem/destino seja corrigido. Nula quando o
            prestador é avulso (sem rota calculada) ou enquanto nenhum prestador
            foi acionado.
      required:
        - id
        - number
        - status
        - customerDocument
        - vehiclePlate
        - attendanceTypeId
        - attendanceTypeDetail
        - notes
        - milestones
        - createdAt
        - amountCents
        - distanceKm
    PublicAttendancePageMeta:
      type: object
      properties:
        nextCursor:
          type: string
          nullable: true
          description: >-
            Cursor opaco da próxima página — repasse em `?cursor=`. Nulo quando
            não há mais páginas.
      required:
        - nextCursor
    PublicAttendanceMilestones:
      type: object
      properties:
        openedAt:
          type: string
          format: date-time
          nullable: true
          description: Quando o atendimento foi aberto (ISO 8601, UTC).
        providerDispatchedAt:
          type: string
          format: date-time
          nullable: true
          description: >-
            Quando a central acionou um prestador. Nulo enquanto nenhum foi
            acionado.
        providerEnRouteAt:
          type: string
          format: date-time
          nullable: true
          description: Quando o prestador saiu em direção ao cliente.
        providerArrivedAt:
          type: string
          format: date-time
          nullable: true
          description: Quando o prestador chegou ao local.
        serviceStartedAt:
          type: string
          format: date-time
          nullable: true
          description: Quando a execução do serviço começou.
        concludedAt:
          type: string
          format: date-time
          nullable: true
          description: >-
            Quando o atendimento foi concluído. Nulo enquanto estiver em
            andamento.
        canceledAt:
          type: string
          format: date-time
          nullable: true
          description: Quando o atendimento foi cancelado. Nulo se não foi cancelado.
      required:
        - openedAt
        - providerDispatchedAt
        - providerEnRouteAt
        - providerArrivedAt
        - serviceStartedAt
        - concludedAt
        - canceledAt
  securitySchemes:
    apiToken:
      scheme: bearer
      bearerFormat: JWT
      type: http
      description: >-
        Token de curta duração devolvido por POST /v1/auth/token, carregando os
        escopos concedidos à chave — exigido por todo endpoint de dados.

````

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