Surveillance

Surveiller un compte

POST /v1/monitor/targets targets:write

Commence à surveiller un compte, désigné par screen_name ou par user_id. Si nous le connaissons déjà, vous êtes abonné immédiatement ; sinon nous le résolvons d'abord sur X et vous recevez 202. Un compte dont X nous a indiqué dans les dix dernières minutes qu'il ne peut pas être surveillé (il n'existe pas, est suspendu ou ses publications sont protégées) est refusé d'emblée avec 404. Sans event_types, chaque type d'événement autorisé par votre clé est livré ; avec, seulement ces types. Envoyer event_types pour un compte déjà surveillé remplace son choix ; l'omettre le conserve. Voir Choisir les types d'événement.

Corps de la requête

Champ du corpsTypeSignification
screen_namestringNom d'utilisateur sans @ ; 1 à 15 lettres, chiffres ou tirets bas. Envoyez ceci ou user_id
user_idstringL'identifiant X numérique du compte, à la place de screen_name. Un identifiant ne change jamais : préférez-le quand vous l'avez
event_typesstring[]Seuls ces types d'événement sont livrés pour ce compte ; omettez-le ou envoyez [] pour tous. search.match relève des mots-clés et est refusé ici

réponse

201 abonné, 200 déjà abonné, 202 en file pour résolution ; les trois portent un en-tête Location pointant vers l'endpoint de détail. Un 202 pour un compte qui a échoué auparavant porte last_failure (reason, failed_at). 404 user_not_found, user_suspended ou user_protected : X nous a indiqué dans les dix dernières minutes que ce compte ne peut pas être surveillé ; details.failed_at dit quand.

Statut: 201, 200, 202, 400, 402, 403

requête
curl -X POST https://api.xsignalfeed.com/v1/monitor/targets \
  -H "Authorization: Bearer xsf_your_key" -H "Content-Type: application/json" \
  -d '{"screen_name": "elonmusk", "event_types": ["followers.verified.add"]}'
réponse · 201 / 200
{
  "status": "subscribed",
  "state": "subscribed",
  "id": "44196397",
  "screen_name": "elonmusk",
  "name": "Elon Musk",
  "event_types": [
    "followers.verified.add"
  ],
  "event_types_all": false
}
{
  "status": "queued",
  "state": "queued",
  "screen_name": "newaccount",
  "user_id": null,
  "event_types": [],
  "event_types_all": true,
  "note": "target will be resolved and placed shortly; poll GET /v1/monitor/targets/{screen_name}"
}