Tutoriales

Pinterest profile en JavaScript

Una llamada autenticada a /api/v1/pinterest/profile?handle=pinterest, 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/pinterest/profile?handle=pinterest";

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": "pinterest",
  "endpoint": "pinterest/profile",
  "data": {
    "author": {
      "id": "pinterest",
      "handle": "pinterest",
      "name": "Pinterest",
      "followers": 6264894,
      "following": null,
      "posts_count": null,
      "verified": null,
      "is_private": null
    }
  },
  "error": null,
  "cached": false
}

Respuesta registrada, capturada el 27 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.followingnull
envelope.data.author.posts_countnull
envelope.data.author.verifiednull
envelope.data.author.is_privatenull
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. La lista completa de lo que esta ruta no devuelve está en pinterest-api/profile.

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.

Una página de perfil de Pinterest lleva docenas de contadores que comparten el mismo nombre. Los tableros tienen seguidores. El perfil tiene seguidores. Son números distintos sentados en el mismo documento, y una expresión regular que coge la primera coincidencia devuelve el número de un tablero con el aspecto exacto de un acierto.

Ese es el fallo que este endpoint se construyó para no tener.

De dónde sale el número

El número de seguidores se lee aquí del bloque estructurado ld+json de perfil de la página — el único sitio del documento que dice a qué entidad pertenece el número. No del marcado, y no del texto que tiene al lado.

Tú no tienes que hacer nada de eso. Haces una llamada. Pero vale la pena saberlo, porque es la diferencia entre un número que puedes publicar y un número que solo es verosímil — y un número verosímil y equivocado es el caro: nada da error, el valor parece correcto, y es el de un tablero.

Qué estás llamando

Un GET autenticado a nuestro endpoint, con tu clave en una cabecera Authorization. El handle del ejemplo es el que produjo la respuesta registrada más abajo.

Antes de copiar el bloque

Guarda la clave en una variable de entorno — los tres ejemplos leen HH_KEY.

Luego lee la lista de campos. Pinterest tiene varias insignias distintas y ninguna marca única de verificado, así que ese campo viene null en lugar de una insignia que la plataforma nunca dio.

El endpoint en sí

Parámetros, el formato del handle, lo que la ruta no devuelve y lo que cuesta una llamada: pinterest-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 · pinterest-api · Precios