Necesitas una API para obtener detalles del perfil de Instagram que puedas implementar esta semana. Al final de esta guía, podrás obtener el perfil de un usuario (id, nombre de usuario, conteos, verificación, privacidad), y sabrás cómo leer reels, publicaciones e historias destacadas utilizando endpoints listos para producción en Zyla API Hub.
Qué obtienes de esta API
La API de Datos de Perfil y Medios de Instagram expone endpoints de solo lectura para recuperar:
- Detalles del perfil por nombre de usuario: id, avatar, biografía, conteos de seguidores/seguidos, banderas de verificación y privacidad, y total de publicaciones.
- Detalles de la publicación por URL o id: título, autor, conteos, lista de medios y enlaces de descarga.
- Detalles del reel por URL o id: autor, conteos, título, tiempo de creación y una URL de descarga.
- Detalles de la historia destacada por id de destacado: título, total de historias, y tipo de medio de cada historia, marcas de tiempo, miniaturas y enlaces de descarga.
Estos endpoints alimentan perfiles orientados al usuario, paneles de CRM y enriquecimiento, herramientas de moderación/revisión de contenido, y flujos de trabajo de ingestión de medios donde debes resolver un recurso público de Instagram en campos estructurados que puedes almacenar en caché e indexar.
Comenzando en Zyla API Hub
Abre la página del mercado para la API, suscríbete y obtén tu clave. La primera API ofrece una prueba de 7 días o 50 solicitudes; consulta la página de la API para conocer las opciones de acceso y precios actuales. La autenticación es a través del encabezado HTTP: Authorization: Bearer YOUR_API_KEY.
- Comienza la prueba de 7 días en la API de Datos de Perfil y Medios de Instagram
- Navega más de 10,000 APIs públicas en Zyla API Hub
Endpoint: Obtener Detalles del Perfil
Recupera datos del perfil para un nombre de usuario de Instagram dado.
- Método: GET
- URL: https://zylalabs.com/api/12390/instagram-profile-and-media-data-api/23416/get-profile-details
- Parámetros de consulta requeridos:
- username (string) — el nombre de usuario de Instagram a resolver
Ejemplo de cURL
curl -s -X GET "https://zylalabs.com/api/12390/instagram-profile-and-media-data-api/23416/get-profile-details?username=a92_mm" \
-H "Authorization: Bearer YOUR_API_KEY"
Respuesta oficial
{
"data": {
"id": "8640409651",
"username": "a92_mm",
"fullName": "",
"avatarUrl": "https://scontent-sea5-1.cdninstagram.com/v/t51.2885-19/117330532_764310710994941_3178952573818498232_n.jpg?_nc_cat=105&ig_cache_key=GGRS-gb9R230IrcCALjsQ_iF6B0sbkULAAAB0j-ccb7-5&ccb=7-5&_nc_sid=669407&efg=eyJ2ZW5jb2RlX3RhZyI6InByb2ZpbGVfcGljLnd3dy42NTYuQzMifQ%3D%3D&_nc_ohc=UhqRB5XucjcQ7kNvwHzZrZa&_nc_oc=AdqQKMjA1CNJE2cZFGaOKLPAekcrEXjIih5fmtbyZIyBJ-ZZBqfAyZouTn139aCO8yM&_nc_zt=24&_nc_ht=scontent-sea5-1.cdninstagram.com&_nc_ss=7b62e&oh=00_AQSK1vbEqHI8iXnKTfwnP4mNcPHclgCyRAq7u5j4Lij_Pg&oe=6AE96358",
"biography": "",
"category": "",
"bioLinks": [],
"linkedFacebookInfo": null,
"followerCount": 5,
"followingCount": 34,
"isPrivateAccount": true,
"isVerified": false,
"totalPosts": 9
}
}
Notas:
- Los conteos son enteros que puedes mostrar directamente.
- isPrivateAccount controla si debes intentar obtener medios para vistas previas de la interfaz de usuario.
- avatarUrl es una URL de CDN adecuada para renderizado directo; considera almacenar en caché.
Ejemplo en Python
Este ejemplo llama al mismo endpoint y extrae los campos que normalmente almacenarás.
import os
import requests
API_KEY = os.getenv("ZYLA_API_KEY", "YOUR_API_KEY")
USERNAME = "a92_mm"
url = "https://zylalabs.com/api/12390/instagram-profile-and-media-data-api/23416/get-profile-details"
params = {"username": USERNAME}
headers = {"Authorization": f"Bearer {API_KEY}"}
resp = requests.get(url, params=params, headers=headers, timeout=20)
resp.raise_for_status()
data = resp.json().get("data", {})
profile = {
"id": data.get("id"),
"username": data.get("username"),
"full_name": data.get("fullName"),
"avatar_url": data.get("avatarUrl"),
"bio": data.get("biography"),
"followers": data.get("followerCount"),
"following": data.get("followingCount"),
"is_private": data.get("isPrivateAccount"),
"is_verified": data.get("isVerified"),
"total_posts": data.get("totalPosts"),
}
print(profile)
Endpoint: Obtener Detalles de la Publicación
Recupera información detallada sobre una publicación específica utilizando un id o una URL canónica de Instagram.
- Método: GET
- URL: https://zylalabs.com/api/12390/instagram-profile-and-media-data-api/23420/get-post-details
- Parámetros de consulta requeridos:
- idOrUrl (string) — p. ej. https://www.instagram.com/p/DfALy1PTBSa/
Ejemplo de cURL
La respuesta devuelve campos como id, código, título, createdAt (segundos de época Unix), autor (id, nombre de usuario, nombre completo, verificado, url de imagen de perfil), totalMedia, estadísticas (likeCount, commentCount), y mediaList con entradas de downloadUrl.
Endpoint: Obtener Detalles del Reel
Recupera información detallada sobre un reel específico de Instagram por id o URL.
- Método: GET
- URL: https://zylalabs.com/api/12390/instagram-profile-and-media-data-api/23421/get-reel-details
- Parámetros de consulta requeridos:
- idOrUrl (string) — p. ej. https://www.instagram.com/reel/DctYV2qt6S5/
Ejemplo de cURL
La respuesta incluye campos de nivel superior como id, código, createdAt (segundos de época Unix), título, estadísticas (commentCount, likeCount), autor (id, nombre de usuario, nombre completo, verificado, url de imagen de perfil), y un downloadUrl.
Endpoint: Obtener Detalles de la Historia Destacada
Recupera todas las historias dentro de un destacado específico de Instagram utilizando el id de destacado.
- Método: GET
- URL: https://zylalabs.com/api/12390/instagram-profile-and-media-data-api/23422/get-highlight-story-details
- Parámetros de consulta requeridos:
- id (string) — el id de destacado, p. ej. 17910014403011985
Ejemplo de cURL
La respuesta devuelve campos de nivel destacado como id, título, totalStories, y un array de historias con el id de cada historia, mediaType (IMAGEN o VIDEO), createdAt (segundos de época Unix), thumbnailUrl, y downloadUrl.
Notas de implementación práctica
- Marcas de tiempo: los valores de createdAt son segundos de época Unix. Convierte a la zona horaria de tu aplicación al mostrar.
- Almacenamiento en caché: los campos de perfil y los avatares de autor cambian con poca frecuencia; almacena en caché durante minutos a horas. Las URLs de medios son enlaces de CDN y pueden expirar; actualiza según sea necesario.
- Privacidad: si isPrivateAccount es verdadero, no asumas que puedes acceder a medios a través de otros endpoints. Protege tu interfaz de usuario y trabajos en segundo plano en consecuencia.
- Manejo de medios: los campos de downloadUrl son enlaces directos. Transfiere a almacenamiento en lugar de hacer un proxy a través de tu API para reducir la salida.
- Manejo de errores: trata los errores no 2xx como transitorios a menos que valides el nombre de usuario/URL de antemano. Registra el nombre de usuario solicitado o idOrUrl y el estado HTTP.
- Cuotas: la facturación es suscripción + cuota, no pago por llamada. Realiza un seguimiento de tus conteos de llamadas y utiliza almacenamiento en caché para mantenerte dentro de los límites del plan.
Ejemplos de flujo de trabajo de extremo a extremo
Enriquecimiento del perfil para un formulario de registro
- El usuario ingresa un nombre de usuario de Instagram en tu producto.
- Llama a Obtener Detalles del Perfil con el nombre de usuario y almacena id, followerCount, isPrivateAccount, isVerified, y avatarUrl.
- Renderiza el avatar y la insignia de verificación en tu interfaz de usuario. Desactiva las vistas previas de medios cuando isPrivateAccount sea verdadero.
Pipeline de ingestión editorial
- El editor pega una URL de publicación en tu CMS.
- Llama a Obtener Detalles de la Publicación con idOrUrl y extrae título, author.username, statistics.likeCount, y mediaList[0].downloadUrl.
- Coloca en cola un descargador para obtener los medios a través de downloadUrl y almacenarlos en tu CDN. Almacena en caché los metadatos de la publicación para una carga rápida de la página.
Instantánea de análisis de reels
- Un trabajo nocturno itera una lista de URLs de reels.
- Llama a Obtener Detalles del Reel para cada uno y guarda statistics.commentCount y statistics.likeCount con una marca de tiempo para gráficos de tendencias.
Galería destacada
- Dado un id de destacado conocido, llama a Obtener Detalles de la Historia Destacada.
- Lista las historias en orden cronológico por createdAt. Usa thumbnailUrl para la vista previa en cuadrícula y limita las solicitudes de tamaño completo detrás de un clic.
Llama a la API desde agentes de IA a través de MCP
Cada API de Zyla es accesible desde herramientas de desarrollo compatibles con MCP (Claude Code, Cursor, Windsurf, etc.) utilizando el endpoint MCP en: https://mcp.zylalabs.com/mcp?apikey=YOUR_API_KEY. Esto te permite conectar un agente para llamar a los mismos endpoints de Instagram que viste arriba sin tener que implementar código de red personalizado dentro del agente.
Aprende más y conecta tu clave en el endpoint MCP aquí: MCP.
Por qué implementar esto con Zyla
- Una cuenta, una clave, una suscripción para cada API que agregues a tu pila.
- Autenticación Bearer consistente y endpoints alojados en el hub, para que no tengas que lidiar con SDKs por proveedor.
- Agrega más capacidades en cualquier momento navegando por Zyla API Hub y suscribiéndote con la misma identidad de facturación.
Hoja de trucos de mapeo de campos
- Perfiles: id, username, fullName, avatarUrl, biography, followerCount, followingCount, isPrivateAccount, isVerified, totalPosts.
- Publicaciones: id, code, title, createdAt, author{ id, username, fullName, isVerified, profilePictureUrl }, totalMedia, statistics{ likeCount, commentCount }, mediaList[ ].
- Reels: id, code, createdAt, title, statistics{ commentCount, likeCount }, author{ ... }, downloadUrl.
- Historias destacadas: id, title, totalStories, stories[ { id, mediaType, createdAt, thumbnailUrl, downloadUrl } ].
Lista de verificación de envío
- Almacena el id del perfil junto al nombre de usuario para claves foráneas estables.
- Normaliza las marcas de tiempo a UTC y formatea en el cliente.
- Retrocede y vuelve a intentar en errores HTTP transitorios; corta en 4xx con validación.
- Almacena en caché los detalles del perfil y las imágenes de autor; establece un TTL que se ajuste a tu cuota.
- Protege las obtenciones de medios con isPrivateAccount y maneja arrays de medios vacíos de manera segura.
FAQ
¿Qué autenticación utiliza esta API?
Utiliza el encabezado Authorization: Bearer YOUR_API_KEY en cada solicitud.
¿Puedo consultar por nombre de usuario para perfiles y por URL para medios?
Sí. Obtener Detalles del Perfil utiliza el nombre de usuario. Obtener Detalles de la Publicación y Obtener Detalles del Reel aceptan idOrUrl, por lo que puedes pasar una URL canónica de Instagram.
¿En qué zona horaria están las fechas?
Los campos createdAt son segundos de época Unix (UTC). Convierte del lado del cliente a la zona horaria de tu usuario.
¿Cómo se maneja la facturación?
Zyla utiliza suscripción + cuota, no pago por llamada. La primera API ofrece una prueba de 7 días o 50 solicitudes; consulta la página de la API para conocer las opciones de acceso y precios actuales.
¿Puedo invocar estos endpoints desde un agente de codificación de IA?
Sí. Utiliza el endpoint MCP en https://mcp.zylalabs.com/mcp?apikey=YOUR_API_KEY. Ver: MCP.
¿Listo para implementar búsquedas de perfiles y obtenciones de medios? Crea tu cuenta, obtén una clave de API y comienza tu prueba de 7 días en la página de listado: Comienza la prueba de 7 días en la API de Datos de Perfil y Medios de Instagram.