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

# Obter Quiz

> Retorna um quiz específico com todas as suas perguntas

## Descrição

Obtém os detalhes de um quiz específico, incluindo todas as perguntas e opções de resposta. As respostas corretas **não são retornadas** neste endpoint para evitar trapaças.

O sistema verifica se o usuário já tentou este quiz. Caso já tenha tentado, retorna erro 403, pois cada usuário tem direito a apenas uma tentativa por quiz.

## Headers

<ParamField header="Authorization" type="string" required>
  Token JWT do usuário autenticado

  Formato: `Bearer {token}`
</ParamField>

## Path Parameters

<ParamField path="id" type="string" required>
  ID único do quiz
</ParamField>

## Response

<ResponseField name="success" type="boolean" required>
  Indica se a operação foi bem-sucedida
</ResponseField>

<ResponseField name="data" type="object" required>
  <Expandable title="Dados do quiz">
    <ResponseField name="id" type="string" required>
      ID único do quiz
    </ResponseField>

    <ResponseField name="title" type="string" required>
      Título do quiz
    </ResponseField>

    <ResponseField name="description" type="string" required>
      Descrição do quiz
    </ResponseField>

    <ResponseField name="quizDate" type="string" required>
      Data do quiz (formato YYYY-MM-DD)
    </ResponseField>

    <ResponseField name="minCorrectAnswers" type="number" required>
      Mínimo de acertos para passar (padrão: 6)
    </ResponseField>

    <ResponseField name="questions" type="array" required>
      Lista de perguntas do quiz

      <Expandable title="Estrutura de cada pergunta">
        <ResponseField name="id" type="string">
          ID único da pergunta
        </ResponseField>

        <ResponseField name="question" type="string">
          Texto da pergunta
        </ResponseField>

        <ResponseField name="type" type="string">
          Tipo do campo (sempre "radio" para quiz)
        </ResponseField>

        <ResponseField name="position" type="number">
          Ordem da pergunta (1-10)
        </ResponseField>

        <ResponseField name="options" type="array">
          Array com 4 opções de resposta
        </ResponseField>
      </Expandable>
    </ResponseField>
  </Expandable>
</ResponseField>

<RequestExample>
  ```bash cURL theme={null}
  curl -X GET https://worker.thenewscc.com/quiz/quiz_abc123 \
    -H "Authorization: Bearer seu_token_jwt"
  ```

  ```javascript JavaScript theme={null}
  const quizId = 'quiz_abc123';

  const response = await fetch(`https://worker.thenewscc.com/quiz/${quizId}`, {
    method: 'GET',
    headers: {
      'Authorization': 'Bearer seu_token_jwt'
    }
  });

  const data = await response.json();
  ```
</RequestExample>

<ResponseExample>
  ```json Success theme={null}
  {
    "success": true,
    "data": {
      "id": "quiz_abc123",
      "title": "quiz do dia - manchete",
      "description": "teste seus conhecimentos sobre a edição de hoje do the news",
      "quizDate": "2026-01-18",
      "minCorrectAnswers": 6,
      "questions": [
        {
          "id": "q1_abc123",
          "question": "qual empresa anunciou uma nova parceria estratégica com a microsoft?",
          "type": "radio",
          "position": 1,
          "options": [
            "google",
            "amazon",
            "openai",
            "meta"
          ]
        },
        {
          "id": "q2_abc123",
          "question": "qual foi o valor do investimento anunciado pela startup brasileira?",
          "type": "radio",
          "position": 2,
          "options": [
            "r$ 50 milhões",
            "r$ 100 milhões",
            "r$ 200 milhões",
            "r$ 500 milhões"
          ]
        }
      ]
    }
  }
  ```

  ```json Already Attempted theme={null}
  {
    "success": false,
    "message": "você já tentou este quiz. cada quiz pode ser tentado apenas uma vez."
  }
  ```

  ```json Not Found theme={null}
  {
    "success": false,
    "message": "quiz não encontrado"
  }
  ```

  ```json Unauthorized theme={null}
  {
    "success": false,
    "message": "Token de autenticação inválido ou ausente"
  }
  ```
</ResponseExample>

<Warning>
  As respostas corretas não são retornadas neste endpoint. Elas são verificadas apenas no momento da submissão via `POST /quiz/submit`.
</Warning>
