word1 | word2 OR — matches messages containing either word
word1 + word2 AND — matches messages containing both words
-word NOT — excludes messages containing the word
"exact phrase" Exact phrase match
(word1 | word2) + word3 Grouping with parentheses
Username Filter
Enter one or more usernames separated by commas or spaces to filter messages by those users.
Click any username in the results to quickly filter by that user.
Conversation Mode
When two or more usernames are entered, a Conversation mode checkbox appears. Enabling it shows only messages where the users mutually mention each other — useful for finding exchanges between specific people.
Context View
Click View Context on any message to see surrounding chat. The selected message is highlighted with the accent color.
Messages tinted with the accent color are those where the selected message's author was tagged, or which tag the selected message's author.
Scroll to the top or bottom of the context panel to load more messages, or use the Load More buttons.
Keyboard Shortcuts
/ Focus the search box
Escape Close context view
API Reference
All endpoints are plain HTTP GET requests returning JSON. No API key required.
Rate Limiting
Anonymous requests are limited to 60 per minute per IP address. Exceeding the limit returns 429 Too Many Requests.
Logged-in DGG users have no rate limit. Log in with the button in the header, then copy your lk_session cookie for use in scripts:
Find the cookie value in your browser's DevTools → Application → Cookies after logging in. Valid for 7 days.
Search Messages
GET /api/messages
searchBoolean query — same syntax as the search box (+ AND, | OR, - NOT, "phrase", (groups))userUsername. Comma- or space-separated for multiple usersstartTimeISO 8601 datetime, e.g. 2024-11-01T00:00:00ZendTimeISO 8601 datetimemessageTypeMSG, BAN, UNBAN, MUTE, UNMUTE, Broadcast, SUBSCRIPTION, MASSGIFT, GIFTSUB, DONATIONlimitResults per page — max 500, default 50offsetPagination offsetconversationModetrue — show only messages where 2+ users mutually mention each other
Response: { messages[], total, limit, offset } — use total + offset to paginate
Message Context
GET /api/messages/:id/context
Returns up to 15 messages before and after a given message ID. Pass before=true or after=true to page further in either direction; pass already-loaded IDs as loadedIds=1,2,3 to skip them.
User Stats
GET /api/user-stats?user=<username>
Returns total messages, ban count, first/last seen, 30-day activity, and top emotes for a user. 404 if the user has no messages.