Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.corsair.dev/llms.txt

Use this file to discover all available pages before exploring further.

Every xquik.api.* operation is listed below with parameter shapes and return types from the plugin Zod schemas.
New to Corsair? See API access, authentication, and error handling.

Media

download

media.download Download images and videos from one or more tweets Risk: read
await corsair.xquik.api.media.download({});
Input
NameTypeRequiredDescription
tweetIdstringNo
tweetIdsstring[]No
tweetInputstringNo
tweetUrlstringNo
Output
NameTypeRequiredDescription
cacheHitbooleanNo
galleryUrlstringNo
totalMedianumberNo
totalTweetsnumberNo
tweetIdstringNo

uploadFromUrl

media.uploadFromUrl Upload public media URLs for use in Xquik tweet creation Risk: write
await corsair.xquik.api.media.uploadFromUrl({});
Input
NameTypeRequiredDescription
accountstringYes
urlstringYes
Output
NameTypeRequiredDescription
mediaIdstringYes
mediaUrlstringYes
successtrueYes

get

trends.get Get trending X topics by WOEID region Risk: read
await corsair.xquik.api.trends.get({});
Input
NameTypeRequiredDescription
countnumberNo
woeidnumberNo
Output
NameTypeRequiredDescription
countnumberYes
trendsobject[]Yes
woeidnumberYes

Tweets

batch

tweets.batch Fetch up to 100 tweets by ID Risk: read
await corsair.xquik.api.tweets.batch({});
Input
NameTypeRequiredDescription
idsstring[]Yes
Output
NameTypeRequiredDescription
has_next_pagebooleanYes
next_cursorstringNo
tweetsobject[]Yes
{
  author?: {
    coverPicture?: string,
    createdAt?: string,
    description?: string,
    followers?: number,
    following?: number,
    id: string,
    location?: string,
    name: string,
    profilePicture?: string,
    statusesCount?: number,
    username: string,
    verified?: boolean
  },
  bookmarkCount?: number,
  conversationId?: string,
  createdAt?: string,
  entities?: {
  },
  id: string,
  inReplyToId?: string,
  inReplyToUserId?: string,
  inReplyToUsername?: string,
  isLimitedReply?: boolean,
  isNoteTweet?: boolean,
  isQuoteStatus?: boolean,
  isReply?: boolean,
  lang?: string,
  likeCount?: number,
  media?: {
    mediaUrl?: string,
    type?: animated_gif | photo | video,
    url?: string
  }[],
  quoteCount?: number,
  replyCount?: number,
  retweetCount?: number,
  source?: string,
  text: string,
  type?: string,
  url?: string,
  viewCount?: number
}[]

create

tweets.create Create a tweet or reply from a connected X account Risk: write
await corsair.xquik.api.tweets.create({});
Input
NameTypeRequiredDescription
accountstringYes
attachment_urlstringNo
community_idstringNo
is_note_tweetbooleanNo
mediastring[]No
reply_to_tweet_idstringNo
textstringNo
Output: object
{
  success: true,
  tweetId: string
} | {
  charged: boolean,
  error: x_write_unconfirmed,
  message?: string,
  retryable: false,
  status: pending_confirmation,
  writeActionId: string
}

delete

tweets.delete Delete a tweet from a connected X account Risk: destructive · Irreversible
await corsair.xquik.api.tweets.delete({});
Input
NameTypeRequiredDescription
accountstringYes
idstringYes
Output
NameTypeRequiredDescription
successtrueYes

get

tweets.get Get a tweet with full text, author, metrics, and media Risk: read
await corsair.xquik.api.tweets.get({});
Input
NameTypeRequiredDescription
idstringYes
Output
NameTypeRequiredDescription
authorobjectNo
tweetobjectYes
{
  followers: number,
  id: string,
  profilePicture?: string,
  username: string,
  verified: boolean
}
{
  bookmarkCount: number,
  conversationId?: string,
  createdAt?: string,
  entities?: {
  },
  id: string,
  isNoteTweet?: boolean,
  isQuoteStatus?: boolean,
  isReply?: boolean,
  likeCount: number,
  media?: {
    mediaUrl?: string,
    type?: animated_gif | photo | video,
    url?: string
  }[],
  quoteCount: number,
  replyCount: number,
  retweetCount: number,
  source?: string,
  text: string,
  viewCount: number
}

