# API : liens de tracking, domaines, pixels et statistiques

_API · Lecture de 9 min · Mis à jour 2026-10-22 · https://lanachat.ai/guides/fr/api-tracking/_

Un **lien de tracking** envoie un visiteur vers une créatrice sur Telegram et compte ce qui suit : clics, conversations, premiers messages, acheteurs et revenus. Les liens peuvent être hébergés sur votre propre **domaine**, déclencher des **pixels** publicitaires (Meta, TikTok, Snap) et envoyer des **événements** serveur. Ces points d’accès correspondent à la page **Tracking**.

## Endpoints

| Method | Path | Description | Permission | Status |
|---|---|---|---|---|
| GET | `/links` | Liste des liens (`creator_id=`, `archived=false`) avec leurs compteurs | `can_tracking` ou `can_sales_read` | Planned |
| POST | `/links` | Créer un lien | `can_tracking` | Planned |
| GET | `/links/{id}` | Un lien | `can_tracking` ou `can_sales_read` | Planned |
| PUT | `/links/{id}` | Remplacer un lien (nom, slug, domaine, destination, UTM, pixels) | `can_tracking` | Planned |
| DELETE | `/links/{id}` | Archiver un lien (`permanent=1` le supprime) | `can_tracking` | Planned |
| GET | `/domains` | Vos domaines (`status=active,inactive`, `q=`) | `can_tracking` | Planned |
| POST | `/domains` | Ajouter un domaine (statut `pending`) | `can_tracking` | Planned |
| POST | `/domains/{host}/verify` | Vérifier ses enregistrements DNS maintenant | `can_tracking` | Planned |
| PATCH | `/domains/{host}` | Faire d’un domaine vérifié le domaine par défaut, ou changer son label | `can_tracking` | Planned |
| DELETE | `/domains/{host}` | Supprimer un domaine non utilisé par un lien actif | `can_tracking` | Planned |
| GET | `/pixels` | Connexions Meta, TikTok et Snap et mode consentement | `can_tracking` | Planned |
| PUT | `/pixels/{provider}` | Connecter ou remplacer un pixel (`meta`, `tiktok`, `snap`) | `owner` | Planned |
| DELETE | `/pixels/{provider}` | Déconnecter un pixel | `owner` | Planned |
| POST | `/pixels/{provider}/test` | Envoyer un événement test et retourner la réponse de la plateforme | `can_tracking` | Planned |
| PUT | `/pixels/consent` | Mode consentement : `page` ou `implicit_by_country` | `owner` | Planned |
| GET | `/events` | Événements intégrés et personnalisés, avec compteurs sur 7 jours | `can_tracking` | Planned |
| POST | `/events` | Créer un événement personnalisé | `owner` | Planned |
| PATCH | `/events/{id}` | Activer ou désactiver un événement par réseau | `owner` | Planned |
| DELETE | `/events/{id}` | Supprimer un événement personnalisé | `owner` | Planned |
| GET | `/stats` | Totaux journaliers, par lien et par source (`from=`, `to=`, `creator_id=`) | `can_sales_read` | Planned |
| GET | `/stats/export.csv` | Les mêmes chiffres au format CSV | `can_sales_read` | Planned |

## L’objet lien

```json
{
  "id": "lnk_3",
  "name": "TikTok · Lea night",
  "slug": "lea-tiktok-night",
  "creator_id": "cr_lea",
  "source": "tiktok",
  "campaign": "Autumn",
  "domain": "go.mia-links.com",
  "public_url": "https://go.mia-links.com/r/lea-tiktok-night",
  "destination": "pool",
  "account_id": null,
  "utm": { "source": "tiktok", "medium": "social", "campaign": "autumn" },
  "pixels": { "meta": false, "tiktok": true, "snap": false },
  "counters": { "clicks": 640, "conversations": 97, "first_messages": 76, "buyers": 14, "revenue_stars": 6200 },
  "archived": false,
  "created_at": "2026-09-12T08:00:00Z"
}
```

