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

# List Routes

> Lists routes for MOB/BKO review.



## OpenAPI

````yaml /api-reference/bko/openapi.json get /api/v1/bko/routes
openapi: 3.0.0
info:
  title: DEVMOB BKO API
  version: '1.0'
servers: []
security: []
tags:
  - name: Auth
    description: Authentication endpoints.
  - name: Benefit Category
    description: Global fare benefit category endpoints.
  - name: Benefit Program
    description: Platform fare benefit program endpoints.
  - name: Invite
    description: Invitation endpoints.
  - name: Member
    description: BKO internal member endpoints.
  - name: Notification
    description: BKO inbox notifications
  - name: Order
    description: Order query endpoints.
  - name: Organization
    description: Organization management endpoints.
  - name: Organization Address
    description: Organization address endpoints.
  - name: Payment
    description: Payment query endpoints.
  - name: Permission
    description: Permission catalog endpoints.
  - name: Place
    description: Place lookup endpoints.
  - name: Point
    description: Global point catalog endpoints.
  - name: Profile
    description: Authenticated BKO profile endpoints.
  - name: Receivable
    description: Receivable query endpoints.
  - name: Report
    description: Platform report endpoints.
  - name: Role
    description: Internal and reusable role endpoints.
  - name: Route
    description: BKO route review endpoints.
  - name: Route Approval
    description: BKO route approval review endpoints.
  - name: Storage
    description: Storage upload signing endpoints.
  - name: Transfer
    description: Transfer query endpoints.
  - name: Transport Operator
    description: Transport operators
  - name: Transport Operator Quota
    description: Transport operator quotas
  - name: Transport Operator Route
    description: Transport operator route authorizations
  - name: Transport Operator Subsidy Rule
    description: Transport operator subsidy rules
  - name: Transport Operator Subsidy Settlement
    description: Transport operator subsidy settlements
  - name: User
    description: Platform user administration endpoints.
paths:
  /api/v1/bko/routes:
    get:
      tags:
        - Route
      summary: List Routes
      description: Lists routes for MOB/BKO review.
      operationId: listBkoRoutes
      parameters:
        - name: limit
          required: false
          in: query
          schema:
            default: 10
            description: Items per page
            example: 10
            type: number
        - name: page
          required: false
          in: query
          schema:
            default: 1
            description: Page number
            example: 1
            type: number
        - name: cooperativeId
          required: false
          in: query
          description: Cooperative identifier
          schema:
            type: string
            format: uuid
            description: Cooperative identifier
        - name: transportOperatorId
          required: false
          in: query
          description: Filters routes by the currently approved transport operator.
          schema:
            type: string
            format: uuid
            description: Currently approved transport operator identifier
            example: 01980d30-6a3c-7a42-9182-17ad6324d3aa
        - name: filter
          required: false
          in: query
          schema:
            description: |-
              Generic filter that matches against
              - origin
              - destination
            example: São Paulo
            type: string
        - name: destinationId
          required: false
          in: query
          schema:
            description: Destination identifier
            type: string
            format: uuid
            example: 0195e7a1-8b5c-7d3e-9f4a-2c6b8d0e1f3d
        - name: originId
          required: false
          in: query
          schema:
            description: Origin identifier
            type: string
            format: uuid
            example: 0195e7a1-8b5c-7d3e-9f4a-2c6b8d0e1f3c
        - name: status
          required: false
          in: query
          schema:
            description: Route status
            type: string
            enum:
              - PENDING_APPROVAL
              - ACTIVE
              - INACTIVE
            example: PENDING_APPROVAL
        - name: sortBy
          required: false
          in: query
          schema:
            default: createdAt
            description: Field to sort by
            example: createdAt
            type: string
            enum:
              - distanceKm
              - estimatedDuration
              - createdAt
        - name: sortOrder
          required: false
          in: query
          schema:
            default: desc
            description: Sort order
            example: desc
            type: string
            enum:
              - asc
              - desc
        - name: fields
          required: false
          in: query
          description: >-
            Comma-separated list of fields to include in the response. Supports
            dot notation for nested projection (e.g.
            `id,name,user.email,trips.route.id`). Unknown fields are silently
            dropped.
          schema:
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/Route'
                  meta:
                    $ref: '#/components/schemas/PageMeta'
                required:
                  - data
                  - meta
          description: OK
        '400':
          $ref: '#/components/responses/BadRequestError'
        '401':
          $ref: '#/components/responses/UnauthorizedError'
        '403':
          $ref: '#/components/responses/ForbiddenError'
        '500':
          $ref: '#/components/responses/InternalServerError'
      security:
        - bearer: []