like

tweets.like Like a tweet from a connected X account Risk: write
await corsair.xquik.api.tweets.like({});
Input
NameTypeRequiredDescription
accountstringYes
idstringYes
Output
NameTypeRequiredDescription
successtrueYes

retweet

tweets.retweet Retweet a tweet from a connected X account Risk: write
await corsair.xquik.api.tweets.retweet({});
Input
NameTypeRequiredDescription
accountstringYes
idstringYes
Output
NameTypeRequiredDescription
successtrueYes

tweets.search Search tweets with X query operators and pagination Risk: read
await corsair.xquik.api.tweets.search({});
Input
NameTypeRequiredDescription
anyWordsstringNo
cashtagsstringNo
conversationIdstringNo
exactPhrasestringNo
excludeWordsstringNo
fromUserstringNo
hashtagsstringNo
inReplyToTweetIdstringNo
languagestringNo
mediaTypegifs | images | links | media | none | videosNo
mentioningstringNo
minFavesnumberNo
minQuotesnumberNo
minRepliesnumberNo
minRetweetsnumberNo
quotesexclude | include | onlyNo
quotesOfTweetIdstringNo
repliesexclude | include | onlyNo
retweetsexclude | include | onlyNo
retweetsOfTweetIdstringNo
sinceDatestringNo
toUserstringNo
untilDatestringNo
urlstringNo
verifiedOnlybooleanNo
cursorstringNo
limitnumberNo
qstringYes
queryTypeLatest | TopNo
sinceTimestringNo
untilTimestringNo
Output
NameTypeRequiredDescription
has_next_pagebooleanYes
next_cursorstringNo
tweetsobject[]Yes
{
  author?: {
    coverPicture?: string,
    createdAt?: string,
    description?: string,
    followers?: number,
    following?: number,
    id: string,
    location?: string,
    name: string,
    profilePicture?: string,
    statusesCount?: number,
    username: string,
    verified?: boolean
  },
  bookmarkCount?: number,
  conversationId?: string,
  createdAt?: string,
  entities?: {
  },
  id: string,
  inReplyToId?: string,
  inReplyToUserId?: string,
  inReplyToUsername?: string,
  isLimitedReply?: boolean,
  isNoteTweet?: boolean,
  isQuoteStatus?: boolean,
  isReply?: boolean,
  lang?: string,
  likeCount?: number,
  media?: {
    mediaUrl?: string,
    type?: animated_gif | photo | video,
    url?: string
  }[],
  quoteCount?: number,
  replyCount?: number,
  retweetCount?: number,
  source?: string,
  text: string,
  type?: string,
  url?: string,
  viewCount?: number
}[]

unlike

tweets.unlike Remove a like from a connected X account Risk: write
await corsair.xquik.api.tweets.unlike({});
Input
NameTypeRequiredDescription
accountstringYes
idstringYes
Output
NameTypeRequiredDescription
successtrueYes

Users

batch

users.batch Look up up to 100 X users by ID Risk: read
await corsair.xquik.api.users.batch({});
Input
NameTypeRequiredDescription
idsstring[]Yes
Output
NameTypeRequiredDescription
has_next_pagebooleanYes
next_cursorstringNo
usersobject[]Yes
{
  coverPicture?: string,
  createdAt?: string,
  description?: string,
  followers?: number,
  following?: number,
  id: string,
  location?: string,
  name: string,
  profilePicture?: string,
  statusesCount?: number,
  username: string,
  verified?: boolean
}[]

follow

