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

# Evidências de monitores: fontes citadas, respostas e exportação de resultados

> Veja quais páginas os mecanismos citam, abra a resposta exata por trás de qualquer número e exporte as respostas pontuadas de um monitor em JSON ou CSV.

Cada número de um [relatório de monitor](/pt/monitors/reports.md) vem de respostas pontuadas que você pode abrir. Esta página
cobre os endpoints de leitura que as mostram: quais fontes são citadas, como as citações evoluem ao longo do tempo, a
resposta por trás de uma pontuação, um prompt em detalhe, respostas por localização e a exportação completa. Eles só leem
resultados armazenados, então não custam nada.

| Endpoint | Responde a |
| - | - |
| [`GET /v1/monitors/{id}/sources`](#quais-fontes-são-citadas) | Quais domínios ou páginas são citados, com todas as linhas alcançáveis pelo cursor. |
| [`GET /v1/monitors/{id}/citations`](#citações-ao-longo-do-tempo) | Totais de citações e séries diárias dos principais domínios e páginas. |
| [`GET /v1/monitors/{id}/answers/{taskId}`](#leia-uma-resposta) | A resposta armazenada por trás de uma pontuação. |
| [`GET /v1/monitors/{id}/prompt`](#um-prompt-em-detalhe) | A série diária, as fontes e as respostas recentes de um prompt. |
| [`GET /v1/monitors/{id}/grid`](#respostas-por-localização) | Respostas por ponto da localização ou da grade de um monitor. |
| [`GET /v1/monitors/{id}/results`](#exporte-as-respostas-pontuadas) | As próprias respostas pontuadas, em JSON ou CSV. |

## Quais fontes são citadas

`GET /v1/monitors/{id}/sources` ([referência](/pt/api-reference/monitors/list-sources.md)) ordena os domínios ou
páginas que os mecanismos citaram, com a mesma janela e os mesmos filtros do relatório. Ele conta **respostas distintas**,
não citações brutas: uma página citada três vezes em uma resposta conta uma vez.

```bash theme={"theme":"css-variables"}
curl "https://api.querying.ai/v1/monitors/$MONITOR_ID/sources?days=30&groupBy=domain&limit=2" \
  -H "Authorization: Bearer $QUERYING_API_KEY"
```

| Parâmetro | Descrição |
| - | - |
| `groupBy` | `domain` (padrão): o host sem `www.`, porta ou credenciais. `page`: a URL completa. |
| `limit` | 1–100, padrão 20. |
| `cursor` | O `nextCursor` da resposta anterior, sem alterações. |
| `days`, `since`, `until`, `engine`, `prompt` | Como no [relatório](/pt/monitors/reports.md#parâmetros-de-consulta). |

Por exemplo:

```json theme={"theme":"css-variables"}
{
  "success": true,
  "data": {
    "results": [
      {
        "key": "reviews.example",
        "domain": "reviews.example",
        "url": null,
        "label": "Best wireless earbuds of 2026",
        "citations": 11,
        "prompts": 2,
        "own": false,
        "evidenceTaskId": "6f1c2a9e-3b4d-4e5f-8a7b-1c2d3e4f5a61"
      },
      {
        "key": "rtings.example",
        "domain": "rtings.example",
        "url": null,
        "label": "Earbuds reviews",
        "citations": 7,
        "prompts": 1,
        "own": false,
        "evidenceTaskId": "6f1c2a9e-3b4d-4e5f-8a7b-1c2d3e4f5a62"
      }
    ],
    "nextCursor": "eyJrZXkiOiJydGluZ3MuZXhhbXBsZSIsImNpdGF0aW9ucyI6N30",
    "groupBy": "domain",
    "window": { "since": "2026-09-19T07:00:00.000Z", "until": "2026-10-19T07:00:00.000Z" },
    "filters": { "engine": null, "prompt": null },
    "counting": "distinct_answers",
    "ownership": "current_monitor_domains"
  }
}
```

| Campo | Significado |
| - | - |
| `citations` | Respostas que citaram este domínio ou página. |
| `prompts` | Prompts distintos cujas respostas o citaram. |
| `own` | Se é um dos `domains` atuais do monitor ou um subdomínio de um deles (`ownership: "current_monitor_domains"`). |
| `url` | A URL da página com `groupBy=page`; `null` para domínios. |
| `label` | O rótulo da citação como o mecanismo o deu, se houver. |
| `evidenceTaskId` | Uma resposta que o citou. Abra com o [endpoint de respostas](#leia-uma-resposta). |

As linhas são ordenadas por `citations` e depois por `key`. `nextCursor` é `null` na última página; não há corte dos N
primeiros, então todo domínio ou página citado na janela pode ser alcançado. Trate o cursor como opaco.

## Citações ao longo do tempo

`GET /v1/monitors/{id}/citations` ([referência](/pt/api-reference/monitors/get-citations.md)) retorna os dados
por trás dos gráficos de citações do painel: totais da janela, uma série diária e os 20 principais domínios e
páginas, cada um com sua própria série diária.

```bash theme={"theme":"css-variables"}
curl "https://api.querying.ai/v1/monitors/$MONITOR_ID/citations?days=30&kind=owned" \
  -H "Authorization: Bearer $QUERYING_API_KEY"
```

| Parâmetro | Descrição |
| - | - |
| `days` | `7`, `30` (padrão) ou `90`. |
| `since`, `until` | Uma janela fixa, como no relatório. Quando definida, `days` só é devolvido como `windowDays`. |
| `engine` | Um mecanismo, ou `all` (padrão). |
| `prompt` | Um prompt, pelo texto exato. |
| `kind` | `all` (padrão), `owned`, `editorial`, `review_media`, `pr_wire`, `institution`, `reviews`, `commerce`, `social`, `blog`, `community`, `video`, `brand`, `content` ou `other`. |
| `q` | Mantém os domínios cujo nome, ou as páginas cuja URL, contém este texto. Até 200 caracteres. |
| `offset` | 0–10.000, para paginar as listas de domínios e páginas de 20 em 20. |

Aqui uma citação é uma página em uma resposta, então `citations` conta páginas citadas, não respostas. `/sources`
conta respostas distintas, por isso os números podem diferir.

| Campo | Conteúdo |
| - | - |
| `totals` | `answers` (respostas pontuadas), `citedAnswers`, `citations` e `ownedCitations` da janela. |
| `days` | Uma entrada por dia UTC com respostas: `day`, `answers`, `citations`, `ownedCitations`. Um dia com respostas e sem citações tem `citations: 0`; um dia sem respostas não aparece. |
| `domains`, `pages` | Até 20 linhas a partir de `offset`: `key`, `domain`, `label`, `kind`, `owned`, `citations`, `answers`, `prompts` e `daily`, uma lista de `{ day, citations }` para os dias com citações. |
| `types` | Por `kind`: `citations` e `domains` distintos. |
| `pagination` | `offset`, `limit` (20), `totalDomains`, `totalPages`. |
| `windowDays`, `engine`, `prompt`, `since`, `until` | O escopo lido. |

`kind` é `owned` para os seus domínios; os outros tipos vêm de uma lista fixa de publicações conhecidas, e qualquer coisa
desconhecida é `other`. A participação de uma fonte é o seu `citations` dividido por `totals.citations`. `kind`, `q` e
`offset` só restringem `domains`, `pages` e `pagination`; `totals`, `days` e `types` sempre cobrem todas as
fontes da janela.

## Leia uma resposta

`GET /v1/monitors/{id}/answers/{taskId}` ([referência](/pt/api-reference/monitors/get-answer.md)) retorna a
resposta armazenada por trás de uma pontuação, com aquilo com que ela foi comparada, para que uma menção possa ser conferida em vez de
aceita na confiança. Os ids de tarefa vêm de `evidenceTaskId`, `mentionTaskId` e `latestTaskId` em um relatório, de
`/sources` e das linhas exportadas.

```bash theme={"theme":"css-variables"}
curl "https://api.querying.ai/v1/monitors/$MONITOR_ID/answers/6f1c2a9e-3b4d-4e5f-8a7b-1c2d3e4f5a61" \
  -H "Authorization: Bearer $QUERYING_API_KEY"
```

Por exemplo:

```json theme={"theme":"css-variables"}
{
  "success": true,
  "data": {
    "answer": {
      "taskId": "6f1c2a9e-3b4d-4e5f-8a7b-1c2d3e4f5a61",
      "engine": "CHATGPT",
      "prompt": "best wireless earbuds for commuting",
      "mentioned": true,
      "cited": true,
      "position": 81,
      "ranAt": "2026-10-17T09:01:48.311Z",
      "answerText": "For commuting, look at the **Northwind Audio Pro** for noise cancelling or the **Acme Audio Air** for battery life.",
      "sources": [
        { "url": "https://reviews.example/best-earbuds", "label": "Best wireless earbuds of 2026", "position": 1 },
        { "url": "https://acme-audio.example/air", "label": "Acme Audio Air", "position": 2 }
      ],
      "competitorHits": ["Northwind Audio"],
      "scoringContext": {
        "aliases": ["Acme Audio", "Acme"],
        "domains": ["acme-audio.example"],
        "competitors": [
          { "name": "Northwind Audio", "aliases": ["Northwind Audio"], "source": "user" },
          { "name": "Contoso Sound", "aliases": ["Contoso Sound", "Contoso"], "source": "user" }
        ],
        "country": "US",
        "version": "3f9a6c1e8b2d4f7a9c0e1b3d5f7a9c1e3b5d7f9a1c3e5b7d9f1a3c5e7b9d1f3a",
        "scoredAt": "2026-10-17T09:01:48.305Z",
        "answerPresent": true,
        "evidenceTruncated": false
      },
      "analysis": null
    },
    "display": {
      "markdown": "For commuting, look at the **Northwind Audio Pro** for noise cancelling or the **Acme Audio Air** for battery life.",
      "text": "For commuting, look at the Northwind Audio Pro for noise cancelling or the Acme Audio Air for battery life."
    },
    "mode": "BRAND",
    "aliases": ["Acme Audio", "Acme"],
    "competitors": [
      { "name": "Northwind Audio", "aliases": ["Northwind Audio"], "source": "user" },
      { "name": "Contoso Sound", "aliases": ["Contoso Sound", "Contoso"], "source": "user" }
    ],
    "scoringKnown": true,
    "evidenceTruncated": false
  }
}
```

| Campo | Significado |
| - | - |
| `answer` | A resposta pontuada, como armazenada. |
| `answer.answerText` | A resposta, em markdown quando o mecanismo a deu assim, cortada em 8.000 caracteres com um `…` no final. `null` quando o mecanismo não retornou texto. |
| `answer.sources` | As páginas citadas na ordem do mecanismo, sem URLs duplicadas, cada uma com seu `label` e sua `position` a partir de 1. |
| `answer.competitorHits` | Os concorrentes citados na resposta. |
| `answer.position` | Offset de caractere da primeira ocorrência da sua marca, ou `null`. |
| `answer.scoringContext` | A definição com que a resposta foi pontuada: `aliases`, `domains`, `competitors`, `country`, seu hash `version`, `scoredAt`, `answerPresent` e `evidenceTruncated`. `null` para respostas pontuadas antes de ela ser armazenada. |
| `answer.analysis` | O resultado da [análise da resposta](/pt/engines/answer-analysis.md) quando o monitor tem `analysis: true`; caso contrário, `null`. |
| `display` | Campos de exibição da resposta original da tarefa, como `markdown`, `text`, `sources`, `searchQueries`, layout, lugares e produtos, conforme o mecanismo. `null` quando a tarefa original não está mais armazenada. |
| `mode` | O modo do monitor. Em um monitor de categoria, `aliases` vem vazio e `competitors` é a lista de marcas acompanhadas. |
| `aliases`, `competitors` | Com o que esta resposta foi comparada: de `scoringContext`, ou os valores atuais do monitor quando ele é `null`. |
| `scoringKnown` | `false` quando a resposta é anterior ao contexto de pontuação armazenado; `aliases` e `competitors` são então os valores atuais do monitor. |
| `evidenceTruncated` | Se `answerText` foi cortado. `null` quando `scoringKnown` é `false`. |

Um id de tarefa que não é uma resposta pontuada deste monitor retorna `404 NOT_FOUND`.

## Um prompt em detalhe

`GET /v1/monitors/{id}/prompt` ([referência](/pt/api-reference/monitors/get-prompt.md)) retorna os dados de um
prompt. `prompt` (texto exato) é obrigatório e funciona para prompts que você já removeu do monitor;
`days` é `7`, `30` (padrão) ou `90`.

```bash theme={"theme":"css-variables"}
curl -G "https://api.querying.ai/v1/monitors/$MONITOR_ID/prompt" \
  --data-urlencode "prompt=best wireless earbuds for commuting" \
  --data-urlencode "days=30" \
  -H "Authorization: Bearer $QUERYING_API_KEY"
```

| Campo | Conteúdo |
| - | - |
| `monitor` | `id`, `name`, `engines` e `aliases`. |
| `prompt`, `windowDays` | O que foi lido. |
| `series` | Por dia UTC e mecanismo: `day`, `engine`, `runs`, `mentioned`, `cited`. |
| `topDomains` | Até 12 domínios citados: `domain`, `citations`, `prompts`, `own`. |
| `topPages` | Até 20 páginas citadas: `url`, `domain`, `label`, `citations`, `prompts`, `own`. |
| `results` | Até 100 respostas pontuadas mais recentes: `taskId`, `engine`, `prompt`, `mentioned`, `cited`, `position`, `ranAt`, `competitorHits`. |

Aqui `citations` conta páginas citadas entre as respostas, não respostas distintas. Para uma lista de fontes completa e paginada
de um prompt, use `/sources?prompt=...`.

## Respostas por localização

`GET /v1/monitors/{id}/grid` ([referência](/pt/api-reference/monitors/get-grid.md)) retorna as respostas de um monitor por
ponto da sua [localização ou grade](/pt/monitors.md#localização-e-grades) atual. `engine` (um dos
mecanismos do monitor) e `prompt`, opcionais, restringem o resultado; `days` é `7`, `30` (padrão) ou `90`.

A resposta tem `location`, `grid`, `engine`, `prompt`, `windowDays` e `points`. Cada ponto tem `row`,
`col`, `location`, `runs`, `mentioned`, `cited`, `topCompetitor` (`{ name, mentions }` ou `null`) e
`latest` (`{ taskId, engine, mentioned, ranAt }` da resposta mais nova, ou `null`). As respostas são associadas aos
pontos pelas coordenadas exatas, então respostas de uma localização ou grade anterior do mesmo monitor ficam
de fora. Um monitor sem localização nem grade não retorna pontos.

## Exporte as respostas pontuadas

`GET /v1/monitors/{id}/results` ([referência](/pt/api-reference/monitors/export-results.md)) retorna as próprias
respostas pontuadas, para carga em um data warehouse, uma planilha ou uma apresentação. Para entregar cada resposta nova em um
armazenamento em nuvem conforme uma agenda, veja [Exportação de resultados](/pt/exports.md).

```bash theme={"theme":"css-variables"}
curl "https://api.querying.ai/v1/monitors/$MONITOR_ID/results?since=2026-10-01T00:00:00Z&until=2026-10-18T00:00:00Z&mentioned=false" \
  -H "Authorization: Bearer $QUERYING_API_KEY"
```

| Parâmetro | Descrição |
| - | - |
| `since`, `until` | Janela semiaberta. Padrão: os 30 dias até agora. Instantes ISO com fuso horário; um `YYYY-MM-DD` sozinho também é aceito aqui e lido como meia-noite UTC. Não há intervalo máximo. |
| `engine`, `prompt` | Como no relatório. |
| `mentioned`, `cited` | `true` ou `false`. `mentioned=false` é a visão de lacuna. |
| `competitor` | Mantém as respostas cujos concorrentes encontrados armazenados incluem este nome exato, de 1 a 80 caracteres. Compara com o nome como foi guardado quando cada resposta foi pontuada e não é conferido com os concorrentes atuais do monitor: um nome que o monitor nunca acompanhou não retorna linhas, e não um erro. |
| `includeEvidence` | `true` acrescenta `answerText`, `sources` e `scoringContext` a cada linha. |
| `limit` | 1–10.000, padrão 10.000. Com `includeEvidence=true`: 1–100, padrão 100. |
| `format` | `json` (padrão) ou `csv`. |
| `cursor` | O `nextCursor` da página anterior. |

A resposta JSON, por exemplo:

```json theme={"theme":"css-variables"}
{
  "success": true,
  "data": {
    "monitor": { "id": "d39b8de0-b159-4229-bf58-7064e5369db1", "name": "Earbud brand tracking" },
    "since": "2026-10-01T00:00:00.000Z",
    "until": "2026-10-18T00:00:00.000Z",
    "filters": { "engine": null, "prompt": null, "mentioned": false, "cited": null, "competitor": null },
    "truncated": false,
    "nextCursor": null,
    "results": [
      {
        "id": "0b6e4a52-7c1d-4f8e-9a3b-2d5c6e7f8a91",
        "taskId": "6f1c2a9e-3b4d-4e5f-8a7b-1c2d3e4f5a63",
        "engine": "CHATGPT",
        "prompt": "are cheap earbuds worth it",
        "mentioned": false,
        "cited": false,
        "position": null,
        "ranAt": "2026-10-17T09:02:57.204118Z",
        "competitorHits": ["Northwind Audio"]
      }
    ]
  }
}
```

As linhas vêm da mais nova para a mais antiga. A paginação é um keyset sobre `ranAt` (precisão de microssegundos) e o `id` da linha, então linhas
com o mesmo timestamp nunca são puladas nem repetidas. Para uma extração repetível, envie `since` e `until`
explícitos, mantenha-os fixos e siga `nextCursor` até ele ser `null`. Mudar a janela
entre páginas pode pular ou repetir linhas. Trate o cursor como opaco.

### CSV

Com `format=csv`, a resposta é `text/csv`, UTF-8 com BOM para que os aplicativos de planilha a abram
corretamente. Um corpo CSV não carrega a paginação, então ela vai para os cabeçalhos:

| Cabeçalho | Significado |
| - | - |
| `x-next-cursor` | O cursor da próxima página; vazio na última página. |
| `x-result-truncated` | `true` quando mais linhas corresponderam do que esta página retornou. |
| `x-result-since`, `x-result-until` | A janela resolvida, para que uma exportação retomada possa fixá-la. |

As colunas são `ran_at, monitor, engine, prompt, mentioned, cited, position, competitors, task_id`, mais
`answer_text, sources, scoring_context` com `includeEvidence=true`. `competitors` junta os nomes com
`|`; `sources` e `scoring_context` trazem texto JSON. Uma célula que começa com `=`, `+`, `-`, `@`, tabulação
ou retorno de carro recebe o prefixo `'`, para que o texto do mecanismo não vire fórmula de planilha.

```bash theme={"theme":"css-variables"}
curl -D headers.txt -o page1.csv \
  "https://api.querying.ai/v1/monitors/$MONITOR_ID/results?since=2026-10-01T00:00:00Z&until=2026-10-18T00:00:00Z&format=csv&includeEvidence=true" \
  -H "Authorization: Bearer $QUERYING_API_KEY"
```

## Erros e limites

| Limite | Valor |
| - | - |
| Janela do relatório e das fontes | 90 dias |
| Página de `/sources` | 1–100 linhas, padrão 20 |
| Listas de `/citations` | 20 linhas por página; `offset` até 10.000 |
| Página de `/results` | 10.000 linhas; 100 com `includeEvidence=true` |
| Texto armazenado da resposta | 8.000 caracteres |
| `/prompt` | 12 domínios, 20 páginas, 100 respostas |

Parâmetros inválidos retornam `400 VALIDATION_ERROR` indicando o problema, inclusive um cursor que não foi
retornado pela página anterior. Um monitor de outra conta, ou um id de tarefa desconhecido, retorna
`404 NOT_FOUND`. Veja [Monitores](/pt/monitors.md#erros) para os códigos compartilhados.

## Próximos passos

> **[Eventos e alertas](/pt/monitors/events-and-alerts.md)**
>
> Receba um webhook quando as respostas a um prompt mudarem.

> **[Exportação de resultados](/pt/exports.md)**
>
> Entregue as respostas pontuadas no seu próprio armazenamento conforme uma agenda.


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