Skip to main content
GET
List webhook events & replay monitor activity
Free. This endpoint does not consume credits.
Account events include the current username and permanent xUserId. Use xUserId to match an account after its username changes. monitorName is your monitor label when Xquik created the event. A rename leaves past events unchanged. MCP returns x_user_id, monitor_name, and prefixed monitor_id values.
Active monitor billing includes event and webhook deliveries.
Stored monitor events remain available for 90 days. Export every page before older records expire. The dashboard has no 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. An edited or unknown cursor returns 400.

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
Post or profile-change data. Post fields match REST responses.
Post profiles use username and verified. Legacy fields remain available. See Webhooks Overview for each event type.
boolean
true if more pages exist beyond this result set.
string
Pagination cursor. Pass it as cursor for the next page.

400 Invalid cursor

The cursor value is not a nextCursor from this route. Send the last nextCursor you received, or omit cursor to start from the first 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 list 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 build them. An edited or unknown cursor returns 400 invalid_input. An empty cursor returns the first page.