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

# Listar questões de um modelo

> Lista as questões de um modelo de checklist, com o tipo, a seção, a pontuação máxima, se a resposta é obrigatória e, nas questões de opções, as opções de resposta com peso e pontuação em `typeSettings.option`. Nas questões sem opções, `typeSettings` vem como array vazio (`[]`). O parâmetro `templateId` é obrigatório.



## OpenAPI

````yaml /api-reference/openapi-v2.json get /api/v2/checklist/template/question/list
openapi: 3.1.0
info:
  title: API do SULTS v2
  version: '2.0'
  description: >-
    A nova geração da API do SULTS, em migração módulo a módulo (Compras
    primeiro). Autenticação por token v2 no cabeçalho `Authorization`; tokens v1
    não funcionam aqui. Nas requisições com corpo, envie `Content-Type:
    application/json;charset=UTF-8`.
  contact:
    name: Suporte SULTS
    url: https://ajuda.sults.com.br
servers:
  - url: https://api.sults.com.br
security:
  - apiKeyAuth: []
tags:
  - name: Produtos
    description: >-
      Cadastro, preço, estoque, variações e variantes de produto no módulo de
      Compras da v2. A API do SULTS é REST sobre HTTPS e responde em JSON. Cada
      requisição leva o token no cabeçalho `Authorization`, enviado puro, sem o
      prefixo `Bearer`. O token é gerado por um administrador na plataforma, em
      Segurança > API > Gestão de Tokens v2. O limite é de 2 requisições por
      segundo, por IP.
  - name: Mix de produtos
    description: >-
      Sortimento de produtos por empresa. Disponível apenas quando o recurso de
      mix está habilitado na plataforma, em Comercial > Configuração > Mix de
      produto. A API do SULTS é REST sobre HTTPS e responde em JSON. Cada
      requisição leva o token no cabeçalho `Authorization`, enviado puro, sem o
      prefixo `Bearer`. O token é gerado por um administrador na plataforma, em
      Segurança > API > Gestão de Tokens v2. O limite é de 2 requisições por
      segundo, por IP.
  - name: Pedidos e etapas
    description: >-
      Pedidos de compra da v2 e o fluxo de etapas, que é configurável por
      operação. A API do SULTS é REST sobre HTTPS e responde em JSON. Cada
      requisição leva o token no cabeçalho `Authorization`, enviado puro, sem o
      prefixo `Bearer`. O token é gerado por um administrador na plataforma, em
      Segurança > API > Gestão de Tokens v2. O limite é de 2 requisições por
      segundo, por IP.
  - name: Comunicados
    description: >-
      Comunicados publicados na plataforma, com o público de cada um, a
      confirmação de leitura e o conteúdo publicado. A API do SULTS é REST sobre
      HTTPS e responde em JSON. Cada requisição leva o token no cabeçalho
      `Authorization`, enviado puro, sem o prefixo `Bearer`. O token é gerado
      por um administrador na plataforma, em Segurança > API > Gestão de Tokens
      v2. O limite é de 2 requisições por segundo, por IP.
  - name: Chamados
    description: >-
      Chamados da plataforma: abertura, timeline, interações, apoios, etiquetas,
      prazo e conclusão. A API do SULTS é REST sobre HTTPS e responde em JSON.
      Cada requisição leva o token no cabeçalho `Authorization`, enviado puro,
      sem o prefixo `Bearer`. O token é gerado por um administrador na
      plataforma, em Segurança > API > Gestão de Tokens v2. O limite é de 2
      requisições por segundo, por IP.
  - name: Checklist
    description: >-
      Avaliações de checklist com respostas, check-in e check-out, os modelos
      com seções e questões, e os planos de ação com a timeline. A API do SULTS
      é REST sobre HTTPS e responde em JSON. Cada requisição leva o token no
      cabeçalho `Authorization`, enviado puro, sem o prefixo `Bearer`. O token é
      gerado por um administrador na plataforma, em Segurança > API > Gestão de
      Tokens v2. O limite é de 2 requisições por segundo, por IP.
