Tutoriales

Linktree profile en Python

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

Lo que necesitas

Solo biblioteca estándar — urllib y json vienen con Python 3. No hay nada que instalar con pip.

La llamada

import json
import os
import urllib.request

url = "https://honesthook.com/api/v1/linktree/profile?handle=comedycentral"

request = urllib.request.Request(
    url,
    headers={"Authorization": "Bearer " + os.environ["HH_KEY"]},
)

with urllib.request.urlopen(request, timeout=30) as response:
    envelope = json.load(response)

print(envelope["success"], envelope["platform"], envelope["endpoint"])

Lo que volvió

{
  "success": true,
  "platform": "linktree",
  "endpoint": "linktree/profile",
  "data": {
    "author": {
      "id": "1847312",
      "handle": "comedycentral",
      "name": "Comedy Central",
      "followers": null,
      "following": null,
      "posts_count": null,
      "verified": null,
      "is_private": null
    },
    "items": [
      { "title": "Stream Comedy Central Shows on Paramount+", "url": "http://www.paramountplus.com/", "position": 1 },
      { "title": "Tales From The Trip Merch", "url": "https://comedycentralstore.com/collections/comedy-central", "position": 2 },
      { "title": "Comedy Central Merch Store", "url": "https://bit.ly/33Zo0Lp", "position": 3 },
      { "title": "Comedy Central YouTube", "url": "https://www.youtube.com/comedycentral", "position": 4 },
      { "title": "Animated YouTube", "url": "https://www.youtube.com/channel/UCqp9YsX6sR7i93CY4yGsAow", "position": 5 },
      { "title": "Stand-Up YouTube", "url": "https://www.youtube.com/standup", "position": 6 },
      { "title": "cc.com", "url": "http://www.cc.com/", "position": 7 }
    ]
  },
  "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 PythonTipo en esta captura
envelope["success"]boolean
envelope["platform"]string
envelope["endpoint"]string
envelope["data"]["author"]["id"]string
envelope["data"]["author"]["handle"]string
envelope["data"]["author"]["name"]string
envelope["data"]["author"]["followers"]null
envelope["data"]["author"]["following"]null
envelope["data"]["author"]["posts_count"]null
envelope["data"]["author"]["verified"]null
envelope["data"]["author"]["is_private"]null
envelope["data"]["items"]array (7 in this capture)
envelope["error"]null
envelope["cached"]boolean

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 linktree-api/profile.

Leer un campo

print(envelope["data"]["items"])

envelope es el dict del bloque de arriba. os.environ lanza un error si la clave no está definida, lo que es mejor que enviar la palabra None como bearer token.

Este endpoint es el raro del conjunto, y vale la pena saber por qué antes de escribir el código: Linktree no tiene número de seguidores. No es un número que no hayamos sabido leer — no existe en la plataforma.

Así que cinco de los ocho campos de autor vienen null — followers, following y posts_count, más verified e is_private — y lo que de verdad venías a buscar está en items: la lista de enlaces, en el orden en que su dueño los puso.

Lee la lista, no los contadores

Si copias un fragmento del tutorial de otra plataforma y lo apuntas a Linktree, vas a imprimir None o null y concluir que la llamada falló. No falló. Mira items.

El position de cada elemento es el orden en que llegan los enlaces — nuestro, derivado, empezando en uno. No es el número propio de Linktree. Los valores internos de Linktree son una clave dispersa, no un rango, y publicarlos como posición convertiría un identificador en una clasificación que nunca fue.

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. Las miniaturas de los enlaces y los parámetros de campaña que algunos llevan están deliberadamente fuera de aquí.

El endpoint en sí

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

La misma llamada en curl · 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 · linktree-api · Precios