HasData Instagram MCP Server

Perfiles públicos de Instagram y feeds de publicaciones por usuario, con hashtags y menciones analizados.

Documentación

Servidor MCP de Instagram

Un servidor de Model Context Protocol (MCP) alojado que ofrece a Claude, Cursor, Windsurf y cualquier otro cliente MCP dos herramientas de solo lectura para Instagram. Busca un perfil público por su nombre de usuario y recorre su feed de publicaciones públicas, todo como JSON estructurado.

Lee datos públicos de cuentas. No actúa como una cuenta. No hay nada que conectar y ninguna cuenta tuya está involucrada en el flujo.

1,000 créditos gratis cada mes, sin necesidad de tarjeta, lo que equivale a 100 llamadas a Instagram.

https://mcp.hasdata.com/mcp?apis=instagram

Glama score tool contract MCP Tools

Contenido

Lo que necesitas

Un cliente MCP que hable HTTP transmisible con cabeceras personalizadas. Una clave de API de HasData desde el panel de control, gratuita de crear sin tarjeta, y el plan gratuito cubre 100 llamadas al mes. Nada más. Este es un servidor remoto, así que el camino más simple es una URL y una cabecera, sin contenedor que ejecutar. Un cliente que solo admita stdio puede usar el lanzador @hasdata/instagram-mcp (npm) o hasdata-instagram-mcp (PyPI) en su lugar.

Inicio rápido

URLhttps://mcp.hasdata.com/mcp?apis=instagram
TransporteHTTP, transmisible
Cabecera de autenticaciónx-api-key: HASDATA_API_KEY

La URL del servidor es la misma para todos los clientes. Lo ejecutamos de forma práctica en Claude Code y Claude Desktop. Los demás bloques siguen el formato documentado de cada cliente para un servidor remoto.

Los clientes con soporte OAuth pueden añadir la misma URL como conector e iniciar sesión sin poner una clave en un archivo de configuración.

Claude Code
claude mcp add --transport http instagram "https://mcp.hasdata.com/mcp?apis=instagram" \
  --header "x-api-key: HASDATA_API_KEY"
Claude Desktop

Claude Desktop solo carga servidores locales (stdio) desde su archivo de configuración, por lo que llega a un servidor remoto a través de un lanzador stdio. El paquete @hasdata/instagram-mcp es ese lanzador, y lee la clave desde el entorno.

claude_desktop_config.json:

{
  "mcpServers": {
    "instagram": {
      "command": "npx",
      "args": ["-y", "@hasdata/instagram-mcp"],
      "env": { "HASDATA_API_KEY": "YOUR_KEY" }
    }
  }
}

¿Python en lugar de Node? Cambia el lanzador por el paquete de PyPI, que uvx ejecuta sin instalación manual:

{
  "mcpServers": {
    "instagram": {
      "command": "uvx",
      "args": ["hasdata-instagram-mcp"],
      "env": { "HASDATA_API_KEY": "YOUR_KEY" }
    }
  }
}

Un cliente con soporte OAuth puede, en su lugar, añadir la URL como conector personalizado y omitir el lanzador.

Cursor

.cursor/mcp.json:

{
  "mcpServers": {
    "instagram": {
      "url": "https://mcp.hasdata.com/mcp?apis=instagram",
      "headers": { "x-api-key": "HASDATA_API_KEY" }
    }
  }
}
Windsurf

~/.codeium/windsurf/mcp_config.json:

{
  "mcpServers": {
    "instagram": {
      "serverUrl": "https://mcp.hasdata.com/mcp?apis=instagram",
      "headers": { "x-api-key": "HASDATA_API_KEY" }
    }
  }
}
Cline
{
  "mcpServers": {
    "instagram": {
      "url": "https://mcp.hasdata.com/mcp?apis=instagram",
      "type": "streamableHttp",
      "headers": { "x-api-key": "HASDATA_API_KEY" },
      "disabled": false
    }
  }
}
VS Code

.vscode/mcp.json:

{
  "servers": {
    "instagram": {
      "type": "http",
      "url": "https://mcp.hasdata.com/mcp?apis=instagram",
      "headers": { "x-api-key": "HASDATA_API_KEY" }
    }
  }
}
Gemini CLI

~/.gemini/settings.json:

{
  "mcpServers": {
    "instagram": {
      "httpUrl": "https://mcp.hasdata.com/mcp?apis=instagram",
      "headers": { "x-api-key": "HASDATA_API_KEY" }
    }
  }
}

