Documentación

API REST pública

La API de metrics0 expone un único feed: uso agregado de recursos en la red FiveM en vivo. Cada endpoint requiere una clave API. Solicita una en /api-access.

01

Autenticación

Envía tu clave API en la cabecera x-api-key en cada petición. Las claves se almacenan con hash SHA-256 y se validan contra una caché Redis para verificación sub-5ms.

curl https://metrics0.jaret.es/api/v1/resources?limit=10 \
  -H "x-api-key: YOUR_KEY"

Ratelimit: 300 peticiones por minuto por clave, ventana deslizante. Un 429 significa que debes esperar; la siguiente ventana se reinicia en 60 segundos.

02

GET /api/v1/resources

Top de recursos en todos los servidores online, ordenados por instalaciones. Cacheado en servidor durante 60s.

ParámetroTipoPor defectoDescripción
pageinteger1Número de página (1-indexado).
limitinteger50Tamaño de página, máx 100.
qstringFiltro de búsqueda (substring case-insensitive).

Respuesta

{
  "rows": [
    { "resource": "oxmysql",  "serverCount": 24040, "playerCount": 64177 },
    { "resource": "pma-voice", "serverCount": 22015, "playerCount": 58304 }
  ],
  "total": 4901,
  "page": 1,
  "limit": 50,
  "hasMore": true
}
03

GET /api/v1/resources/{name}

Servidores que ejecutan un recurso concreto, ordenados por jugadores actuales. Útil para "¿quién está usando mi script?". Cacheado en servidor durante 120s.

ParámetroTipoPor defectoDescripción
pageinteger1Número de página (1-indexado).
limitinteger30Tamaño de página, máx 100.

Respuesta

{
  "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
}
04

Respuestas de error

401
No autorizado

Falta o es inválida la x-api-key.

429
Límite de peticiones

Excedido 300/min/clave. Espera 60s.

500
Error de servidor

Transitorio. Reintenta con backoff exponencial.