paths:
  /api/v2/checklist/template/question/list:
    get:
      tags:
        - Checklist
      summary: Listar questões de um modelo
      description: >-
        Lista as questões de um modelo de checklist, com o tipo, a seção, a
        pontuação máxima, se a resposta é obrigatória e, nas questões de opções,
        as opções de resposta com peso e pontuação em `typeSettings.option`. Nas
        questões sem opções, `typeSettings` vem como array vazio (`[]`). O
        parâmetro `templateId` é obrigatório.
      operationId: listarQuestoesModeloChecklist
      parameters:
        - name: templateId
          in: query
          required: true
          schema:
            type: integer
          description: Código do modelo de checklist.
          example: 155
        - name: sectionId
          in: query
          schema:
            type: integer
          description: Código da seção.
          example: 5132
        - name: required
          in: query
          schema:
            type: boolean
          description: Filtra pelas questões de resposta obrigatória.
          example: true
        - name: notApplicable
          in: query
          schema:
            type: boolean
          description: Filtra pelas questões que aceitam ser marcadas como não aplicáveis.
          example: false
      responses:
        '200':
          description: Questões do modelo.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ChecklistQuestaoV2'
              example:
                - id: 2
                  title: As estantes estão limpas?
                  descriptionHtml: <p>Verificar prateleiras superiores e inferiores.</p>
                  type: RATING_QUALITY_3
                  typeSettings:
                    option:
                      - id: 5296
                        name: Bom
                        attachmentRequired: false
                        actionPlanRequired: false
                        weight: 3
                        score: 30
                      - id: 5297
                        name: Regular
                        attachmentRequired: false
                        actionPlanRequired: false
                        weight: 2
                        score: 20
                      - id: 5298
                        name: Ruim
                        attachmentRequired: true
                        actionPlanRequired: true
                        weight: 1
                        score: 10
                  order: 1
                  active: true
                  maxScore: '30'
                  required: true
                  commentEnabled: true
                  notApplicable: false
                  section:
                    id: 5132
                    name: Estoque seco
                    order: 1
                    active: true
                - id: 3
                  title: Qual a temperatura registrada na câmara fria?
                  descriptionHtml: ''
                  type: TEXT_SHORT
                  typeSettings: []
                  order: 2
                  active: true
                  maxScore: '0'
                  required: true
                  commentEnabled: false
                  notApplicable: false
                  section:
                    id: 5132
                    name: Estoque seco
                    order: 1
                    active: true
        '400':
          $ref: '#/components/responses/ErroValidacao'
        '401':
          $ref: '#/components/responses/TokenInvalido'
        '404':
          $ref: '#/components/responses/NaoEncontrado'
        '429':
          $ref: '#/components/responses/LimiteDeRequisicoes'
        5XX:
          $ref: '#/components/responses/ErroDoServidor'
