Twitter API Alternative
Echtzeit-WebSocket statt Scraper: für Trading-Bots, Terminals und Agents
Xanguard B2B ist eine Twitter-API-Alternative und ein Scraper-Ersatz für Entwickler: kein X-Entwicklerkonto, kein eigenes Rate-Limit-Management. Über eine WebSocket-Verbindung bekommst du neue Tweets, Lösch-Events, Profiländerungen, neue Follower und Follow-/Unfollow-Events deiner überwachten Accounts als JSON in Echtzeit; per REST-API verwaltest du die Watchlist. Median der Erkennung bei den bezahlten Tarifen ca. 200 ms (Messdaten). Ab $49 pro Monat für 50 Accounts, bis 1.000 Accounts, Zahlung nur in SOL, automatische Freischaltung, nicht erstattungsfähig.
Preise geprüft am 5. Oktober 2026
Hey Bro, willkommen bei Xanguard, du und dein Agent. Ob Anbindung, Angebot oder Feld-Mapping: Schreib mir direkt in Telegram: @notAdegen
Der Xanguard-Entwickler · Auf DMs antworte ich persönlich
Link öffnet sich nicht? Such in Telegram nach @B2B_Xanguard_bot
Fünf Echtzeit-Event-Typen, ein WebSocket
Alles, was Trading-Bots und Terminals von Twitter brauchen: Tweets, Löschungen, Profiländerungen, neue Follower, Follows/Unfollows. JSON, das direkt nutzbar ist.
Tweets twitter.post.new
Tweets, Replies, Quotes, Retweets, Median der Erkennung ca. 200 ms. Voller Text, Medien-Links, zitierte und beantwortete Originaltweets, Autorenprofil und automatisch extrahierte Contract-Adressen. Alle Tarife.
Löschungen twitter.tweet.deleted
Löscht ein überwachter Account einen Tweet, kommt ein Event mit ID und Text des gelöschten Tweets; ist nur sicher, dass gelöscht wurde, aber nicht welcher Tweet, sind beide Felder null. Alle Tarife.
Profiländerungen twitter.profile.update
Änderungen an Name, Bio, Profilbild und Pinned Tweet, mit Wert vorher und nachher. Wenn ein Projekt sein Narrativ wechselt, beginnt das oft im Profil. Ab Pro.
Neue Follower twitter.follower.new
Bekommt ein überwachter Account einen neuen Follower, kommt ein Event, namentlich. Praktisch, um zu sehen, wer den Top-Devs leise folgt. Ab Pro.
Follows / Unfollows twitter.following.new / .removed
Wem ein überwachter Account folgt oder entfolgt, mit Name, Bio und Follower-Zahl. Kooperationssignale und Moves schlauer Accounts kommen über dieselbe Verbindung. Enterprise.
REST-API
Mit einem dt_-Key Accounts hinzufügen und entfernen (POST /v1/dt/targets), Profile und Änderungsverlauf abfragen. Die OCR für Contract-Adressen in Bildern gibt es bei Enterprise.
In 5 Minuten angebunden und Events empfangen
Kein Meeting, kein Warten auf den Vertrieb. Im Bot bestellen, Key erhalten, verbinden.
Abonnieren
Öffne @B2B_Xanguard_bot in Telegram, wähle einen Tarif und zahl in SOL.
Key erhalten
Nach der On-Chain-Bestätigung wird automatisch freigeschaltet, und der Bot schickt dir einen API-Key, der mit dt_ beginnt.
Accounts hinzufügen
Im Bot mit /add und dem Username, oder per POST /v1/dt/targets.
WebSocket verbinden
Nach dem Verbinden kommt HELLO, du schickst LOGIN (op 2 + Key) und bekommst danach laufend EVENTs.
Opcode-Protokoll, Python / Node läuft direkt
Adresse: wss://api.xanguard.tech/v1/dt/realtime/ws. Opcode-Ablauf kompatibel mit TweetCatcher; höchstens 5 gleichzeitige Verbindungen pro Key, nach 90 Sekunden ohne Heartbeat wird getrennt.
| op | Name | Richtung | Beschreibung |
|---|---|---|---|
| 10 | HELLO | Server → Client | Kommt direkt nach dem Verbinden, mit heartbeat_interval (Millisekunden) |
| 2 | LOGIN | Client → Server | Innerhalb von 15 Sekunden den API-Key senden: {"op": 2, "d": "dt_..."} |
| 4 | READY | Server → Client | Authentifizierung ok, mit freigeschalteten Modulen und Accountzahl |
| 0 | EVENT | Server → Client | Echtzeit-Event, d.event ist der Event-Typ |
| 1 | HEARTBEAT | Client → Server | Im heartbeat_interval senden |
| 11 | HEARTBEAT_ACK | Server → Client | Antwort auf den Heartbeat |
| 3 | DISCONNECT | Server → Client | Trennung, d.reason nennt den Grund (zum Beispiel ungültiger oder abgelaufener Key) |
import asyncio, json
import websockets
URL = "wss://api.xanguard.tech/v1/dt/realtime/ws"
API_KEY = "dt_DEIN_KEY"
async def main():
async with websockets.connect(URL) as ws:
# op 10 HELLO: mit Heartbeat-Intervall (Millisekunden)
hello = json.loads(await ws.recv())
interval = hello["d"]["heartbeat_interval"] / 1000
# op 2 LOGIN: Key innerhalb von 15 Sekunden senden
await ws.send(json.dumps({"op": 2, "d": API_KEY}))
ready = json.loads(await ws.recv())
if ready["op"] != 4: # bei Fehler kommt op 3 DISCONNECT
raise SystemExit(ready["d"].get("reason"))
print("Verbunden:", ready["d"]["modules"])
# Heartbeat im Intervall senden, nach 90 s ohne wird getrennt
async def heartbeat():
while True:
await asyncio.sleep(interval)
await ws.send(json.dumps({"op": 1}))
hb = asyncio.create_task(heartbeat())
async for raw in ws:
msg = json.loads(raw)
if msg["op"] != 0: # nur op 0 EVENT verarbeiten
continue
ev, d = msg["d"]["event"], msg["d"]["data"]
if ev == "twitter.post.new":
print(d["author"]["handle"], d["text"])
elif ev == "twitter.tweet.deleted":
print("Gelöscht:", d["tweet_id"])
elif ev == "twitter.profile.update":
print("Profiländerung:", d["field"], d["updated"])
asyncio.run(main())
const WebSocket = require('ws');
const URL = 'wss://api.xanguard.tech/v1/dt/realtime/ws';
const ws = new WebSocket(URL);
let hb;
ws.on('message', (raw) => {
const msg = JSON.parse(raw.toString());
switch (msg.op) {
case 10: // HELLO: LOGIN senden und im Intervall Heartbeat schicken
ws.send(JSON.stringify({ op: 2, d: 'dt_DEIN_KEY' }));
hb = setInterval(
() => ws.send(JSON.stringify({ op: 1 })),
msg.d.heartbeat_interval
);
break;
case 4: // READY: Authentifizierung ok
console.log('Verbunden', msg.d.modules);
break;
case 3: // DISCONNECT: Key ungültig oder abgelaufen usw.
console.error('Getrennt:', msg.d.reason);
break;
case 0: { // EVENT: Echtzeit-Event
const { event, data } = msg.d;
if (event === 'twitter.post.new') {
console.log(data.author.handle, data.text);
} else if (event === 'twitter.following.new') {
console.log('Neues Follow:', data.handle);
}
break;
}
}
});
ws.on('close', () => clearInterval(hb));
So sieht das JSON aus
Beispieldaten; verbindlich sind die Felder in der API-Doku (englisch). Tweet-Events können zuerst als twitter.post.new ankommen und danach per twitter.post.update mit derselben data.id ergänzt werden.
twitter.post.new{
"op": 0,
"d": {
"event": "twitter.post.new",
"event_id": "evt_1234567890123456789",
"task_info": {"handle": "example_dev"},
"data": {
"id": "1234567890123456789",
"created_at": 1712000000000,
"type": "post",
"text": "gm, neues Release geht heute Nacht live",
"media": [],
"author": {
"id": "1234567890",
"handle": "example_dev",
"name": "Example Dev",
"stats": {"followers": 12000, "following": 800}
},
"in_reply_to": null,
"quoted_tweet": null
}
}
}
twitter.following.new (Enterprise){
"op": 0,
"d": {
"event": "twitter.following.new",
"event_id": "evt_f_example_dev_1712000000000",
"event_time": 1712000000000,
"task_info": {"handle": "example_dev", "id": "1234567890"},
"data": {
"id": "2233445566",
"handle": "example_founder",
"name": "Example Founder",
"bio": "building on Solana",
"followers": 5400,
"following": 310
}
}
}
twitter.profile.update (ab Pro){
"op": 0,
"d": {
"event": "twitter.profile.update",
"event_id": "evt_p_example_dev_1712000000000",
"task_info": {"handle": "example_dev"},
"data": {
"field": "bio",
"prev": "Old bio text",
"updated": "New bio text"
}
}
}
twitter.follower.new / twitter.tweet.deleted{
"op": 0,
"d": {
"event": "twitter.follower.new",
"task_info": {"handle": "example_dev"},
"data": {
"id": "12345678",
"handle": "newfollower",
"name": "New Follower"
}
}
}
{
"op": 0,
"d": {
"event": "twitter.tweet.deleted",
"task_info": {"handle": "example_dev"},
"data": {
"tweet_id": "1234567890123456789",
"text": "Text des gelöschten Tweets"
}
}
}
data.type kann sein: post, reply, quote, repost. Bei Profiländerungen ist field einer von bio, name, avatar, pinned_tweet.
Stufen nach Modulen, Preis nach Accountzahl
Erst die Modulstufe wählen, dann die Zahl der überwachten Accounts. Monatspreise in US-Dollar, bezahlt in SOL, geprüft am 5. Oktober 2026.
- Tweet-Events
- Lösch-Events
- WebSocket + REST
- Alles aus Starter
- Profiländerungen
- Neue Follower
- Alles aus Pro
- Follow-/Unfollow-Events
- Contract-Adressen in Bildern (OCR)
| Überwachte Accounts | Starter Tweets + Löschungen | Pro + Profil + neue Follower | Enterprise + Follows/Unfollows | Starter pro Account |
|---|---|---|---|---|
| 50 | $49 | $99 | $249 | $0.98 |
| 250 | $229 | $429 | $979 | $0.92 |
| 500 | $449 | $749 | $1.649 | $0.90 |
| 1.000 | $849 | $1.349 | $2.849 | $0.85 |
Über 1.000 Accounts ist Verhandlungssache. Zusatzfunktion CA Search (Tweets der letzten 24 Stunden nach Contract-Adresse, Token-Name oder Keyword durchsuchen, bis zu 200 pro Abruf): 1.000 Abrufe pro Tag $100/Monat, 2.000 $180, 5.000 $250. Vollständige englische Preisliste: B2B API pricing.
200 Accounts in Echtzeit überwachen: was kostet das im Monat?
Preise Dritter von den jeweiligen Websites, geprüft am 20.09.2026; Preise der offiziellen X API geprüft am 5.10.2026 (docs.x.com). Maßgeblich ist der aktuelle Preis auf der Website des Anbieters.
| Lösung | 200 Accounts pro Monat | Hinweis |
|---|---|---|
| Xanguard B2B Starter 250 | $229 | WebSocket + REST, inkl. Lösch-Events, bis 250 Accounts |
| TweetStream (Pro-Tarif mit 250 Accounts) | $499 | Listenpreis auf der Website |
| twitterapi.io (Tarif mit 150 Accounts + 50 dazugebucht) | ca. $399 | Zusätzliche Accounts je $2 |
| Offizielle X API (nutzungsbasiert) | ca. $210 | Nur Tweets lesen: $0,005 pro Tweet, geschätzt bei 7 Tweets pro Account und Tag; Follows und Profiländerungen kosten extra, mit Rate Limits |
Funktionsvergleich: offizielle X API und Xanguard
| Merkmal | Offizielle X API (nutzungsbasiert) | Xanguard B2B |
|---|---|---|
| Echtzeit-Zustellung | Filtered Stream, 1 Verbindung pro App | WebSocket, bis 5 gleichzeitige Verbindungen pro Key |
| Veröffentlichte Latenz | Keine Angabe | Median ca. 200 ms, live nachprüfbar |
| Follow-/Unfollow-Events | Nein | Ja (Enterprise) |
| Lösch-Events | Nein | Ja (alle Tarife) |
| Profiländerungen, neue Follower | Nein | Ja (ab Pro) |
| X-Entwicklerkonto nötig | Ja | Nein |
| Startpreis | $0,005 pro gelesenem Tweet | $49 pro Monat für 50 Accounts |
Von anderen Diensten migrieren
- TweetCatcher: Der WebSocket nutzt einen kompatiblen Opcode-Ablauf (HELLO → LOGIN → EVENT + Heartbeat). Adresse und Key tauschen, ein paar abweichende Felder abgleichen, meist in unter einer Stunde erledigt. Migrationsguide (englisch)
- twitterapi.io: Die Request-URL durch
api.xanguard.techersetzen, den bisherigenX-API-Key-Header und die Datenstruktur behalten. Migrationsguide (englisch) - Andere Anbieter: Schick die Doku oder Beispieldaten deiner jetzigen Schnittstelle, das Feld-Mapping steht meist nach ein paar Stunden, und wir binden es im selben Chat gemeinsam mit dem Entwickler an.
Was es aktuell nicht gibt
- Nachlieferung der Tweets, die während einer Unterbrechung des WebSocket verpasst wurden.
- Eine schriftliche SLA-Verfügbarkeitszusage.
- Zustellung per Discord; bezahlt wird nur in SOL, keine Kreditkarte.
Häufige Fragen
Ein WebSocket, JSON direkt nutzbar
Ab 49 US-Dollar pro Monat für 50 Accounts, Zahlung in SOL, der Key kommt nach der On-Chain-Bestätigung automatisch.
Link öffnet sich nicht? Such in Telegram nach @B2B_Xanguard_bot
Startseite · Twitter-Monitoring-Tool · Live-Speed-Daten (englisch) · English version