Zum Hauptinhalt springen
Dieser Leitfaden erklärt, wie Sie mithilfe der X Activity API-Endpunkte Ereignisse abonnieren und empfangen. Im Allgemeinen sind drei Schritte erforderlich:
  1. Ermitteln Sie die User-ID des Users, dessen Ereignisse Sie filtern möchten
  2. Erstellen Sie ein Abonnement für den Ereignistyp, den Sie für diesen User filtern möchten
  3. Empfangen Sie die Ereignisse über einen Webhook oder eine persistente HTTP-Stream-Verbindung

Benutzer-IDs abrufen

Bevor Sie Abonnements erstellen, müssen Sie die Benutzer-ID des Accounts kennen, den Sie filtern möchten. In diesem Beispiel verwenden wir den Handle „XDevelopers“. Sie können Benutzer-IDs auf verschiedene Arten ermitteln, unter anderem: Die ID eines Benutzers anhand des Benutzernamens ermitteln:
curl -H "Authorization: Bearer IHR_BEARER-TOKEN" "https://api.x.com/2/users/by/username/xdevelopers"
Ermitteln Sie Ihre eigene Benutzer-id:
curl -H "Authorization: Bearer IHR_BEARER_TOKEN" https://api.x.com/2/users/me
Beide Endpunkte geben Nutzerinformationen zurück, einschließlich des Felds id, das Sie in Abonnementfiltern verwenden können. Eine Beispiel-JSON-Antwort ist unten dargestellt:
{
    "data": {
        "id": "2244994945",
        "name": "Developers"
        "username": "XDevelopers"
    }
}

Erstellen eines Abonnements

Der nächste Schritt ist, ein Abonnement zu erstellen. In diesem Beispiel abonnieren wir die Bio-Updates von XDevelopers. Dazu übergeben wir user_id und event_type im JSON-Body. In diesem Fall lautet der event_type ProfileBioUpdate. Wir übergeben die Nutzer-ID von X Developer: 2244994945 sowie optional ein Tag:
{
  "event_type": "ProfileBioUpdate",
  "filter": {
    "user_id": "2244994945"
  },
  "tag": "Bio-Aktualisierungen von Xdevelopers"
}
Wir verwenden unser Bearer-Token (aus dem Entwicklerportal) zur Autorisierung für alle XAA-bezogenen Endpunkte:
curl -H "Authorization: Bearer IHR_BEARER_TOKEN" \
  https://api.x.com/2/activity/subscriptions \
  -X POST \
  -d '{
    "event_type": "ProfileBioUpdate",
    "filter": {
      "user_id": "2244994945"
    },
    "tag": "Bio-Updates der Xdevelopers"
  }'
Nach erfolgreicher Anforderung wird Ihr Abonnement erstellt:
{
  "data":[
    {
      "created_at":"2025-10-09T16:35:08.000Z",
      "event_type":"ProfileBioUpdate",
      "filter":{
        "user_id":"2244994945"
      },
      "subscription_id":"1976325569252868096",
      "tag": "Aktualisierungen der Bio von Xdevelopers",
      "updated_at":"2025-10-09T16:35:08.000Z"
    }
  ],
  "meta": {
    "total_subscriptions": 1
  }
}

Abrufen der Ereignisse

Sobald wir das Abonnement erstellt haben, können wir die Ereignisse über Webhooks oder einen persistenten HTTP-Stream empfangen. In diesem Beispiel öffnen wir den persistenten HTTP-Stream:
curl -H "Authorization: Bearer IHR_BEARER_TOKEN" https://api.x.com/2/activity/stream
Wenn das Xdevelopers-Konto seine Profilbio aktualisiert, wird das Ereignis über den Stream ausgeliefert:
{
  "data": {
    "filter": {
      "user_id": "2244994945"
    },
    "event_type": "ProfileBioUpdate",
      "tag": "Aktualisierungen der Profil-Bio von Xdevelopers",
    "payload": {
      "before": "Mars & Autos",
      "after": "Mars, Autos & KI"
    }
  }
}

Abonnementverwaltung

Die X Activity API stellt Endpunkte bereit, mit denen Sie Ihre Abonnements über standardisierte CRUD-Operationen verwalten können.

Abonnement erstellen

Erstellen Sie ein neues Abonnement, um Events zu empfangen:
curl -H "Authorization: Bearer IHR_BEARER_TOKEN" \
  -X POST \
  https://api.x.com/2/activity/subscriptions \
  -d '{
    "event_type": "ProfileBioUpdate",
    "filter": {
      "user_id": "123456789"
    },
    "tag": "meine Profil-Bio-Aktualisierungen",
    "webhook_id": "1976325569252868099"
  }'
Hinweis:
  • Das Feld tag ist optional. Es kann verwendet werden, um Ereignisse bei der Zustellung zu identifizieren.
  • Das Feld webhook_id ist ebenfalls optional. Siehe unsere Webhook-Dokumentation für Unterstützung beim Einrichten eines Webhooks. Wenn eine webhook_id angegeben ist, wird das Ereignis zusätzlich zum Stream (sofern dieser offen ist) an den angegebenen Webhook zugestellt.
Antwort:
{
  "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": "meine Profil-Bio-Updates",
    "webhook_id": "1976325569252868099"
  }
}

Abonnements auflisten

Rufen Sie alle aktiven Abonnements Ihrer Anwendung ab:
curl -H "Authorization: Bearer IHR_BEARER_TOKEN" \
  https://api.x.com/2/activity/subscriptions
Antwort:
{
  "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
  }
}

Abonnement löschen

Ein Abonnement löschen:
curl -H "Authorization: Bearer YOUR_BEARER_TOKEN" \
  -X DELETE \
  https://api.x.com/2/activity/subscriptions/1976325569252868096
Antwort:
{
  "data": {
    "deleted": true
  },
  "meta": {
    "total_subscriptions": 0
  }
}
total_subscriptions zeigt die verbleibende Anzahl der Abonnements an, die deiner App nach dem Löschvorgang zugeordnet sind.

Abonnement aktualisieren

Der PUT-Endpunkt ermöglicht es, die Zustellmethode oder das Tag eines Abonnements zu aktualisieren. Das Aktualisieren von filter oder event_type erfordert das Löschen des bestehenden Abonnements und das Hinzufügen eines neuen.
curl -H "Authorization: Bearer IHR_BEARER_TOKEN" \
  -X PUT \
  https://api.x.com/2/activity/subscriptions/1976325569252868096 \
  -d '{
    "tag": "mein neues Tag",
    "webhook_id": "192846273860294839"
  }'
Antwort:
{
  "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": "mein neues Tag",
    "webhook_id": "192846273860294839"
  },
  "meta": {
    "total_subscriptions": 1
  }
}