Справка
Справочник API
Все маршруты https://api.notholy.com/v1, собранные из файла OpenAPI. Его можно скачать как openapi.json.
openapi.json · Аутентификация: Bearer-токен или заголовок x-api-key.
Inference
POST/chat/completions
Chat completion (OpenAI format)
Параметры
Idempotency-Key | header | string | Non-streaming requests with the same key within 24 hours return the first successful response, with x-notholy-idempotent-replay true, and are not charged again. The response is held in the memory of the server that answered, so a retry after a restart or on another server runs again. |
Тело запроса: 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-specter","messages":[{"role":"user","content":"Explain IDOR in two sentences."}]}'Ответы
200 · default
POST/responses
Response (OpenAI Responses format, stateless)
previous_response_id returns 400. Send the full conversation in input.
Параметры
Idempotency-Key | header | string | Non-streaming requests with the same key within 24 hours return the first successful response, with x-notholy-idempotent-replay true, and are not charged again. The response is held in the memory of the server that answered, so a retry after a restart or on another server runs again. |
Тело запроса: 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."}'Ответы
200 · default
POST/completions
Text completion (legacy OpenAI format)
Параметры
Idempotency-Key | header | string | Non-streaming requests with the same key within 24 hours return the first successful response, with x-notholy-idempotent-replay true, and are not charged again. The response is held in the memory of the server that answered, so a retry after a restart or on another server runs again. |
Тело запроса: 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-specter","prompt":"The OWASP category for SSRF is","max_tokens":30}'Ответы
200 · default
POST/messages
Message (Anthropic Messages format)
The Anthropic SDK base URL is https://api.notholy.com. max_tokens is required. cache_control is ignored; PDF document sources return 400.
Параметры
Idempotency-Key | header | string | Non-streaming requests with the same key within 24 hours return the first successful response, with x-notholy-idempotent-replay true, and are not charged again. The response is held in the memory of the server that answered, so a retry after a restart or on another server runs again. |
Тело запроса: 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-specter","max_tokens":512,"messages":[{"role":"user","content":"What is a Sigma rule?"}]}'Ответы
200 · default
POST/messages/count_tokens
Count input tokens (Anthropic format)
Тело запроса: 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-specter","messages":[{"role":"user","content":"What is a Sigma rule?"}]}'Ответы
200 · default
POST/embeddings
Embeddings (no model available yet)
Always returns 404 model_not_found until an embedding model is added. Not charged.
Тело запроса: 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-specter","input":"text"}'Ответы
404
Models
GET/models
List models
curl https://api.notholy.com/v1/models \
-H "Authorization: Bearer $NOTHOLY_API_KEY"Ответы
200 · default
GET/models/{id}
Get one model
Параметры
id | path, обязательный | string |
curl https://api.notholy.com/v1/models/notholy-specter \
-H "Authorization: Bearer $NOTHOLY_API_KEY"Ответы
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"Ответы
200 · default
Research
GET/cve/{id}
One CVE with NVD, CISA KEV and FIRST EPSS data
Параметры
id | path, обязательный | string |
curl https://api.notholy.com/v1/cve/CVE-2021-44228 \
-H "Authorization: Bearer $NOTHOLY_API_KEY"Ответы
200 · default
GET/cve/search
Search the CVE mirror
Параметры
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"Ответы
200 · default
GET/kb/search
Search the curated security knowledge base
Параметры
q | query, обязательный | string | |
domain | query | string | |
source | query | string | |
tool | query | string | |
limit | query | integer |
curl https://api.notholy.com/v1/kb/search \
-H "Authorization: Bearer $NOTHOLY_API_KEY"Ответы
200 · default
GET/kb/{id}
Read one knowledge-base document, paginated by section
Параметры
id | path, обязательный | string | |
from | query | integer | |
limit | query | integer |
curl https://api.notholy.com/v1/kb/{id} \
-H "Authorization: Bearer $NOTHOLY_API_KEY"Ответы
200 · default
POST/advisories/query
Advisories for a package and version
Тело запроса: 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"}'Ответы
200 · default
POST/web/search
Web search
Тело запроса: 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}'Ответы
200 · default
POST/web/read
Read a public page through the protected egress
Тело запроса: 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"}'Ответы
200 · default
POST/files
Upload a file for static analysis, up to 32 MB
Stored encrypted with a one-hour expiry. The expiry is recorded, but automatic deletion is not active yet.
Параметры
x-file-name | header | string | URL-encoded when it has non-ASCII characters. Defaults to file. |
wait | query | string | Wait for the analysis to finish |
Тело запроса: application/octet-stream
curl -X POST https://api.notholy.com/v1/files \
-H "Authorization: Bearer $NOTHOLY_API_KEY"Ответы
200 · 202 · default
GET/files/{id}
File status
Параметры
id | path, обязательный | string |
curl https://api.notholy.com/v1/files/{id} \
-H "Authorization: Bearer $NOTHOLY_API_KEY"Ответы
200 · default
GET/files/{id}/content
Extracted text of a file
Параметры
id | path, обязательный | string |
curl https://api.notholy.com/v1/files/{id}/content \
-H "Authorization: Bearer $NOTHOLY_API_KEY"Ответы
200 · default