Ejemplos de prompts

Cada uno de estos es una llamada a una herramienta, salvo que el recuento indique lo contrario.

Obtén el perfil de @nasa y dime el número de seguidores, si está verificado y todos los enlaces de la biografía.

Una llamada, 10 créditos. Para una cuenta pública, la respuesta del perfil ya incluye las doce publicaciones más recientes, así que una pregunta de seguimiento sobre actividad reciente no necesita una segunda llamada.

Compara @nasa, @natgeo y @bbcearth en seguidores, cuentas seguidas y si cada una está verificada.

Tres llamadas, 30 créditos. Una por nombre de usuario.

Recorre las últimas cincuenta publicaciones de @nasa y lista cada hashtag con la frecuencia con la que aparece.

Cinco llamadas, 50 créditos. Doce publicaciones llegan por llamada, y cincuenta requieren cinco páginas.

Para las últimas doce publicaciones de @natgeo, lista las cuentas mencionadas en cada pie de foto y el tipo de cada publicación.

Una llamada, 10 créditos. Las menciones y los hashtags llegan ya extraídos del pie de foto en los objetos de publicación.

Dos cosas hacen que esto funcione. Los hashtags y las menciones llegan como arrays extraídos del pie de foto, y un agente los cuenta en lugar de ejecutar una expresión regular sobre el texto. Y una búsqueda de perfil devuelve el feed reciente en la misma respuesta. Por eso tantas preguntas de investigación se resuelven en una sola llamada.

Herramientas

HerramientaQué devuelve
hasdata_instagram_comments_getInstagramCommentsObtiene los comentarios de una publicación o reel público por su URL y devuelve la publicación en sí con su pie de foto, medios, likesCount, commentsCount y timestamp, y luego cada comentario con su texto, número de me gusta, marca de tiempo y autor. 10 créditos por llamada
hasdata_instagram_posts_getInstagramPostsObtiene las publicaciones más recientes de una cuenta pública de Instagram por nombre de usuario (handle) y devuelve cada publicación con su id, shortcode, pie de foto, tipo, productType, enlace permanente, URLs de medios y tamaño en píxeles, recuentos de me gusta y comentarios, la hora de publicación, además de hashtags, menciones, usuarios etiquetados y miembros de carrusel. 10 créditos por llamada
hasdata_instagram_profile_getInstagramProfileObtiene un perfil público de Instagram por nombre de usuario (handle) y devuelve id, nombre completo, biografía, enlaces de la biografía, URL de la foto de perfil, recuentos de seguidores y seguidos, el indicador de verificado y las doce publicaciones más recientes. 10 créditos por llamada

Tres herramientas, todas de solo lectura. Dos se basan en el handle de una cuenta pública, la tercera en la URL de una publicación individual. Los ejemplos siguientes están recortados de llamadas reales, y los números en ellos cambian a medida que las cuentas publican. Léelos como formas. El nombre de cada herramienta enlaza a su referencia de endpoint.

Los ejemplos son el payload, no la respuesta completa. Un resultado de tools/call lleva un bloque de texto, y ese texto es en sí mismo JSON que contiene url, status, text y json, con los datos extraídos bajo json. Desde una respuesta JSON-RPC cruda, la ruta es result.content[0].text, parseado, y luego .json. Un cliente de chat lo desenvuelve por ti, y el código que habla directamente con el endpoint no lo hace.

Obtener un perfil de Instagram

hasdata_instagram_profile_getInstagramProfile

Un perfil público por handle.

ParámetroTipoObligatorioNotas
handlestringsíNombre de usuario sin el @, tal como aparece en la URL del perfil

Devuelve id, username, fullName, biography, verified, los contadores followersCount y followsCount, profilePicUrl, el fbid interno, el array bioLinks y latestPosts.

Lo que está garantizado y lo que no, medido en veinte cuentas: id, username, followersCount, followsCount, profilePicUrl y fbid llegaron siempre. fullName, biography, verified, bioLinks y latestPosts llegaron para todas las cuentas públicas y son los que se deben leer con un valor predeterminado.

Una cuenta privada responde con private: true y poco más. Sin biografía, sin contadores más allá de los números de seguidores, sin publicaciones. Ramifica en ese indicador antes de tocar el resto del payload.

