Skip to main content
GET
Twitter notifications API, mentions & activity feed
Requested result counts are upper bounds for paid authenticated calls. When remaining credits cannot cover the full page or ID list, Xquik returns fewer results. If zero paid results are affordable, it returns 402 insufficient_credits.
1 credit per result returned · All plans from $0.00012/credit
Requires a connected X account. Uses user-authenticated access.
Get notifications reads the connected account inbox. Use type=Mentions for mention triage, type=Verified for verified-account activity, or omit type for all notification rows. Store next_cursor only when has_next_page is true.
The Node.js and Python snippets normalize each page for notification triage. Keep full message text in private systems. Use notification_id, notification_type, created_at, inbox_type, and page_next_cursor for private support dashboards, CRM queues, and agent workflows.

Notification triage handoff

Use GET /api/v1/x/notifications when a support inbox, CRM workflow, or agent queue needs account-level activity for a connected X account. The endpoint returns notification IDs, types, message previews, and timestamps. It omits full tweet and direct-message payloads.

Mention queue

Use type=Mentions for replies and mentions that need a support or brand review queue.

Verified activity

Use type=Verified when verified-account activity should be routed ahead of the general inbox.

All inbox

Omit type or pass All when the workflow needs every notification row visible to the connected account.

Stable upserts

Store notifications[].id as notification_id for dedupe and replay-safe imports.

Private text

Keep notifications[].message in private support, CRM, or agent memory systems.

Next page

Store has_next_page and next_cursor; pass next_cursor back as cursor only when has_next_page is true.

Poll Twitter notifications with the API

Call GET /x/notifications with a connected account’s Xquik API key. Omit type to read all notification categories. Use type=Mentions for a mention queue or type=Verified for verified-account activity. Each row can contain a notification ID, type, message, and timestamp. The route does not return full tweet, profile, or direct-message objects. Keep message text in a private support inbox, CRM, or agent queue.

Build a Twitter API mentions queue

Store notifications[].id as the stable notification key. Record the connected account ID beside every row. Upsert repeated notification IDs instead of creating duplicate support tasks. Route mention rows by notification_type, message, and timestamp. If an agent needs the complete public tweet, follow the related user mentions endpoint. X documents its user mentions timeline as a paginated feed of posts that mention one user.

Resume notification pages safely

Treat every response as one inbox page. Store next_cursor only when has_next_page equals true. Save the page’s notification rows before updating the saved cursor. When the destination supports transactions, save the page and cursor together. Otherwise, upsert by notification ID. Update the cursor after the destination writes the full page. Keep the preceding cursor until validating its replacement.

Choose polling or webhook delivery

This endpoint uses polling. The notification delay therefore includes the worker’s polling interval. Run each new request from the latest confirmed cursor, and stop when has_next_page is false. Use Xquik webhooks when an Xquik monitor should push captured events to your HTTPS endpoint. X also offers a separate Account Activity API for real-time account events. Its documentation lists mentions, replies, reposts, likes, follows, and direct messages.

Twitter notification API questions

Why are Twitter API notifications delayed?

A polling worker sees notifications only when its next request runs. Shorten the polling interval within your rate limits. Persist every cursor so later pages are not mistaken for missing notifications.

Can I delete or clear notifications with this route?

No. This route only reads notifications. Deleting a local triage row does not remove the notification from X or another connected client.

What happens when a notification request fails?

401 means the connected account needs a valid key. 402 means the account needs more credits. Wait for Retry-After after 429. Resume from the saved cursor after 424 or 502.

Query parameters

string
Notification filter. All (default), Verified, or Mentions. Unrecognized values fall back to All.
string
Pagination cursor. Pass the next_cursor value from the previous response to fetch the next page.

Which inbox endpoint?

Account notifications

Use GET /x/notifications for connected-account notification rows with All, Verified, or Mentions filters.

Home timeline

Use GET /x/timeline for the connected account’s home timeline tweets.

Participant DMs

Use GET /x/dm/{userId}/history when the workflow needs private direct-message conversation rows.

Public mentions

Use GET /x/users/{id}/mentions when you need public mention timeline rows for a user.

Account monitor events

Use List events after account or keyword monitors have captured replayable webhook events.

Webhook delivery

Use Webhooks when notification-like activity should push to your system instead of being polled.

Headers

string
required
Your API key. Session cookie authentication is also supported.

Response

200 OK

object[]
Array of notification objects. Notification object fields.
string
Notification ID.
string
Notification type (e.g. mention, like, retweet). Omitted if unavailable.
string
Notification message text. Omitted if unavailable.
string
ISO 8601 timestamp. Omitted if unavailable.
boolean
Whether more notifications are available.
string
Opaque cursor for the next page. Empty string when no more results.