Monitorización
Monitorizar una cuenta
POST /v1/monitor/targets targets:write
Empieza a monitorizar una cuenta, indicada por screen_name o por user_id. Si ya la conocemos quedas suscrito al instante; si no, primero la resolvemos en X y recibes 202. Una cuenta que, según nos indicó X en los últimos diez minutos, no se puede monitorizar (no existe, está suspendida o sus publicaciones están protegidas) se rechaza en el acto con 404. Sin event_types se entrega todo tipo de evento que tu clave permita; con él, solo esos tipos. Enviar event_types para una cuenta que ya monitorizas sustituye su elección; omitirlo la conserva. Consulta Elegir tipos de evento.
Cuerpo de la solicitud
| Campo del cuerpo | Tipo | Significado |
|---|---|---|
screen_name | string | Nombre de usuario sin @; de 1 a 15 letras, dígitos o guiones bajos. Envía esto o user_id |
user_id | string | El id numérico de la cuenta en X, en lugar de screen_name. Un id nunca cambia: úsalo si lo tienes |
event_types | string[] | Solo se entregan estos tipos de evento para esta cuenta; omítelo o envía [] para todos. search.match pertenece a las palabras clave y aquí se rechaza |
respuesta
201 suscrito, 200 ya suscrito, 202 en cola para resolución; los tres llevan una cabecera Location que apunta al endpoint de detalle. Un 202 para una cuenta que falló antes lleva last_failure (reason, failed_at). 404 user_not_found, user_suspended o user_protected: X nos indicó en los últimos diez minutos que esta cuenta no se puede monitorizar; details.failed_at dice cuándo.
Estado: 201, 200, 202, 400, 402, 403
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"]}'
{
"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}"
}