| Field | Type | Description |
|---|---|---|
| `id` | string | Commence par `lnk_` |
| `name` | string | Le nom visible par votre équipe |
| `slug` | string | La fin de l’URL publique |
| `creator_id` | string | La créatrice vers laquelle le lien redirige |
| `source`, `campaign` | string | Origine du trafic et nom de votre campagne |
| `domain` | string | Un domaine vérifié de l’espace de travail, ou le domaine LanaChat |
| `public_url` | string | `https://<domain>/r/<slug>` : URL à mettre dans une bio ou une pub |
| `destination` | string | `pool` ou `account` |
| `account_id` | string ou null | Le compte fixe quand `destination` est `account` |
| `utm` | object | `source`, `medium`, `campaign` |
| `pixels` | object | Pixels connectés déclenchés par ce lien |
| `counters` | object | `clicks`, `conversations`, `first_messages`, `buyers`, `revenue_stars` |
| `archived` | boolean | Les liens archivés sont exclus des stats |
| `created_at` | string | ISO 8601, UTC |

- `destination` est `pool` (le compte est choisi au clic parmi le pool de la créatrice, voir [pools](https://lanachat.ai/guides/fr/api-telegram-accounts/)) ou `account` (toujours le même `account_id`).
- `slug` : lettres minuscules, chiffres et tirets, 1 à 48 caractères, commence et finit par une lettre ou un chiffre, unique parmi les liens actifs du même domaine.
- `domain` doit être un domaine vérifié de l’espace de travail ; sinon le domaine LanaChat est utilisé.
- Valeurs `utm` : jusqu’à 80 lettres, chiffres, points, tirets ou underscores. Elles sont ajoutées à chaque clic et transmises aux événements pixel.

## L’objet domaine

```json
{
  "host": "go.mia-links.com",
  "builtin": false,
  "status": "pending",
  "error": null,
  "ssl": "none",
  "is_default": false,
  "label": "Lea TikTok",
  "token": "8be03d5f19a2",
  "checks": 0,
  "added_at": "2026-10-05T10:00:00Z",
  "verified_at": null,
  "last_check_at": null
}
```

| Field | Type | Description |
|---|---|---|
| `host` | string | Un sous-domaine en minuscules (au moins 3 labels), unique dans l’espace de travail |
| `builtin` | boolean | `true` pour le domaine LanaChat, qui ne peut jamais être supprimé |
| `status` | string | `verified`, `pending` ou `error` |
| `error` | string ou null | Phrase claire quand `status` est `error` |
| `ssl` | string | `none`, `issuing` ou `active` |
| `is_default` | boolean | Exactement un domaine vérifié est le domaine par défaut |
| `label` | string ou null | Un nom pour votre équipe, jusqu’à 60 caractères |
| `token` | string | Valeur de l’enregistrement TXT de vérification |
| `checks` | number | Nombre de vérifications DNS effectuées |
| `added_at`, `verified_at`, `last_check_at` | string ou null | ISO 8601, UTC |

## L’objet connexion pixel

```json
{ "connected": true, "pixel_id": "123456789012345", "token_last4": "x9Qa", "token_status": "valid", "token_error": null, "test_event_code": "TEST4821", "connected_at": "2026-10-06T14:30:00Z" }
```

| Field | Type | Description |
|---|---|---|
| `connected` | boolean | Le pixel est connecté |
| `pixel_id` | string | Meta : 15 ou 16 chiffres. TikTok : 20 lettres majuscules ou chiffres. Snap : un UUID |
| `token_last4` | string | Les 4 derniers caractères du token d’accès, jamais le token complet |
| `token_status` | string | `valid`, `expired` ou `invalid` |
| `token_error` | string ou null | Phrase claire, par exemple « Access token expired on 3 Oct. Replace it to resume delivery. » |
| `test_event_code` | string ou null | Code test du gestionnaire d’événements de la plateforme |
| `connected_at` | string | ISO 8601, UTC |

## L’objet événement

```json
{
  "id": "evt_purchase",
  "name": "Purchase",
  "builtin": true,
  "trigger": { "type": "purchase" },
  "networks": { "meta": true, "tiktok": true, "snap": false }
}
```

| Field | Type | Description |
|---|---|---|
| `id` | string | Identifiant de l’événement |
| `name` | string | Nom intégré, ou votre nom personnalisé : une lettre, puis jusqu’à 39 lettres, chiffres ou underscores, unique dans l’espace de travail |
| `builtin` | boolean | `true` pour Lead, Contact, Purchase, Subscribe et InitiateCheckout |
| `trigger` | object | `type`, et une `value` pour les triggers qui en ont besoin |
| `networks` | object | Activé ou désactivé pour `meta`, `tiktok` et `snap` |

## L’objet stats

```json
{
  "days":    [ { "date": "2026-10-05", "clicks": 54, "conversations": 9, "first_messages": 7, "buyers": 2, "revenue_stars": 950 } ],
  "links":   [ { "link_id": "lnk_3", "clicks": 640, "conversations": 97, "first_messages": 76, "buyers": 14, "revenue_stars": 6200 } ],
  "sources": [ { "source": "instagram", "clicks": 1210, "conversations": 160, "first_messages": 131, "buyers": 22, "revenue_stars": 9100 } ]
}
```

| Field | Type | Description |
|---|---|---|
| `days` | array | Une ligne par jour UTC de la période |
| `links` | array | Une ligne par lien, sur toute la période |
| `sources` | array | Une ligne par groupe de source : `instagram`, `tiktok`, `snapchat`, `meta`, `x` et `other` |
| `clicks` | number | Redirections servies |
| `conversations` | number | Conversations Telegram démarrées via le lien |
| `first_messages` | number | Fans ayant écrit au moins une fois |
| `buyers` | number | Fans distincts avec un achat Stars vérifié dans la période |
| `revenue_stars` | number | Achats Stars vérifiés de ces fans dans la période |

## Liens

### Lister les liens

`GET /links` · `can_tracking` ou `can_sales_read`

| Parameter | Type | Required | Description |
|---|---|---|---|
| `creator_id` | string | Non | Liens de cette seule créatrice |
| `archived` | boolean | Non | `false` (vue par défaut) masque les liens archivés |
| `limit`, `cursor` | number, string | Non | [Pagination](https://lanachat.ai/guides/fr/api-overview/) |

```bash
curl "https://api.lanachat.ai/v1/links?creator_id=cr_lea&archived=false" \
  -H "Authorization: Bearer $LANACHAT_TOKEN"
```

La réponse est une liste paginée d’objets lien, chacun avec ses `counters`.

### Créer un lien

`POST /links` · `can_tracking`

| Parameter | Type | Required | Description |
|---|---|---|---|
| `name` | string | Oui | Le nom visible par votre équipe |
| `slug` | string | Oui | Lettres minuscules, chiffres et tirets, 1 à 48 caractères |
| `creator_id` | string | Oui | La créatrice vers laquelle le lien redirige |
| `source` | string | Non | `instagram`, `tiktok`, `snapchat`, `meta`, `x` ou autre source |
| `campaign` | string | Non | Nom de votre campagne |
| `destination` | string | Non | `pool` ou `account` |
| `account_id` | string | Quand `destination` est `account` | Le compte Telegram fixe |
| `domain` | string | Non | Domaine vérifié ; sinon domaine LanaChat |
| `utm` | object | Non | `source`, `medium`, `campaign` |
| `pixels` | object | Non | `meta`, `tiktok`, `snap` : `true` pour activer ce pixel |

```bash
curl -X POST https://api.lanachat.ai/v1/links \
  -H "Authorization: Bearer $LANACHAT_TOKEN" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"name": "Insta bio · Lea", "slug": "lea-bio", "creator_id": "cr_lea", "source": "instagram", "destination": "pool", "domain": "go.mia-links.com"}'
```

```json
{
  "id": "lnk_9",
  "name": "Insta bio · Lea",
  "slug": "lea-bio",
  "creator_id": "cr_lea",
  "source": "instagram",
  "campaign": null,
  "domain": "go.mia-links.com",
  "public_url": "https://go.mia-links.com/r/lea-bio",
  "destination": "pool",
  "account_id": null,
  "utm": { "source": null, "medium": null, "campaign": null },
  "pixels": { "meta": false, "tiktok": false, "snap": false },
  "counters": { "clicks": 0, "conversations": 0, "first_messages": 0, "buyers": 0, "revenue_stars": 0 },
  "archived": false,
  "created_at": "2026-10-06T14:40:00Z"
}
```

- Un slug déjà utilisé répond `409` avec `The slug /lea-bio is already used by "Insta bio · Mia".`
- Un domaine non vérifié répond `400` ("Pick a verified domain…").

### Obtenir un lien

`GET /links/{id}` · `can_tracking` ou `can_sales_read`

```bash
curl https://api.lanachat.ai/v1/links/lnk_3 \
  -H "Authorization: Bearer $LANACHAT_TOKEN"
```

La réponse est l’objet lien. Un id inconnu répond `404`.

### Remplacer un lien

`PUT /links/{id}` · `can_tracking`

Même corps que **Créer un lien** ; `PUT` remplace tout le lien, envoyez donc tous les champs à conserver.

```bash
curl -X PUT https://api.lanachat.ai/v1/links/lnk_3 \
  -H "Authorization: Bearer $LANACHAT_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"name": "TikTok · Lea night", "slug": "lea-tiktok-night", "creator_id": "cr_lea", "source": "tiktok", "campaign": "Autumn", "destination": "pool", "domain": "go.mia-links.com", "utm": {"source": "tiktok", "medium": "social", "campaign": "autumn"}, "pixels": {"meta": false, "tiktok": true, "snap": false}}'
```

La réponse est le lien mis à jour. Mêmes erreurs qu’à la création.

### Archiver ou supprimer un lien

`DELETE /links/{id}` · `can_tracking`

| Parameter | Type | Required | Description |
|---|---|---|---|
| `permanent` | number | Non | `1` supprime définitivement au lieu d’archiver |

```bash
curl -X DELETE https://api.lanachat.ai/v1/links/lnk_3 \
  -H "Authorization: Bearer $LANACHAT_TOKEN"
```

Un lien archivé est exclu des statistiques.

## Domaines

Pour utiliser votre propre domaine, ajoutez-le, créez deux enregistrements DNS, puis vérifiez-le :

- `CNAME go.mia-links.com → links.lanachat.app`
- `TXT _lanachat.go.mia-links.com = lanachat-verify=8be03d5f19a2`

Les domaines en attente sont aussi vérifiés toutes les 10 minutes pendant 72 heures, puis quotidiennement. Le `status` devient `verified` et le `ssl` passe de `issuing` à `active`.

### Lister les domaines

`GET /domains` · `can_tracking`

| Parameter | Type | Required | Description |
|---|---|---|---|
| `status` | string | Non | `active` (vérifié) ou `inactive` (en attente ou erreur) |
| `q` | string | Non | Partie du host ou du label |

```bash
curl "https://api.lanachat.ai/v1/domains?status=active" \
  -H "Authorization: Bearer $LANACHAT_TOKEN"
```

La réponse liste des objets domaine, domaine LanaChat inclus (`builtin: true`).

### Ajouter un domaine

`POST /domains` · `can_tracking`

| Parameter | Type | Required | Description |
|---|---|---|---|
| `host` | string | Oui | Un sous-domaine, par exemple `go.mia-links.com` |

```bash
curl -X POST https://api.lanachat.ai/v1/domains \
  -H "Authorization: Bearer $LANACHAT_TOKEN" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"host": "go.mia-links.com"}'
```

La réponse est le nouveau domaine avec `status: "pending"` et son `token` pour l’enregistrement TXT. Le host est nettoyé (minuscules, pas de `https://`, pas de chemin). Les domaines racines, `*.lanachat.app` et un domaine déjà ajouté répondent `400` avec un message.

### Vérifier un domaine

`POST /domains/{host}/verify` · `can_tracking`

```bash
curl -X POST https://api.lanachat.ai/v1/domains/go.mia-links.com/verify \
  -H "Authorization: Bearer $LANACHAT_TOKEN" \
  -H "Idempotency-Key: $(uuidgen)"
```

```json
{ "host": "go.mia-links.com", "builtin": false, "status": "verified", "error": null, "ssl": "issuing", "is_default": false, "label": null, "token": "8be03d5f19a2", "checks": 3, "added_at": "2026-10-05T10:00:00Z", "verified_at": "2026-10-06T14:45:00Z", "last_check_at": "2026-10-06T14:45:00Z" }
```

Quand un enregistrement est incorrect, `status` est `error` et `error` indique lequel, par exemple « The CNAME record points to another service. » Le domaine LanaChat ne peut pas être vérifié (son DNS est géré par LanaChat).

### Modifier un domaine

`PATCH /domains/{host}` · `can_tracking`

| Parameter | Type | Required | Description |
|---|---|---|---|
| `is_default` | boolean | Non | `true` pour en faire le domaine par défaut ; l’ancien domaine par défaut cesse de l’être |
| `label` | string ou null | Non | Un nom pour votre équipe, jusqu’à 60 caractères |

```bash
curl -X PATCH https://api.lanachat.ai/v1/domains/go.mia-links.com \
  -H "Authorization: Bearer $LANACHAT_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"is_default": true}'
```

Seul un domaine vérifié peut être le domaine par défaut. Le domaine LanaChat refuse un label (`403`).

### Supprimer un domaine

`DELETE /domains/{host}` · `can_tracking`

```bash
curl -X DELETE https://api.lanachat.ai/v1/domains/go.mia-links.com \
  -H "Authorization: Bearer $LANACHAT_TOKEN"
```

Supprimer le domaine LanaChat, le domaine par défaut ("Set another default domain first") ou un domaine utilisé par des liens actifs ("Used by N active links across all creators") répond `409`.

## Pixels

Les événements sont envoyés serveur à serveur, dédupliqués avec le pixel navigateur via le même `event_id`, avec l’id Telegram du fan haché (SHA-256), jamais en clair. Sans consentement aucun événement n’est envoyé, jamais. Un pixel ne se déclenche que pour les liens qui l’activent.

### Lire les connexions pixel

`GET /pixels` · `can_tracking`

```bash
curl https://api.lanachat.ai/v1/pixels \
  -H "Authorization: Bearer $LANACHAT_TOKEN"
```

La réponse contient un objet connexion pixel pour chacun de `meta`, `tiktok` et `snap`, et le `mode` de consentement.

### Connecter un pixel

`PUT /pixels/{provider}` · `owner`

| Parameter | Type | Required | Description |
|---|---|---|---|
| `pixel_id` | string | Oui | Meta : 15 ou 16 chiffres. TikTok : 20 lettres majuscules ou chiffres. Snap : un UUID |
| `access_token` | string | Oui | Token Conversions API de la plateforme |
| `test_event_code` | string | Non | Code test de la plateforme |

```bash
curl -X PUT https://api.lanachat.ai/v1/pixels/meta \
  -H "Authorization: Bearer $LANACHAT_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"pixel_id": "123456789012345", "access_token": "EAAG…", "test_event_code": "TEST4821"}'
```

```json
{ "connected": true, "pixel_id": "123456789012345", "token_last4": "x9Qa", "token_status": "valid", "token_error": null, "test_event_code": "TEST4821", "connected_at": "2026-10-06T14:30:00Z" }
```

Le token d’accès est stocké chiffré et jamais renvoyé : seul `token_last4` est visible. Un pixel mal formaté ou un token vide répond `400`.

### Déconnecter un pixel

`DELETE /pixels/{provider}` · `owner`

```bash
curl -X DELETE https://api.lanachat.ai/v1/pixels/meta \
  -H "Authorization: Bearer $LANACHAT_TOKEN"
```

### Envoyer un événement test

`POST /pixels/{provider}/test` · `can_tracking`

```bash
curl -X POST https://api.lanachat.ai/v1/pixels/meta/test \
  -H "Authorization: Bearer $LANACHAT_TOKEN" \
  -H "Idempotency-Key: $(uuidgen)"
```

```json
{ "ok": true, "status": 200, "body": "{\"events_received\":1}" }
```

`status` et `body` sont la réponse directe de la plateforme, vous voyez donc exactement ce que Meta, TikTok ou Snap ont répondu.

### Configurer le mode consentement

`PUT /pixels/consent` · `owner`

| Parameter | Type | Required | Description |
|---|---|---|---|
| `mode` | string | Oui | `page` : écran de consentement pour chaque fan avant ouverture de Telegram. `implicit_by_country` : écran seulement dans l’UE, l’EEE, le Royaume-Uni et la Suisse |

```bash
curl -X PUT https://api.lanachat.ai/v1/pixels/consent \
  -H "Authorization: Bearer $LANACHAT_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"mode": "implicit_by_country"}'
```

## Événements

Événements intégrés : Lead (conversation démarrée via un lien), Contact (premier message fan), Purchase (vente vérifiée), Subscribe, InitiateCheckout. Les événements personnalisés ont un trigger : `sale_over` (vente au-dessus d’un montant en dollars US), `tag_added` (un tag), `nth_message` (le Nième message fan, 2 ou plus) ou `offer_viewed`.

### Lister les événements

`GET /events` · `can_tracking`

```bash
curl https://api.lanachat.ai/v1/events \
  -H "Authorization: Bearer $LANACHAT_TOKEN"
```

La réponse liste des objets événement avec leurs livraisons acceptées et échouées sur 7 jours, par réseau.

### Créer un événement personnalisé

`POST /events` · `owner`

| Parameter | Type | Required | Description |
|---|---|---|---|
| `name` | string | Oui | Une lettre, puis jusqu’à 39 lettres, chiffres ou underscores ; unique dans l’espace de travail |
| `trigger` | object | Oui | `type` : `sale_over`, `tag_added`, `nth_message` ou `offer_viewed` ; `value` pour les trois premiers |
| `networks` | object | Non | `meta`, `tiktok`, `snap` : `true` pour l’envoyer là |

```bash
curl -X POST https://api.lanachat.ai/v1/events \
  -H "Authorization: Bearer $LANACHAT_TOKEN" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"name": "BigSpender", "trigger": {"type": "sale_over", "value": 50}, "networks": {"meta": true, "tiktok": true, "snap": false}}'
```

La réponse est le nouvel événement (`201`). Un nom déjà utilisé répond `409`.

### Activer ou désactiver un événement

`PATCH /events/{id}` · `owner`

| Parameter | Type | Required | Description |
|---|---|---|---|
| `networks` | object | Oui | `meta`, `tiktok`, `snap` : `true` ou `false` |

```bash
curl -X PATCH https://api.lanachat.ai/v1/events/evt_purchase \
  -H "Authorization: Bearer $LANACHAT_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"networks": {"meta": true, "tiktok": true, "snap": true}}'
```

### Supprimer un événement personnalisé

`DELETE /events/{id}` · `owner`

```bash
curl -X DELETE https://api.lanachat.ai/v1/events/evt_bigspender \
  -H "Authorization: Bearer $LANACHAT_TOKEN"
```

Les événements intégrés ne peuvent pas être supprimés ; désactivez-les plutôt.

## Statistiques

### Lire les stats

`GET /stats` · `can_sales_read`

| Parameter | Type | Required | Description |
|---|---|---|---|
| `from` | string | Oui | Premier jour UTC, `YYYY-MM-DD`, inclus |
| `to` | string | Oui | Dernier jour UTC, `YYYY-MM-DD`, inclus |
| `creator_id` | string | Non | Cette seule créatrice ; sinon toutes |

```bash
curl "https://api.lanachat.ai/v1/stats?from=2026-09-06&to=2026-10-05&creator_id=cr_lea" \
  -H "Authorization: Bearer $LANACHAT_TOKEN"
```

La réponse est l’objet stats. Les jours sont en UTC ; les liens archivés sont exclus.

### Exporter les stats en CSV

`GET /stats/export.csv` · `can_sales_read`

Mêmes paramètres que `GET /stats`.

```bash
curl "https://api.lanachat.ai/v1/stats/export.csv?from=2026-09-06&to=2026-10-05" \
  -H "Authorization: Bearer $LANACHAT_TOKEN" -o stats.csv
```

```text
date,link,slug,domain,creator,source,clicks,conversations,first_messages,buyers,revenue_stars
2026-10-05,TikTok · Lea night,lea-tiktok-night,go.mia-links.com,Lea,tiktok,54,9,7,2,950
```

## Articles liés

- [API LanaChat : démarrage rapide, authentification et erreurs](https://lanachat.ai/guides/fr/api-overview/)
- [Suivi : liens, domaines et analyses](https://lanachat.ai/guides/fr/tracking-links/)
- [API : Comptes Telegram, pools et stories](https://lanachat.ai/guides/fr/api-telegram-accounts/)