bioLinks es un array de objetos, no de cadenas. Cada entrada lleva url, title, el envoltorio redirectUrl propio de Instagram y linkType. Lee .url cuando quieras el destino.

{
  "id": "528817151",
  "username": "nasa",
  "fullName": "NASA",
  "biography": "Making the seemingly impossible, possible. ✨",
  "verified": true,
  "followersCount": 104345698,
  "followsCount": 91,
  "profilePicUrl": "https://scontent.cdninstagram.com/v/t51.2885-19/…",
  "fbid": "17841401474538262",
  "bioLinks": [
    {
      "url": "https://www.nasa.gov",
      "title": "NASA.gov Homepage",
      "redirectUrl": "https://l.instagram.com/?u=https%3A%2F%2Fwww.nasa.gov%2F&e=…",
      "linkType": "external"
    }
  ],
  "latestPosts": [ "…the most recent posts, same shape as the posts tool…" ]
}

Obtener publicaciones de Instagram

hasdata_instagram_posts_getInstagramPosts

El feed de publicaciones públicas de un handle, página por página.

ParámetroTipoObligatorioNotas
handlestringsíNombre de usuario sin el @
limitnumberLímite aproximado de publicaciones en una respuesta. Doce es el máximo real, y valores mayores no obtienen más
nextPageTokenstringEl pagination.nextPageToken de la respuesta anterior

limit es un tope aproximado, no un recuento exacto. Doce publicaciones son una página de Instagram y el techo máximo para una sola llamada, y limit: 50 devuelve doce. Por debajo del techo, el recuento se acerca al número que pediste sin coincidir siempre, y qué tan cerca depende de la cuenta. Medido en @nasa, un límite de 2 devolvió 4 publicaciones, 6 devolvió 6, 11 devolvió 10 y 13 devolvió 12. Trátalo como "no más de aproximadamente esta cantidad" y lee la longitud del array en lugar de asumirlo.

La respuesta lleva posts y pagination, y nada más. Las versiones anteriores repetían los campos de identidad de la cuenta junto al feed, por lo que el código escrito para esa forma necesita una llamada de perfil para el nombre y el avatar.

Cada publicación lleva id, shortcode, caption, type, productType, url, ownerUsername, ownerId, displayUrl y images, el tamaño en píxeles como dimensionsWidth y dimensionsHeight, y hasdataLink, un enlace listo para usar al endpoint de comentarios de esa publicación. hashtags y mentions aparecen solo cuando el pie de foto los tiene. Un carrusel lleva sus miembros en childPosts, y taggedUsers lista las cuentas etiquetadas en el medio.

Los contadores de interacción llegan con el feed. Cada publicación lleva likesCount y commentsCount, y la hora de publicación dos veces: timestamp como instante ISO completo y publishDate como día calendario. Clasificar un feed por popularidad o filtrarlo por fecha no necesita una segunda llamada. Esto cambió el 2026-10-07; las versiones anteriores del payload no llevaban ninguno de los cuatro.

{
  "posts": [
    {
      "id": "3983374110243288826",
      "shortcode": "DdHyaYAifb6",
      "caption": "Cementing their names in history.\n\nThe Artemis III crew is leaving their mark […] @NASAKennedy",
      "type": "Carousel",
      "productType": "carousel_container",
      "mentions": ["@NASAKennedy", "@EuropeanSpaceAgency", "@Astro_Luca"],
      "url": "https://www.instagram.com/p/DdHyaYAifb6/",
      "hasdataLink": "https://api.hasdata.com/scrape/instagram/comments?url=…",
      "commentsCount": 1053,
      "likesCount": 121490,
      "dimensionsWidth": 1440,
      "dimensionsHeight": 1800,
      "displayUrl": "https://scontent.cdninstagram.com/v/t51.…",
      "images": ["https://scontent.cdninstagram.com/v/t51.…"],
      "timestamp": "2026-09-10T21:20:24.000Z",
      "publishDate": "2026-09-10",
      "ownerUsername": "nasa",
      "ownerId": "528817151",
      "taggedUsers": [{ "id": "549403870", "username": "nasakennedy", "fullName": "NASA's Kennedy Space Center" }],
      "childPosts": [{ "id": "3983374043612570267", "type": "Image", "productType": "carousel_item" }]
    }
  ],
  "pagination": {
    "morePostsAvailable": true,
    "nextPageToken": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9…",
    "hasdataLink": "https://api.hasdata.com/scrape/instagram/posts?handle=nasa&nextPageToken=…"
  }
}

