Registre des sources
Inventaire vérifiable des sources externes. Les champs marqués a_verifier ne constituent pas une autorisation.
IndexNow submission API
| id | indexnow_api |
|---|---|
| label | IndexNow submission API |
| host | api.indexnow.org |
| access_method | official_api |
| endpoints | /indexnow |
| used_by | src/indexnow.py |
| auth | cle hexadecimale de preuve de propriete configuree par INDEXNOW_KEY; jamais journalisee ni conservee dans le depot |
| rate_limit | aucun quota publie; le protocole plafonne a 10 000 URL par requete. Cote KoPass, INDEXNOW_MAX_URLS_PER_RUN borne l envoi a 2 000 URL par execution. |
| terms_url | https://www.indexnow.org/documentation |
| data_license | sans objet — notification sortante, aucune donnee recue |
| commercial_use | non restreint — protocole ouvert de notification aux moteurs, destine aux editeurs de sites |
| personal_data | uniquement les URL publiques de fiches KoPass nouvelles ou modifiees; aucune donnee utilisateur |
| last_reviewed | 2026-08-14 |
| notes | Notification sortante apres persistance, sans lecture de donnees IndexNow. Maximum 10000 URL du seul hote kopass.app par requete; erreurs absorbees pour ne pas interrompre la collecte. |
Registre MCP officiel
| id | mcp_registry |
|---|---|
| label | Registre MCP officiel |
| host | registry.modelcontextprotocol.io |
| access_method | public_api |
| endpoints | /v0/servers |
| used_by | src/scrapers/mcp_registry.py src/scheduler/snapshots.py |
| auth | aucune authentification dans le code; User-Agent identifiant configure par le scraper |
| rate_limit | aucun quota publie; la collecte est bornee cote KoPass par MCP_MAX_SERVERS (20 000) et par MCP_SOURCE_BUDGET_SECONDS |
| terms_url | https://github.com/modelcontextprotocol/registry |
| data_license | Apache-2.0. Lecture du fichier LICENSE le 2026-08-14 : le projet MCP est passe de MIT a Apache-2.0; les contributions dont les auteurs n ont pas consenti au changement restent sous MIT. Les deux licences autorisent l usage commercial et la redistribution, sous reserve d attribution et de conservation des mentions. GitHub affichait NOASSERTION parce que le preambule de transition en tete du fichier empeche la detection automatique, non parce que la licence serait restrictive. |
| commercial_use | autorise par Apache-2.0 et par MIT. Aucune condition distincte ne regit les donnees servies par l API : ni le depot ni sa documentation ne publient de conditions d utilisation, de quota, d obligation d attribution specifique ou d interdiction de redistribution. Les entrees sont des metadonnees factuelles publiees par leurs editeurs dans le but expres d etre decouvertes publiquement. |
| personal_data | nom, titre, description, version, date publique et URL de serveur ou de depot; les metadonnees de contact/publisher ne sont pas conservees |
| last_reviewed | 2026-08-12 |
| notes | Pagination publique par metadata.nextCursor avec version=latest; plafond configurable MCP_MAX_SERVERS (20 000 par defaut, au-dessus des 20 178 entrees mesurees le 2026-08-14 — le plafond est donc a surveiller); aucune etoile ou telechargement n'est infere. |
GitHub REST and GraphQL APIs
| id | github_api |
|---|---|
| label | GitHub REST and GraphQL APIs |
| host | api.github.com |
| access_method | official_api |
| endpoints | /graphql /search/repositories /repos/{owner}/{repo} |
| used_by | src/analysis/github_fetcher.py src/api/routes/public_radar.py src/scrapers/github_graphql.py src/scrapers/github_stars.py src/scrapers/github_trending.py |
| auth | Bearer GITHUB_TOKEN optionnel pour REST et requis pour l'enrichissement GraphQL; sans token, ce dernier est saute sans inventer de donnees |
| rate_limit | mesure directement le 2026-08-12 via /rate_limit avec le jeton de production : core 5 000/heure, graphql 5 000/heure, search 30/MINUTE, code_search 10/minute. La recherche est de loin la plus contrainte — c est elle qui sature pendant la collecte quotidienne. |
| terms_url | https://docs.github.com/en/site-policy/github-terms/github-terms-of-service |
| data_license | metadonnees publiques de depots; la licence de chaque depot est celle declaree par son auteur et est relevee separement |
| commercial_use | autorise — les conditions n interdisent pas l usage commercial des donnees publiques accedees par l API; l acces authentifie est nominatif et soumis aux quotas ci-dessous |
| personal_data | full_name contient owner/repo, un identifiant canonique de depot; l'enrichissement GraphQL ne demande que pushedAt, isArchived, stargazerCount, licence et total agrege des issues ouvertes, jamais les contributeurs |
| last_reviewed | 2026-08-12 |
| notes | Le code envoie Accept: application/vnd.github+json et X-GitHub-Api-Version: 2022-11-28. Les recherches REST sont espacees de 2,2 s. L'enrichissement GraphQL groupe 100 depots par requete, journalise le cout de points renvoye par rateLimit, conserve les reponses partielles et reutilise pendant sept jours les faits deja releves. |
GitHub repository web links
| id | github_web |
|---|---|
| label | GitHub repository web links |
| host | github.com |
| access_method | manual |
| endpoints | /{owner}/{repo} |
| used_by | src/analysis/tool_ranker.py src/scheduler/snapshots.py |
| auth | sans objet: non appele par le code |
| rate_limit | sans_objet — aucune requete n'est emise vers cet hote |
| terms_url | sans_objet — aucune donnee n'est recuperee depuis cet hote, seules des URL y sont construites pour affichage |
| data_license | sans_objet — aucune donnee n'est recuperee depuis cet hote, seules des URL y sont construites pour affichage |
| commercial_use | sans_objet — aucune donnee n'est recuperee depuis cet hote, seules des URL y sont construites pour affichage |
| personal_data | aucune donnee lue depuis cet hote; le code construit seulement des liens vers les depots |
| last_reviewed | 2026-08-09 |
| notes | Source de lien uniquement. Les donnees GitHub sont recuperees depuis api.github.com, pas depuis cet hote. |
Hacker News Search API by Algolia
| id | hacker_news_algolia |
|---|---|
| label | Hacker News Search API by Algolia |
| host | hn.algolia.com |
| access_method | documented_json |
| endpoints | /api/v1/search |
| used_by | src/api/routes/radar.py src/scrapers/hacker_news.py |
| auth | aucune authentification dans le code |
| rate_limit | 10 000 requetes par heure et par IP, valeur documentee explicitement, relevee le 2026-08-12 |
| terms_url | https://hn.algolia.com/api |
| data_license | contenus publics Hacker News; le champ author est une donnee personnelle, ecarte a la collecte (voir tests de minimisation) |
| commercial_use | non restreint — la documentation presente l API comme un acces programmatique ouvert aux developpeurs, sans clause d usage; lue au navigateur le 2026-08-12 |
| personal_data | titres, textes et identifiants de stories; les auteurs ne sont pas copies par le code |
| last_reviewed | 2026-08-12 |
| notes | Les appels sont des GET JSON vers /api/v1/search; aucune page HTML Hacker News n'est recuperee. |
Hacker News web links
| id | hacker_news_web |
|---|---|
| label | Hacker News web links |
| host | news.ycombinator.com |
| access_method | manual |
| endpoints | /item?id={story_id} |
| used_by | src/api/routes/radar.py src/scrapers/hacker_news.py |
| auth | sans objet: non appele par le code |
| rate_limit | sans_objet — aucune requete n'est emise vers cet hote |
| terms_url | sans_objet — aucune donnee n'est recuperee depuis cet hote, seules des URL y sont construites pour affichage |
| data_license | sans_objet — aucune donnee n'est recuperee depuis cet hote, seules des URL y sont construites pour affichage |
| commercial_use | sans_objet — aucune donnee n'est recuperee depuis cet hote, seules des URL y sont construites pour affichage |
| personal_data | aucune donnee lue depuis cet hote; le code construit seulement des liens vers les stories |
| last_reviewed | 2026-08-08 |
| notes | Source documentaire/de lien uniquement. Les donnees Hacker News sont recuperees depuis hn.algolia.com, pas depuis cet hote. |
npm registry API
| id | npm_registry |
|---|---|
| label | npm registry API |
| host | registry.npmjs.org |
| access_method | documented_json |
| endpoints | /-/v1/search /{package} |
| used_by | src/analysis/npm_fetcher.py src/scrapers/pypi_stats.py |
| auth | aucune authentification dans le code |
| rate_limit | 1 requete par seconde maximum, valeur explicitement documentee par npm pour les robots experimentaux; au-dela npm se reserve le droit de bannir IP ou user-agent. Le collecteur attend 1,0 a 1,5 s. Mesure du 2026-08-12 : 0,3 s produisait des reponses 429. |
| terms_url | https://docs.npmjs.com/policies/crawlers |
| data_license | metadonnees publiques du registre; la licence de chaque paquet est celle declaree par son auteur |
| commercial_use | autorise — la politique d acces ne distingue pas l usage commercial; elle plafonne le debit, verifie le 2026-08-12 |
| personal_data | nom, description, mots-cles, liens et dates de publication declares dans les metadonnees de packages |
| last_reviewed | 2026-08-12 |
| notes | Le code lit la recherche et les metadonnees publiques d'un package; les champs auteur, mainteneurs et publisher ne sont pas conserves. |
npm downloads API
| id | npm_downloads_api |
|---|---|
| label | npm downloads API |
| host | api.npmjs.org |
| access_method | documented_json |
| endpoints | /downloads/range/{start}:{end}/{package} |
| used_by | src/scrapers/pypi_stats.py |
| auth | aucune authentification dans le code |
| rate_limit | 1 requete par seconde maximum (politique npm). 429 observes a 0,3 s le 2026-08-12; le collecteur attend desormais 1,0 a 1,5 s. |
| terms_url | https://docs.npmjs.com/policies/crawlers |
| data_license | statistiques agregees, aucune donnee personnelle |
| commercial_use | autorise — meme politique que le registre, verifie le 2026-08-12 |
| personal_data | statistiques agregees de telechargement par package et par jour |
| last_reviewed | 2026-08-12 |
| notes | Le code calcule des totaux sur 7 et 30 jours a partir de la reponse JSON. |
npm package web links
| id | npm_web |
|---|---|
| label | npm package web links |
| host | www.npmjs.com |
| access_method | manual |
| endpoints | /package/{name} |
| used_by | src/analysis/npm_fetcher.py src/analysis/tool_ranker.py |
| auth | sans objet: non appele par le code |
| rate_limit | sans_objet — aucune requete n'est emise vers cet hote |
| terms_url | sans_objet — aucune donnee n'est recuperee depuis cet hote, seules des URL y sont construites pour affichage |
| data_license | sans_objet — aucune donnee n'est recuperee depuis cet hote, seules des URL y sont construites pour affichage |
| commercial_use | sans_objet — aucune donnee n'est recuperee depuis cet hote, seules des URL y sont construites pour affichage |
| personal_data | aucune donnee lue depuis cet hote; le code construit des liens de consultation |
| last_reviewed | 2026-08-08 |
| notes | Les donnees npm sont recuperees depuis registry.npmjs.org et api.npmjs.org, pas depuis cet hote. |
PyPI JSON API
| id | pypi_json_api |
|---|---|
| label | PyPI JSON API |
| host | pypi.org |
| access_method | documented_json |
| endpoints | /pypi/{package}/json |
| used_by | src/scrapers/pypi_stats.py |
| auth | aucune authentification dans le code |
| rate_limit | aucun quota publie ni en-tete de limitation au 2026-08-12. Le collecteur attend 0,5 a 1 s entre deux appels et n interroge qu une liste bornee de paquets. |
| terms_url | https://policies.python.org/pypi.org/Terms-of-Use/ |
| data_license | metadonnees publiques de paquets; la licence de chaque paquet est celle declaree par son auteur |
| commercial_use | TENSION A TRANCHER, relevee le 2026-08-12 : le robots.txt de pypi.org interdit /pypi/*/json, chemin que get_package_info utilise. Les conditions d utilisation sont muettes sur l acces programmatique, et PyPI documente par ailleurs cette API JSON. Lecture courante : robots.txt vise les indexeurs, pas les clients d API identifies. Position tenable mais non confirmee par PyPI — a arbitrer avant toute commercialisation. |
| personal_data | metadonnees de package: version, resume, liens, mots-cles, classifiers et dates de publication |
| last_reviewed | 2026-08-12 |
| notes | Le code peut extraire une URL GitHub et la date de derniere publication; les champs auteur et mainteneur ne sont pas conserves. |
PyPI Stats API
| id | pypistats_api |
|---|---|
| label | PyPI Stats API |
| host | pypistats.org |
| access_method | documented_json |
| endpoints | /api/packages/{package}/recent |
| used_by | src/scrapers/pypi_stats.py |
| auth | aucune authentification dans le code |
| rate_limit | 30 requetes par minute, documente le 2026-08-12. Le collecteur attend 2,0 a 2,5 s (environ 26/min) et borne le nombre de paquets par execution. |
| terms_url | https://pypistats.org/api/ |
| data_license | statistiques de telechargement agregees, aucune donnee personnelle |
| commercial_use | non restreint, mais le service decourage explicitement le balayage complet du depot et demande de mettre les resultats en cache |
| personal_data | statistiques agregees de telechargement par package |
| last_reviewed | 2026-08-12 |
| notes | Le code lit last_day, last_week et last_month dans data. |
crates.io API
| id | crates_io_api |
|---|---|
| label | crates.io API |
| host | crates.io |
| access_method | documented_json |
| endpoints | /api/v1/crates/{crate} |
| used_by | src/scrapers/crates_io.py src/api/routes/radar.py src/scheduler/snapshots.py |
| auth | aucune authentification; User-Agent identifiant configure par le scraper |
| rate_limit | aucun quota publie ni en-tete de limitation au 2026-08-12. crates.io exige en revanche un User-Agent identifiant ; celui de KoPass porte le nom, l URL du registre des sources et une adresse de contact. |
| terms_url | https://crates.io/policies (page applicative; robots.txt verifie directement le 2026-08-12) |
| data_license | metadonnees publiques du registre; la licence de chaque crate est celle declaree par son auteur |
| commercial_use | non restreint — robots.txt du 2026-08-12 : User-agent: * / Disallow: (vide), soit exploration autorisee sans reserve |
| personal_data | statistiques agregees, nom, description, mots-cles, categories et dates de versions du crate |
| last_reviewed | 2026-08-12 |
| notes | Le endpoint individuel expose downloads cumule, recent_downloads sur 90 jours et les dates de publication des versions. Les conditions et limites applicables restent a verifier. |
Hugging Face Hub API
| id | huggingface_api |
|---|---|
| label | Hugging Face Hub API |
| host | huggingface.co |
| access_method | documented_json |
| endpoints | /api/models /api/models/{model_id} |
| used_by | src/api/routes/radar.py src/scheduler/snapshots.py src/scrapers/ai_benchmarks.py |
| auth | aucune authentification dans le code |
| rate_limit | mesure le 2026-08-12 dans les en-tetes de reponse : ratelimit-policy "fixed window";"api";q=500;w=300, soit 500 requetes par 300 secondes. Hugging Face est la seule source a publier son quota dans chaque reponse. |
| terms_url | https://huggingface.co/terms-of-service |
| data_license | metadonnees publiques de modeles; la licence de chaque modele est portee par ses tags et varie modele par modele |
| commercial_use | robots.txt du 2026-08-12 : User-agent: * / Allow: /. Les conditions generales restent a lire pour l usage commercial des metadonnees. |
| personal_data | identifiants de modeles, compteurs de telechargements, likes, dates et tags |
| last_reviewed | 2026-08-12 |
| notes | Le code recupere les model cards et recherche des modeles par pipelines Hub, tries par downloads. |
Hugging Face datasets server
| id | huggingface_datasets_server |
|---|---|
| label | Hugging Face datasets server |
| host | datasets-server.huggingface.co |
| access_method | documented_json |
| endpoints | /rows |
| used_by | src/scrapers/ai_benchmarks.py |
| auth | aucune authentification dans le code |
| rate_limit | meme service que huggingface_api : 500 requetes par 300 secondes, publie dans les en-tetes |
| terms_url | https://huggingface.co/terms-of-service |
| data_license | depend du jeu de donnees interroge, a verifier au cas par cas — le serveur ne la transmet pas |
| commercial_use | depend du jeu de donnees interroge. Le code ne lit que open-llm-leaderboard/contents ; sa licence est a verifier avant toute exploitation commerciale de ces scores. |
| personal_data | lignes du dataset open-llm-leaderboard/results, contenu exact dependant du dataset |
| last_reviewed | 2026-08-12 |
| notes | Le code demande config=default, split=train, offset=0 et length=100. La licence du dataset doit etre verifiee separement. |
Papers with Code API
| id | papers_with_code_api |
|---|---|
| label | Papers with Code API |
| host | paperswithcode.com |
| access_method | not_called |
| endpoints | /api/v1/sota/ /api/v1/evaluations/ |
| used_by | src/scrapers/ai_benchmarks.py |
| auth | aucune authentification dans le code |
| rate_limit | sans_objet — aucune requete n'est emise vers cet hote |
| terms_url | sans_objet — aucune requete emise |
| data_license | sans_objet — aucune requete emise |
| commercial_use | sans_objet — aucune requete emise |
| personal_data | noms de modeles, scores, titres de papiers et resultats de benchmarks |
| last_reviewed | 2026-08-08 |
| notes | PapersWithCodeScraper est defini dans src/scrapers/ai_benchmarks.py mais n'est instancie nulle part : audit du 2026-08-12, zero utilisation hors du fichier qui le declare. Aucune requete n'est donc emise vers cet hote. Code mort a supprimer plutot qu'a documenter. |
LMSYS Chatbot Arena snapshot
| id | lmsys_arena_snapshot |
|---|---|
| label | LMSYS Chatbot Arena snapshot |
| host | chat.lmsys.org |
| access_method | manual |
| endpoints | non appele par le code |
| used_by | src/scrapers/ai_benchmarks.py |
| auth | sans objet: snapshot saisi manuellement |
| rate_limit | sans_objet — aucune requete n'est emise vers cet hote |
| terms_url | sans_objet — aucune donnee n'est recuperee depuis cet hote, seules des URL y sont construites pour affichage |
| data_license | sans_objet — aucune donnee n'est recuperee depuis cet hote, seules des URL y sont construites pour affichage |
| commercial_use | sans_objet — aucune donnee n'est recuperee depuis cet hote, seules des URL y sont construites pour affichage |
| personal_data | scores Elo et identifiants de modeles dans ARENA_ELO_SNAPSHOT |
| last_reviewed | 2026-08-08 |
| notes | chat.lmsys.org apparait uniquement dans un commentaire de provenance; aucun appel HTTP n'est implemente. |