Aller au contenu
TellMeHow Documentation

Documentation de l’API

Conventions

Formats, enveloppe des réponses, pagination par curseur, limites de débit et langue des messages.

Formats

  • Requêtes et réponses en JSON, champs en snake_case.
  • Identifiants ULID (26 caractères).
  • Dates ISO 8601 en UTC.
  • Téléversements de fichiers en multipart/form-data.

Enveloppe des réponses

Une réponse rend la ressource, ou la liste, dans data. Les listes paginées ajoutent meta avec les curseurs.

JSON
{
    "data": [
        {
            "id": "01JABCDEFGHJKMNPQRSTVWXYZ0",
            "name": "…",
            "created_at": "2026-10-11T09:00:00Z"
        }
    ],
    "meta": {
        "next_cursor": "eyJpZCI6IjAxSkFCQyJ9",
        "prev_cursor": null,
        "limit": 50
    }
}

Pagination par curseur

Les longues listes se lisent page par page : passez ?limit= (50 par défaut, 200 au plus) puis, pour la page suivante, ?cursor= avec la valeur de meta.next_cursor.

Terminal
curl "https://{votre-espace}.tellmehow.io/api/v1/engagements?limit=50&cursor=eyJpZCI6IjAxSkFCQyJ9" \
  -H "Authorization: Bearer pat_…"

meta.next_cursor vaut null sur la dernière page. Le curseur est opaque : ne le construisez pas vous-même.

Limites de débit

120 requêtes par minute et par jeton (ou par application OAuth et par membre), en plus des limites propres à certaines opérations. Au-delà, l’API répond 429 avec l’en-tête Retry-After.

Réponse
HTTP/1.1 429 Too Many Requests
Retry-After: 21
X-RateLimit-Limit: 120
X-RateLimit-Remaining: 0

{
    "code": "rate.limited",
    "message": "Trop de requêtes. Réessayez plus tard.",
    "details": {}
}

Attendez le délai indiqué avant de réessayer, et étalez les traitements en lot. Chaque refus est compté dans la consommation de l’espace.

Langue des messages

Les messages d’erreur suivent l’en-tête Accept-Language (fr, en). Les codes, eux, ne changent jamais de langue.