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

# Instantánea de visibilidad

> Una sola llamada con score, prompts sin mención, competidores y brechas de contenido. Es el endpoint que usa Custumu.

Pensado para productos de contenido (Custumu) y paneles externos: en una petición obtienes si la marca es visible, qué prompts pierde y qué contenido conviene escribir.

<ParamField header="Authorization" type="string" required>
  `Bearer` más la clave de API del proyecto.
</ParamField>

<ParamField header="X-Timezone" type="string">
  Zona horaria IANA. Por defecto `UTC`.
</ParamField>

<ParamField query="brand_id" type="uuid">
  Marca. También se acepta `brand` con dominio o nombre.
</ParamField>

<ParamField query="start_date" type="date">
  Inicio del periodo (`YYYY-MM-DD`).
</ParamField>

<ParamField query="end_date" type="date">
  Fin del periodo (`YYYY-MM-DD`).
</ParamField>

<ParamField query="model" type="string">
  Filtro de motores, separados por coma.
</ParamField>

<RequestExample>
  ```bash cURL theme={null}
  curl "https://api.wudlet.com/v1/visibility/snapshot?brand=custumu.com" \
    -H "Authorization: Bearer sk_live_..." \
    -H "X-Timezone: America/Guatemala"
  ```

  ```js JavaScript theme={null}
  const res = await fetch(
    "https://api.wudlet.com/v1/visibility/snapshot?brand=custumu.com",
    {
      headers: {
        Authorization: "Bearer sk_live_...",
        "X-Timezone": "America/Guatemala",
      },
    }
  );
  const snapshot = await res.json();
  ```
</RequestExample>

<ResponseExample>
  ```json theme={null}
  {
    "brand": {
      "id": "c3a1e2b0-4d55-4f21-9c8a-1f0e9d8c7b6a",
      "name": "Custumu",
      "domain": "https://custumu.com",
      "industry": "SaaS"
    },
    "overall_score": 18,
    "models": [],
    "visible": true,
    "competitors": [
      {
        "name": "Otra marca",
        "domain": "ejemplo.com",
        "mentionCount": 12,
        "visibility": 40
      }
    ],
    "missing_prompts": [
      {
        "id": 42,
        "prompt": "¿Cuál es la mejor herramienta para escribir en la voz de mi marca?",
        "category": "consideracion",
        "responses": 8,
        "mentions": 0
      }
    ],
    "content_gaps": {
      "summary": {
        "totalGaps": 6,
        "highIntentCount": 2,
        "topWinningCompetitor": "Otra marca",
        "avgOpportunityScore": 72
      },
      "items": [],
      "total": 6
    }
  }
  ```
</ResponseExample>

## Campos útiles para contenido

| Campo                | Uso                                                               |
| -------------------- | ----------------------------------------------------------------- |
| `visible`            | `true` si `overall_score` es mayor que 0.                         |
| `missing_prompts`    | Consultas rastreadas **sin ninguna mención** de la marca.         |
| `content_gaps.items` | Huecos priorizados (intención, competidores, acción recomendada). |
| `competitors`        | Marcas que la IA recomienda en su lugar.                          |

Custumu toma `missing_prompts` y `content_gaps` para proponer “escribe esto” y generar el borrador en la voz de la marca.
