Les équipes marketing doivent vérifier des dizaines de comptes manuellement pour savoir quels créateurs potentiels sont actifs, comment leur audience évolue et quand leur profil a été mis à jour pour la dernière fois. Un tableau ponctuel devient vite obsolète : le nombre d’abonnés et la description du profil changent, tandis que les dates de publication et les statistiques des publications doivent être recueillies à nouveau.

Une solution pratique consiste à tenir un petit journal d’observations : interroger chaque jour les profils publics d’une liste préparée à l’avance, enregistrer la réponse avec l’heure de collecte, puis comparer les nouvelles valeurs aux instantanés précédents. Cette approche aide à sélectionner des comptes pour un examen manuel ultérieur, à évaluer leur activité et à préparer des rapports réguliers. Elle ne remplace pas les statistiques dont dispose le propriétaire du compte : les informations publiques d’un profil ne donnent pas accès, par exemple, aux statistiques internes de portée.
Définissez d’abord les éléments à suivre
Pour rechercher des partenaires potentiels, une courte liste de champs suffit généralement : nom d’utilisateur, identifiant du profil, indicateur de vérification, nombre d’abonnés, nombre de publications, biographie et heure de collecte. Ces valeurs permettent de repérer les changements de profil et de comparer les comptes selon la niche choisie. Les champs disponibles dépendent de la réponse de l’API ; avant de les traiter, consultez le JSON actuel dans la documentation et ne vous appuyez pas sur des champs qui n’y figurent pas.
Pour suivre l’activité éditoriale, vous pouvez compléter les profils avec des données sur les publications. La carte de l’API IG Scraper répertorie des routes distinctes pour les médias et les vidéos des utilisateurs, ainsi que des requêtes concernant les médias et les commentaires. Ajoutez-les comme étape séparée après la vérification du profil : confirmez d’abord les paramètres nécessaires et la structure de la réponse dans Postman, puis ne consignez que les champs utiles à votre rapport.
Une règle utile pour la veille : conserver les réponses brutes séparément des lignes normalisées. Le JSON brut permet de vérifier à nouveau l’interprétation si la réponse de l’API change ; un tableau normalisé est plus pratique pour les graphiques et les filtres. Dans les deux cas, conservez l’heure de la requête afin de distinguer une valeur actuelle d’une valeur historique.
Connectez l’API IG Scraper
Chez jsonscraper, l’adresse de base de l’API IG est https://ig.jsonscraper.com. La documentation officielle présente une requête de profil par nom d’utilisateur : GET /v1/user/by/username avec les paramètres username, license_key et cache_timeout. Par exemple, pour un compte de test, la documentation indique une URL de la forme https://ig.jsonscraper.com/v1/user/by/username?username=apple&license_key=YOUR_LICENSE_KEY&cache_timeout=60. Utilisez le paramètre de mise en cache uniquement selon les conditions de la route concernée et votre besoin : la fréquence des requêtes doit correspondre à la rapidité avec laquelle vous avez besoin des mises à jour.
Pour vérifier la structure de la réponse, consultez la page de l’API IG Scraper, puis ouvrez la collection Postman associée. Dans l’exemple, une réponse réussie contient un statut, un objet ig avec l’identifiant du profil, le nom d’utilisateur et l’indicateur de vérification, ainsi qu’un horodatage. La documentation répertorie également des groupes de routes pour les utilisateurs, les médias, la recherche, les hashtags et les lieux ; vous pourrez ainsi étendre la collecte à mesure que votre besoin analytique se précise.
Stockez la clé API dans une variable d’environnement, et non dans le code source ou une application cliente. La documentation de jsonscraper recommande de conserver la clé dans l’environnement et de ne pas l’intégrer aux versions clientes. Dans le processus de production, limitez l’accès à la clé : par exemple, réservez-la à la tâche de collecte en arrière-plan.
Un exemple Python minimal et fonctionnel
Le script ci-dessous lit les noms d’utilisateur depuis une variable d’environnement, interroge chaque profil et écrit un fichier JSONL. Le format JSONL convient aux premiers prototypes : une ligne correspond à un instantané. Le code conserve volontairement l’objet complet de la réponse, au lieu de supposer que tous les champs du profil sont toujours présents. Après le premier lancement, examinez la réponse réelle avant de définir un schéma de tableau stable.
import json
import os
import time
from datetime import datetime, timezone
from pathlib import Path
from urllib.parse import urlencode
from urllib.request import Request, urlopen
API_KEY = os.environ["JSONSCRAPER_LICENSE_KEY"]
USERNAMES = [name.strip() for name in os.environ["IG_USERNAMES"].split(",") if name.strip()]
BASE_URL = "https://ig.jsonscraper.com/v1/user/by/username"
OUTPUT = Path("instagram_profiles.jsonl")
def fetch_profile(username: str) -> dict:
query = urlencode({
"username": username,
"license_key": API_KEY,
"cache_timeout": 60,
})
request = Request(f"{BASE_URL}?{query}", headers={"Accept": "application/json"})
with urlopen(request, timeout=30) as response:
return json.load(response)
with OUTPUT.open("a", encoding="utf-8") as output:
for username in USERNAMES:
collected_at = datetime.now(timezone.utc).isoformat()
try:
payload = fetch_profile(username)
row = {
"collected_at": collected_at,
"requested_username": username,
"ok": True,
"payload": payload,
}
except Exception as exc:
row = {
"collected_at": collected_at,
"requested_username": username,
"ok": False,
"error": str(exc),
}
output.write(json.dumps(row, ensure_ascii=False) + "\n")
output.flush()
time.sleep(1)
Avant de lancer le script, définissez la configuration dans l’environnement :
export JSONSCRAPER_LICENSE_KEY="votre_clé"
export IG_USERNAMES="creator_one,creator_two,creator_three"
python monitor.py
La pause de l’exemple permet de traiter la liste de manière plus modérée et séquentielle ; elle ne constitue pas une limite annoncée de l’API. Pour planifier le traitement en production, adaptez la fréquence et la gestion des erreurs à votre forfait, à la documentation et au niveau de fraîcheur requis. Si une requête échoue, l’enregistrement conservé permet de voir le problème plutôt que d’ignorer silencieusement le compte.
Normalisez les données après avoir vérifié la réponse
Après avoir examiné la réponse de la route utilisée, définissez un ensemble stable de colonnes. Par exemple, un tableau d’observations peut inclure l’heure de collecte, le nom d’utilisateur, l’identifiant du profil, le statut de la réponse et les compteurs nécessaires — s’ils figurent dans le JSON. Pour chaque champ, définissez explicitement la conduite à tenir en cas d’absence : conserver une valeur vide, marquer l’enregistrement comme incomplet ou le soumettre à un nouvel examen.
Ne remplacez pas la ligne d’hier par la valeur du jour. L’historique des instantanés permet de calculer les différences entre les dates et de repérer les changements. Pour le nombre d’abonnés, calculez la différence entre deux observations réussies consécutives du même profil ; il est préférable de comparer les identifiants stables plutôt que de se fier uniquement au nom d’utilisateur, qui peut changer.
Il est judicieux de conserver les réponses brutes pendant une durée limitée si elles contiennent davantage de données que nécessaire pour le rapport. Le tableau normalisé ne doit inclure que les champs justifiés par la tâche concernée. Pour une étude publique des créateurs, cela réduit généralement le volume de données et facilite l’explication de la raison de leur collecte.
Ajoutez une exécution quotidienne et des notifications
Sur un serveur, vous pouvez lancer le script avec un ordonnanceur de tâches, comme cron ; dans un outil d’automatisation, vous pouvez le déclencher selon un calendrier et au moyen d’une requête HTTP. Le processus de base comprend un déclencheur, la lecture de la liste des profils, l’appel séquentiel de la route, la vérification de la réussite de la réponse, l’enregistrement d’une ligne dans le stockage et la préparation d’un résumé. Dans n8n ou Make, ces étapes peuvent être réparties en nœuds distincts afin que l’échec d’un profil n’interrompe pas toute la collecte.
Pour le rapport, calculez des indicateurs simples : le nombre de profils traités avec succès, ceux dont le nombre d’abonnés a changé par rapport au précédent instantané réussi, et la date de dernière mise à jour de chaque enregistrement. Une liste d’erreurs distincte aide à repérer rapidement les noms incorrects, les profils indisponibles et les problèmes temporaires de requête. Si vous ajoutez des publications, convenez d’abord de la profondeur d’historique et des champs nécessaires, puis activez la route correspondante dans la documentation.
Le paramètre de mise en cache mérite également d’être configuré avec discernement. La documentation décrit cache_timeout comme un paramètre des routes compatibles, permettant de réutiliser des résultats récents. Pour un rapport comparatif quotidien, choisissez un mode adapté au niveau de fraîcheur nécessaire ; ne mélangez pas une réponse mise en cache avec un nouveau point de référence sans le signaler dans le journal.
Ce que cette veille permet de suivre
Une fois les instantanés accumulés, l’équipe disposera d’un historique vérifiable des observations pour les profils publics sélectionnés. Elle pourra comparer l’évolution des compteurs, repérer les enregistrements qui n’ont pas été mis à jour depuis longtemps et établir une courte liste de comptes à évaluer manuellement. Si la collecte de médias est disponible pour la route et la tâche choisies, vous pouvez ajouter des publications aux profils et analyser la cadence de publication ou les formats de contenu — à condition que la documentation confirme les champs concernés.
Utilisez les métriques comme filtre pour le travail de recherche, et non comme décision automatique de collaboration. Le nombre d’abonnés ne suffit pas à décrire la pertinence de l’audience pour une marque, la qualité du contenu ou l’intérêt commercial d’un créateur. Ajoutez une vérification humaine du profil et consignez séparément les critères de sélection et la collecte technique.
Pour un essai, ouvrez la collection IG API dans Postman, configurez la clé et exécutez une requête de profil. Transférez ensuite les paramètres vérifiés dans le script ou l’automatisation. Vous disposerez ainsi d’une collecte quotidienne reproductible, d’un historique des changements et d’une base pour un rapport analytique, sans devoir commencer par écrire un parseur de pages.