# API de pesquisa

> Registros de CVE, consulta de advisories, busca na web, leitura de páginas e análise de arquivos, com os mesmos dados que o chat usa.


Estas rotas dão ao CLI, à extensão e ao seu próprio código os mesmos dados que o chat usa. Elas têm um limite por minuto que cresce com o seu nível. Não consomem tokens, então não são cobradas por token.

| Rota | O que faz |
|---|---|
| `GET /v1/cve/{id}` | Um CVE com descrição da NVD, CVSS, CWE, EPSS, status no CISA KEV e referências |
| `GET /v1/cve/search?q=&vendor=&cwe=&kev=true&min_cvss=&min_epss=&limit=` | Busca no espelho |
| `POST /v1/advisories/query` | Advisories de um pacote e versão |
| `POST /v1/web/search` | Resultados de busca na web com título, URL e trecho |
| `POST /v1/web/read` | Texto de uma página pública, buscado por uma saída protegida |
| `POST /v1/files` | Envia um arquivo para análise estática |
| `GET /v1/files/{id}`, `GET /v1/files/{id}/content` | Status e texto extraído |

```bash test
curl https://api.notholy.com/v1/cve/CVE-2021-44228 -H "Authorization: Bearer $NOTHOLY_API_KEY"
```

```bash test
curl -X POST https://api.notholy.com/v1/advisories/query \
  -H "Authorization: Bearer $NOTHOLY_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"ecosystem": "npm", "name": "lodash", "version": "4.17.15"}'
```

## Arquivos

`POST /v1/files` recebe os bytes brutos no corpo e o nome em `x-file-name`. Adicione `?wait=1` para esperar a análise. Os arquivos enviados aqui ficam guardados por 1 hora e depois são apagados. É um armazenamento que você pede, separado da inferência, que não guarda nada. Os arquivos são processados dentro de um sandbox isolado, sem rede, e nada neles é executado.

```bash test
printf 'const q = "SELECT * FROM users WHERE id = " + req.query.id;\n' > handler.js
curl -X POST "https://api.notholy.com/v1/files?wait=1" \
  -H "Authorization: Bearer $NOTHOLY_API_KEY" \
  -H "x-file-name: handler.js" \
  --data-binary @handler.js
```

`web/read` só lê páginas públicas. Ele recusa endereços privados e nunca envia tráfego a alvos por você. Tudo o que uma página diz é tratado como dado, nunca como instrução.

## Próximos passos

- [CVEs no chat](/pt-br/chat/cves)
- [MCP](/pt-br/mcp/local)
