# Referência

Cada operação da API do Lockpick, com a sua permissão, entradas e resposta, gerada a partir da própria API. Versão 1, em beta.

{/* Generated by scripts/docs-generate.mts. Do not edit; run `pnpm docs:generate`. */}

Versão 1, em beta. Todo caminho começa com `/api/cli/v1`, toda requisição carrega uma chave como token bearer, e toda resposta é `{ data, error }`. A descrição completa também está em [OpenAPI 3.1](/openapi.json).

## API do agente

As operações do servidor por trás das ferramentas MCP hospedadas. Novas integrações devem usar estas. `lockpick_wait_for_scan` consulta `GET /agent/scans/{scanId}`; `lockpick_evaluate_scan` lê esse mesmo scan e aplica a política de avaliação no cliente. Estas duas ferramentas compostas não têm endpoint HTTP próprio. Scripts podem consultar a situação do scan e avaliar o horário de conclusão, a cobertura e a contagem de achados abertos conforme a sua política.

### GET /agent/me

A pessoa, o workspace, os escopos e a validade desta credencial, e o que ela pode iniciar.

* Permissão: `read`
* Ferramenta MCP: [`lockpick_whoami`](/pt-BR/docs/mcp/tools#lockpick_whoami)

**data**

| Campo          | Tipo   | Sempre presente |
| -------------- | ------ | --------------- |
| `user`         | object | Sim             |
| `workspace`    | object | Sim             |
| `credential`   | object | Sim             |
| `capabilities` | object | Sim             |

### GET /agent/allowance

Scans gratuitos restantes neste mês, as datas de renovação e os créditos.

* Permissão: `read`
* Ferramenta MCP: [`lockpick_get_allowance`](/pt-BR/docs/mcp/tools#lockpick_get_allowance)

**data**

| Campo               | Tipo                                                                             | Sempre presente |
| ------------------- | -------------------------------------------------------------------------------- | --------------- |
| `accessSource`      | `community`, `stripe` (legacy billing value), `pilot` (legacy, internal), `none` | Sim             |
| `accountingMode`    | `pilot` (legacy, internal), `credits` (legacy, internal), `unmetered`            | Sim             |
| `pulse`             | object                                                                           | Sim             |
| `deep`              | object                                                                           | Sim             |
| `creditBalance`     | integer or null                                                                  | Sim             |
| `freeSiteId`        | string or null                                                                   | Sim             |
| `freeSiteVisible`   | boolean                                                                          | Sim             |
| `canSwitchFreeSite` | boolean                                                                          | Sim             |

### GET /agent/monitor

Navega pela inteligência de segurança atual e explica as correspondências dos sites autorizados.

* Permissão: `read`
* Ferramenta MCP: [`lockpick_monitor`](/pt-BR/docs/mcp/tools#lockpick_monitor)

**Consulta**

| Campo        | Tipo                                                  | Obrigatório |
| ------------ | ----------------------------------------------------- | ----------- |
| `view`       | `latest`, `sites`, `exploited`, `following`           | Não         |
| `kind`       | `all`, `vulnerability`, `malicious_package`           | Não         |
| `q`          | string                                                | Não         |
| `ecosystem`  | `all`, `npm`, `pypi`, `composer`, `wordpress`         | Não         |
| `severity`   | `all`, `critical`, `high`, `medium`, `low`, `unknown` | Não         |
| `days`       | number                                                | Não         |
| `cursor`     | string                                                | Não         |
| `limit`      | integer                                               | Não         |
| `siteId`     | string                                                | Não         |
| `advisoryId` | string                                                | Não         |

**data**

| Campo         | Tipo           | Sempre presente |
| ------------- | -------------- | --------------- |
| `items`       | list of object | Sim             |
| `nextCursor`  | string or null | Sim             |
| `limitations` | list of string | Sim             |

**Cada item**

| Campo         | Tipo                                           | Sempre presente |
| ------------- | ---------------------------------------------- | --------------- |
| `id`          | string                                         | Sim             |
| `title`       | string                                         | Sim             |
| `source`      | string                                         | Sim             |
| `kind`        | `vulnerability`, `malicious_package`           | Sim             |
| `severity`    | `critical`, `high`, `medium`, `low`, `unknown` | Sim             |
| `provenance`  | list of object                                 | Sim             |
| `withdrawnAt` | string or null                                 | Não             |
| `publishedAt` | string                                         | Sim             |
| `exploited`   | boolean                                        | Sim             |
| `ids`         | list of string                                 | Sim             |
| `tech`        | list of object                                 | Sim             |
| `epss`        | object or null                                 | Não             |
| `cvss`        | object or null                                 | Não             |
| `attribution` | string or null                                 | Sim             |
| `references`  | list of string                                 | Sim             |
| `packages`    | list of object                                 | Sim             |
| `sites`       | list of object                                 | Sim             |

### GET /agent/sites

Uma página de sites com os seus scans mais recentes.

* Permissão: `read`
* Ferramenta MCP: [`lockpick_list_sites`](/pt-BR/docs/mcp/tools#lockpick_list_sites)

**Consulta**

| Campo    | Tipo    | Obrigatório |
| -------- | ------- | ----------- |
| `limit`  | integer | Não         |
| `cursor` | string  | Não         |

**data**

| Campo        | Tipo           | Sempre presente |
| ------------ | -------------- | --------------- |
| `items`      | list of object | Sim             |
| `nextCursor` | string or null | Sim             |

**Cada item**

| Campo         | Tipo           | Sempre presente |
| ------------- | -------------- | --------------- |
| `id`          | string         | Sim             |
| `name`        | string         | Sim             |
| `status`      | string         | Sim             |
| `baseDomain`  | string or null | Sim             |
| `latestPulse` | object or null | Sim             |
| `latestDeep`  | object or null | Sim             |
| `latestBox`   | object or null | Sim             |
| `webPath`     | string         | Sim             |
| `webUrl`      | string         | Sim             |

### POST /agent/sites

Adicione um site, ou devolva o que já tem este endereço.

* Permissão: `sites`
* Ferramenta MCP: [`lockpick_add_site`](/pt-BR/docs/mcp/tools#lockpick_add_site)

**Corpo**

| Campo            | Tipo   | Obrigatório |
| ---------------- | ------ | ----------- |
| `url`            | string | Sim         |
| `name`           | string | Não         |
| `idempotencyKey` | string | Sim         |

**data**

| Campo     | Tipo    | Sempre presente |
| --------- | ------- | --------------- |
| `site`    | object  | Sim             |
| `created` | boolean | Sim             |

### GET /agent/sites/\{siteId}/status

A situação de um site: os seus scans mais recentes e o que fazer em seguida.

* Permissão: `read`
* Ferramenta MCP: [`lockpick_site_status`](/pt-BR/docs/mcp/tools#lockpick_site_status)

**data**

| Campo            | Tipo           | Sempre presente |
| ---------------- | -------------- | --------------- |
| `site`           | object         | Sim             |
| `latestPulse`    | object or null | Sim             |
| `latestDeep`     | object or null | Sim             |
| `latestBox`      | object or null | Sim             |
| `lastComparison` | object or null | Sim             |
| `caveats`        | list of string | Sim             |
| `relevant`       | list of object | Não             |
| `relevantTotal`  | integer        | Não             |

### POST /agent/sites/\{siteId}/dependencies

Envia os nomes e as versões exatas que um site fixa nos pacotes, nunca código, e informa quais avisos os afetam.

* Permissão: `sites`
* Ferramenta MCP: [`lockpick_send_dependencies`](/pt-BR/docs/mcp/tools#lockpick_send_dependencies)

**Corpo**

| Campo            | Tipo                                                                                                                 | Obrigatório |
| ---------------- | -------------------------------------------------------------------------------------------------------------------- | ----------- |
| `inventory`      | object                                                                                                               | Não         |
| `packages`       | list of object                                                                                                       | Sim         |
| `sources`        | list of `package-lock.json`, `npm-shrinkwrap.json`, `pnpm-lock.yaml`, `yarn.lock`, `requirements.txt`, `poetry.lock` | Sim         |
| `idempotencyKey` | string                                                                                                               | Sim         |

**data**

| Campo             | Tipo                                                                                                                 | Sempre presente |
| ----------------- | -------------------------------------------------------------------------------------------------------------------- | --------------- |
| `siteId`          | string                                                                                                               | Sim             |
| `receivedAt`      | string or null                                                                                                       | Sim             |
| `sources`         | list of `package-lock.json`, `npm-shrinkwrap.json`, `pnpm-lock.yaml`, `yarn.lock`, `requirements.txt`, `poetry.lock` | Sim             |
| `packageCount`    | integer                                                                                                              | Sim             |
| `affectsYouCount` | integer                                                                                                              | Sim             |
| `affectsYou`      | list of object                                                                                                       | Sim             |
| `webUrl`          | string                                                                                                               | Sim             |

### POST /agent/sites/\{siteId}/pulse

Inicia um Pulse em um site.

* Permissão: `pulse`
* Ferramenta MCP: [`lockpick_start_pulse`](/pt-BR/docs/mcp/tools#lockpick_start_pulse)

**Corpo**

| Campo            | Tipo   | Obrigatório |
| ---------------- | ------ | ----------- |
| `idempotencyKey` | string | Sim         |
| `baselineScanId` | string | Não         |

**data**

| Campo       | Tipo    | Sempre presente |
| ----------- | ------- | --------------- |
| `scan`      | object  | Sim             |
| `charged`   | object  | Sim             |
| `allowance` | object  | Sim             |
| `replayed`  | boolean | Sim             |

### POST /agent/sites/\{siteId}/deep-verifications

Emite uma prova de propriedade por DNS ou arquivo antes de um scan Deep.

* Permissão: `deep`
* Ferramenta MCP: [`lockpick_start_deep_verification`](/pt-BR/docs/mcp/tools#lockpick_start_deep_verification)

**Corpo**

| Campo            | Tipo                  | Obrigatório |
| ---------------- | --------------------- | ----------- |
| `method`         | `dns`, `file`, `meta` | Sim         |
| `idempotencyKey` | string                | Sim         |

**data**

| Campo               | Tipo                                                     | Sempre presente |
| ------------------- | -------------------------------------------------------- | --------------- |
| `verificationId`    | string                                                   | Sim             |
| `siteId`            | string                                                   | Sim             |
| `origin`            | string                                                   | Sim             |
| `method`            | `dns`, `file`, `meta`                                    | Sim             |
| `state`             | `pending`, `verified`, `expired`, `exhausted`, `revoked` | Sim             |
| `expiresAt`         | string                                                   | Sim             |
| `verifiedUntil`     | string or null                                           | Sim             |
| `attemptsRemaining` | integer                                                  | Sim             |
| `retryAfterSeconds` | integer or null                                          | Sim             |
| `value`             | string                                                   | Sim             |
| `location`          | string                                                   | Sim             |

### POST /agent/sites/\{siteId}/deep-verifications/\{verificationId}/verify

Verifica uma prova de propriedade publicada. Cada verificação usa uma das tentativas.

* Permissão: `deep`
* Ferramenta MCP: [`lockpick_check_deep_verification`](/pt-BR/docs/mcp/tools#lockpick_check_deep_verification)

**data**

| Campo               | Tipo                                                     | Sempre presente |
| ------------------- | -------------------------------------------------------- | --------------- |
| `verificationId`    | string                                                   | Sim             |
| `siteId`            | string                                                   | Sim             |
| `origin`            | string                                                   | Sim             |
| `method`            | `dns`, `file`, `meta`                                    | Sim             |
| `state`             | `pending`, `verified`, `expired`, `exhausted`, `revoked` | Sim             |
| `expiresAt`         | string                                                   | Sim             |
| `verifiedUntil`     | string or null                                           | Sim             |
| `attemptsRemaining` | integer                                                  | Sim             |
| `retryAfterSeconds` | integer or null                                          | Sim             |

### POST /agent/sites/\{siteId}/deep-operations

Prepara um scan Deep e obtém o link em que a pessoa o aprova.

* Permissão: `deep`
* Ferramenta MCP: [`lockpick_prepare_deep`](/pt-BR/docs/mcp/tools#lockpick_prepare_deep)

**Corpo**

| Campo            | Tipo   | Obrigatório |
| ---------------- | ------ | ----------- |
| `verificationId` | string | Sim         |
| `idempotencyKey` | string | Sim         |

**data**

| Campo             | Tipo                                       | Sempre presente |
| ----------------- | ------------------------------------------ | --------------- |
| `operationId`     | string                                     | Sim             |
| `siteId`          | string                                     | Sim             |
| `origin`          | string                                     | Sim             |
| `assessmentLevel` | string                                     | Sim             |
| `verificationId`  | string                                     | Sim             |
| `cost`            | object                                     | Sim             |
| `allowance`       | object                                     | Sim             |
| `approvalState`   | `pending`, `approved`, `expired`, `denied` | Sim             |
| `approvalUrl`     | string                                     | Sim             |
| `expiresAt`       | string                                     | Sim             |

### POST /agent/deep-operations/\{operationId}/start

Inicia um scan Deep que a pessoa aprovou.

* Permissão: `deep`
* Ferramenta MCP: [`lockpick_start_deep`](/pt-BR/docs/mcp/tools#lockpick_start_deep)

**data**

| Campo       | Tipo    | Sempre presente |
| ----------- | ------- | --------------- |
| `scan`      | object  | Sim             |
| `charged`   | object  | Sim             |
| `allowance` | object  | Sim             |
| `replayed`  | boolean | Sim             |

### POST /agent/free-site-switch

Remove um site para que o Pulse gratuito deste mês possa passar para outro.

* Permissão: `sites` and `pulse`
* Ferramenta MCP: [`lockpick_switch_free_site`](/pt-BR/docs/mcp/tools#lockpick_switch_free_site)

**Corpo**

| Campo            | Tipo    | Obrigatório |
| ---------------- | ------- | ----------- |
| `removeSiteId`   | string  | Sim         |
| `checkId`        | string  | Não         |
| `idempotencyKey` | string  | Sim         |
| `confirmRemoval` | boolean | Sim         |

**data**

| Campo               | Tipo           | Sempre presente |
| ------------------- | -------------- | --------------- |
| `removedSiteId`     | string         | Sim             |
| `removedSiteHost`   | string         | Sim             |
| `replacementSiteId` | string or null | Sim             |
| `allowance`         | object         | Sim             |
| `restoreUrl`        | string         | Sim             |
| `startedScanId`     | string or null | Sim             |
| `charged`           | object         | Sim             |
| `replayed`          | boolean        | Sim             |

### GET /agent/scans

Uma página de scans, do mais recente para o mais antigo, com filtros.

* Permissão: `read`
* Ferramenta MCP: [`lockpick_list_scans`](/pt-BR/docs/mcp/tools#lockpick_list_scans)

**Consulta**

| Campo             | Tipo                                                                                | Obrigatório |
| ----------------- | ----------------------------------------------------------------------------------- | ----------- |
| `siteId`          | string                                                                              | Não         |
| `kind`            | `pulse`, `box` (Deep, legacy name)                                                  | Não         |
| `assessmentLevel` | `pulse`, `standard`, `deep`                                                         | Não         |
| `status`          | `queued`, `running`, `cancelling`, `succeeded`, `incomplete`, `failed`, `cancelled` | Não         |
| `limit`           | integer                                                                             | Não         |
| `cursor`          | string                                                                              | Não         |

**data**

| Campo        | Tipo           | Sempre presente |
| ------------ | -------------- | --------------- |
| `items`      | list of object | Sim             |
| `nextCursor` | string or null | Sim             |

**Cada item**

| Campo                       | Tipo                                                                                | Sempre presente |
| --------------------------- | ----------------------------------------------------------------------------------- | --------------- |
| `id`                        | string                                                                              | Sim             |
| `kind`                      | `pulse`, `box` (Deep, legacy name)                                                  | Sim             |
| `projectId`                 | string                                                                              | Sim             |
| `target`                    | string                                                                              | Sim             |
| `status`                    | `queued`, `running`, `cancelling`, `succeeded`, `incomplete`, `failed`, `cancelled` | Sim             |
| `mode`                      | `autonomous`, `authenticated`, `active` or null                                     | Sim             |
| `createdAt`                 | string or null                                                                      | Sim             |
| `finishedAt`                | string or null                                                                      | Sim             |
| `webPath`                   | string                                                                              | Sim             |
| `assessmentLevel`           | `pulse`, `standard`, `deep` or null                                                 | Sim             |
| `headline`                  | object                                                                              | Sim             |
| `webUrl`                    | string                                                                              | Sim             |
| `suggestedPollAfterSeconds` | integer or null                                                                     | Sim             |

### GET /agent/scans/\{scanId}

Um scan com a sua situação e o seu resumo.

* Permissão: `read`
* Ferramenta MCP: [`lockpick_get_scan`](/pt-BR/docs/mcp/tools#lockpick_get_scan)

**data**

| Campo                       | Tipo                                                                                | Sempre presente |
| --------------------------- | ----------------------------------------------------------------------------------- | --------------- |
| `id`                        | string                                                                              | Sim             |
| `kind`                      | `pulse`, `box` (Deep, legacy name)                                                  | Sim             |
| `projectId`                 | string                                                                              | Sim             |
| `target`                    | string                                                                              | Sim             |
| `status`                    | `queued`, `running`, `cancelling`, `succeeded`, `incomplete`, `failed`, `cancelled` | Sim             |
| `mode`                      | `autonomous`, `authenticated`, `active` or null                                     | Sim             |
| `createdAt`                 | string or null                                                                      | Sim             |
| `finishedAt`                | string or null                                                                      | Sim             |
| `webPath`                   | string                                                                              | Sim             |
| `assessmentLevel`           | `pulse`, `standard`, `deep` or null                                                 | Sim             |
| `headline`                  | object                                                                              | Sim             |
| `webUrl`                    | string                                                                              | Sim             |
| `suggestedPollAfterSeconds` | integer or null                                                                     | Sim             |
| `baselineRunId`             | string or null                                                                      | Sim             |
| `open`                      | object                                                                              | Sim             |
| `findingCount`              | integer                                                                             | Sim             |
| `progress`                  | object or null                                                                      | Sim             |
| `coverage`                  | object                                                                              | Sim             |
| `caveats`                   | list of string                                                                      | Sim             |
| `outcome`                   | object or null                                                                      | Sim             |
| `exposureCheck`             | object                                                                              | Não             |

### GET /agent/scans/\{scanId}/findings

Uma página de achados de um scan.

* Permissão: `read`
* Ferramenta MCP: [`lockpick_list_findings`](/pt-BR/docs/mcp/tools#lockpick_list_findings)
* Envie `x-lockpick-agent-features: finding-code` para receber o `code` de cada achado (`LP-` e seis caracteres, como o relatório web o mostra). Sem o cabeçalho, a resposta não traz `code`, o formato que clientes mais antigos esperam.

**Consulta**

| Campo      | Tipo                                          | Obrigatório |
| ---------- | --------------------------------------------- | ----------- |
| `state`    | `attention`, `information`, `unknown`, `pass` | Não         |
| `severity` | `critical`, `high`, `medium`, `low`, `info`   | Não         |
| `all`      | boolean or `true`, `false`                    | Não         |
| `limit`    | integer                                       | Não         |
| `cursor`   | string                                        | Não         |

**data**

| Campo        | Tipo           | Sempre presente |
| ------------ | -------------- | --------------- |
| `items`      | list of object | Sim             |
| `nextCursor` | string or null | Sim             |

**Cada item**

| Campo               | Tipo                                                  | Sempre presente |
| ------------------- | ----------------------------------------------------- | --------------- |
| `id`                | string                                                | Sim             |
| `code`              | string                                                | Não             |
| `runId`             | string                                                | Sim             |
| `kind`              | `pulse`, `box` (Deep, legacy name)                    | Sim             |
| `severity`          | `critical`, `high`, `medium`, `low`, `info`           | Sim             |
| `state`             | `attention`, `information`, `unknown`, `pass`         | Sim             |
| `category`          | string                                                | Sim             |
| `title`             | string                                                | Sim             |
| `meaning`           | string                                                | Sim             |
| `fix`               | string or null                                        | Sim             |
| `confidence`        | string                                                | Sim             |
| `evidence`          | list of string                                        | Sim             |
| `sources`           | list of string                                        | Sim             |
| `steps`             | list of string                                        | Sim             |
| `webPath`           | string                                                | Sim             |
| `webUrl`            | string                                                | Sim             |
| `evidenceTrust`     | string                                                | Sim             |
| `evidenceTruncated` | boolean                                               | Sim             |
| `verdict`           | `confirmed`, `needs_review`, `not_actionable` or null | Não             |
| `certainty`         | `high`, `medium`, `low` or null                       | Não             |
| `exploitability`    | `direct`, `conditional`, `hygiene`, `none` or null    | Não             |
| `proof`             | object or null                                        | Não             |
| `proofGap`          | string or null                                        | Não             |
| `urgency`           | `now`, `week`, `later`, `none`                        | Não             |
| `howSure`           | `confirmed`, `likely`, `possible` or null             | Não             |

### GET /agent/scans/\{scanId}/findings/\{findingId}

Um achado com as suas provas redigidas.

* Permissão: `read`
* Ferramenta MCP: [`lockpick_get_finding`](/pt-BR/docs/mcp/tools#lockpick_get_finding)
* Envie `x-lockpick-agent-features: finding-code` para receber o `code` de cada achado (`LP-` e seis caracteres, como o relatório web o mostra). Sem o cabeçalho, a resposta não traz `code`, o formato que clientes mais antigos esperam.

**data**

| Campo               | Tipo                                                  | Sempre presente |
| ------------------- | ----------------------------------------------------- | --------------- |
| `id`                | string                                                | Sim             |
| `code`              | string                                                | Não             |
| `runId`             | string                                                | Sim             |
| `kind`              | `pulse`, `box` (Deep, legacy name)                    | Sim             |
| `severity`          | `critical`, `high`, `medium`, `low`, `info`           | Sim             |
| `state`             | `attention`, `information`, `unknown`, `pass`         | Sim             |
| `category`          | string                                                | Sim             |
| `title`             | string                                                | Sim             |
| `meaning`           | string                                                | Sim             |
| `fix`               | string or null                                        | Sim             |
| `confidence`        | string                                                | Sim             |
| `evidence`          | list of string                                        | Sim             |
| `sources`           | list of string                                        | Sim             |
| `steps`             | list of string                                        | Sim             |
| `webPath`           | string                                                | Sim             |
| `webUrl`            | string                                                | Sim             |
| `evidenceTrust`     | string                                                | Sim             |
| `evidenceTruncated` | boolean                                               | Sim             |
| `verdict`           | `confirmed`, `needs_review`, `not_actionable` or null | Não             |
| `certainty`         | `high`, `medium`, `low` or null                       | Não             |
| `exploitability`    | `direct`, `conditional`, `hygiene`, `none` or null    | Não             |
| `proof`             | object or null                                        | Não             |
| `proofGap`          | string or null                                        | Não             |
| `urgency`           | `now`, `week`, `later`, `none`                        | Não             |
| `howSure`           | `confirmed`, `likely`, `possible` or null             | Não             |

### GET /agent/scans/\{scanId}/repair-brief

Uma parte das instruções de correção de um scan.

* Permissão: `read`
* Ferramenta MCP: [`lockpick_get_repair_brief`](/pt-BR/docs/mcp/tools#lockpick_get_repair_brief)

**Consulta**

| Campo       | Tipo                                                                                      | Obrigatório |
| ----------- | ----------------------------------------------------------------------------------------- | ----------- |
| `findingId` | string                                                                                    | Não         |
| `agent`     | `claude-code`, `codex`, `cursor`, `vscode`, `opencode`, `lovable`, `bolt`, `replit`, `v0` | Não         |
| `cursor`    | string                                                                                    | Não         |

**data**

| Campo        | Tipo           | Sempre presente |
| ------------ | -------------- | --------------- |
| `scanId`     | string         | Sim             |
| `findingIds` | list of string | Sim             |
| `saved`      | boolean        | Sim             |
| `markdown`   | string         | Sim             |
| `nextCursor` | string or null | Sim             |
| `complete`   | boolean        | Sim             |
| `webUrl`     | string         | Sim             |

### GET /agent/scans/\{scanId}/comparison

O que mudou entre um scan e o que ele verifica de novo.

* Permissão: `read`
* Ferramenta MCP: [`lockpick_compare_scans`](/pt-BR/docs/mcp/tools#lockpick_compare_scans)
* Envie `x-lockpick-agent-features: finding-code` para receber o `code` de cada achado (`LP-` e seis caracteres, como o relatório web o mostra). Sem o cabeçalho, a resposta não traz `code`, o formato que clientes mais antigos esperam.

**data**

| Campo           | Tipo           | Sempre presente |
| --------------- | -------------- | --------------- |
| `runId`         | string         | Sim             |
| `baselineRunId` | string         | Sim             |
| `error`         | string or null | Sim             |
| `changes`       | list of object | Sim             |
| `webUrl`        | string         | Sim             |

### POST /agent/scans/\{scanId}/dns-rechecks

Faz de novo a verificação gratuita de DNS de um scan. Não envia nada ao site.

* Permissão: `pulse`
* Ferramenta MCP: [`lockpick_recheck_dns`](/pt-BR/docs/mcp/tools#lockpick_recheck_dns)

**Corpo**

| Campo            | Tipo   | Obrigatório |
| ---------------- | ------ | ----------- |
| `findingId`      | string | Sim         |
| `idempotencyKey` | string | Sim         |

**data**

| Campo                    | Tipo           | Sempre presente |
| ------------------------ | -------------- | --------------- |
| `scanId`                 | string         | Sim             |
| `findingIds`             | list of string | Sim             |
| `pending`                | object or null | Sim             |
| `checkedAt`              | string or null | Sim             |
| `outcomes`               | list of object | Sim             |
| `nextAllowedAt`          | string or null | Sim             |
| `failedAt`               | string or null | Sim             |
| `originalGradeUnchanged` | boolean        | Sim             |

### GET /agent/scans/\{scanId}/dns-rechecks/latest

A última verificação de DNS de novo de um scan.

* Permissão: `read`
* Ferramenta MCP: [`lockpick_get_dns_recheck`](/pt-BR/docs/mcp/tools#lockpick_get_dns_recheck)

**data**

| Campo                    | Tipo           | Sempre presente |
| ------------------------ | -------------- | --------------- |
| `scanId`                 | string         | Sim             |
| `findingIds`             | list of string | Sim             |
| `pending`                | object or null | Sim             |
| `checkedAt`              | string or null | Sim             |
| `outcomes`               | list of object | Sim             |
| `nextAllowedAt`          | string or null | Sim             |
| `failedAt`               | string or null | Sim             |
| `originalGradeUnchanged` | boolean        | Sim             |

### POST /agent/quick-checks

Inicia uma verificação rápida gratuita de uma página inicial.

* Permissão: `pulse`
* Ferramenta MCP: [`lockpick_quick_check`](/pt-BR/docs/mcp/tools#lockpick_quick_check)

**Corpo**

| Campo            | Tipo   | Obrigatório |
| ---------------- | ------ | ----------- |
| `url`            | string | Sim         |
| `idempotencyKey` | string | Sim         |

**data**

| Campo                       | Tipo                                       | Sempre presente |
| --------------------------- | ------------------------------------------ | --------------- |
| `checkId`                   | string                                     | Sim             |
| `status`                    | `queued`, `running`, `succeeded`, `failed` | Sim             |
| `reused`                    | boolean                                    | Sim             |
| `headline`                  | object                                     | Sim             |
| `summary`                   | string or null                             | Sim             |
| `checks`                    | list of object                             | Sim             |
| `webUrl`                    | string                                     | Sim             |
| `suggestedPollAfterSeconds` | integer or null                            | Sim             |

### POST /agent/repository-checks

Verifique um repositório público do GitHub (uma skill, plugin, servidor MCP ou app) antes de instalá-lo.

* Permissão: `pulse`
* Ferramenta MCP: [`lockpick_check_repository`](/pt-BR/docs/mcp/tools#lockpick_check_repository)

**Corpo**

| Campo            | Tipo           | Obrigatório |
| ---------------- | -------------- | ----------- |
| `url`            | string         | Sim         |
| `mode`           | `skill`, `app` | Não         |
| `depth`          | `free`, `deep` | Não         |
| `idempotencyKey` | string         | Sim         |

**data**

| Campo                       | Tipo                                                                                                                 | Sempre presente |
| --------------------------- | -------------------------------------------------------------------------------------------------------------------- | --------------- |
| `checkId`                   | string                                                                                                               | Sim             |
| `status`                    | `queued`, `running`, `succeeded`, `failed`                                                                           | Sim             |
| `reused`                    | boolean                                                                                                              | Sim             |
| `repository`                | object                                                                                                               | Sim             |
| `mode`                      | `skill`, `app` or null                                                                                               | Sim             |
| `kind`                      | string or null                                                                                                       | Sim             |
| `verdict`                   | `safe`, `caution`, `do_not_install` or null                                                                          | Sim             |
| `appRisk`                   | `low`, `elevated`, `high` or null                                                                                    | Sim             |
| `score`                     | integer or null                                                                                                      | Sim             |
| `summary`                   | string or null                                                                                                       | Sim             |
| `plainSummary`              | string or null                                                                                                       | Sim             |
| `findings`                  | list of object                                                                                                       | Sim             |
| `moreFindings`              | integer                                                                                                              | Sim             |
| `coverage`                  | object or null                                                                                                       | Sim             |
| `failure`                   | `not-found`, `ref-not-found`, `empty`, `too-large`, `rate-limited`, `unavailable`, `timeout`, `engine-error` or null | Sim             |
| `webUrl`                    | string                                                                                                               | Sim             |
| `suggestedPollAfterSeconds` | integer or null                                                                                                      | Sim             |

### GET /agent/repository-checks/\{checkId}

Uma verificação de repositório e os seus achados.

* Permissão: `read`
* Ferramenta MCP: [`lockpick_get_repository_check`](/pt-BR/docs/mcp/tools#lockpick_get_repository_check)

**data**

| Campo                       | Tipo                                                                                                                 | Sempre presente |
| --------------------------- | -------------------------------------------------------------------------------------------------------------------- | --------------- |
| `checkId`                   | string                                                                                                               | Sim             |
| `status`                    | `queued`, `running`, `succeeded`, `failed`                                                                           | Sim             |
| `reused`                    | boolean                                                                                                              | Sim             |
| `repository`                | object                                                                                                               | Sim             |
| `mode`                      | `skill`, `app` or null                                                                                               | Sim             |
| `kind`                      | string or null                                                                                                       | Sim             |
| `verdict`                   | `safe`, `caution`, `do_not_install` or null                                                                          | Sim             |
| `appRisk`                   | `low`, `elevated`, `high` or null                                                                                    | Sim             |
| `score`                     | integer or null                                                                                                      | Sim             |
| `summary`                   | string or null                                                                                                       | Sim             |
| `plainSummary`              | string or null                                                                                                       | Sim             |
| `findings`                  | list of object                                                                                                       | Sim             |
| `moreFindings`              | integer                                                                                                              | Sim             |
| `coverage`                  | object or null                                                                                                       | Sim             |
| `failure`                   | `not-found`, `ref-not-found`, `empty`, `too-large`, `rate-limited`, `unavailable`, `timeout`, `engine-error` or null | Sim             |
| `webUrl`                    | string                                                                                                               | Sim             |
| `suggestedPollAfterSeconds` | integer or null                                                                                                      | Sim             |

### GET /agent/quick-checks/\{checkId}

Uma verificação rápida e o seu resultado.

* Permissão: `read`
* Ferramenta MCP: [`lockpick_get_quick_check`](/pt-BR/docs/mcp/tools#lockpick_get_quick_check)

**data**

| Campo                       | Tipo                                       | Sempre presente |
| --------------------------- | ------------------------------------------ | --------------- |
| `checkId`                   | string                                     | Sim             |
| `status`                    | `queued`, `running`, `succeeded`, `failed` | Sim             |
| `reused`                    | boolean                                    | Sim             |
| `headline`                  | object                                     | Sim             |
| `summary`                   | string or null                             | Sim             |
| `checks`                    | list of object                             | Sim             |
| `webUrl`                    | string                                     | Sim             |
| `suggestedPollAfterSeconds` | integer or null                            | Sim             |

### GET /agent/docs/search

Pesquisa a documentação pública do Lockpick.

* Permissão: `read`
* Ferramenta MCP: [`lockpick_search_docs`](/pt-BR/docs/mcp/tools#lockpick_search_docs)

**Consulta**

| Campo   | Tipo    | Obrigatório |
| ------- | ------- | ----------- |
| `query` | string  | Sim         |
| `limit` | integer | Não         |

**data**

| Campo     | Tipo           | Sempre presente |
| --------- | -------------- | --------------- |
| `query`   | string         | Sim             |
| `results` | list of object | Sim             |

### GET /agent/docs/page

Uma página pública da documentação em Markdown, em partes quando é longa.

* Permissão: `read`
* Ferramenta MCP: [`lockpick_read_doc`](/pt-BR/docs/mcp/tools#lockpick_read_doc)

**Consulta**

| Campo    | Tipo   | Obrigatório |
| -------- | ------ | ----------- |
| `path`   | string | Não         |
| `cursor` | string | Não         |

**data**

| Campo         | Tipo           | Sempre presente |
| ------------- | -------------- | --------------- |
| `path`        | string         | Sim             |
| `title`       | string         | Sim             |
| `description` | string or null | Sim             |
| `url`         | string         | Sim             |
| `markdownUrl` | string         | Sim             |
| `markdown`    | string         | Sim             |
| `nextCursor`  | string or null | Sim             |
| `complete`    | boolean        | Sim             |

## Login por dispositivo

Como `lockpick login` obtém uma chave: pede um código, a pessoa o aprova no navegador, e a consulta devolve a chave.

### POST /device/code

Inicia um login por dispositivo e obtém um código para a pessoa aprovar no navegador.

* Permissão: none, part of sign-in

**Corpo**

| Campo        | Tipo                                      | Obrigatório |
| ------------ | ----------------------------------------- | ----------- |
| `clientName` | string                                    | Não         |
| `hostname`   | string                                    | Não         |
| `platform`   | string                                    | Não         |
| `version`    | string                                    | Não         |
| `scopes`     | list of `pulse`, `sites`, `deep`, `local` | Não         |

**data**

| Campo                     | Tipo    | Sempre presente |
| ------------------------- | ------- | --------------- |
| `deviceCode`              | string  | Sim             |
| `userCode`                | string  | Sim             |
| `verificationUri`         | string  | Sim             |
| `verificationUriComplete` | string  | Sim             |
| `expiresIn`               | integer | Sim             |
| `interval`                | integer | Sim             |

### POST /device/token

Consulta o login por dispositivo até a pessoa aprová-lo e então recebe a chave.

* Permissão: none, part of sign-in

**Corpo**

| Campo        | Tipo   | Obrigatório |
| ------------ | ------ | ----------- |
| `deviceCode` | string | Sim         |

## Legado

As rotas originais da CLI, que a CLI 0.2 usa. Continuam como estão, e as novas integrações devem usar a API do agente acima.

<details>
  <summary>
    Rotas originais da CLI
  </summary>

  **POST /projects/\{projectId}/local-assessments/authorize**

  Autorizar uma avaliação local antes de inspecionar o repositório. Nenhum código-fonte ou resultado é enviado.

  * Permissão: `local`

  **Corpo**

  | Campo                 | Tipo                                                                                                                                                                                               | Obrigatório |
  | --------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------- |
  | `cliVersion`          | string                                                                                                                                                                                             | Sim         |
  | `scannerVersion`      | string                                                                                                                                                                                             | Sim         |
  | `rulesetVersion`      | string                                                                                                                                                                                             | Sim         |
  | `reportSchemaVersion` | string                                                                                                                                                                                             | Sim         |
  | `checks`              | list of `tracked-secrets`, `public-environment`, `browser-artifacts`, `supabase-client`, `supabase-migrations`, `git-history`, `docker-files`, `docker-values`, `actions-injection`, `source-maps` | Sim         |

  **data**

  | Campo           | Tipo           | Sempre presente |
  | --------------- | -------------- | --------------- |
  | `admissionId`   | string         | Sim             |
  | `projectId`     | string         | Sim             |
  | `workspaceId`   | string         | Sim             |
  | `policyVersion` | string         | Sim             |
  | `startBy`       | string         | Sim             |
  | `checks`        | list of object | Sim             |

  **GET /me**

  A pessoa, o workspace e a chave por trás desta credencial.

  * Permissão: `read`

  **data**

  | Campo       | Tipo   | Sempre presente |
  | ----------- | ------ | --------------- |
  | `user`      | object | Sim             |
  | `workspace` | object | Sim             |
  | `key`       | object | Sim             |

  **DELETE /me**

  Revoga a chave apresentada.

  * Permissão: any valid key

  **data**

  | Campo     | Tipo    | Sempre presente |
  | --------- | ------- | --------------- |
  | `revoked` | boolean | Sim             |

  **GET /projects**

  Sites (projetos) com os seus scans Pulse e Deep mais recentes.

  * Permissão: `read`

  **Cada item em data**

  | Campo         | Tipo           | Sempre presente |
  | ------------- | -------------- | --------------- |
  | `id`          | string         | Sim             |
  | `name`        | string         | Sim             |
  | `status`      | string         | Sim             |
  | `baseDomain`  | string or null | Sim             |
  | `latestPulse` | object or null | Sim             |
  | `latestDeep`  | object or null | Não             |
  | `latestBox`   | object or null | Sim             |
  | `webPath`     | string         | Sim             |
  | `webUrl`      | string         | Não             |

  **GET /projects/\{projectId}/status**

  Os resultados mais recentes de um site e o que mudou.

  * Permissão: `read`

  **data**

  | Campo            | Tipo           | Sempre presente |
  | ---------------- | -------------- | --------------- |
  | `project`        | object         | Sim             |
  | `latestPulse`    | object or null | Sim             |
  | `latestDeep`     | object or null | Não             |
  | `latestBox`      | object or null | Sim             |
  | `lastComparison` | object or null | Sim             |
  | `caveats`        | list of string | Sim             |

  **POST /projects/\{projectId}/pulse**

  Inicia um Pulse em um site, ou uma nova verificação do último Pulse dele.

  * Permissão: `pulse`
  * Responde 201 quando funciona

  **Corpo**

  | Campo            | Tipo   | Obrigatório |
  | ---------------- | ------ | ----------- |
  | `idempotencyKey` | string | Sim         |

  **data**

  | Campo                       | Tipo                                                                                | Sempre presente |
  | --------------------------- | ----------------------------------------------------------------------------------- | --------------- |
  | `id`                        | string                                                                              | Sim             |
  | `kind`                      | `pulse`, `box` (Deep, legacy name)                                                  | Sim             |
  | `projectId`                 | string                                                                              | Sim             |
  | `target`                    | string                                                                              | Sim             |
  | `status`                    | `queued`, `running`, `cancelling`, `succeeded`, `incomplete`, `failed`, `cancelled` | Sim             |
  | `mode`                      | `autonomous`, `authenticated`, `active` or null                                     | Sim             |
  | `createdAt`                 | string or null                                                                      | Sim             |
  | `finishedAt`                | string or null                                                                      | Sim             |
  | `webPath`                   | string                                                                              | Sim             |
  | `assessmentLevel`           | `pulse`, `standard`, `deep` or null                                                 | Não             |
  | `headline`                  | object                                                                              | Não             |
  | `webUrl`                    | string                                                                              | Não             |
  | `suggestedPollAfterSeconds` | integer or null                                                                     | Não             |
  | `baselineRunId`             | string or null                                                                      | Sim             |
  | `open`                      | object                                                                              | Sim             |
  | `findingCount`              | integer                                                                             | Sim             |
  | `progress`                  | object or null                                                                      | Sim             |
  | `coverage`                  | object                                                                              | Sim             |
  | `caveats`                   | list of string                                                                      | Sim             |
  | `outcome`                   | object or null                                                                      | Não             |
  | `exposureCheck`             | object or null                                                                      | Não             |

  **POST /projects/\{projectId}/deep**

  Inicia o scan Deep de um release com uma chave de CI feita para este site, com Deep permitido.

  * Permissão: `deep`
  * Responde 201 quando funciona

  **Corpo**

  | Campo            | Tipo   | Obrigatório |
  | ---------------- | ------ | ----------- |
  | `idempotencyKey` | string | Sim         |

  **data**

  | Campo                       | Tipo                                                                                | Sempre presente |
  | --------------------------- | ----------------------------------------------------------------------------------- | --------------- |
  | `id`                        | string                                                                              | Sim             |
  | `kind`                      | `pulse`, `box` (Deep, legacy name)                                                  | Sim             |
  | `projectId`                 | string                                                                              | Sim             |
  | `target`                    | string                                                                              | Sim             |
  | `status`                    | `queued`, `running`, `cancelling`, `succeeded`, `incomplete`, `failed`, `cancelled` | Sim             |
  | `mode`                      | `autonomous`, `authenticated`, `active` or null                                     | Sim             |
  | `createdAt`                 | string or null                                                                      | Sim             |
  | `finishedAt`                | string or null                                                                      | Sim             |
  | `webPath`                   | string                                                                              | Sim             |
  | `assessmentLevel`           | `pulse`, `standard`, `deep` or null                                                 | Não             |
  | `headline`                  | object                                                                              | Não             |
  | `webUrl`                    | string                                                                              | Não             |
  | `suggestedPollAfterSeconds` | integer or null                                                                     | Não             |
  | `baselineRunId`             | string or null                                                                      | Sim             |
  | `open`                      | object                                                                              | Sim             |
  | `findingCount`              | integer                                                                             | Sim             |
  | `progress`                  | object or null                                                                      | Sim             |
  | `coverage`                  | object                                                                              | Sim             |
  | `caveats`                   | list of string                                                                      | Sim             |
  | `outcome`                   | object or null                                                                      | Não             |
  | `exposureCheck`             | object or null                                                                      | Não             |

  **GET /runs**

  Scans Pulse e Deep, do mais recente para o mais antigo.

  * Permissão: `read`

  **Consulta**

  | Campo             | Tipo                                                                                | Obrigatório |
  | ----------------- | ----------------------------------------------------------------------------------- | ----------- |
  | `projectId`       | string                                                                              | Não         |
  | `kind`            | `pulse`, `box` (Deep, legacy name)                                                  | Não         |
  | `assessmentLevel` | `pulse`, `standard`, `deep`                                                         | Não         |
  | `status`          | `queued`, `running`, `cancelling`, `succeeded`, `incomplete`, `failed`, `cancelled` | Não         |
  | `limit`           | integer                                                                             | Não         |

  **Cada item em data**

  | Campo                       | Tipo                                                                                | Sempre presente |
  | --------------------------- | ----------------------------------------------------------------------------------- | --------------- |
  | `id`                        | string                                                                              | Sim             |
  | `kind`                      | `pulse`, `box` (Deep, legacy name)                                                  | Sim             |
  | `projectId`                 | string                                                                              | Sim             |
  | `target`                    | string                                                                              | Sim             |
  | `status`                    | `queued`, `running`, `cancelling`, `succeeded`, `incomplete`, `failed`, `cancelled` | Sim             |
  | `mode`                      | `autonomous`, `authenticated`, `active` or null                                     | Sim             |
  | `createdAt`                 | string or null                                                                      | Sim             |
  | `finishedAt`                | string or null                                                                      | Sim             |
  | `webPath`                   | string                                                                              | Sim             |
  | `assessmentLevel`           | `pulse`, `standard`, `deep` or null                                                 | Não             |
  | `headline`                  | object                                                                              | Não             |
  | `webUrl`                    | string                                                                              | Não             |
  | `suggestedPollAfterSeconds` | integer or null                                                                     | Não             |

  **GET /runs/\{runId}**

  Uma execução com o seu resumo e as contagens.

  * Permissão: `read`

  **data**

  | Campo                       | Tipo                                                                                | Sempre presente |
  | --------------------------- | ----------------------------------------------------------------------------------- | --------------- |
  | `id`                        | string                                                                              | Sim             |
  | `kind`                      | `pulse`, `box` (Deep, legacy name)                                                  | Sim             |
  | `projectId`                 | string                                                                              | Sim             |
  | `target`                    | string                                                                              | Sim             |
  | `status`                    | `queued`, `running`, `cancelling`, `succeeded`, `incomplete`, `failed`, `cancelled` | Sim             |
  | `mode`                      | `autonomous`, `authenticated`, `active` or null                                     | Sim             |
  | `createdAt`                 | string or null                                                                      | Sim             |
  | `finishedAt`                | string or null                                                                      | Sim             |
  | `webPath`                   | string                                                                              | Sim             |
  | `assessmentLevel`           | `pulse`, `standard`, `deep` or null                                                 | Não             |
  | `headline`                  | object                                                                              | Não             |
  | `webUrl`                    | string                                                                              | Não             |
  | `suggestedPollAfterSeconds` | integer or null                                                                     | Não             |
  | `baselineRunId`             | string or null                                                                      | Sim             |
  | `open`                      | object                                                                              | Sim             |
  | `findingCount`              | integer                                                                             | Sim             |
  | `progress`                  | object or null                                                                      | Sim             |
  | `coverage`                  | object                                                                              | Sim             |
  | `caveats`                   | list of string                                                                      | Sim             |
  | `outcome`                   | object or null                                                                      | Não             |
  | `exposureCheck`             | object or null                                                                      | Não             |

  **GET /runs/\{runId}/findings**

  Achados de uma execução.

  * Permissão: `read`

  **Consulta**

  | Campo      | Tipo                                          | Obrigatório |
  | ---------- | --------------------------------------------- | ----------- |
  | `severity` | `critical`, `high`, `medium`, `low`, `info`   | Não         |
  | `state`    | `attention`, `information`, `unknown`, `pass` | Não         |
  | `all`      | `true`, `false`                               | Não         |

  **Cada item em data**

  | Campo            | Tipo                                                  | Sempre presente |
  | ---------------- | ----------------------------------------------------- | --------------- |
  | `id`             | string                                                | Sim             |
  | `code`           | string                                                | Não             |
  | `runId`          | string                                                | Sim             |
  | `kind`           | `pulse`, `box` (Deep, legacy name)                    | Sim             |
  | `severity`       | `critical`, `high`, `medium`, `low`, `info`           | Sim             |
  | `state`          | `attention`, `information`, `unknown`, `pass`         | Sim             |
  | `category`       | string                                                | Sim             |
  | `title`          | string                                                | Sim             |
  | `meaning`        | string                                                | Sim             |
  | `fix`            | string or null                                        | Sim             |
  | `confidence`     | string                                                | Sim             |
  | `evidence`       | list of string                                        | Sim             |
  | `sources`        | list of string                                        | Sim             |
  | `steps`          | list of string                                        | Sim             |
  | `webPath`        | string                                                | Sim             |
  | `webUrl`         | string                                                | Não             |
  | `verdict`        | `confirmed`, `needs_review`, `not_actionable` or null | Não             |
  | `certainty`      | `high`, `medium`, `low` or null                       | Não             |
  | `exploitability` | `direct`, `conditional`, `hygiene`, `none` or null    | Não             |
  | `proof`          | object or null                                        | Não             |
  | `proofGap`       | string or null                                        | Não             |
  | `urgency`        | `now`, `week`, `later`, `none`                        | Não             |
  | `howSure`        | `confirmed`, `likely`, `possible` or null             | Não             |

  **GET /runs/\{runId}/findings/\{findingId}**

  Um achado com as suas provas redigidas.

  * Permissão: `read`

  **data**

  | Campo            | Tipo                                                  | Sempre presente |
  | ---------------- | ----------------------------------------------------- | --------------- |
  | `id`             | string                                                | Sim             |
  | `code`           | string                                                | Não             |
  | `runId`          | string                                                | Sim             |
  | `kind`           | `pulse`, `box` (Deep, legacy name)                    | Sim             |
  | `severity`       | `critical`, `high`, `medium`, `low`, `info`           | Sim             |
  | `state`          | `attention`, `information`, `unknown`, `pass`         | Sim             |
  | `category`       | string                                                | Sim             |
  | `title`          | string                                                | Sim             |
  | `meaning`        | string                                                | Sim             |
  | `fix`            | string or null                                        | Sim             |
  | `confidence`     | string                                                | Sim             |
  | `evidence`       | list of string                                        | Sim             |
  | `sources`        | list of string                                        | Sim             |
  | `steps`          | list of string                                        | Sim             |
  | `webPath`        | string                                                | Sim             |
  | `webUrl`         | string                                                | Não             |
  | `verdict`        | `confirmed`, `needs_review`, `not_actionable` or null | Não             |
  | `certainty`      | `high`, `medium`, `low` or null                       | Não             |
  | `exploitability` | `direct`, `conditional`, `hygiene`, `none` or null    | Não             |
  | `proof`          | object or null                                        | Não             |
  | `proofGap`       | string or null                                        | Não             |
  | `urgency`        | `now`, `week`, `later`, `none`                        | Não             |
  | `howSure`        | `confirmed`, `likely`, `possible` or null             | Não             |

  **GET /runs/\{runId}/repair-brief**

  As correções de uma execução em um único Markdown.

  * Permissão: `read`

  **Consulta**

  | Campo       | Tipo                                                                                      | Obrigatório |
  | ----------- | ----------------------------------------------------------------------------------------- | ----------- |
  | `findingId` | string                                                                                    | Não         |
  | `agent`     | `claude-code`, `codex`, `cursor`, `vscode`, `opencode`, `lovable`, `bolt`, `replit`, `v0` | Não         |

  **data**

  | Campo        | Tipo           | Sempre presente |
  | ------------ | -------------- | --------------- |
  | `runId`      | string         | Sim             |
  | `findingIds` | list of string | Sim             |
  | `saved`      | boolean        | Sim             |
  | `markdown`   | string         | Sim             |
  | `webUrl`     | string         | Não             |

  **GET /runs/\{runId}/comparison**

  O que mudou entre uma execução e a anterior.

  * Permissão: `read`

  **data**

  | Campo           | Tipo           | Sempre presente |
  | --------------- | -------------- | --------------- |
  | `runId`         | string         | Sim             |
  | `baselineRunId` | string         | Sim             |
  | `error`         | string or null | Sim             |
  | `changes`       | list of object | Sim             |
  | `webUrl`        | string         | Não             |
</details>