API de Instagram
La API de Instagram te permite consultar perfiles de usuario, listar publicaciones, reels y contenido etiquetado, leer historias, obtener detalles de publicaciones, leer comentarios y respuestas, buscar usuarios y hashtags, y navegar por el grafo social (seguidores / seguidos). Doce endpoints, todos a 2 créditos por solicitud.
Endpoints
| Endpoint | Descripción |
|---|---|
POST /api/v1/instagram/profile | Obtener perfil de usuario por nombre de usuario o user_id |
POST /api/v1/instagram/user/posts | Listar publicaciones de un usuario (paginadas) |
POST /api/v1/instagram/user/reels | Listar reels de un usuario (paginados) |
POST /api/v1/instagram/user/tagged | Listar publicaciones en las que un usuario está etiquetado (paginadas) |
POST /api/v1/instagram/user/stories | Obtener historias activas de un usuario |
POST /api/v1/instagram/post | Obtener detalles completos de una publicación |
POST /api/v1/instagram/post/comments | Listar comentarios en una publicación |
POST /api/v1/instagram/post/comments/replies | Listar respuestas a un comentario específico |
POST /api/v1/instagram/search/users | Buscar usuarios de Instagram por palabra clave |
POST /api/v1/instagram/search/hashtags | Buscar hashtags de Instagram por palabra clave |
POST /api/v1/instagram/user/followers | Listar seguidores de un usuario |
POST /api/v1/instagram/user/followings | Listar cuentas que un usuario sigue |
Autenticación
| Cabecera | Valor | Requerido |
|---|---|---|
Authorization | Bearer TU_API_KEY | Sí |
Content-Type | application/json | Sí |
Cada respuesta exitosa incluye campos de seguimiento de créditos: credits_used, credits_remaining y response_time (ms).
Identificar un usuario
Los endpoints de usuario aceptan ya sea un username o un user_id numérico. Pasar username es la opción más simple; se resuelve automáticamente a un user_id. Para llamadas repetidas, lea data.user.id de la respuesta del perfil y pase como user_id para omitir la búsqueda.
Perfil de usuario
POST https://api.scavio.dev/api/v1/instagram/profileObtener un perfil de usuario de Instagram. Pase ya sea username o user_id.
Cuerpo de la solicitud
| Parámetro | Tipo | Predeterminado | Descripción |
|---|---|---|---|
username | string | -- | Nombre de usuario de Instagram (sin @). Se requiere uno de username o user_id. |
user_id | string | -- | ID de usuario numérico. Se requiere uno de username o user_id. |
Ejemplo
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"}'Campos de respuesta (data.user)
| Campo | Tipo | Descripción |
|---|---|---|
id | string | ID de usuario numérico (usar como user_id) |
username | string | Nombre de usuario (handle) |
full_name | string | Nombre para mostrar |
biography | string | Texto de biografía |
external_url | string | Enlace en biografía |
profile_pic_url_hd | string | URL de avatar en HD |
is_verified | boolean | Insignia verificada |
is_private | boolean | Cuenta privada |
edge_followed_by.count | number | Seguidores |
edge_follow.count | number | Siguiendo |
edge_owner_to_timeline_media.count | number | Total de publicaciones |
Respuesta de ejemplo
{
"data": {
"user": {
"id": "25025320",
"username": "instagram",
"full_name": "Instagram",
"biography": "Discover what's next on 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
}Publicaciones del usuario
POST https://api.scavio.dev/api/v1/instagram/user/postsListar publicaciones de un usuario (medios de línea de tiempo). Pase username o user_id.
Cuerpo de la solicitud
| Parámetro | Tipo | Predeterminado | Descripción |
|---|---|---|---|
username | string | -- | Nombre de usuario (sin @). Se requiere uno de username o user_id. |
user_id | string | -- | ID de usuario numérico. Se requiere uno de username o user_id. |
count | number | 12 | Resultados por página (1-50). |
cursor | string | -- | Cursor de paginación. Use data.page_info.end_cursor de la respuesta anterior. |
Paginación
Use data.page_info.end_cursor como cursor en la siguiente solicitud. Deténgase cuando data.page_info.has_next_page sea false.
Reels del usuario (/api/v1/instagram/user/reels) y Publicaciones etiquetadas (/api/v1/instagram/user/tagged) toman los mismos parámetros y paginación que Publicaciones del usuario, devolviendo reels y medios etiquetados respectivamente.
Historias del usuario
POST https://api.scavio.dev/api/v1/instagram/user/storiesObtener las historias activas actuales de un usuario. Pase username o user_id. Devuelve las URLs de los medios, el tipo (imagen/video) y la marca de tiempo de cada historia.
Detalles de publicación
POST https://api.scavio.dev/api/v1/instagram/postObtener detalles completos de una sola publicación o reel. Pase uno de url, media_id o shortcode.
Cuerpo de la solicitud
| Parámetro | Tipo | Predeterminado | Descripción |
|---|---|---|---|
url | string | -- | URL de la publicación. Soporta rutas /p/, /reel/, /reels/, /tv/. |
media_id | string | -- | ID de medio numérico. |
shortcode | string | -- | Código corto de la publicación, ej. DUajw4YkorV. |
Ejemplo
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"}'Comentarios de publicación
POST https://api.scavio.dev/api/v1/instagram/post/commentsObtener comentarios en una publicación. Pase ya sea un shortcode o una url de publicación.
Cuerpo de la solicitud
| Parámetro | Tipo | Predeterminado | Descripción |
|---|---|---|---|
shortcode | string | -- | Código corto de la publicación. Se requiere uno de shortcode o url. |
url | string | -- | URL de la publicación; el código corto se extrae de ella. |
cursor | string | -- | Cursor de paginación. Use data.next_min_id de la respuesta anterior. |
sort_order | string | "popular" | "popular" o "newest". |
Paginación
Use data.next_min_id como el próximo cursor. Deténgase cuando esté ausente. Cada comentario expone un campo pk; úselo como comment_id para el endpoint de respuestas.
Respuestas a comentarios
POST https://api.scavio.dev/api/v1/instagram/post/comments/repliesObtener respuestas a un comentario específico.
Cuerpo de la solicitud
| Parámetro | Tipo | Predeterminado | Descripción |
|---|---|---|---|
media_id | string | -- | Requerido. ID de medio numérico de la publicación. |
comment_id | string | -- | Requerido. ID del comentario padre (pk del endpoint de comentarios). |
cursor | string | -- | Cursor de paginación. Use data.next_min_child_cursor de la respuesta anterior. |
Buscar usuarios
POST https://api.scavio.dev/api/v1/instagram/search/usersBuscar usuarios de Instagram por palabra clave.
Cuerpo de la solicitud
| Parámetro | Tipo | Predeterminado | Descripción |
|---|---|---|---|
keyword | string | -- | Requerido. Consulta de búsqueda (1-500 caracteres). |
cursor | string | -- | Token de rango de una respuesta anterior para paginación. |
Buscar hashtags (/api/v1/instagram/search/hashtags) toma los mismos parámetros y devuelve hashtags coincidentes con sus conteos de medios.
Seguidores del usuario
POST https://api.scavio.dev/api/v1/instagram/user/followersObtener la lista de seguidores de un usuario. Pase username o user_id.
Cuerpo de la solicitud
| Parámetro | Tipo | Predeterminado | Descripción |
|---|---|---|---|
username | string | -- | Nombre de usuario (sin @). Se requiere uno de username o user_id. |
user_id | string | -- | ID de usuario numérico. Se requiere uno de username o user_id. |
count | number | 12 | Resultados por página (1-100). |
cursor | string | -- | Cursor de paginación. Use data.next_max_id de la respuesta anterior. |
Usuarios seguidos
POST https://api.scavio.dev/api/v1/instagram/user/followingsObtener cuentas que un usuario sigue. Misma forma de solicitud y parámetros que seguidores.
Referencia de paginación
| Campo de cursor | Endpoints | Condición de parada |
|---|---|---|
data.page_info.end_cursor | user/posts, user/reels, user/tagged | has_next_page === false |
data.next_min_id | post/comments | cursor ausente |
data.next_min_child_cursor | post/comments/replies | cursor ausente |
data.next_max_id | user/followers, user/followings | cursor ausente |
| token de rango | search/users, search/hashtags | sin más resultados |
Notas
- Cada endpoint cuesta 2 créditos por solicitud.
- Los endpoints de usuario aceptan un
usernameo unuser_idnumérico; el endpoint de publicación acepta unaurl,media_idoshortcode. - Las listas de seguidores y seguidos solo son paginables para cuentas que Instagram lo permita. Las cuentas grandes o verificadas devuelven
should_limit_list_of_followers: true,has_more: falsey sinnext_max_id-- esto es una restricción de Instagram, no un error. Pruebe la paginación con una cuenta más pequeña y no verificada. - Consulte Errores para el manejo de
401,429y502.