Skip to main content
GET
/
events
/
{id}
Get event
curl --request GET \
  --url https://xquik.com/api/v1/events/{id} \
  --header 'x-api-key: <api-key>'
import requests

url = "https://xquik.com/api/v1/events/{id}"

headers = {"x-api-key": "<api-key>"}

response = requests.get(url, headers=headers)

print(response.text)
const options = {method: 'GET', headers: {'x-api-key': '<api-key>'}};

fetch('https://xquik.com/api/v1/events/{id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));
package main

import (
"fmt"
"net/http"
"io"
)

func main() {

url := "https://xquik.com/api/v1/events/{id}"

req, _ := http.NewRequest("GET", url, nil)

req.Header.Add("x-api-key", "<api-key>")

res, _ := http.DefaultClient.Do(req)

defer res.Body.Close()
body, _ := io.ReadAll(res.Body)

fmt.Println(string(body))

}
Free - does not consume credits
curl https://xquik.com/api/v1/events/9001 \
  -H "x-api-key: xq_YOUR_KEY_HERE" \
  | jq '{
    event_id: .id,
    event_type: .type,
    monitor_type: .monitorType,
    monitor_id: .monitorId,
    keyword_monitor_id: (.keywordMonitorId // null),
    username: (.username // null),
    query: (.query // null),
    occurred_at: .occurredAt,
    x_event_id: (.xEventId // null),
    tweet_id: (.xEventId // .data.id // null),
    tweet_text: (.data.text // null),
    author_username: (.data.author.userName // null),
    event_detail_endpoint: ("/api/v1/events/" + .id),
    delivery_join_key: .id
  }'
const response = await fetch("https://xquik.com/api/v1/events/9001", {
  headers: { "x-api-key": "xq_YOUR_KEY_HERE" },
});
const event = await response.json();
const eventRow = {
  event_id: event.id,
  event_type: event.type,
  monitor_type: event.monitorType,
  monitor_id: event.monitorId,
  keyword_monitor_id: event.keywordMonitorId ?? null,
  username: event.username ?? null,
  query: event.query ?? null,
  occurred_at: event.occurredAt,
  x_event_id: event.xEventId ?? null,
  tweet_id: event.xEventId ?? event.data?.id ?? null,
  tweet_text: event.data?.text ?? null,
  author_username: event.data?.author?.userName ?? null,
  event_detail_endpoint: `/api/v1/events/${event.id}`,
  delivery_join_key: event.id,
};

process.stdout.write(`${JSON.stringify(eventRow)}\n`);
import json
import requests

response = requests.get(
    "https://xquik.com/api/v1/events/9001",
    headers={"x-api-key": "xq_YOUR_KEY_HERE"},
)
event = response.json()
tweet = event.get("data") if isinstance(event.get("data"), dict) else {}
author = tweet.get("author") if isinstance(tweet.get("author"), dict) else {}
event_row = {
    "event_id": event["id"],
    "event_type": event["type"],
    "monitor_type": event["monitorType"],
    "monitor_id": event["monitorId"],
    "keyword_monitor_id": event.get("keywordMonitorId"),
    "username": event.get("username"),
    "query": event.get("query"),
    "occurred_at": event["occurredAt"],
    "x_event_id": event.get("xEventId"),
    "tweet_id": event.get("xEventId") or tweet.get("id"),
    "tweet_text": tweet.get("text"),
    "author_username": author.get("userName"),
    "event_detail_endpoint": f"/api/v1/events/{event['id']}",
    "delivery_join_key": event["id"],
}
print(json.dumps(event_row))
package main

import (
  "encoding/json"
  "log"
  "net/http"
  "os"
)

type EventAuthor struct {
  UserName *string `json:"userName"`
}

type EventPayload struct {
  ID     *string      `json:"id"`
  Text   *string      `json:"text"`
  Author *EventAuthor `json:"author"`
}

type Event struct {
  ID               string       `json:"id"`
  Type             string       `json:"type"`
  MonitorType      string       `json:"monitorType"`
  MonitorID        string       `json:"monitorId"`
  KeywordMonitorID *string      `json:"keywordMonitorId"`
  Username         *string      `json:"username"`
  Query            *string      `json:"query"`
  OccurredAt       string       `json:"occurredAt"`
  Data             EventPayload `json:"data"`
  XEventID         *string      `json:"xEventId"`
}

type EventRow struct {
  DeliveryJoinKey      string  `json:"delivery_join_key"`
  EventDetailEndpoint  string  `json:"event_detail_endpoint"`
  EventID              string  `json:"event_id"`
  EventType            string  `json:"event_type"`
  MonitorType          string  `json:"monitor_type"`
  MonitorID            string  `json:"monitor_id"`
  KeywordMonitorID     *string `json:"keyword_monitor_id"`
  Username             *string `json:"username"`
  Query                *string `json:"query"`
  OccurredAt           string  `json:"occurred_at"`
  XEventID             *string `json:"x_event_id"`
  TweetID              *string `json:"tweet_id"`
  TweetText            *string `json:"tweet_text"`
  AuthorUsername       *string `json:"author_username"`
}

func main() {
  req, err := http.NewRequest("GET", "https://xquik.com/api/v1/events/9001", nil)
  if err != nil {
    log.Fatal(err)
  }
  req.Header.Set("x-api-key", "xq_YOUR_KEY_HERE")

  resp, err := http.DefaultClient.Do(req)
  if err != nil {
    log.Fatal(err)
  }
  defer resp.Body.Close()

  var event Event
  if err := json.NewDecoder(resp.Body).Decode(&event); err != nil {
    log.Fatal(err)
  }

  tweetID := event.XEventID
  if tweetID == nil {
    tweetID = event.Data.ID
  }

  var authorUsername *string
  if event.Data.Author != nil {
    authorUsername = event.Data.Author.UserName
  }

  row := EventRow{
    DeliveryJoinKey:     event.ID,
    EventDetailEndpoint: "/api/v1/events/" + event.ID,
    EventID:             event.ID,
    EventType:           event.Type,
    MonitorType:         event.MonitorType,
    MonitorID:           event.MonitorID,
    KeywordMonitorID:    event.KeywordMonitorID,
    Username:            event.Username,
    Query:               event.Query,
    OccurredAt:          event.OccurredAt,
    XEventID:            event.XEventID,
    TweetID:             tweetID,
    TweetText:           event.Data.Text,
    AuthorUsername:      authorUsername,
  }
  if err := json.NewEncoder(os.Stdout).Encode(row); err != nil {
    log.Fatal(err)
  }
}
The Node.js, Python, and Go examples convert one event into an audit row. Store event_id, monitor_type, monitor_id, event_type, occurred_at, x_event_id, tweet fields from data, event_detail_endpoint, and delivery_join_key; keyword monitor events use keyword_monitor_id and query instead of username.

Event detail handoff

Use this endpoint after list or delivery workflows find an event that needs full tweet data, author context, or support/audit review.

Detail Row

Store event_id, event_type, occurred_at, event_detail_endpoint, and delivery_join_key. Keep event_id as the Xquik event identifier.

Delivery Join

Match delivery_join_key to webhook delivery streamEventId from List Deliveries. Do not use x_event_id for delivery joins.

Monitor Source

Store monitor_type, monitor_id, keyword_monitor_id, username, and query so account and keyword monitor audits stay separate.

Tweet Payload

Store x_event_id, tweet_id, tweet_text, and author_username from data when the event contains tweet content.

Delivery Status

After joining deliveries, attach status, attempts, lastStatusCode, lastError, createdAt, and deliveredAt to the event detail row.

Path parameters

id
string
required
The event ID to retrieve.

Headers

x-api-key
string
required
Your API key.

Response

id
string
Unique event identifier.
type
string
Event type (e.g. tweet.new, tweet.reply, tweet.quote, tweet.retweet).
monitorId
string
Account monitor ID for account events, or keyword monitor ID for keyword events.
monitorType
string
Source type: account or keyword.
keywordMonitorId
string
Keyword monitor ID. Present only for keyword monitor events.
username
string
X username that triggered the event. Present only for account monitor events.
query
string
Keyword query that matched the event. Present only for keyword monitor events.
occurredAt
string
ISO 8601 timestamp of when the event occurred on X.
data
object
Raw tweet object from the X real-time stream. Fields vary by event type. See Webhooks Overview for event data shapes.
xEventId
string
X platform tweet ID associated with this event. Present only for tweet events.
{
  "id": "9001",
  "type": "tweet.new",
  "monitorId": "7",
  "monitorType": "account",
  "username": "elonmusk",
  "occurredAt": "2026-02-24T14:22:00.000Z",
  "data": {
    "id": "1893456789012345678",
    "text": "The future is now.",
    "author": {
      "id": "44196397",
      "userName": "elonmusk",
      "name": "Elon Musk"
    },
    "isRetweet": false,
    "isReply": false,
    "isQuote": false,
    "createdAt": "2026-02-24T14:22:00.000Z"
  },
  "xEventId": "1893456789012345678"
}
Last modified on May 21, 2026