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

# Troca a chave de API por um token de curta duração

> Recebe a chave de API como Bearer token e devolve um token JWT de curta duração, carregando os escopos concedidos à chave — exigido por todo endpoint de dados. Sem corpo de requisição: a chave de API vai no cabeçalho `Authorization: Bearer <chave>`.



## OpenAPI

````yaml /referencia/openapi.json post /v1/auth/token
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/auth/token:
    post:
      tags:
        - auth
      summary: Troca a chave de API por um token de curta duração
      description: >-
        Recebe a chave de API como Bearer token e devolve um token JWT de curta
        duração, carregando os escopos concedidos à chave — exigido por todo
        endpoint de dados. Sem corpo de requisição: a chave de API vai no
        cabeçalho `Authorization: Bearer <chave>`.
      operationId: AuthController_issue
      parameters: []
      responses:
        '200':
          description: Token emitido
          content:
            application/json:
              schema:
                type: object
                required:
                  - data
                  - meta
                  - errors
                properties:
                  data:
                    $ref: '#/components/schemas/IssuedToken'
                  meta:
                    type: object
                    description: Metadados da resposta — vazio nesta operação.
                    properties: {}
                  errors:
                    type: array
                    description: Sempre vazio numa resposta de sucesso.
                    items:
                      type: object
                    maxItems: 0
              example:
                data:
                  token: >-
                    eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJjb21wYW55SWQiOjQyLCJzY29wZXMiOlsiYXR0ZW5kYW5jZXMud3JpdGUiLCJhdHRlbmRhbmNlcy5yZWFkIl0sInByZWZpeCI6Imtsc19saXZlX2ExYjJjMyJ9.assinatura-ficticia
                  tokenType: Bearer
                  expiresAt: '2026-08-20T13:15:00.000Z'
                meta: {}
                errors: []
        '401':
          description: INVALID_API_KEY
          content:
            application/json:
              example:
                data: null
                errors:
                  - code: INVALID_API_KEY
                    message: Chave de API inválida.
        '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:
        - apiKey: []
components:
  schemas:
    IssuedToken:
      type: object
      properties:
        token:
          type: string
          description: >-
            Token JWT de curta duração. Envie em todo endpoint de dados como
            `Authorization: Bearer <token>`.
        tokenType:
          type: string
          enum:
            - Bearer
          description: Esquema de autorização a usar com o token — sempre `Bearer`.
        expiresAt:
          type: string
          format: date-time
          description: >-
            Quando o token expira (ISO 8601, UTC). Depois disso, troque a chave
            por um token novo.
      required:
        - token
        - tokenType
        - expiresAt
  securitySchemes:
    apiKey:
      scheme: bearer
      bearerFormat: opaque
      type: http
      description: >-
        Chave de API, só aceita em POST /v1/auth/token para ser trocada por um
        token de curta duração. Nenhum outro endpoint aceita a chave
        diretamente.

````

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