Referências
Referência da API
Todas as rotas de https://api.notholy.com/v1, geradas do arquivo OpenAPI. Baixe como openapi.json.
openapi.json · Autenticação: token Bearer ou cabeçalho x-api-key.
Inference
POST/chat/completions
Chat completion (OpenAI format)
Parâmetros
Idempotency-Key | header | string | Non-streaming requests with the same key within 24 hours return the first response and are not charged again. |
Corpo da requisição: application/json
curl -X POST https://api.notholy.com/v1/chat/completions \
-H "Authorization: Bearer $NOTHOLY_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"notholy-pulse","messages":[{"role":"user","content":"Explain IDOR in two sentences."}]}'Respostas
200 · default
POST/responses
Response (OpenAI Responses format, stateless)
previous_response_id returns 400. Send the full conversation in input.
Parâmetros
Idempotency-Key | header | string | Non-streaming requests with the same key within 24 hours return the first response and are not charged again. |
Corpo da requisição: application/json
curl -X POST https://api.notholy.com/v1/responses \
-H "Authorization: Bearer $NOTHOLY_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"notholy-specter","input":"Summarize what CVSS 3.1 AV:N means."}'Respostas
200 · default
POST/completions
Text completion (legacy OpenAI format)
Corpo da requisição: application/json
curl -X POST https://api.notholy.com/v1/completions \
-H "Authorization: Bearer $NOTHOLY_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"notholy-vector","prompt":"The OWASP category for SSRF is","max_tokens":30}'Respostas
200 · default
POST/messages
Message (Anthropic Messages format)
The Anthropic SDK base URL is https://api.notholy.com. cache_control is ignored; PDF document sources return 400.
Corpo da requisição: application/json
curl -X POST https://api.notholy.com/v1/messages \
-H "Authorization: Bearer $NOTHOLY_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"notholy-pulse","max_tokens":512,"messages":[{"role":"user","content":"What is a Sigma rule?"}]}'Respostas
200 · default
POST/messages/count_tokens
Count input tokens (Anthropic format)
Corpo da requisição: application/json
curl -X POST https://api.notholy.com/v1/messages/count_tokens \
-H "Authorization: Bearer $NOTHOLY_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"notholy-pulse","messages":[{"role":"user","content":"What is a Sigma rule?"}]}'Respostas
200 · default
POST/embeddings
Embeddings (no model available yet)
Always returns 404 model_not_found until an embedding model is added. Not charged.
Corpo da requisição: application/json
curl -X POST https://api.notholy.com/v1/embeddings \
-H "Authorization: Bearer $NOTHOLY_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"notholy-embed","input":"text"}'Respostas
404
Models
GET/models
List models
curl https://api.notholy.com/v1/models \
-H "Authorization: Bearer $NOTHOLY_API_KEY"Respostas
200 · default
GET/models/{id}
Get one model
Parâmetros
id | path, obrigatório | string |
curl https://api.notholy.com/v1/models/notholy-pulse \
-H "Authorization: Bearer $NOTHOLY_API_KEY"Respostas
200 · default
Account
GET/credits
Balance of the organization and spend of the key
curl https://api.notholy.com/v1/credits \
-H "Authorization: Bearer $NOTHOLY_API_KEY"Respostas
200 · default
Research
GET/cve/{id}
One CVE with NVD, CISA KEV and FIRST EPSS data
Parâmetros
id | path, obrigatório | string |
curl https://api.notholy.com/v1/cve/CVE-2021-44228 \
-H "Authorization: Bearer $NOTHOLY_API_KEY"Respostas
200 · default
GET/cve/search
Search the CVE mirror
Parâmetros
q | query | string | |
vendor | query | string | |
cwe | query | string | |
kev | query | boolean | |
min_cvss | query | number | |
min_epss | query | number | |
limit | query | integer |
curl https://api.notholy.com/v1/cve/search \
-H "Authorization: Bearer $NOTHOLY_API_KEY"Respostas
200 · default
POST/advisories/query
Advisories for a package and version
Corpo da requisição: application/json
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"}'Respostas
200 · default
POST/web/search
Web search
Corpo da requisição: application/json
curl -X POST https://api.notholy.com/v1/web/search \
-H "Authorization: Bearer $NOTHOLY_API_KEY" \
-H "Content-Type: application/json" \
-d '{"query":"CVE-2024-3094 xz backdoor analysis","count":5}'Respostas
200 · default
POST/web/read
Read a public page through the protected egress
Corpo da requisição: application/json
curl -X POST https://api.notholy.com/v1/web/read \
-H "Authorization: Bearer $NOTHOLY_API_KEY" \
-H "Content-Type: application/json" \
-d '{"url":"https://nvd.nist.gov/vuln/detail/CVE-2021-44228"}'Respostas
200 · default
POST/files
Upload a file for static analysis (kept 1 hour)
Parâmetros
x-file-name | header, obrigatório | string | |
wait | query | string | Wait for the analysis to finish |
Corpo da requisição: application/octet-stream
curl -X POST https://api.notholy.com/v1/files \
-H "Authorization: Bearer $NOTHOLY_API_KEY"Respostas
200 · 202 · default
GET/files/{id}
File status
Parâmetros
id | path, obrigatório | string |
curl https://api.notholy.com/v1/files/{id} \
-H "Authorization: Bearer $NOTHOLY_API_KEY"Respostas
200 · default
GET/files/{id}/content
Extracted text of a file
Parâmetros
id | path, obrigatório | string |
curl https://api.notholy.com/v1/files/{id}/content \
-H "Authorization: Bearer $NOTHOLY_API_KEY"Respostas
200 · default