Los hashtags y las menciones conservan sus prefijos # y @, lo que importa si los estás uniendo contra una lista que construiste tú mismo. morePostsAvailable es el indicador en el que ramificar al paginar, y hasdataLink es la misma página siguiente expresada como URL REST, útil cuando quieres reproducir la llamada de un agente a mano.

Obtener los comentarios de una publicación

hasdata_instagram_comments_getInstagramComments

El hilo de comentarios bajo una publicación o reel, y la publicación en sí.

ParámetroTipoObligatorioNotas
urlstringsíUn enlace de /p/, /reel/ o /tv/, con o sin el segmento de nombre de usuario
nextPageTokenstringToken de la respuesta anterior
includeMusicbooleanDevuelve también el sonido de un reel en post.music, tanto para pistas con licencia como para audio original

Usa esto cuando el hilo de comentarios en sí es el objetivo. El objeto post repite las cifras de interacción que el feed ya lleva, por lo que clasificar o fechar un feed no necesita esta llamada, y gastar una solicitud por publicación para recopilar números que llegaron con el feed es un desperdicio.

Devuelve post, comments y pagination. Un comentario lleva id, text, timestamp, likesCount y un owner con id, username y profilePicUrl. pagination informa moreCommentsAvailable junto a nextPageToken, por lo que un recorrido puede detenerse sin gastar una solicitud para descubrir el final.

{
  "post": {
    "shortcode": "DdHyaYAifb6",
    "type": "Carousel",
    "productType": "carousel_container",
    "ownerUsername": "nasa",
    "timestamp": "2026-09-10T21:20:24.000Z",
    "likesCount": 120648,
    "commentsCount": 1020
  },
  "comments": [
    {
      "id": "18188486875408374",
      "text": "I like to become a astronomer",
      "timestamp": "2026-10-05T07:38:17.000Z",
      "likesCount": 0,
      "owner": { "id": "40744210101", "username": "nisha_karippolil" }
    }
  ],
  "pagination": { "moreCommentsAvailable": true, "nextPageToken": "…" }
}

Prompts y recursos

El servidor incluye un prompt, un flujo de trabajo listo para usar que un cliente puede ofrecer en lugar de hacer que el usuario componga una llamada a una herramienta.

PromptQué hace
instagram_profileBusca un perfil público de Instagram.

La lista se sirve sin clave de API, por lo que un cliente puede leerla antes de que un usuario se haya registrado.

Errores y rutas de fallo

Su cliente casi nunca ve un código de error HTTP de una llamada a una herramienta. La capa MCP responde con 200 y coloca el fallo dentro del resultado, con isError establecido en true y el motivo como texto. El agente lee un mensaje donde podría esperar una línea de estado.

Una clave incorrecta aparece como salida de herramienta, no como una conexión fallida. Listar herramientas acepta cualquier clave no vacía, y el cliente completa su handshake y muestra verde. La primera llamada a una herramienta regresa entonces con isError: true y el texto HasData API error: 401 Unauthorized. Preste atención a esa cadena, porque nada antes en el flujo reporta el problema.

Una clave faltante es el único error HTTP real. La autorización se ejecuta antes de cualquier herramienta, y la conexión misma falla con 401.

Un argumento que rompe el esquema se rechaza antes de convertirse en una solicitud. El servidor responde con isError: true y el texto MCP error -32602: Input validation error, nombrando el campo. No se obtiene nada y no se cobra nada.

Un identificador que no se resuelve es un error limpio, no datos vacíos. Devuelve isError: true con HasData API error: 400 Bad Request y requestMetadata.status establecidos en error. Este es el caso bueno, porque el fallo es inequívoco. Pruebe la bandera en lugar de la longitud del arreglo.

Una cuenta cuyos datos no son públicos no devuelve un feed de publicaciones. Las herramientas cubren cuentas públicas, y no hay nada que leer en una que no lo sea. Trate un latestPosts faltante como fuera de alcance y no como un feed vacío.

Los resultados que contienen datos también incluyen un requestMetadata.id que vale la pena citar en soporte, además de enlaces html y json al artefacto almacenado de esa llamada exacta.

Precios, nivel gratuito y límites

Cada herramienta de Instagram cuesta 10 créditos por llamada exitosa. El tamaño de la respuesta no cambia el precio. Un perfil con doce publicaciones adjuntas cuesta lo mismo que uno sin ninguna.

