CyberDict exposes a small public JSON API so the dataset can be queried from a script,
a terminal or an AI agent. No API key, no account, no signup.
Base URL: https://cyberdict.yanivhaliwa.com
| Method | Path | Returns |
|---|---|---|
| GET | /api/terms | The terms, with optional filters |
| GET | /api/stats | Totals and counts by category |
/api/termsReturns matching terms ordered by name. All parameters are optional and combine with AND.
| Parameter | Meaning |
|---|---|
q | Free-text search across term, short_description and full_description. |
category | Exact category match, e.g. Attack, Concept, Protocol, Tool, Methodology. |
skill_level | Exact skill level match. |
curl -s "https://cyberdict.yanivhaliwa.com/api/terms?q=nmap"
{"terms":[{"id":362,"term":"1337 (Leet)","short_description":"Alternative alphabet ...", ...}],"total":359}
/api/statsTotals and per-category counts. Useful for checking the dataset size before pulling it.
curl -s https://cyberdict.yanivhaliwa.com/api/stats
20 requests per 10 minutes per IP address. Exceeding the limit returns
HTTP 429 with a Retry-After: 600 header and a JSON body.
Honour the header and back off; do not parallelise around the limit. Responses are
cached for 5 minutes (Cache-Control: public, max-age=300), so repeating an
identical query is cheap.
Errors are always JSON, never an HTML page:
{"error":"Too many requests. Please try again later."}
Unknown paths under /api/ return HTTP 404 with a JSON body
listing the available endpoints.
?q= rather than fetching the whole collection and filtering client-side — it is far smaller and stays within the rate limit.Origin header, are allowed.Free to use, including in AI systems and derived tools. Attribution to CyberDict is appreciated. The data is provided as-is with no warranty; verify anything security-critical against primary sources.