Tutoriales

Instagram profile en JavaScript

Una llamada autenticada a /api/v1/instagram/profile?handle=nasa, la respuesta que devolvió, y la línea que saca un campo de ella.

Lo que necesitas

Node 18 o posterior, donde fetch es global. Ningún paquete que instalar. El mismo código corre en un navegador, salvo que un navegador dejaría tu clave a la vista — llama a esto desde tu servidor.

La llamada

const url = "https://honesthook.com/api/v1/instagram/profile?handle=nasa";

const response = await fetch(url, {
  headers: { Authorization: `Bearer ${process.env.HH_KEY}` },
});

if (!response.ok) {
  throw new Error(`HTTP ${response.status}`);
}

const envelope = await response.json();
console.log(envelope.success, envelope.platform, envelope.endpoint);

Lo que volvió

{
  "success": true,
  "platform": "instagram",
  "endpoint": "instagram/profile",
  "data": {
    "author": {
      "id": "17841401474538262",
      "handle": "nasa",
      "name": "NASA",
      "followers": 104357600,
      "following": 91,
      "posts_count": 4923,
      "verified": true,
      "is_private": false
    }
  },
  "error": null,
  "cached": true
}

Respuesta registrada, capturada el 15 Sep 2026. Una llamada en vivo devuelve el valor del momento en que preguntas, no este.

Todos los campos de esa captura

En JavaScriptTipo en esta captura
envelope.successboolean
envelope.platformstring
envelope.endpointstring
envelope.data.author.idstring
envelope.data.author.handlestring
envelope.data.author.namestring
envelope.data.author.followersnumber
envelope.data.author.followingnumber
envelope.data.author.posts_countnumber
envelope.data.author.verifiedboolean
envelope.data.author.is_privateboolean
envelope.errornull
envelope.cachedboolean

Un campo que no podemos leer vuelve null, nunca 0. Un cero sería una afirmación sobre la cuenta; null es un hecho sobre nuestra recolección.

Leer un campo

console.log(envelope.data.author.followers);

envelope es el objeto del bloque de arriba. Deja la clave en el servidor: una clave enviada a un navegador es una clave que cualquiera puede leer.

La propia API de Instagram pide iniciar sesión y pasar una revisión de app antes de decirte cuántos seguidores tiene una cuenta pública. Este endpoint no: envías un GET autenticado y recibes los ocho campos normalizados en la misma forma de respuesta que devuelven todas las demás plataformas de aquí.

Qué estás llamando

Estás llamando a nuestro endpoint, no al de Instagram. La petición va a honesthook.com, lleva tu clave en una cabecera Authorization, y vuelve como JSON. Lo que Instagram exija de su lado —la página pública, la ruta que cambia sin avisar— ocurre detrás de esa única llamada y no es tu problema.

El handle del ejemplo es el que produjo la respuesta de abajo. Si lo cambias, obtienes los números de otra cuenta; la forma sigue siendo idéntica.

Antes de copiar el bloque

Pon tu clave en una variable de entorno en lugar de en el archivo. Todos los ejemplos de esta página leen HH_KEY, y el plan gratuito no pide tarjeta, así que no hay nada que proteger salvo la clave misma.

Lee con atención la sección de la respuesta antes de construir sobre un campo. Instagram publica algunas cosas en una página de perfil sin sesión y otras no — un campo que no podemos leer viene null, nunca 0.

El endpoint en sí

Parámetros, el formato del handle y lo que cuesta una llamada: instagram-api/profile.

La misma llamada en curl · Python.

Cada ejemplo de arriba corre contra el endpoint real en cuanto tengas una clave. Sin tarjeta, y la clave llega en segundos.

Consigue una clave de API gratis: 1000 créditos al mes, sin tarjeta →

← Tutoriales · instagram-api · Precios