Skip to main content
GET
List webhook events & replay monitor activity
Free - does not consume credits
Listing stored events is free. Event and webhook deliveries are included in active monitor billing.
Stored monitor events remain available for 90 days. Export every page before older records expire. The dashboard does not currently provide direct CSV export for monitor events.
These examples emit one stored event row per line. Store event_id, monitor_type, monitor_id, event_type, occurred_at, tweet fields from data, event_detail_endpoint, delivery_join_key, and next_cursor; pass nextCursor as cursor until hasMore is false.

Source filter examples

Use monitorId for account monitor events and keywordMonitorId for keyword monitor events. Do not pass a keyword monitor ID as monitorId; that filter matches account monitor events only.

Query parameters

number
Results per page. Default 50, max 100.
string
Filter account-monitor events by account monitor ID. Use keywordMonitorId for keyword-monitor events. Omit both filters to return events from all monitors.
string
Filter keyword-monitor events by keyword monitor ID. Use the id returned by keyword monitor endpoints.
string
Filter by event type. Valid types: tweet.new, tweet.quote, tweet.reply, tweet.retweet, tweet.media, tweet.link, tweet.poll, tweet.mention, tweet.hashtag, tweet.longform, profile.avatar.changed, profile.banner.changed, profile.name.changed, profile.username.changed, profile.bio.changed, profile.location.changed, profile.url.changed, profile.verified.changed, profile.protected.changed, profile.pinned_tweet.changed, profile.unavailable.changed. Omit to return all types.
string
Cursor for pagination. Pass the nextCursor value from a previous response to fetch the next page.

Headers

string
required
Your API key.

Response

200 OK

array
List of event objects matching the query. Event object fields.
string
Unique event identifier.
string
Event type from the monitor event type list.
string
Account monitor ID for account events, or keyword monitor ID for keyword events.
string
Source type: account or keyword.
string
Keyword monitor ID. Present only for keyword monitor events.
string
X username that triggered the event. Present only for account monitor events.
string
Keyword query that matched the event. Present only for keyword monitor events.
string
ISO 8601 timestamp of when the event occurred on X.
object
Tweet object stored with the monitor event. Fields vary by event type.
The data field contains the raw tweet object. See Webhooks Overview for the full data schema of each event type.
boolean
true if additional pages exist beyond this result set.
string
Pagination cursor. Pass it as cursor for the next page.

401 Unauthenticated

Missing or invalid API key. Check the x-api-key header value.

429 Rate limited

Too many requests. Wait for the Retry-After header before retrying.

Event inventory handoff

Use this endpoint when an agent, dashboard, or support workflow needs a compact inventory of stored monitor events before looking up details or webhook delivery status.

Event row

Store event_id, event_type, occurred_at, and event_detail_endpoint. Use Get Event when a later step needs the full event payload.

Monitor source

Store monitor_type, monitor_id, keyword_monitor_id, username, and query so account and keyword monitor events stay separate in exports. Use monitorId for account-monitor filters and keywordMonitorId for keyword-monitor filters.

Tweet fields

Store tweet_id, tweet_text, and author_username from data when the event contains tweet content. Other event types can leave those fields empty.

Delivery join

Store delivery_join_key as the event ID. In webhook delivery rows, match it to streamEventId from List Deliveries.

Delivery status

After joining deliveries, store status, attempts, lastStatusCode, lastError, createdAt, and deliveredAt with the event row.

Cursor checkpoint

Store next_cursor only when has_more is true. Pass it as cursor for the next page and stop when has_more is false.

Pagination

Events use cursor pagination. Pass nextCursor as the next cursor value.
Continue fetching pages until hasMore is false. Cursors are opaque strings. Do not parse or construct them manually.