Tutoriales

Mastodon profile en curl

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

Lo que necesitas

curl viene con macOS y con la mayoría de las distribuciones de Linux, y con Windows 10 y posteriores. No hay nada que instalar.

La llamada

curl -H "Authorization: Bearer $HH_KEY" \
  "https://honesthook.com/api/v1/mastodon/profile?handle=Gargron@mastodon.social"

Lo que volvió

{
  "success": true,
  "platform": "mastodon",
  "endpoint": "mastodon/profile",
  "data": {
    "author": {
      "id": "https://mastodon.social/users/Gargron",
      "handle": "Gargron@mastodon.social",
      "name": "Eugen Rochko",
      "followers": 382854,
      "following": 743,
      "posts_count": 82332,
      "verified": null,
      "is_private": false
    }
  },
  "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 curlTipo en esta captura
.successboolean
.platformstring
.endpointstring
.data.author.idstring
.data.author.handlestring
.data.author.namestring
.data.author.followersnumber
.data.author.followingnumber
.data.author.posts_countnumber
.data.author.verifiednull
.data.author.is_privateboolean
.errornull
.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 mastodon-api/profile.

Leer un campo

curl -H "Authorization: Bearer $HH_KEY" \
  "https://honesthook.com/api/v1/mastodon/profile?handle=Gargron@mastodon.social" \
  | jq -r '.data.author.followers'

jq es una herramienta aparte — no viene con curl. Sin ella el comando de arriba imprime el envoltorio completo, que es el bloque de abajo.

Mastodon no es un sitio. Son miles de servidores que se ponen de acuerdo en un protocolo, y ese único hecho decide cómo llamas a este endpoint.

El handle tiene que llevar su instancia

@name por sí solo no identifica a nadie en una red federada — el mismo nombre local existe en cientos de servidores, y pertenece a personas distintas. Así que aquí el handle es siempre user@instance, y un handle sin instancia se rechaza con un 400 en lugar de adivinarse.

La misma lógica gobierna el id que recibes: es la URI de ActivityPub, no un número. Los ids numéricos son locales a un servidor, y la misma cuenta tiene uno distinto en cada instancia que la ha visto. Un número quedaría más limpio y estaría equivocado en el momento en que compararas dos instancias.

Qué estás llamando

Un GET autenticado a nuestro endpoint, con tu clave en una cabecera Authorization. La petición se enruta a la instancia de origen de la cuenta, que es la autoritativa. El handle del ejemplo es el que produjo la respuesta registrada más abajo — fíjate en la @ dentro de la cadena de consulta; ahí es legal y no necesita escaparse.

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: Mastodon verifica enlaces, no identidades, así que el campo de verificado se queda en null en lugar de dar por identidad comprobada lo que es una comprobación de enlace.

El endpoint en sí

Parámetros, el formato del handle, lo que la ruta no devuelve y lo que cuesta una llamada: mastodon-api/profile.

La misma llamada en Python · JavaScript.

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 · mastodon-api · Precios