users.follow Follow an X user from a connected account Risk: write
await corsair.xquik.api.users.follow({});
Input
NameTypeRequiredDescription
accountstringYes
idstringYes
Output
NameTypeRequiredDescription
successtrueYes

followers

users.followers List followers of an X user Risk: read
await corsair.xquik.api.users.followers({});
Input
NameTypeRequiredDescription
idstringYes
cursorstringNo
pageSizenumberNo
Output
NameTypeRequiredDescription
has_next_pagebooleanYes
next_cursorstringNo
usersobject[]Yes
{
  coverPicture?: string,
  createdAt?: string,
  description?: string,
  followers?: number,
  following?: number,
  id: string,
  location?: string,
  name: string,
  profilePicture?: string,
  statusesCount?: number,
  username: string,
  verified?: boolean
}[]

following

users.following List accounts an X user follows Risk: read
await corsair.xquik.api.users.following({});
Input
NameTypeRequiredDescription
idstringYes
cursorstringNo
pageSizenumberNo
Output
NameTypeRequiredDescription
has_next_pagebooleanYes
next_cursorstringNo
usersobject[]Yes
{
  coverPicture?: string,
  createdAt?: string,
  description?: string,
  followers?: number,
  following?: number,
  id: string,
  location?: string,
  name: string,
  profilePicture?: string,
  statusesCount?: number,
  username: string,
  verified?: boolean
}[]

get

users.get Get an X user profile by username or user ID Risk: read
await corsair.xquik.api.users.get({});
Input
NameTypeRequiredDescription
idstringYes
Output
NameTypeRequiredDescription
coverPicturestringNo
createdAtstringNo
descriptionstringNo
followersnumberNo
followingnumberNo
idstringYes
locationstringNo
namestringYes
profilePicturestringNo
statusesCountnumberNo
usernamestringYes
verifiedbooleanNo

search

users.search Search X users by name or username Risk: read
await corsair.xquik.api.users.search({});
Input
NameTypeRequiredDescription
cursorstringNo
qstringYes
Output
NameTypeRequiredDescription
has_next_pagebooleanYes
next_cursorstringNo
usersobject[]Yes
{
  coverPicture?: string,
  createdAt?: string,
  description?: string,
  followers?: number,
  following?: number,
  id: string,
  location?: string,
  name: string,
  profilePicture?: string,
  statusesCount?: number,
  username: string,
  verified?: boolean
}[]

tweets

users.tweets List recent tweets posted by an X user Risk: read
await corsair.xquik.api.users.tweets({});
Input
NameTypeRequiredDescription
idstringYes
cursorstringNo
pageSizenumberNo
anyWordsstringNo
cashtagsstringNo
conversationIdstringNo
exactPhrasestringNo
excludeWordsstringNo
fromUserstringNo
hashtagsstringNo
inReplyToTweetIdstringNo
languagestringNo
mediaTypegifs | images | links | media | none | videosNo
mentioningstringNo
minFavesnumberNo
minQuotesnumberNo
minRepliesnumberNo
minRetweetsnumberNo
quotesexclude | include | onlyNo
quotesOfTweetIdstringNo
repliesexclude | include | onlyNo
retweetsexclude | include | onlyNo
retweetsOfTweetIdstringNo
sinceDatestringNo
toUserstringNo
untilDatestringNo
urlstringNo
verifiedOnlybooleanNo
includeParentTweetbooleanNo
includeRepliesbooleanNo
Output
NameTypeRequiredDescription
has_next_pagebooleanYes
next_cursorstringNo
tweetsobject[]Yes
{
  author?: {
    coverPicture?: string,
    createdAt?: string,
    description?: string,
    followers?: number,
    following?: number,
    id: string,
    location?: string,
    name: string,
    profilePicture?: string,
    statusesCount?: number,
    username: string,
    verified?: boolean
  },
  bookmarkCount?: number,
  conversationId?: string,
  createdAt?: string,
  entities?: {
  },
  id: string,
  inReplyToId?: string,
  inReplyToUserId?: string,
  inReplyToUsername?: string,
  isLimitedReply?: boolean,
  isNoteTweet?: boolean,
  isQuoteStatus?: boolean,
  isReply?: boolean,
  lang?: string,
  likeCount?: number,
  media?: {
    mediaUrl?: string,
    type?: animated_gif | photo | video,
    url?: string
  }[],
  quoteCount?: number,
  replyCount?: number,
  retweetCount?: number,
  source?: string,
  text: string,
  type?: string,
  url?: string,
  viewCount?: number
}[]