components:
  schemas:
    Route:
      type: object
      properties:
        routeId:
          type: string
          format: uuid
          description: Identificador único
        cooperativeId:
          type: string
          format: uuid
          description: Referência à cooperativa
        transportOperatorId:
          type: string
          format: uuid
          nullable: true
          description: >-
            Permissionário atualmente aprovado para operar a rota; valor
            computado pelo backend a partir da autorização ativa. Retorna null
            quando não houver permissionário aprovado.
        originId:
          type: string
          format: uuid
          description: Referência ao Point de origem
        destinationId:
          type: string
          format: uuid
          description: Referência ao Point de destino
        distanceKm:
          type: number
          description: Distância em quilômetros
        estimatedDuration:
          type: integer
          description: Duração estimada em minutos
        status:
          type: string
          enum:
            - PENDING_APPROVAL
            - ACTIVE
            - INACTIVE
          description: Status da rota
        createdBy:
          type: string
          format: uuid
          nullable: true
          description: Usuário que criou o registro, quando aplicável
        createdAt:
          type: string
          format: date-time
          description: Data de criação
        updatedBy:
          type: string
          format: uuid
          nullable: true
          description: Usuário que fez a última atualização, quando aplicável
        updatedAt:
          type: string
          format: date-time
          description: Data da última atualização
        deletedBy:
          type: string
          format: uuid
          nullable: true
          description: Usuário que removeu o registro, quando aplicável
        deletedAt:
          type: string
          format: date-time
          nullable: true
          description: Data de remoção
        origin:
          allOf:
            - $ref: '#/components/schemas/Point'
          description: Origin point
        destination:
          allOf:
            - $ref: '#/components/schemas/Point'
          description: Destination point
      required:
        - routeId
        - cooperativeId
        - transportOperatorId
        - originId
        - destinationId
        - distanceKm
        - estimatedDuration
        - status
        - createdBy
        - createdAt
        - updatedBy
        - updatedAt
        - deletedBy
        - deletedAt
        - origin
        - destination
      description: Rotas fixas da cooperativa, referenciando Points do catálogo global
    PageMeta:
      type: object
      properties:
        limit:
          type: integer
          description: Items per page.
          example: 10
        page:
          type: integer
          description: Current page.
          example: 1
        totalItems:
          type: integer
          description: Total items.
          example: 142
        totalPages:
          type: integer
          description: Total pages.
          example: 15
      required:
        - limit
        - page
        - totalItems
        - totalPages
      description: Page-based pagination metadata.
    Point:
      type: object
      properties:
        pointId:
          type: string
          format: uuid
          description: Identificador único
        name:
          type: string
          description: Nome do local
        description:
          type: string
          nullable: true
          description: Descrição complementar (opcional)
        lat:
          type: number
          nullable: true
          description: Latitude (opcional, -90 a 90)
        lng:
          type: number
          nullable: true
          description: Longitude (opcional, -180 a 180)
        createdBy:
          type: string
          format: uuid
          nullable: true
          description: Usuário que criou o registro, quando aplicável
        createdAt:
          type: string
          format: date-time
          description: Data de criação
        updatedBy:
          type: string
          format: uuid
          nullable: true
          description: Usuário que fez a última atualização, quando aplicável
        updatedAt:
          type: string
          format: date-time
          description: Data da última atualização
        deletedBy:
          type: string
          format: uuid
          nullable: true
          description: Usuário que removeu o registro, quando aplicável
        deletedAt:
          type: string
          format: date-time
          nullable: true
          description: Data de remoção
      required:
        - pointId
        - name
        - description
        - lat
        - lng
        - createdBy
        - createdAt
        - updatedBy
        - updatedAt
        - deletedBy
        - deletedAt
      description: >-
        Catálogo global de localidades reutilizáveis (terminais, cidades, pontos
        de embarque) referenciadas por Routes
    ValidationError:
      type: object
      properties:
        statusCode:
          type: integer
          description: HTTP status code.
          example: 400
        message:
          type: string
          description: Error message.
          example: Bad Request Error
        errors:
          type: array
          items:
            type: object
            properties:
              code:
                type: string
                description: Validation code.
                example: invalid_type
              message:
                type: string
                description: Validation message.
                example: Required
              path:
                type: string
                description: Invalid field path.
                example: name
            required:
              - code
              - message
              - path
      required:
        - statusCode
        - message
        - errors
      description: Validation error response.
    ApiError:
      type: object
      properties:
        statusCode:
          type: integer
          description: HTTP status code.
          example: 404
        error:
          type: string
          description: HTTP error name.
          example: Not Found
        message:
          type: string
          description: Machine-readable error code.
          example: resource.not_found
      required:
        - statusCode
        - error
        - message
      description: Domain error response.
  responses:
    BadRequestError:
      description: Validation failed.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ValidationError'
    UnauthorizedError:
      description: Authentication required.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ApiError'
    ForbiddenError:
      description: Forbidden.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ApiError'
    InternalServerError:
      description: Internal server error.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ApiError'
  securitySchemes:
    bearer:
      scheme: bearer
      bearerFormat: JWT
      type: http

````