Attribution d'app
Un en-tête et ton app entre dans le classement public javinfo : requêtes, utilisateurs et répartition par fournisseur. Gratuit, optionnel, une minute.
Ajoute un en-tête referer : javinfo tient une page publique. Requêtes totales, comptes, fournisseur qui répond le plus. Ton app apparaît dans le classement.
Gratuit. Les appels attribués sont facturés comme les autres ; les en-têtes ne touchent pas ta limite. Sans eux : pas de page, pas de classement, pas d'enregistrement.
Les en-têtes
| En-tête | Obligatoire | Rôle |
|---|---|---|
HTTP-Referer | oui | L'URL de ton app. C'est son identité. Sans URL, pas de page d'app. |
Referer | – | Les navigateurs le posent tout seuls. Sert de repli quand HTTP-Referer manque. |
x-javinfo-title | non | Nom affiché. Par défaut, le hostname de ton URL. |
x-javinfo-categories | non | Tags séparés par des virgules, 10 maximum. Passés en minuscules. |
HTTP-Referer est la convention OpenRouter : Referer seul est un
en-tête interdit et
JavaScript ne peut pas le définir. Depuis un serveur, les deux marchent ; dans le navigateur,
Referer est gratuit et tu ajoutes le reste.
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',
},
});Mets-les une fois dans les en-têtes par défaut de ton client. Puis oublie-les.
L'URL que tu envoies devient un lien public sur javinfo.dev. Envoie la page sur laquelle tu veux qu'on clique, pas un back-office ni un staging.
Les endpoints concernés
/movie, /query et /random. Chaque appel réussi avec un referer valide ajoute une requête.
/stats et /health sont exclus.
L'enregistrement passe par une file en arrière-plan, après ta réponse. Zéro latence, et un hoquet de Redis ne fait pas échouer une requête déjà aboutie.
Ce qui est stocké
L'URL est normalisée en origine plus chemin. La query string et le fragment sautent ; un chemin racine se réduit à l'origine :
https://myapp.example.com/?ref=hn → https://myapp.example.com
https://myapp.example.com/search?q=x → https://myapp.example.com/searchDeux chemins différents font deux apps. Choisis une URL canonique, sinon ton trafic se coupe en deux.
Le titre et les catégories ne changent qu'à l'envoi ; sinon, la dernière valeur reste.
Ce qui est ignoré
Dans tous ces cas l'attribution est jetée en silence ; l'appel API réussit.
- Ni
HTTP-RefererniReferer. - Un referer qui n'est pas une URL valide.
- Autre chose que
httpouhttps. Pas defile://, pas de schéma maison. localhost,127.0.0.1,::1. Le dev local ne pollue jamais le classement.javinfo.devetapp.javinfo.dev. On ne se classe pas nous-mêmes.- Les URL de plus de 500 caractères.
- Un titre sans URL.
x-javinfo-titleseul ne crée rien.
Les catégories au-delà de la dixième sont coupées. Pas de liste figée : prends ce qui décrit ton
app : search-ui, discord-bot, cli, scraper, mobile-app.
La page de ton app
La première requête attribuée crée l'entrée, publiée immédiatement. Le classement trie ton app par
requêtes cumulées. javinfo.dev/apps/{id} :
- Le total de requêtes depuis le début.
- Les comptes javinfo distincts ayant appelé via ton URL. Par compte, pas par appel : de vrais utilisateurs, pas des visites déguisées.
- La répartition par fournisseur : combien de recherches ont servi FANZA, DMM, javdb, missav, javdatabase ou javlibrary. Ordre dans Fournisseurs.
Les mêmes données se lisent sans clé :
curl "https://api.javinfo.dev/v1/apps/rankings?limit=20"
curl "https://api.javinfo.dev/v1/apps/{id}"Le classement se gagne, il ne se vend pas. Les emplacements payants de javinfo.dev sont signalés et n'achètent pas une place ici.
Retirer ton app
Arrête d'envoyer l'en-tête : ton entrée cesse de grossir, mais les chiffres passés restent. La page doit disparaître ? Écris à [email protected] depuis le même domaine et on l'efface.