components:
  schemas:
    ChecklistQuestaoV2:
      type: object
      description: Questão de um modelo de checklist.
      properties:
        id:
          type: integer
          description: Código da questão.
          example: 2
        title:
          type: string
          description: Título da questão.
          example: As estantes estão limpas?
        descriptionHtml:
          type: string
          description: Orientação da questão, em HTML.
          example: <p>Verificar prateleiras superiores e inferiores.</p>
        type:
          $ref: '#/components/schemas/TipoQuestaoV2'
          description: Tipo da questão.
        typeSettings:
          description: >-
            Configuração do tipo da questão. Nas questões de opções, é um objeto
            com as opções de resposta em `option`; nas demais, vem como array
            vazio (`[]`).
          oneOf:
            - type: object
              description: Configuração das questões de opções.
              properties:
                option:
                  type: array
                  description: Opções de resposta.
                  items:
                    $ref: '#/components/schemas/ChecklistOpcaoQuestaoV2'
            - type: array
              description: Array vazio, nas questões sem opções.
              maxItems: 0
              items: {}
        order:
          type: integer
          description: Posição da questão na seção.
          example: 1
        active:
          type: boolean
          description: Indica se a questão está ativa.
          example: true
        maxScore:
          type: string
          description: Pontuação máxima da questão. Vem como texto.
          example: '30'
        required:
          type: boolean
          description: Indica se a resposta é obrigatória.
          example: true
        commentEnabled:
          type: boolean
          description: Indica se a questão aceita comentário.
          example: true
        notApplicable:
          type: boolean
          description: Indica se a questão aceita ser marcada como não aplicável.
          example: false
        section:
          $ref: '#/components/schemas/ChecklistQuestaoSecaoV2'
          description: Seção da questão.
    TipoQuestaoV2:
      type: string
      description: >-
        Tipo da questão. Os mesmos valores vêm nas questões do modelo e nas
        respostas da avaliação.


        | Valor | Significado |

        | ----- | ----------- |

        | `TEXT_SHORT` | Texto curto |

        | `TEXT_LONG` | Texto longo |

        | `CONFORMITY` | Conformidade |

        | `RATING_STAR_5` | Nível de qualidade em 5 estrelas |

        | `RATING_QUALITY_5` | Nível de qualidade com 5 opções |

        | `RATING_QUALITY_3` | Nível de qualidade com 3 opções |

        | `RATING_NUMERIC_10` | Em confirmação com a engenharia |

        | `CUSTOM_SINGLE_CHOICE` | Valores personalizados, uma escolha |

        | `CUSTOM_MULTI_CHOICE` | Valores personalizados, múltipla escolha |

        | `YES_NO` | Sim ou não |

        | `DATE` | Data |

        | `CURRENCY` | Valor monetário |


        A lista acima traz os valores já confirmados na API; os demais tipos
        estão em confirmação com a engenharia.
      example: RATING_QUALITY_3
    ChecklistOpcaoQuestaoV2:
      type: object
      description: Opção de resposta de uma questão.
      properties:
        id:
          type: integer
          description: >-
            Código da opção. É o valor que vem em `answerTemplateOptionId` nas
            respostas da avaliação.
          example: 5297
        name:
          type: string
          description: Nome da opção.
          example: Bom
        attachmentRequired:
          type: boolean
          description: Exige anexo quando esta opção é escolhida.
          example: false
        actionPlanRequired:
          type: boolean
          description: Exige plano de ação quando esta opção é escolhida.
          example: false
        weight:
          type: integer
          description: Peso da opção.
          example: 3
        score:
          type: number
          description: Pontuação da opção.
          example: 30
    ChecklistQuestaoSecaoV2:
      type: object
      description: Seção da questão.
      properties:
        id:
          type: integer
          description: Código da seção.
          example: 5132
        name:
          type: string
          description: Nome da seção.
          example: Estoque seco
        order:
          type: integer
          description: Posição da seção no modelo.
          example: 1
        active:
          type: boolean
          description: Indica se a seção está ativa.
          example: true
    Erro:
      type: object
      description: >-
        Corpo padrão de erro da API. Não existe código de erro interno: decida a
        sua lógica pelo status HTTP e use a mensagem apenas para logs e
        diagnóstico.
      required:
        - error
      properties:
        error:
          type: string
          description: >-
            Mensagem legível, em português, descrevendo a falha. O texto pode
            mudar: nunca o use como condição de código.
          example: Campo supplierId não pode ser vazio ou nulo.
  responses:
    ErroValidacao:
      description: >-
        Erro de validação ou formato errado nos dados de entrada. A API aponta
        **um campo por vez**: corrija o campo indicado na mensagem, reenvie e
        repita até o 200.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Erro'
          example:
            error: Campo supplierId não pode ser vazio ou nulo.
    TokenInvalido:
      description: >-
        Token ausente ou inválido. Confira: copiado por completo, cabeçalho
        `Authorization` com o nome exato, valor sem o prefixo `Bearer` e gerado
        na **Gestão de Tokens v2** (tokens v1 não funcionam aqui). Sem retry
        automático. O corpo real é `{"error": "Acesso não autorizado."}`.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Erro'
          example:
            error: Acesso não autorizado.
    NaoEncontrado:
      description: >-
        Recurso inexistente, ou recurso condicionado desabilitado (por exemplo,
        endpoints de Mix sem o recurso de mix habilitado na operação). Reenviar
        sem corrigir devolve o mesmo erro.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Erro'
    LimiteDeRequisicoes:
      description: >-
        Limite de requisições excedido: **2 requisições por segundo, por IP**. A
        resposta é a página HTML padrão do servidor, não JSON, e não há o header
        `Retry-After`: trate pelo status 429, sem fazer parse do corpo, com
        espera crescente a partir de 1 segundo.
      content:
        text/html:
          schema:
            type: string
            description: >-
              Página HTML padrão do servidor. Não faça parse; decida pelo
              status.
    ErroDoServidor:
      description: >-
        Falha inesperada do servidor (raro). Repita com espera crescente;
        persistindo, acione o suporte com data, hora e endpoint.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Erro'
  securitySchemes:
    apiKeyAuth:
      type: apiKey
      in: header
      name: Authorization
      description: >-
        Token  gerado na Gestão de Tokens v2 do SULTS. Deve ser enviado no
        cabeçalho `Authorization` de todas as requisições.

````

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