El nivel gratuito es de 1,000 créditos cada mes sin tarjeta, o 100 llamadas de Instagram. Se renueva con el ciclo de facturación, por lo que un agente de bajo volumen funciona en el nivel gratuito indefinidamente.

Los planes de pago comienzan en $59 al mes por 200,000 créditos, o 20,000 llamadas. El precio unitario baja con el volumen, desde $2.95 por 1,000 llamadas en el plan de entrada hasta $1.19 en Basic y $0.83 en los niveles Growth. Las cifras actuales están en la página de precios.

Su plan también establece la concurrencia. El nivel gratuito permite 1 solicitud a la vez, Startup 5, Basic 15, y los niveles Growth van de 50 a 500. Maneje el caso de desbordamiento de forma defensiva en cualquier cosa desatendida, porque un agente que se expande entre identificadores alcanzará el límite antes que usted.

Paginación cuesta una llamada cada vez. Un prompt que recorre cien publicaciones en dos cuentas son dieciocho llamadas y 180 créditos. El nivel gratuito rinde más en comparaciones de perfiles que en rastreos profundos de feeds.

Selección de herramientas

?apis=instagram expone exactamente estas dos herramientas. El parámetro toma una lista, y ?apis=instagram,tiktok,youtube le da a su agente tres plataformas sociales a la vez. Elimine el parámetro y obtiene todo lo que HasData expone, que actualmente son 57 herramientas.

Una lista reducida suele ser el mejor valor predeterminado. Un modelo que elige entre dos herramientas acierta más a menudo que uno que elige entre cincuenta y siete, y las descripciones de las herramientas cuestan contexto en cada turno.

La comparación entre plataformas es la razón habitual para ampliar la lista. Haga la misma pregunta a un identificador de Instagram y a uno de TikTok y es un solo prompt una vez que ambos están expuestos.

Cómo se compara

Casi todos los servidores MCP de Instagram hacen algo diferente a este, y eso hace que la elección sea inusualmente clara.

Los populares operan una cuenta. Algunos envuelven la API Graph de Instagram para publicar publicaciones, leer comentarios y gestionar las cuentas que usted administra. Otros manejan mensajes directos. Los servidores de análisis de engagement piden INSTAGRAM_USERNAME y INSTAGRAM_PASSWORD en un bloque de entorno, según sus propias instrucciones de configuración, porque inician sesión y navegan como usted. Todos esos son la herramienta adecuada cuando el trabajo es administrar una cuenta que usted controla.

Este servidor nunca inicia sesión como nadie, lo cual es un trabajo diferente. Cada pregunta que responde es sobre un identificador que usted no posee, y la llamada es idéntica sea cual sea ese identificador.

Servidor que opera cuentasEste servidor
Cómo actúaSu cuenta, mediante un token o una sesiónNada, lee datos públicos
Qué configuraCredenciales o una app de Graph API, por cuentaUna clave API, una vez
Qué identificadores cubreLas cuentas que usted administraCualquier identificador público
Publicación y mensajeríaSí, ese es el puntoNo se ofrece
SalidaLimitada a la cuenta que usted operaJSON para cualquier identificador público, hashtags y menciones analizados
Qué ejecutaUn proceso de Python o Node localmenteUna URL y un encabezado
CostoGratis10 créditos por llamada

Dos filas lo deciden. Si necesita publicar, comentar o responder, este servidor no puede ayudarle en absoluto. Si necesita los mismos campos en cien identificadores con los que no tiene relación, un servidor construido alrededor de sus propias credenciales tampoco puede ayudarle.

El eje decisivo es el alcance, no el pulido. Un servidor construido alrededor de su propio inicio de sesión solo puede alcanzar las cuentas que usted administra, por muy buena que sea su salida. Este responde la misma pregunta para cualquier identificador público, y los campos regresan como arreglos analizados que no cuestan nada agregar.

Lo que este servidor no hace. Sin comentarios, sin historias, sin reels más allá de lo que reporta el feed, sin mensajes directos, sin búsqueda de hashtags o ubicaciones, y nada que escriba. Lee dos cosas bien.

Preguntas frecuentes

¿Qué es un servidor MCP de Instagram?

Un servidor que expone datos de Instagram como herramientas que un cliente de IA puede llamar. El cliente envía una llamada de herramienta a través del Protocolo de Contexto de Modelo, el servidor obtiene los datos y devuelve JSON estructurado, y el modelo trabaja con el resultado y nunca ve una página de HTML. Este expone dos herramientas de solo lectura y se ejecuta de forma remota. El cliente se conecta a una URL y no inicia ningún proceso local.

