Bases de l'API REST
Les mêmes opérations que les outils MCP, sous forme de JSON sur HTTP. Les formes à connaître et où se trouve la référence complète.
L'API REST est destinée aux scripts d'intégration continue et aux clients sans MCP. Mêmes opérations, mêmes validations, même structure d'erreurs que les outils.
Bases
- URL de base :
https://app.tileset.com. - Authentification :
Authorization: Bearer <API key>à chaque appel. Voir Clés d'API. - Les corps sont au format JSON. Une valeur incorrecte renvoie une erreur avec
field,receivedetallowed, afin qu'un script puisse se corriger. La création d'un widget et la modification d'un autre refusent une valeur incorrecte de la même manière.
Les appels que vous utiliserez
| Appel | Fait |
|---|---|
POST /v1/sources | Connectez une source : type, "mode": "live", plus l'un des suivants : query (Google), channelHandle (YouTube), pinterestUrl (Pinterest : lien de profil ou de tableau), xHandle (X : @handle ou lien de profil), twitchChannel (Twitch : nom de chaîne ou lien twitch.tv), kickChannel (Kick : nom de chaîne ou lien kick.com). label est facultatif : laissez-le de côté et la source portera le nom de son compte ou de son entreprise (une source de témoignages ne prend que type et label). Sans "mode": "live" vous obtenez une source de démonstration avec un contenu d'exemple ; avec lui, une requête à laquelle manque le champ de son type reçoit une réponse 400 qui nomme le champ. |
GET /v1/sources, GET/PATCH/DELETE /v1/sources/:id | Lister, lire, modifier ou supprimer des sources. PATCH prend label (renommer), updateEvery, manualOnly et schedule. Un PATCH avec plusieurs parties les enregistre toutes ou aucune |
POST /v1/sources/:id/testimonials, GET /v1/sources/:id/testimonials | Ajoutez jusqu'à 20 témoignages (ils attendent l'approbation dans le tableau de bord), ou comptez ceux en attente, approuvés et filtrés (seuls les témoignages envoyés via le lien sont vérifiés, jamais ce qu'une clé ajoute). Une clé ne relit jamais les entrées. Approuver, refuser (un par un ou plusieurs à la fois), modifier, supprimer, l'ordre et mettre en pause ou reprendre le lien répondent à une clé API avec 403 : une personne fait cela dans le tableau de bord |
GET /v1/sources/:id/content | Comptes pour le choix d'un design : nombre d'éléments, leurs dates et rythme, notes, photos et vidéos, formes des images, longueurs de texte, systèmes d'écriture et réponses du propriétaire. Jamais les éléments. |
GET/POST /v1/bio, GET/PATCH/DELETE /v1/bio/:id | Lister ou créer des pages « Link in bio » (name, les champs de la page, et slug à partir de Starter et supérieur ; sans l'un d'eux, la page se voit attribuer une adresse), et lire, modifier (blocks remplace la liste, style ne modifie que les clés que vous envoyez) ou supprimer une page. POST /v1/bio/:id/blocks ajoute des blocs, GET /v1/bio/slug?slug=<slug> vérifie si une adresse est libre, et GET /v1/bio/:id/analytics?days=7|30|90 renvoie les vues et les clics sur les liens (les 7 derniers jours nécessitent un plan supérieur). Une adresse occupée répond 409 ; une page dépassant le nombre du plan ou un champ restreint répond 403 |
POST /v1/widgets | Créer un widget à partir d'une source (sourceId, type, plus les options), ou à partir de jusqu'à quatre avec sourceIds pour un flux mixte |
GET /v1/widgets, GET/PATCH/DELETE /v1/widgets/:id | Lister, lire, modifier ou supprimer des widgets |
POST /v1/widgets/:id/check-page | Vérifier une page pour ce widget (url) : la même vérification que l'outil verify_install. Répond verified, ce qu'il a trouvé dans lines, et hints avec une correction pour chaque erreur courante. Une adresse locale ou privée est refusée avec 400 ; 30 vérifications par heure |
GET /v1/credits, PATCH /v1/credits | Solde et projection ; définir le plafond mensuel |
GET /v1/prices | Public, sans clé : ce que coûte une mise à jour par type de source |
GET /v1/widgets/:id/content | Public, avec CORS : lecture propre de l'intégration, pour affichage via le widget uniquement (pas une API de données) |
POST /v1/hooks/:secret | Webhook d'une source (sans clé ; le secret est l'identifiant) |
Un compte peut contenir au maximum 200 widgets.
Comptes, jamais contenu
Une clé ne lit jamais votre contenu : aucun appel ne répond avec un post ou un avis. Pour voir le résultat, ouvrez https://app.tileset.com/preview/<widgetId>, le widget tel que les visiteurs le voient. L'erreur d'une source échouée se lit comme une phrase fixe.
Utilisation équitable
Les limites d'utilisation équitable répondent 429 avec reason, why, limit et retryAt, plus un en-tête Retry-After : attendez jusque-là, ne réessayez pas plus tôt. Une recherche de nom d'entreprise dépassant la limite du jour répond également 429. Une nouvelle source Google dépassant le nombre partagé du jour se connecte avec queued, et liste avec firstFetchQueued vrai jusqu'à ce que ses avis arrivent après 00:00 UTC.
Référence complète
La référence complète et actuelle est llms.txt. Elle est construite à partir de la même source que les outils MCP, donc les deux sont toujours d'accord. Votre page elle-même n'appelle jamais l'API : elle ne charge que le script du widget.