API Instagram
L'API Instagram permet de consulter les profils utilisateurs, lister les publications, les reels et les médias tagués, lire les stories, obtenir les détails d'une publication, lire les commentaires et réponses, rechercher des utilisateurs et des hashtags, et parcourir le graphe social (abonnés / abonnements). Douze points d'accès, tous à 2 crédits par requête.
Points d'accès
| Point d'accès | Description |
|---|---|
POST /api/v1/instagram/profile | Obtenir un profil utilisateur par nom d'utilisateur ou user_id |
POST /api/v1/instagram/user/posts | Lister les publications d'un utilisateur (paginations) |
POST /api/v1/instagram/user/reels | Lister les reels d'un utilisateur (paginations) |
POST /api/v1/instagram/user/tagged | Lister les publications où un utilisateur est tagué (paginations) |
POST /api/v1/instagram/user/stories | Obtenir les stories actives d'un utilisateur |
POST /api/v1/instagram/post | Obtenir les détails complets d'une publication |
POST /api/v1/instagram/post/comments | Lister les commentaires sur une publication |
POST /api/v1/instagram/post/comments/replies | Lister les réponses à un commentaire spécifique |
POST /api/v1/instagram/search/users | Rechercher des utilisateurs Instagram par mot-clé |
POST /api/v1/instagram/search/hashtags | Rechercher des hashtags Instagram par mot-clé |
POST /api/v1/instagram/user/followers | Lister les abonnés d'un utilisateur |
POST /api/v1/instagram/user/followings | Lister les comptes qu'un utilisateur suit |
Authentification
| En-tête | Valeur | Requis |
|---|---|---|
Authorization | Bearer YOUR_API_KEY | Oui |
Content-Type | application/json | Oui |
Chaque réponse réussie inclut des champs de suivi des crédits : credits_used, credits_remaining, et response_time (ms).
Identifier un utilisateur
Les points d'accès utilisateur acceptent soit un username soit un user_id numérique. Passer username est l'option la plus simple ; il est automatiquement résolu en user_id. Pour les appels répétés, lisez data.user.id dans la réponse du profil et passez-le comme user_id pour éviter la recherche.
Profil utilisateur
POST https://api.scavio.dev/api/v1/instagram/profileObtenez un profil utilisateur Instagram. Passez soit username soit user_id.
Corps de la requête
| Paramètre | Type | Défaut | Description |
|---|---|---|---|
username | string | -- | Pseudo Instagram (sans @). Un de username ou user_id requis. |
user_id | string | -- | ID utilisateur numérique. Un de username ou user_id requis. |
Exemple
curl -X POST 'https://api.scavio.dev/api/v1/instagram/profile' \
-H 'Authorization: Bearer YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{"username": "instagram"}'Champs de réponse (data.user)
| Champ | Type | Description |
|---|---|---|
id | string | ID utilisateur numérique (utilisez comme user_id) |
username | string | Nom d'utilisateur (pseudo) |
full_name | string | Nom affiché |
biography | string | Texte de la bio |
external_url | string | Lien dans la bio |
profile_pic_url_hd | string | URL de l'avatar HD |
is_verified | boolean | Badge vérifié |
is_private | boolean | Compte privé |
edge_followed_by.count | number | Abonnés |
edge_follow.count | number | Abonnements |
edge_owner_to_timeline_media.count | number | Total des publications |
Exemple de réponse
{
"data": {
"user": {
"id": "25025320",
"username": "instagram",
"full_name": "Instagram",
"biography": "Découvrez la suite sur Instagram",
"is_verified": true,
"is_private": false,
"edge_followed_by": { "count": 672000000 },
"edge_follow": { "count": 250 },
"edge_owner_to_timeline_media": { "count": 7600 }
}
},
"response_time": 845,
"credits_used": 2,
"credits_remaining": 11750
}Publications de l'utilisateur
POST https://api.scavio.dev/api/v1/instagram/user/postsLister les publications d'un utilisateur (médias du fil). Passez username ou user_id.
Corps de la requête
| Paramètre | Type | Défaut | Description |
|---|---|---|---|
username | string | -- | Pseudo (sans @). Un de username ou user_id requis. |
user_id | string | -- | ID utilisateur numérique. Un de username ou user_id requis. |
count | number | 12 | Résultats par page (1-50). |
cursor | string | -- | Curseur de pagination. Utilisez data.page_info.end_cursor de la réponse précédente. |
Pagination
Utilisez data.page_info.end_cursor comme cursor dans la requête suivante. Arrêtez-vous quand data.page_info.has_next_page est false.
Reels de l'utilisateur (/api/v1/instagram/user/reels) et Publications taguées (/api/v1/instagram/user/tagged) prennent les mêmes paramètres et la même pagination que les publications de l'utilisateur, retournant respectivement les reels et les médias tagués.
Stories de l'utilisateur
POST https://api.scavio.dev/api/v1/instagram/user/storiesObtenez les stories actuellement actives d'un utilisateur. Passez username ou user_id. Retourne les URLs des médias, le type (image/vidéo) et l'horodatage de chaque story.
Détails d'une publication
POST https://api.scavio.dev/api/v1/instagram/postObtenez les détails complets d'une publication ou d'un reel. Passez un de url, media_id, ou shortcode.
Corps de la requête
| Paramètre | Type | Défaut | Description |
|---|---|---|---|
url | string | -- | URL de la publication. Supporte les chemins /p/, /reel/, /reels/, /tv/. |
media_id | string | -- | ID média numérique. |
shortcode | string | -- | Shortcode de la publication, ex. DUajw4YkorV. |
Exemple
curl -X POST 'https://api.scavio.dev/api/v1/instagram/post' \
-H 'Authorization: Bearer YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{"shortcode": "DUajw4YkorV"}'Commentaires d'une publication
POST https://api.scavio.dev/api/v1/instagram/post/commentsObtenez les commentaires sur une publication. Passez soit un shortcode soit une url de publication.
Corps de la requête
| Paramètre | Type | Défaut | Description |
|---|---|---|---|
shortcode | string | -- | Shortcode de la publication. Un de shortcode ou url requis. |
url | string | -- | URL de la publication ; le shortcode en est extrait. |
cursor | string | -- | Curseur de pagination. Utilisez data.next_min_id de la réponse précédente. |
sort_order | string | "popular" | "popular" ou "newest". |
Pagination
Utilisez data.next_min_id comme prochain cursor. Arrêtez-vous quand il est absent. Chaque commentaire expose un champ pk ; utilisez-le comme comment_id pour le point d'accès des réponses.
Réponses aux commentaires
POST https://api.scavio.dev/api/v1/instagram/post/comments/repliesObtenez les réponses à un commentaire spécifique.
Corps de la requête
| Paramètre | Type | Défaut | Description |
|---|---|---|---|
media_id | string | -- | Requis. ID média numérique de la publication. |
comment_id | string | -- | Requis. ID du commentaire parent (pk du point d'accès des commentaires). |
cursor | string | -- | Curseur de pagination. Utilisez data.next_min_child_cursor de la réponse précédente. |
Recherche d'utilisateurs
POST https://api.scavio.dev/api/v1/instagram/search/usersRecherchez des utilisateurs Instagram par mot-clé.
Corps de la requête
| Paramètre | Type | Défaut | Description |
|---|---|---|---|
keyword | string | -- | Requis. Requête de recherche (1-500 caractères). |
cursor | string | -- | Jeton de classement d'une réponse précédente pour la pagination. |
Recherche de hashtags (/api/v1/instagram/search/hashtags) prend les mêmes paramètres et retourne les hashtags correspondants avec leur nombre de médias.
Abonnés d'un utilisateur
POST https://api.scavio.dev/api/v1/instagram/user/followersObtenez la liste des abonnés d'un utilisateur. Passez username ou user_id.
Corps de la requête
| Paramètre | Type | Défaut | Description |
|---|---|---|---|
username | string | -- | Pseudo (sans @). Un de username ou user_id requis. |
user_id | string | -- | ID utilisateur numérique. Un de username ou user_id requis. |
count | number | 12 | Résultats par page (1-100). |
cursor | string | -- | Curseur de pagination. Utilisez data.next_max_id de la réponse précédente. |
Abonnements d'un utilisateur
POST https://api.scavio.dev/api/v1/instagram/user/followingsObtenez les comptes qu'un utilisateur suit. Même forme de requête et mêmes paramètres que pour les abonnés.
Référence de pagination
| Champ curseur | Points d'accès | Condition d'arrêt |
|---|---|---|
data.page_info.end_cursor | user/posts, user/reels, user/tagged | has_next_page === false |
data.next_min_id | post/comments | curseur absent |
data.next_min_child_cursor | post/comments/replies | curseur absent |
data.next_max_id | user/followers, user/followings | curseur absent |
| jeton de classement | search/users, search/hashtags | plus de résultats |
Remarques
- Chaque point d'accès coûte 2 crédits par requête.
- Les points d'accès utilisateur acceptent un
usernameou unuser_idnumérique ; le point d'accès publication accepte uneurl,media_id, oushortcode. - Les listes d'abonnés et d'abonnements ne peuvent être paginées que pour les comptes qu'Instagram le permet. Les grands comptes ou vérifiés retournent
should_limit_list_of_followers: true,has_more: false, et aucunnext_max_id-- c'est une restriction d'Instagram, pas une erreur. Testez la pagination avec un compte plus petit et non vérifié. - Voir Erreurs pour la gestion des
401,429, et502.