Send your game's chat
If your community lives in your own game or platform, you don't need a plugin or an SDK. Observer ingests a generic event envelope over REST: one endpoint, one API key, JSON in. Your events go through the same screening pipeline as every first-party integration.
1. Create a custom server
In the dashboard: Servers → New server, pick
In-game / custom, and name your platform (a slug like
my-game). You get a per-server API key, prefix
tkp_, shown once — store it like a password. Rotate it any
time from the server page.
2. POST events
curl -X POST https://api.observer.gg/v1/ingest \
-H "Authorization: Bearer tkp_xxx" \
-H "Content-Type: application/json" \
-d '{
"id": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
"occurred_at": "2026-07-06T18:04:12Z",
"platform": "my-game",
"event_type": "message",
"audience": "public",
"actor": { "platform_id": "user-12345", "display_name": "Alice" },
"content": { "text": "hey everyone gg",
"attributes": { "channel_id": "global" } }
}' 201 accepted means stored; screening runs asynchronously in
the background and typically completes within seconds. Anything flagged
appears in your moderation queue.
The three fields that matter most
-
content.text— the human-readable body to screen. Events without it (joins, presence) are stored but not screened. -
id— a UUID you mint per event; it's the idempotency key. Set it and you can retry after any network blip without double-recording. -
attributes.channel_id(a string) — unlocks the channel-aware features: per-channel monitoring, the conversation view around a flagged message, and channel-scoped AI batching.
Batching
POST /v1/ingest/batch takes up to 500 events per request.
Rate limit is 1200 requests/minute per key (single and batch combined),
so a busy game should batch. See the
full API reference for envelope fields, response
codes, and error semantics.
REST ingest is events-in today. Flagged content from a custom platform lands in your moderation queue for human action — Observer does not call back into your platform to enforce. Decision delivery for custom platforms (webhooks / polling) is on the roadmap.