Get rid of the guns, get rid of the Oil, get rid of the meat, but Transgender Mutilization of your Children and Open Borders are OK. This is what TalaFREAKO stands for, and this is where he is going to help take Texas if he wins — which he won’t. Ken Paxton is the Greatest Attorney General in Texas History. He deserves to be your Senator! President DONALD J. TRUMP
Developer-Referenz
API & Webhooks
Truth-Social-Alerts in Trading-Bots, Dashboards und Automations-Pipelines einbinden. Webhook und REST-Zugang ab Business-Tarif.
Erste Schritte
Programmatischer Zugang unterscheidet sich von Telegram- und E-Mail-Alerts: Statt Benachrichtigungen zu lesen, verarbeitet deine eigene Anwendung die Events. So richtest du ihn ein.
- 1 Auf Business oder Enterprise upgraden — API und Webhooks sind ab Business enthalten.
- 2 TruthTerminal öffnen und im Developer-Hub-Bereich API-Token generieren.
- 3 Webhook-URL im TruthTerminal hinterlegen oder direkt REST-Anfragen mit dem Token senden.
Telegram- und E-Mail-Alerts bleiben unabhängig davon in jedem Tarif verfügbar — diese Einstiegszone betrifft nur den programmatischen Zugang (Webhook/REST).
Überblick
TruthPush liefert angereicherte Post-Events — Sentiment, signierter Score, Ticker und Keywords — über zwei Integrationspfade:
- Webhooks senden JSON in Echtzeit an Ihre URL, sobald ein überwachtes Profil postet (Business+).
- REST Catch-up liefert chronologische Posts mit Cursor-Pagination zum Nachziehen verpasster Events (Business+).
- API-Token erzeugen und Webhook-URL im TruthTerminal einrichten — nach Upgrade auf Business.
Telegram- und E-Mail-Alerts nutzen separate Kanäle; diese Referenz beschreibt nur den programmatischen Zugang.
Authentifizierung
REST-Anfragen nutzen ein Bearer-Token. Dasselbe Secret signiert Webhook-Payloads.
- Auf Business oder Enterprise upgraden.
- TruthTerminal öffnen → Developer Hub → API Key generieren.
- Bei jeder REST-Anfrage Authorization: Bearer YOUR_API_TOKEN mitsenden.
curl "https://truthpush.com/api/v1/posts/catch-up?handle=realDonaldTrump&limit=20" \
-H "Authorization: Bearer YOUR_API_TOKEN"
API-Token wie ein Passwort behandeln. Regenerieren macht das alte Token und alle Webhook-Signaturen sofort ungültig.
Webhooks
Webhook-URL im TruthTerminal konfigurieren — nachdem ein API-Token erzeugt wurde. Jeder qualifizierende Post löst einen HTTP POST mit JSON-Body und TruthPush-Signatur-Headern aus. Das API-Token ist Pflicht — Zustellungen sind immer signiert.
Request-Header
POST https://your-server.com/hooks/truthpush
Content-Type: application/json
X-TruthPush-Signature: t=<unix>,v1=<hmac_sha256_hex>
X-TruthPush-Event-Id: <post_id>
v1 = HMAC_SHA256(api_token, "<t>." + raw_body)
Signatur verifizieren (Python)
Referenz-Implementierung für Empfänger — prüft das Replay-Fenster und vergleicht die Signatur in konstanter Zeit.
import hmac
import hashlib
import time
TOLERANCE_SECONDS = 300 # reject requests older than 5 minutes
def verify_signature(payload: bytes, secret: str, header: str) -> bool:
parts = dict(p.split("=", 1) for p in header.split(","))
timestamp, signature = int(parts["t"]), parts["v1"]
if abs(time.time() - timestamp) > TOLERANCE_SECONDS:
return False # possible replay attack
signed_payload = f"{timestamp}.".encode() + payload
expected = hmac.new(secret.encode(), signed_payload, hashlib.sha256).hexdigest()
return hmac.compare_digest(expected, signature)
# Flask example
# signature_header = request.headers["X-TruthPush-Signature"]
# if not verify_signature(request.get_data(), API_TOKEN, signature_header):
# abort(401)
Signal-Filter
Mindest-|signed_score| im TruthTerminal setzen (0 = alle Events, 0,7 = nur starke Signale) — reduziert Rauschen in Trading-Pipelines.
Zustellgeschwindigkeit
Jeder qualifizierende Post löst genau eine Webhook-Zustellung aus — den Rohtext plus fertiges Sentiment, gesendet sobald die KI-Anreicherung abgeschlossen ist (meist innerhalb von wenigen Sekunden). Die Zustellung läuft über eine eigene Queue und wird nie durch Telegram- oder E-Mail-Zustellung an andere Nutzer verzögert.
Wiederholungen
Temporäre Fehler (Netzwerk, 5xx, 408, 429) werden automatisch nach 60 Sekunden, dann 5 Minuten, dann 15 Minuten erneut versucht (bis zu drei Retries). Permanente Client-Fehler (andere 4xx) werden nicht wiederholt — Endpoint korrigieren und auf das nächste Event warten oder REST Catch-up nutzen.
REST API
GET /api/v1/posts/catch-up
Liefert Posts eines Handles in aufsteigender chronologischer Reihenfolge mit Cursor-Pagination. Antworten sind kurz gecacht (~7 s) und unterstützen ETag / If-None-Match für effizientes Polling.
Query-Parameter
- handle — Truth-Social-Username ohne @ (Pflicht). all (oder ohne sinnvolle Handles) liefert die volle Watchlist. Handles außerhalb der Watchlist ergeben eine leere Liste — sie werden nie auf andere Profile ausgeweitet.
- since — ISO-8601-Anker für den ersten Abruf (optional)
- cursor — opaker Wert aus meta.next_cursor (optional)
- limit — 1–200, Standard 100
Pagination-Beispiel
Bei der ersten Anfrage ohne cursor beginnen. Jede Antwort enthält meta.next_cursor — diesen Wert unverändert in die nächste Anfrage übernehmen, bis er null ist.
# 1) First request — no cursor yet
curl "https://truthpush.com/api/v1/posts/catch-up?handle=realDonaldTrump&limit=100" \
-H "Authorization: Bearer YOUR_API_TOKEN"
# Response (truncated):
# { "posts": [ … 100 items … ],
# "meta": { "next_cursor": "eyJpZCI6MTIzNDU2fQ==" } }
# 2) Follow-up request — pass the cursor from meta.next_cursor
curl "https://truthpush.com/api/v1/posts/catch-up?handle=realDonaldTrump&cursor=eyJpZCI6MTIzNDU2fQ%3D%3D&limit=100" \
-H "Authorization: Bearer YOUR_API_TOKEN"
# meta.next_cursor is null once you've reached the latest post
Event-Objekt
Webhook und REST teilen dieselben Anreicherungsfelder (sentiment, signed_score, score, tickers, keywords, reasoning, media). Das Envelope unterscheidet sich: Webhooks nutzen event_id, target, post_id und url; REST Catch-up nutzt id und user_handle (plus Anzeige-Metadaten). Bei Webhooks entspricht event_id der post_id — für idempotente Verarbeitung auf Empfängerseite.
{
"event_id": "1234567890",
"target": "realdonaldtrump",
"post_id": "1234567890",
"content": "Post text…",
"url": "https://truthsocial.com/@realdonaldtrump/posts/1234567890",
"media": [],
"sentiment": "bullish",
"signed_score": 0.89,
"score": 0.89,
"tickers": ["$DJT"],
"keywords": ["tariffs", "trade"],
"reasoning": "Direct market impact via trade policy.",
"ai_analysis": { … }
}
- event_id
- Stabile Event-ID — für idempotente Verarbeitung
- target
- Überwachtes Truth-Social-Handle
- sentiment
- bullish | bearish | neutral
- signed_score
- Richtungs-Score von −1 bis +1
- tickers
- Extrahierte Ticker (z. B. DJT) — kein eigenes Trading-Signal-Produkt
- keywords
- Erkannte Keywords aus dem Post-Text
- ai_analysis
- Legacy verschachteltes Objekt — gleiche Daten, Rückwärtskompatibilität
Rate-Limits
Limits gelten pro API-Token. Überschreitung liefert HTTP 429 mit Retry-After.
- Business: 60 Anfragen/Minute · 10.000/Tag
- Enterprise: 300 Anfragen/Minute · 500.000/Tag
- Antworten enthalten X-RateLimit-*-Header.
Tarife & Zugang
API und Webhooks sind auf Observer und Professional nicht verfügbar. TruthTerminal-Live-Feed ab Professional; programmatischer Zugang ab Business.
Fehler
Häufige API-Antworten:
- 401 — fehlendes oder ungültiges Bearer-Token
- 403 — Tarif ohne API-Zugang
- 429 — Rate-Limit überschritten; Retry-After beachten
- 400 — ungültiger Cursor oder upgrade_required_* aus Archiv-Fenster