CyberTools 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://cybertools.yanivhaliwa.com
| Method | Path | Returns |
|---|---|---|
| GET | /api/tools | The tools, with optional filters |
| GET | /api/stats | Totals and counts by category |
/api/toolsReturns matching tools ordered by name. All parameters are optional and combine with AND.
| Parameter | Meaning |
|---|---|
q | Free-text search across name and descriptions. |
category | Exact category match, e.g. Exploitation, Post-Exploitation, Recon. |
tag | Exact action tag, e.g. scanner, bruteforce, enumeration. |
os | Filter by supported operating system. |
limit | Maximum number of records to return. |
curl -s "https://cybertools.yanivhaliwa.com/api/tools?q=nmap"
{"tools":[{"id":103,"name":"1password2john","short_description":"1Password vault cracker", ...}],"total":594}
/api/statsTotals and per-category counts. Useful for checking the dataset size before pulling it.
curl -s https://cybertools.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.limit.Origin header, are allowed.Free to use, including in AI systems and derived tools. Attribution to CyberTools is appreciated. The data is provided as-is with no warranty; verify anything security-critical against primary sources.