{
  "openapi": "3.1.0",
  "info": {
    "title": "Quiz Studio - Estadísticas",
    "version": "1.0.0",
    "description": "Consulta las cifras agregadas del quiz autorizado. No incluye respuestas ni datos personales de contactos."
  },
  "servers": [
    {
      "url": "https://quiz.lasolucionweb.net"
    }
  ],
  "paths": {
    "/api/integrations/quiz-statistics": {
      "get": {
        "operationId": "getQuizStatistics",
        "summary": "Consultar estadísticas de un quiz",
        "security": [
          {
            "QuizStatsKey": []
          }
        ],
        "responses": {
          "200": {
            "description": "Estadísticas del quiz autorizado",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean"
                    },
                    "data": {
                      "type": "object",
                      "properties": {
                        "quiz": {
                          "type": "object",
                          "properties": {
                            "id": {
                              "type": "string"
                            },
                            "title": {
                              "type": "string"
                            }
                          }
                        },
                        "period_start": {
                          "type": [
                            "string",
                            "null"
                          ],
                          "format": "date-time"
                        },
                        "metrics": {
                          "type": "object",
                          "properties": {
                            "views": {
                              "type": "integer"
                            },
                            "starts": {
                              "type": "integer"
                            },
                            "completions": {
                              "type": "integer"
                            },
                            "leads": {
                              "type": "integer"
                            },
                            "sale_clicks": {
                              "type": "integer"
                            }
                          }
                        },
                        "retrieved_at": {
                          "type": "string",
                          "format": "date-time"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Clave no válida, caducada o desactivada"
          },
          "429": {
            "description": "Demasiadas solicitudes"
          },
          "503": {
            "description": "Servicio temporalmente no disponible"
          },
          "400": {
            "description": "Filtros o fechas inválidos"
          },
          "403": {
            "description": "El quiz solicitado no corresponde a la clave"
          }
        },
        "description": "Clave de un solo quiz. Las fechas son inclusivas y UTC; los reinicios establecen el inicio mínimo. Sin filtros se devuelven los totales actuales.",
        "parameters": [
          {
            "name": "quiz_id",
            "in": "query",
            "required": false,
            "description": "UUID del quiz autorizado por la clave.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "from",
            "in": "query",
            "required": false,
            "description": "Fecha inicial inclusiva UTC, AAAA-MM-DD.",
            "schema": {
              "type": "string",
              "format": "date"
            }
          },
          {
            "name": "to",
            "in": "query",
            "required": false,
            "description": "Fecha final inclusiva UTC, AAAA-MM-DD.",
            "schema": {
              "type": "string",
              "format": "date"
            }
          },
          {
            "name": "utm_source",
            "in": "query",
            "required": false,
            "description": "Fuente UTM exacta.",
            "schema": {
              "type": "string",
              "maxLength": 160
            }
          },
          {
            "name": "utm_medium",
            "in": "query",
            "required": false,
            "description": "Medio UTM exacto.",
            "schema": {
              "type": "string",
              "maxLength": 160
            }
          },
          {
            "name": "utm_campaign",
            "in": "query",
            "required": false,
            "description": "Campaña UTM exacta.",
            "schema": {
              "type": "string",
              "maxLength": 160
            }
          },
          {
            "name": "utm_content",
            "in": "query",
            "required": false,
            "description": "Contenido UTM exacto.",
            "schema": {
              "type": "string",
              "maxLength": 160
            }
          },
          {
            "name": "utm_term",
            "in": "query",
            "required": false,
            "description": "Término UTM exacto.",
            "schema": {
              "type": "string",
              "maxLength": 160
            }
          },
          {
            "name": "ad_id",
            "in": "query",
            "required": false,
            "description": "Identificador exacto del anuncio, si llegó en la URL.",
            "schema": {
              "type": "string",
              "maxLength": 160
            }
          }
        ]
      }
    }
  },
  "components": {
    "securitySchemes": {
      "QuizStatsKey": {
        "type": "http",
        "scheme": "bearer",
        "bearerFormat": "Quiz Studio API key"
      }
    }
  }
}
