All endpoints return JSON. No authentication required.
/feed
Paginated feed of recent scans.
| Param | Type | Default | Description |
|---|---|---|---|
limit | number | 20 | Results per page (max 100) |
cursor | number | — | Scan ID for cursor-based pagination |
search | string | — | Filter by package name (case-insensitive) |
minScore | number | — | Minimum risk score |
alerted | string | — | Set to "true" to show only alerted scans |
curl 'https://ferretwatch.dev/feed?limit=5&search=express'
{
"scans": [
{
"id": 42,
"packageName": "express",
"version": "4.21.1",
"previousVersion": "4.21.0",
"riskScore": 0,
"staticFlags": [],
"scannedAt": "2026-04-05T12:00:00.000Z",
"alerted": false
}
],
"nextCursor": null
}
/scan/:package/:version
Detailed scan results for a specific package version. Returns HTML for browsers, JSON for API clients.
curl 'https://ferretwatch.dev/scan/express/4.21.1'
{
"id": 42,
"packageName": "express",
"version": "4.21.1",
"previousVersion": "4.21.0",
"riskScore": 0,
"staticFlags": [],
"llmSummary": null,
"diffUrl": null,
"alerted": false,
"scannedAt": "2026-04-05T12:00:00.000Z",
"alerts": []
}
/scan/:package
Scan history for a package — all scanned versions.
| Param | Type | Default | Description |
|---|---|---|---|
limit | number | 20 | Results per page (max 100) |
curl 'https://ferretwatch.dev/scan/express'
{
"package": "express",
"scans": [
{ "id": 42, "version": "4.21.1", "riskScore": 0, "alerted": false, ... },
{ "id": 30, "version": "4.21.0", "riskScore": 0, "alerted": false, ... }
]
}
/stats
Dashboard statistics.
curl 'https://ferretwatch.dev/stats'
{
"totalPackages": 156,
"scansToday": 42,
"totalAlerts": 3
}