Atribución de apps
Una cabecera y tu app entra en el ranking público de javinfo: peticiones, usuarios y desglose por proveedor. Gratis, opcional, un minuto.
Añade una cabecera referer y javinfo mantiene una página pública: peticiones totales, cuentas que llaman, el proveedor que más responde. Tu app aparece en el ranking.
Gratis. Las llamadas atribuidas se facturan igual y las cabeceras no tocan tu límite. Sin ellas: sin página, sin ranking, sin registro.
Las cabeceras
| Cabecera | Obligatoria | Qué hace |
|---|---|---|
HTTP-Referer | sí | La URL de tu app. Es su identidad. Sin URL no hay página de app. |
Referer | – | Los navegadores la ponen solos. Se usa como respaldo cuando falta HTTP-Referer. |
x-javinfo-title | no | Nombre visible. Por defecto, el hostname de tu URL. |
x-javinfo-categories | no | Etiquetas separadas por comas, hasta 10. Se pasan a minúsculas. |
HTTP-Referer es la convención de OpenRouter: Referer a secas es una
cabecera prohibida y
JavaScript no puede fijarla. Desde un servidor puedes usar cualquiera; en el navegador tienes
Referer gratis y pones el resto.
curl "https://api.javinfo.dev/movie?q=SSIS-001" \
-H "x-javinfo-key: jvi_your_key_here" \
-H "HTTP-Referer: https://myapp.example.com" \
-H "x-javinfo-title: My App" \
-H "x-javinfo-categories: search-ui, metadata"const res = await fetch('https://api.javinfo.dev/query?q=SSIS', {
headers: {
'x-javinfo-key': 'jvi_your_key_here',
'HTTP-Referer': 'https://myapp.example.com',
'x-javinfo-title': 'My App',
},
});Ponlas una vez en las cabeceras por defecto de tu cliente y olvídate.
La URL que envías se convierte en un enlace público en javinfo.dev. Envía la página que quieres que la gente abra, no un panel interno ni un host de staging.
Qué endpoints cuentan
/movie, /query y /random. Cada llamada correcta con un referer válido suma una petición.
/stats y /health no se atribuyen.
El registro corre en una cola en segundo plano tras la respuesta: sin latencia, y un tropiezo de Redis no tumba una petición ya completada.
Qué se guarda
La URL se normaliza a origen más ruta. La query string y el fragmento se descartan; una ruta raíz se reduce al origen:
https://myapp.example.com/?ref=hn → https://myapp.example.com
https://myapp.example.com/search?q=x → https://myapp.example.com/searchRutas distintas son apps distintas. Elige una URL canónica o el tráfico se parte en dos filas.
El título y las categorías solo se actualizan al enviarlos; si los omites, queda lo último.
Qué se ignora
La atribución se descarta en silencio; la llamada sigue funcionando.
- Sin
HTTP-Referery sinReferer. - Un referer que no es una URL válida.
- Cualquier cosa que no sea
httpohttps. Nada defile://ni esquemas propios. localhost,127.0.0.1,::1. El desarrollo local nunca ensucia el ranking.javinfo.devyapp.javinfo.dev. No nos rankeamos a nosotros mismos.- URLs de más de 500 caracteres.
- Un título sin URL.
x-javinfo-titlepor su cuenta no crea nada.
Las categorías a partir de la décima se recortan. No hay lista cerrada: usa lo que describa tu app: search-ui, discord-bot, cli, scraper, mobile-app.
La página de tu app
La primera petición atribuida crea la entrada, publicada al momento. El ranking ordena por
peticiones históricas. En javinfo.dev/apps/{id} verás:
- Peticiones totales, desde siempre.
- Cuentas de javinfo distintas que llamaron por tu URL. Por cuenta, no por llamada: usuarios reales, no visitas disfrazadas.
- Desglose por proveedor: cuántas búsquedas respondió FANZA, DMM, javdb, missav, javdatabase o javlibrary. Orden en Proveedores.
Los mismos datos se leen sin clave:
curl "https://api.javinfo.dev/v1/apps/rankings?limit=20"
curl "https://api.javinfo.dev/v1/apps/{id}"El ranking se gana, no se vende. Los espacios de pago de javinfo.dev están señalados y no compran un puesto aquí.
Quitar tu app
Deja de enviar la cabecera y tu entrada deja de crecer; los números históricos se quedan. ¿Borrar la página? Escribe a [email protected] desde una dirección del mismo dominio y la eliminamos.