API Documentation
RESTful API for searching, browsing, and managing CLI tools.
Authentication
Use API keys for programmatic access. Create keys in Settings.
Authorization: Bearer as_your_api_key_herePOST
/api/searchHybrid search using full-text and vector search.
Request Body:
{ "query": "json parser", "category": "data-processing", "limit": 20 }GET
/api/tools?page=1&limit=20&category=search&sort=scoreBrowse tools with filtering and pagination.
GET
/api/tools/:slugGet detailed information about a specific tool.
GET
/api/tools/:slug/installGet install command and track download.
POST
/api/toolsAuth RequiredSubmit a new CLI tool for review.
Request Body:
{ "name": "mytool", "description": "...", "category": "search", "repo_url": "https://github.com/..." }POST
/api/tools/:slug/upvoteAuth RequiredToggle upvote on a tool.
POST
/api/reportAuth RequiredReport AI agent tool usage.
Request Body:
{ "slug": "jq", "outcome": "success", "model": "gpt-4", "duration_ms": 1500 }GET
/api/categoriesList all categories with tool counts.
GET
/api/keysAuth RequiredList your API keys.
Code Examples
curl
curl -X POST https://agentshovels.com/api/search \
-H "Content-Type: application/json" \
-d '{"query": "json parser"}'JavaScript
const res = await fetch("https://agentshovels.com/api/search", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({ query: "json parser" })
});
const data = await res.json();Python
import requests
res = requests.post("https://agentshovels.com/api/search",
json={"query": "json parser"})
data = res.json()