Passer au contenu principal
Ce guide explique comment s’abonner et recevoir des événements à l’aide des points de terminaison de l’API X Activity. On compte généralement trois étapes :
  1. Identifier l’id de l’utilisateur dont vous souhaitez filtrer les événements
  2. Créer un abonnement pour le type d’événement que vous souhaitez filtrer pour cet utilisateur
  3. Recevoir les événements via un webhook ou une connexion HTTP persistante (flux)

Récupérer des ID utilisateur

Avant de créer des abonnements, vous devrez connaître l’id du compte sur lequel vous souhaitez appliquer un filtre. Dans cet exemple, nous utiliserons le handle XDevelopers. Vous pouvez obtenir des ID utilisateur de plusieurs façons, notamment : Obtenir l’ID d’un utilisateur à partir de son nom d’utilisateur :
curl -H "Authorization: Bearer VOTRE_JETON_BEARER" "https://api.x.com/2/users/by/username/xdevelopers"
Récupérez votre id utilisateur :
curl -H "Authorization: Bearer VOTRE_BEARER_TOKEN" https://api.x.com/2/users/me
Les deux points de terminaison renvoient des informations sur l’utilisateur, y compris le champ id, que vous pouvez utiliser dans les filtres d’abonnement. Un exemple de réponse JSON est présenté ci-dessous :
{
    "data": {
        "id": "2244994945",
        "name": "Developers",
        "username": "XDevelopers"
    }
}

Création d’un abonnement

L’étape suivante consiste à créer un abonnement. Dans cet exemple, nous allons nous abonner aux mises à jour de la bio de XDevelopers. Pour ce faire, nous inclurons user_id et event_type dans le corps JSON. Dans ce cas, la valeur de event_type est ProfileBioUpdate. Nous allons fournir l’id utilisateur de X Developer : 2244994945, ainsi qu’une balise optionnelle :
{
  "event_type": "ProfileBioUpdate",
  "filter": {
    "user_id": "2244994945"
  },
  "tag": "mises à jour de la bio des Xdevelopers"
}
Nous utiliserons notre Jeton Bearer (depuis le portail développeur) pour l’authentification sur tous les points de terminaison liés à XAA :
curl -H "Authorization: Bearer VOTRE_JETON_BEARER" \
  https://api.x.com/2/activity/subscriptions \
  -X POST \
  -d '{
    "event_type": "ProfileBioUpdate",
    "filter": {
      "user_id": "2244994945"
    },
    "tag": "Mises à jour de la bio de Xdevelopers"
  }'
Si la requête aboutit, votre abonnement sera créé :
{
  "data":[
    {
      "created_at":"2025-10-09T16:35:08.000Z",
      "event_type":"ProfileBioUpdate",
      "filter":{
        "user_id":"2244994945"
      },
      "subscription_id":"1976325569252868096",
      "tag": "Mises à jour de la bio des Xdevelopers",
      "updated_at":"2025-10-09T16:35:08.000Z"
    }
  ],
  "meta": {
    "total_subscriptions": 1
  }
}

Récupération des événements

Une fois l’abonnement créé, vous pouvez recevoir les événements via des webhooks ou un flux HTTP persistant. Dans cet exemple, nous allons ouvrir le flux HTTP persistant :
curl -H "Authorization: Bearer YOUR_BEARER_TOKEN" https://api.x.com/2/activity/stream
Lorsque le compte Xdevelopers met à jour la biographie de son profil, l’événement est transmis via le flux :
{
  "data": {
    "filter": {
      "user_id": "2244994945"
    },
    "event_type": "ProfileBioUpdate",
    "tag": "Mises à jour de la bio de Xdevelopers",
    "payload": {
      "before": "Mars & Cars",
      "after": "Mars, Cars & AI"
    }
  }
}

Gestion des abonnements

L’API X Activity propose des points de terminaison pour gérer vos abonnements au moyen d’opérations CRUD standard.

Créer un abonnement

Créez un nouvel abonnement pour recevoir des événements :
curl -H "Authorization: Bearer VOTRE_BEARER_TOKEN" \
  -X POST \
  https://api.x.com/2/activity/subscriptions \
  -d '{
    "event_type": "ProfileBioUpdate",
    "filter": {
      "user_id": "123456789"
    },
    "tag": "mes mises à jour de bio",
    "webhook_id": "1976325569252868099"
  }'
Remarque :
  • Le champ tag est facultatif. Il peut servir à identifier les événements lors de la remise.
  • Le champ webhook_id est également facultatif. Consultez notre documentation sur les webhooks pour savoir comment configurer un webhook. Si un webhook_id est indiqué, l’événement sera remis au webhook fourni, en plus du flux s’il est ouvert.
Réponse :
{
  "data": {
    "subscription_id": "1976325569252868096",
    "event_type": "ProfileBioUpdate",
    "filter": {
      "user_id": "123456789"
    },
    "created_at": "2025-10-09T16:35:08.000Z",
    "updated_at": "2025-10-09T16:35:08.000Z",
    "tag": "mes mises à jour de bio",
    "webhook_id": "1976325569252868099"
  }
}

Lister les abonnements

Récupérez tous les abonnements actifs de votre application :
curl -H "Authorization: Bearer YOUR_BEARER_TOKEN" \
  https://api.x.com/2/activity/subscriptions
Réponse :
{
  "data": [
    {
      "subscription_id": "1976325569252868096",
      "event_type": "ProfileBioUpdate",
      "filter": {
        "user_id": "123456789"
      },
      "created_at": "2025-10-09T16:35:08.000Z",
      "updated_at": "2025-10-10T03:50:59.000Z",
    },
    {
      "subscription_id": "1976325569252868097",
      "event_type": "ProfilePictureUpdate",
      "filter": {
        "user_id": "987654321"
      },
      "created_at": "2025-10-08T14:35:08.000Z",
      "updated_at": "2025-10-08T14:35:08.000Z",
    }
  ],
  "meta": {
    "total_subscriptions": 2
  }
}

Supprimer l’abonnement

Pour supprimer un abonnement :
curl -H "Authorization: Bearer VOTRE_JETON_BEARER" \
  -X DELETE \
  https://api.x.com/2/activity/subscriptions/1976325569252868096
Réponse :
{
  "data": {
    "deleted": true
  },
  "meta": {
    "total_subscriptions": 0
  }
}
total_subscriptions indique le nombre d’abonnements restants associés à votre application après l’opération de suppression.

Mettre à jour l’abonnement

Le point de terminaison PUT permet de mettre à jour la méthode de livraison ou le tag d’un abonnement. La mise à jour de filter ou event_type nécessite de supprimer l’abonnement existant, puis d’en créer un nouveau.
curl -H "Authorization: Bearer VOTRE_JETON_D'ACCÈS" \
  -X PUT \
  https://api.x.com/2/activity/subscriptions/1976325569252868096 \
  -d '{
    "tag": "mon nouveau tag",
    "webhook_id": "192846273860294839"
  }'
Réponse :
{
  "data": {
    "subscription_id": "1976325569252868096",
    "event_type": "ProfileBioUpdate",
    "filter": {
      "user_id": "123456789"
    },
    "created_at": "2025-10-09T16:35:08.000Z",
    "updated_at": "2025-10-10T17:10:58.000Z",
    "tag": "my new tag",
    "webhook_id": "192846273860294839"
  },
  "meta": {
    "total_subscriptions": 1
  }
}