¿Existe un servidor MCP oficial de Instagram?

Meta no publica uno de propósito general. Hay un MCP oficial para publicidad de Meta, y cubre cuentas publicitarias y campañas, no datos de perfiles y publicaciones. Todo lo demás en este espacio está construido por otra persona.

¿Qué datos están en alcance?

Campos públicos de perfil y el feed público de publicaciones, para cuentas públicas, por identificador. Una cuenta privada aún devuelve su encabezado, los conteos de seguidores y seguidos, y una bandera private: true, pero sin biografía ni publicaciones, ya que no hay feed público que leer. Usted es responsable de cómo usa los resultados, incluido el cumplimiento de los términos de Instagram y de la ley que le aplica.

¿Necesito alojar o ejecutar algo?

No. Este es un servidor MCP remoto en HTTP transmisible. Nada que instalar, sin entorno de Python, sin proceso que reiniciar.

¿Los datos son en vivo o en caché?

En vivo. Cada llamada obtiene datos en el momento de la solicitud y lleva su propio requestMetadata.id. Dos llamadas idénticas son dos obtenciones separadas y no una reproducción de una copia almacenada. Contadores como seguidores y me gusta siguen a la cuenta y se mueven conforme ella se mueve.

¿Cuántas publicaciones puedo obtener?

Doce por llamada, una página de Instagram, y las páginas adicionales vienen de pagination.nextPageToken. Para una cuenta pública, la búsqueda de perfil incluye las mismas doce sin costo adicional, por lo que preguntas cortas sobre el feed a menudo no necesitan ninguna llamada de publicaciones.

¿Qué sucede cuando Instagram cambia su marcado?

Nada de su lado. Nosotros rastreamos los cambios y mantenemos estable el esquema de respuesta, y los nombres y tipos de campos permanecen igual. Un campo sin valor está ausente del elemento en lugar de presente y nulo, y por eso los campos opcionales deben leerse con un valor predeterminado.

¿Puedo usar un servidor para varias plataformas?

Sí. El parámetro apis toma una lista, y ?apis=instagram,tiktok,youtube le da a su agente tres plataformas a la vez.

¿Qué clientes funcionan?

Cualquier cliente MCP que admita HTTP transmisible con encabezados personalizados. Las configuraciones anteriores están probadas. Los clientes con soporte OAuth pueden agregar la URL como conector en su lugar.

Enlaces de HasData

Páginas de producto y constructor de solicitudesAPI de Perfil de Instagram y API de Publicaciones de Instagram
Documentación del servidorDocs del servidor MCP
Las 57 herramientas en un solo servidorHasData/hasdata-mcp
Tutoriales para clientesClientes MCP e integraciones
Las otras plataformas que analizamos53 APIs de scraping más
Planes y costos de créditosPlanes y costos de créditos
Claves y usoPanel de HasData
Lanzador de Node en npm@hasdata/instagram-mcp
Lanzador de Python en PyPIhasdata-instagram-mcp

Desarrollo

Este repositorio es configuración y documentación para un servidor remoto. No hay paso de compilación ni nada que contenerizar.

Sí incluye una prueba de contrato. El README promete dos herramientas con parámetros específicos, y la lista de herramientas ascendente puede cambiar sin una confirmación aquí, y eso dejaría este archivo mintiéndole silenciosamente. La prueba afirma la promesa y se ejecuta semanalmente en CI, así como en cada push.

HASDATA_API_KEY=your_key_here npm test

En PowerShell:

$env:HASDATA_API_KEY = "your_key_here"; npm test

La última verificación hace una llamada real y cuesta 10 créditos, que es el precio de un canario que puede fallar por la razón correcta. Listar herramientas tiene éxito con cualquier clave no vacía, y una prueba que solo lista herramientas permanece en verde con una revocada.

Contribuciones

Las correcciones a las tablas de herramientas y a los ejemplos de respuesta son la contribución más útil, porque esas son las partes que se desvían. Incluya la llamada que hizo y la respuesta que obtuvo. Las solicitudes de extracción de forks ejecutan la suite sin clave, y las verificaciones en vivo se omiten en lugar de ponerse en rojo.

Licencia

MIT. Consulte LICENCIA.