unfollow

users.unfollow Unfollow an X user from a connected account Risk: write
await corsair.xquik.api.users.unfollow({});
Input
NameTypeRequiredDescription
accountstringYes
idstringYes
Output
NameTypeRequiredDescription
successtrueYes

Webhooks

create

webhooks.create Create an Xquik webhook endpoint subscription Risk: write
await corsair.xquik.api.webhooks.create({});
Input
NameTypeRequiredDescription
eventTypestweet.new | tweet.quote | tweet.reply | tweet.retweet[]Yes
urlstringYes
Output
NameTypeRequiredDescription
createdAtstringYes
eventTypestweet.new | tweet.quote | tweet.reply | tweet.retweet[]Yes
idstringYes
isActivebooleanYes
urlstringYes
secretstringYes

deactivate

webhooks.deactivate Deactivate an Xquik webhook endpoint Risk: write
await corsair.xquik.api.webhooks.deactivate({});
Input
NameTypeRequiredDescription
idstringYes
Output
NameTypeRequiredDescription
successtrueYes

deliveries

webhooks.deliveries List delivery attempts for an Xquik webhook endpoint Risk: read
await corsair.xquik.api.webhooks.deliveries({});
Input
NameTypeRequiredDescription
idstringYes
Output
NameTypeRequiredDescription
deliveriesobject[]Yes
{
  attempts: number,
  createdAt: string,
  deliveredAt?: string,
  id: string,
  lastError?: string,
  lastStatusCode?: number,
  status: string,
  streamEventId: string
}[]

list

webhooks.list List configured Xquik webhook endpoints Risk: read
await corsair.xquik.api.webhooks.list({});
Input: empty object Output
NameTypeRequiredDescription
webhooksobject[]Yes
{
  createdAt: string,
  eventTypes: tweet.new | tweet.quote | tweet.reply | tweet.retweet[],
  id: string,
  isActive: boolean,
  url: string
}[]

test

webhooks.test Send a test delivery to an Xquik webhook endpoint Risk: write
await corsair.xquik.api.webhooks.test({});
Input
NameTypeRequiredDescription
idstringYes
Output
NameTypeRequiredDescription
errorstringNo
statusCodenumberYes
successbooleanYes

update

webhooks.update Update a Xquik webhook URL, event types, or active state Risk: write
await corsair.xquik.api.webhooks.update({});
Input
NameTypeRequiredDescription
eventTypestweet.new | tweet.quote | tweet.reply | tweet.retweet[]No
idstringYes
isActivebooleanNo
urlstringNo
Output
NameTypeRequiredDescription
createdAtstringYes
eventTypestweet.new | tweet.quote | tweet.reply | tweet.retweet[]Yes
idstringYes
isActivebooleanYes
urlstringYes

Write Actions

get

writeActions.get Check the status of a pending Xquik write action Risk: read
await corsair.xquik.api.writeActions.get({});
Input
NameTypeRequiredDescription
idstringYes
Output
NameTypeRequiredDescription
actionstringYes
chargedbooleanYes
confirmationAttemptsnumberNo
confirmationCheckedAtstringNo
confirmationSourcestringNo
confirmedAtstringNo
createdAtstringYes
messagestringNo
messageIdstringNo
retryablebooleanYes
sendDispatchedbooleanYes
sendDispatchedAtstringNo
statusfailed | pending_confirmation | successYes
targetIdstringNo
tweetIdstringNo
writeActionIdstringYes