Authentication
Send your API key in the x-api-key header on every request. Keys are SHA-256 hashed at rest and validated against a Redis cache for sub-5ms verification.
curl https://metrics0.jaret.es/api/v1/resources?limit=10 \ -H "x-api-key: YOUR_KEY"
Ratelimit: 300 requests per minute per key, sliding window. A 429 means you should back off; the next window resets in 60 seconds.
GET /api/v1/resources
Top resources across all online servers, ranked by install count. Cached server-side for 60s.
| Param | Type | Default | Description |
|---|---|---|---|
| page | integer | 1 | Page number (1-indexed). |
| limit | integer | 50 | Page size, max 100. |
| q | string | — | Search filter (case-insensitive substring). |
Response
{
"rows": [
{ "resource": "oxmysql", "serverCount": 24040, "playerCount": 64177 },
{ "resource": "pma-voice", "serverCount": 22015, "playerCount": 58304 }
],
"total": 4901,
"page": 1,
"limit": 50,
"hasMore": true
}GET /api/v1/resources/{name}
Servers running a specific resource, ranked by current player count. Useful for "who’s using my script?". Cached server-side for 120s.
| Param | Type | Default | Description |
|---|---|---|---|
| page | integer | 1 | Page number (1-indexed). |
| limit | integer | 30 | Page size, max 100. |
Response
{
"resource": "oxmysql",
"serverCount": 24040,
"playerCount": 64177,
"rows": [
{
"cfxCode": "9zj5ay",
"hostnameClean": "Baylife RP",
"projectName": "Baylife RP",
"playersCurrent": 1769, "playersMax": 2040,
"localeCountry": "FR",
"iconVersion": 2006463867,
"upvotePower": 1956, "playersPeak": 1769
}
],
"page": 1, "limit": 30, "hasMore": true
}Error responses
Missing or invalid x-api-key.
300/min/key exceeded. Back off 60s.
Transient. Retry with exponential backoff.