api.socialfetch.dev
https://api.socialfetch.dev/v1/twitter/tweetsShares a payout wallet with 137 other endpoints — its adoption is attributed from that shared wallet's traffic, not earned exclusively.
Get a single tweet by URL.
Reliability & health
Uptime and response time from our own unpaid probes, plus the reliability score built from them.
Uptime
100.0% avgResponse time
p50 54ms · p95 103msData table
| Bucket | Uptime | Probes | Response time |
|---|---|---|---|
| 9/28/2026, 5:00:00 PM | 100% | 1 | 38ms |
| 9/28/2026, 7:00:00 PM | 100% | 1 | 74ms |
| 9/28/2026, 9:00:00 PM | 100% | 1 | 95ms |
| 9/28/2026, 11:00:00 PM | 100% | 1 | 83ms |
| 9/29/2026, 1:00:00 AM | 100% | 1 | 37ms |
| 9/29/2026, 2:00:00 AM | 100% | 1 | 416ms |
| 9/29/2026, 3:00:00 AM | 100% | 1 | 75ms |
| 9/29/2026, 4:00:00 AM | 100% | 1 | 59ms |
| 9/29/2026, 6:00:00 AM | 100% | 1 | 57ms |
| 9/29/2026, 8:00:00 AM | 100% | 1 | 89ms |
| 9/29/2026, 10:00:00 AM | 100% | 1 | 41ms |
| 9/29/2026, 12:00:00 PM | 100% | 1 | 72ms |
| 9/29/2026, 1:00:00 PM | 100% | 1 | 62ms |
| 9/29/2026, 3:00:00 PM | 100% | 1 | 58ms |
| 9/29/2026, 5:00:00 PM | 100% | 1 | 43ms |
| 9/29/2026, 7:00:00 PM | 100% | 1 | 41ms |
| 9/29/2026, 9:00:00 PM | 100% | 1 | 59ms |
| 9/29/2026, 11:00:00 PM | 100% | 1 | 160ms |
| 9/30/2026, 2:00:00 AM | 100% | 1 | 101ms |
| 9/30/2026, 4:00:00 AM | 100% | 1 | 58ms |
| 9/30/2026, 6:00:00 AM | 100% | 1 | 71ms |
| 9/30/2026, 8:00:00 AM | 100% | 1 | 111ms |
| 9/30/2026, 10:00:00 AM | 100% | 1 | 38ms |
| 9/30/2026, 12:00:00 PM | 100% | 1 | 84ms |
| 9/30/2026, 2:00:00 PM | 100% | 1 | 41ms |
| 9/30/2026, 4:00:00 PM | 100% | 1 | 42ms |
| 9/30/2026, 6:00:00 PM | 100% | 1 | 45ms |
| 9/30/2026, 8:00:00 PM | 100% | 1 | 72ms |
| 9/30/2026, 10:00:00 PM | 100% | 1 | 37ms |
| 10/1/2026, 12:00:00 AM | 100% | 1 | 88ms |
| 10/1/2026, 2:00:00 AM | 100% | 1 | 41ms |
| 10/1/2026, 4:00:00 AM | 100% | 1 | 103ms |
| 10/1/2026, 6:00:00 AM | 100% | 1 | 57ms |
| 10/1/2026, 8:00:00 AM | 100% | 1 | 50ms |
| 10/1/2026, 10:00:00 AM | 100% | 1 | 42ms |
| 10/1/2026, 12:00:00 PM | 100% | 1 | 37ms |
| 10/1/2026, 2:00:00 PM | 100% | 1 | 54ms |
| 10/1/2026, 4:00:00 PM | 100% | 1 | 59ms |
| 10/1/2026, 5:00:00 PM | 100% | 1 | 39ms |
| 10/1/2026, 7:00:00 PM | 100% | 1 | 70ms |
| 10/1/2026, 9:00:00 PM | 100% | 1 | 37ms |
| 10/1/2026, 11:00:00 PM | 100% | 1 | 35ms |
| 10/2/2026, 1:00:00 AM | 100% | 1 | 77ms |
| 10/2/2026, 2:00:00 AM | 100% | 1 | 58ms |
| 10/2/2026, 4:00:00 AM | 100% | 1 | 72ms |
| 10/2/2026, 6:00:00 AM | 100% | 1 | 40ms |
| 10/2/2026, 8:00:00 AM | 100% | 1 | 35ms |
| 10/2/2026, 10:00:00 AM | 100% | 1 | 44ms |
| 10/2/2026, 12:00:00 PM | 100% | 1 | 52ms |
| 10/2/2026, 2:00:00 PM | 100% | 1 | 38ms |
| 10/2/2026, 4:00:00 PM | 100% | 1 | 40ms |
| 10/2/2026, 6:00:00 PM | 100% | 1 | 71ms |
| 10/2/2026, 8:00:00 PM | 100% | 1 | 44ms |
| 10/2/2026, 11:00:00 PM | 100% | 1 | 39ms |
| 10/3/2026, 12:00:00 AM | 100% | 1 | 40ms |
| 10/3/2026, 2:00:00 AM | 100% | 1 | 43ms |
| 10/3/2026, 4:00:00 AM | 100% | 1 | 54ms |
| 10/3/2026, 6:00:00 AM | 100% | 1 | 50ms |
| 10/3/2026, 8:00:00 AM | 100% | 1 | 48ms |
| 10/3/2026, 10:00:00 AM | 100% | 1 | 54ms |
| 10/3/2026, 12:00:00 PM | 100% | 1 | 55ms |
| 10/3/2026, 2:00:00 PM | 100% | 1 | 270ms |
| 10/3/2026, 4:00:00 PM | 100% | 1 | 61ms |
| 10/3/2026, 6:00:00 PM | 100% | 1 | 52ms |
| 10/3/2026, 8:00:00 PM | 100% | 1 | 62ms |
| 10/3/2026, 11:00:00 PM | 100% | 1 | 37ms |
| 10/4/2026, 1:00:00 AM | 100% | 1 | 49ms |
| 10/4/2026, 2:00:00 AM | 100% | 1 | 33ms |
| 10/4/2026, 3:00:00 AM | 100% | 1 | 37ms |
| 10/4/2026, 5:00:00 AM | 100% | 1 | 43ms |
| 10/4/2026, 7:00:00 AM | 100% | 1 | 32ms |
| 10/4/2026, 9:00:00 AM | 100% | 1 | 52ms |
| 10/4/2026, 1:00:00 PM | 100% | 1 | 60ms |
| 10/4/2026, 3:00:00 PM | 100% | 1 | 79ms |
| 10/4/2026, 4:00:00 PM | 100% | 1 | 46ms |
| 10/4/2026, 5:00:00 PM | 100% | 1 | 85ms |
| 10/4/2026, 7:00:00 PM | 100% | 1 | 63ms |
| 10/4/2026, 9:00:00 PM | 100% | 1 | 58ms |
| 10/5/2026, 2:00:00 AM | 100% | 1 | 52ms |
| 10/5/2026, 7:00:00 AM | 100% | 1 | 58ms |
| 10/5/2026, 8:00:00 AM | 100% | 1 | 41ms |
| 10/5/2026, 10:00:00 AM | 100% | 1 | 58ms |
| 10/5/2026, 11:00:00 AM | 100% | 1 | 37ms |
| 10/5/2026, 1:00:00 PM | 100% | 1 | 64ms |
| 10/5/2026, 2:00:00 PM | 100% | 1 | 37ms |
- Availability
- 91
- Latency
- 100
- Security
- 100
- Transparency
- 49
- Activity
- 2
How often it was reachable when we probed it (weight 35%).
How quickly it answers when it is up — fast scores high (weight 20%).
Whether it serves over working TLS / https (weight 15%).
Whether the operator disclosed what it does — description, schema, identity (weight 15%).
Observed on-chain payments to this endpoint's wallet — transactions, volume, and distinct paying wallets over the last month (weight 15%; not yet measured when we have not seen its wallet settle).
Confidence 100% — how much probe evidence backs this score. A thin history is flagged, not hidden.
See the scoring methodology for exactly how each number is computed.
Payment
- Currencies
- USDC
- Networks
- base
- Facilitator
- unknown
- SDK
- unknown
Operator
- Company
- inferred — unknown
- Jurisdiction
- —
- Registrar
- Namecheap Inc.
- Domain registered
- 2026-03-30
- Hosting network
- VERCEL-09
- Hosting country
- —
Operator context is derived from public RDAP/TLS records and unverified. Company and country are only available for endpoints that publish them (an OV/EV TLS certificate or a non-redacted domain record); most endpoints are CDN-fronted and disclose neither.
On-chain activity (base)
Payments per day
last payment 10/5/2026Data table
| Day | Payments | Volume (USD) | Paying wallets |
|---|---|---|---|
| 9/6/2026 | 6 | 0.08 | 3 |
| 9/7/2026 | 41 | 0.6 | 5 |
| 9/8/2026 | 6 | 0.1 | 4 |
| 9/9/2026 | 4 | 0.08 | 2 |
| 9/10/2026 | 7 | 0.11 | 4 |
| 9/11/2026 | 5 | 0.08 | 3 |
| 9/12/2026 | 10 | 0.14 | 3 |
| 9/13/2026 | 5 | 0.07 | 2 |
| 9/14/2026 | 40 | 0.56 | 4 |
| 9/15/2026 | 28 | 0.39 | 3 |
| 9/16/2026 | 3 | 0.04 | 2 |
| 9/17/2026 | 5 | 0.08 | 3 |
| 9/18/2026 | 15 | 0.21 | 2 |
| 9/19/2026 | 5 | 0.07 | 1 |
| 9/20/2026 | 5 | 0.07 | 3 |
| 9/21/2026 | 24 | 0.34 | 2 |
| 9/22/2026 | 14 | 0.2 | 4 |
| 9/23/2026 | 83 | 1.16 | 3 |
| 9/26/2026 | 1 | 0.01 | 1 |
| 9/27/2026 | 3 | 0.04 | 2 |
| 9/28/2026 | 76 | 1.06 | 4 |
| 9/29/2026 | 69 | 0.97 | 3 |
| 9/30/2026 | 102 | 1.43 | 3 |
| 10/1/2026 | 2 | 0.03 | 2 |
| 10/2/2026 | 5 | 0.07 | 2 |
| 10/3/2026 | 9 | 0.13 | 3 |
| 10/4/2026 | 17 | 0.24 | 6 |
| 10/5/2026 | 90 | 1.26 | 5 |
This payout wallet is shared: figures cover all 138 endpoints paid at it, since payments cannot be attributed to one of them. Only payments settled on chains and facilitators we index.
Linked by wallet — likely same operator
On-chain agent identity and the x402 endpoint that shares its settlement wallet.
Response schema
{
"description": "Standard success response envelope.",
"properties": {
"data": {
"description": "Endpoint-specific response payload.",
"properties": {
"author": {
"description": "Author profile and metrics when not trimmed; null when `trim=true` or when not found.",
"nullable": true,
"properties": {
"metrics": {
"description": "Aggregate counts for the tweet author.",
"properties": {
"fastFollowersCount": {
"description": "Fast-followers count when X provides it.",
"minimum": 0,
"type": "integer"
},
"favourites": {
"description": "Total favourites (likes) count from X.",
"minimum": 0,
"type": "integer"
},
"followers": {
"description": "Follower count from X.",
"minimum": 0,
"type": "integer"
},
"following": {
"description": "Following (friends) count from X.",
"minimum": 0,
"type": "integer"
},
"listedCount": {
"description": "Listed count when X provides it.",
"minimum": 0,
"type": "integer"
},
"mediaCount": {
"description": "Media item count when X provides it.",
"minimum": 0,
"type": "integer"
},
"tweets": {
"description": "Total post (status) count from X.",
"minimum": 0,
"type": "integer"
}
},
"required": [
"followers",
"following",
"tweets",
"favourites"
],
"type": "object"
},
"profile": {
"description": "Profile fields for the tweet author.",
"properties": {
"accountCreatedAt": {
"description": "Account creation time (ISO-8601) when derivable.",
"format": "date-time",
"type": "string"
},
"affiliateLabel": {
"description": "Affiliate or business label when X provides one.",
"properties": {
"badgeUrl": {
"description": "Badge image URL when X provides one.",
"type": "string"
},
"description": {
"description": "Affiliate or business label text shown on the profile.",
"type": "string"
},
"url": {
"description": "Destination URL for the label link.",
"type": "string"
}
},
"required": [
"description"
],
"type": "object"
},
"avatarUrl": {
"description": "Best available square avatar image URL.",
"nullable": true,
"type": "string"
},
"bannerUrl": {
"description": "Profile banner image URL when available.",
"nullable": true,
"type": "string"
},
"bio": {
"description": "Profile biography text.",
"nullable": true,
"type": "string"
},
"blueVerified": {
"description": "Whether the account has X blue (paid) verification.",
"type": "boolean"
},
"businessAccount": {
"additionalProperties": {
"nullable": true
},
"description": "Opaque business-account payload from X when non-empty (vendor-defined).",
"type": "object"
},
"createdAt": {
"description": "Account creation time as returned by X (raw upstream string). Prefer `accountCreatedAt` for ISO-8601.",
"nullable": true,
"type": "string"
},
"creatorSubscriptionsCount": {
"description": "Creator subscriptions count when X reports it.",
"minimum": 0,
"type": "integer"
},
"defaultProfile": {
"description": "Whether the account still uses the default profile theme.",
"nullable": true,
"type": "boolean"
},
"defaultProfileImage": {
"description": "Whether the account still uses the default avatar.",
"nullable": true,
"type": "boolean"
},
"displayName": {
"description": "Display name shown on the profile.",
"nullable": true,
"type": "string"
},
"favoritesCount": {
"description": "Total likes (favorites) on the profile. Prefer `metrics.favourites`.",
"minimum": 0,
"nullable": true,
"type": "integer"
},
"handle": {
"description": "X screen name (handle) without the leading @.",
"type": "string"
},
"hasCustomTimelines": {
"description": "Whether the account has custom timelines.",
"nullable": true,
"type": "boolean"
},
"hasGraduatedAccess": {
"description": "Whether X reports graduated access for this account.",
"nullable": true,
"type": "boolean"
},
"hasHiddenSubscriptions": {
"description": "Whether creator subscriptions are hidden on the profile.",
"nullable": true,
"type": "boolean"
},
"highlights": {
"description": "Tweet highlights metadata when present.",
"properties": {
"canHighlightTweets": {
"description": "Whether the account may highlight tweets on the profile.",
"type": "boolean"
},
"highlightedTweetCount": {
"description": "Count of highlighted tweets when reported by X.",
"minimum": 0,
"type": "integer"
}
},
"required": [
"canHighlightTweets",
"highlightedTweetCount"
],
"type": "object"
},
"isBlueVerified": {
"description": "Whether X marks the account as blue-verified. Same signal as `blueVerified`.",
"nullable": true,
"type": "boolean"
},
"isProfileTranslatable": {
"description": "Whether X considers the profile text translatable.",
"nullable": true,
"type": "boolean"
},
"isTranslator": {
"description": "Whether X marks the account as a translator.",
"nullable": true,
"type": "boolean"
},
"location": {
"description": "Location string from the profile when provided.",
"nullable": true,
"type": "string"
},
"pinnedTweetId": {
"description": "Pinned tweet id when X exposes one.",
"type": "string"
},
"pinnedTweetIds": {
"description": "Pinned tweet ids from X, in display order.",
"items": {
"type": "string"
},
"nullable": true,
"type": "array"
},
"platform": {
"description": "Social platform for this profile.",
"enum": [
"twitter"
],
"type": "string"
},
"platformUserId": {
"description": "Numeric X user id as a string.",
"type": "string"
},
"possiblySensitive": {
"description": "Whether X marks the profile as possibly sensitive.",
"nullable": true,
"type": "boolean"
},
"privateAccount": {
"description": "Whether the account is protected (private).",
"type": "boolean"
},
"professional": {
"description": "X professional-account metadata when the account is marked professional.",
"nullable": true,
"properties": {
"category": {
"description": "Professional category entries from X.",
"items": {
"nullable": true
},
"nullable": true,
"type": "array"
},
"restId": {
"description": "Professional account rest id from X, when present.",
"nullable": true,
"type": "string"
},
"type": {
"description": "Professional account type from X, when present.",
"nullable": true,
"type": "string"
}
},
"required": [
"type",
"category",
"restId"
],
"type": "object"
},
"profileImageShape": {
"description": "Avatar crop shape reported by X, such as Circle or Square.",
"nullable": true,
"type": "string"
},
"profileInterstitialType": {
"description": "Interstitial type shown on the profile when X reports one.",
"nullable": true,
"type": "string"
},
"profileUrl": {
"description": "Canonical public profile URL on x.com.",
"minLength": 1,
"type": "string"
},
"tipJar": {
"description": "Tip jar configuration when present.",
"properties": {
"handles": {
"description": "Per-service handles when any are present.",
"properties": {
"bandcamp": {
"description": "Bandcamp handle from tip jar.",
"type": "string"
},
"bitcoin": {
"description": "Bitcoin address or handle.",
"type": "string"
},
"cashApp": {
"description": "Cash App handle.",
"type": "string"
},
"ethereum": {
"description": "Ethereum address or handle.",
"type": "string"
},
"goFundMe": {
"description": "GoFundMe handle.",
"type": "string"
},
"patreon": {
"description": "Patreon handle.",
"type": "string"
},
"payPal": {
"description": "PayPal handle.",
"type": "string"
},
"venmo": {
"description": "Venmo handle.",
"type": "string"
}
},
"type": "object"
},
"isEnabled": {
"description": "Whether the X tip jar is enabled.",
"type": "boolean"
}
},
"required": [
"isEnabled"
],
"type": "object"
},
"verificationInfo": {
"description": "Structured verification metadata from X.",
"properties": {
"isIdentityVerified": {
"description": "Whether X marks the account as identity-verified.",
"type": "boolean"
},
"reason": {
"description": "Verification reason payload when X provides it.",
"properties": {
"entities": {
"description": "Inline entity metadata for the reason text (vendor-defined).",
"items": {
"nullable": true
},
"type": "array"
},
"text": {
"description": "Human-readable verification reason text from X.",
"type": "string"
}
},
"type": "object"
},
"verifiedSinceMsec": {
"description": "When verification became effective, as milliseconds since epoch (string from X).",
"type": "string"
}
},
"required": [
"isIdentityVerified"
],
"type": "object"
},
"verified": {
"description": "Whether X marks the profile with legacy verification (not necessarily paid blue).",
"type": "boolean"
},
"verifiedSince": {
"description": "When X verification became effective (ISO-8601). Invalid dates are null. Prefer this over `verificationInfo.verifiedSinceMsec`.",
"nullable": true,
"type": "string"
},
"verifiedType": {
"description": "X verification type label when provided (for example a government or organization note).",
"nullable": true,
"type": "string"
},
"website": {
"description": "Primary outbound link (expanded URL) from the profile.",
"nullable": true,
"type": "string"
},
"withheldInCountries": {
"description": "Country codes where the profile is withheld.",
"items": {
"type": "string"
},
"nullable": true,
"type": "array"
}
},
"required": [
"platform",
"handle",
"displayName",
"bio",
"avatarUrl",
"verified",
"blueVerified",
"profileUrl",
"privateAccount",
"isBlueVerified",
"verifiedType",
"pinnedTweetIds",
"favoritesCount",
"createdAt",
"professional",
"withheldInCountries"
],
"type": "object"
}
},
"required": [
"profile",
"metrics"
],
"type": "object"
},
"lookupStatus": {
"description": "Whether the tweet was found or unavailable.",
"enum": [
"found",
"not_found"
],
"type": "string"
},
"tweet": {
"description": "Tweet body, metrics, and optional quoted tweet; null when not found.",
"nullable": true,
"properties": {
"article": {
"description": "Article title and preview when present.",
"nullable": true,
"properties": {
"previewText": {
"description": "Short preview of the article body.",
"nullable": true,
"type": "string"
},
"title": {
"description": "Article title.",
"nullable": true,
"type": "string"
}
},
"required": [
"title",
"previewText"
],
"type": "object"
},
"communityId": {
"description": "Community id when the tweet was posted to a community.",
"nullable": true,
"type": "string"
},
"conversationId": {
"description": "Conversation root tweet id.",
"minLength": 1,
"type": "string"
},
"createdAt": {
"description": "Creation time (ISO-8601).",
"format": "date-time",
"type": "string"
},
"displayTextRange": {
"description": "Start/end character indices for visible text.",
"items": {
"minimum": 0,
"type": "integer"
},
"maxItems": 2,
"minItems": 2,
"type": "array"
},
"editInfo": {
"description": "Edit metadata when applicable.",
"properties": {
"editTweetIds": {
"description": "Tweet ids in this edit chain.",
"items": {
"minLength": 1,
"type": "string"
},
"type": "array"
},
"editableUntilMsec": {
"description": "Epoch milliseconds until edits are locked.",
"type": "string"
},
"editsRemaining": {
"description": "Remaining edits in the window, as reported by X.",
"type": "string"
},
"isEditEligible": {
"description": "Whether the tweet can still be edited.",
"type": "boolean"
}
},
"required": [
"editTweetIds",
"editableUntilMsec",
"isEditEligible",
"editsRemaining"
],
"type": "object"
},
"entities": {
"description": "Entities aligned with `text`.",
"properties": {
"hashtags": {
"description": "Hashtag entities.",
"items": {
"description": "A hashtag entity.",
"properties": {
"text": {
"description": "Hashtag text without #.",
"type": "string"
}
},
"required": [
"text"
],
"type": "object"
},
"type": "array"
},
"symbols": {
"description": "Symbol entities.",
"items": {
"description": "A symbol/cashtag entity.",
"properties": {
"text": {
"description": "Cashtag or symbol text.",
"minLength": 1,
"type": "string"
}
},
"required": [
"text"
],
"type": "object"
},
"type": "array"
},
"urls": {
"description": "URL entities.",
"items": {
"description": "A URL entity.",
"properties": {
"displayUrl": {
"description": "Human-readable display host/path.",
"minLength": 1,
"type": "string"
},
"expandedUrl": {
"description": "Fully expanded destination URL.",
"minLength": 1,
"type": "string"
},
"url": {
"description": "Short URL as it appears in text.",
"minLength": 1,
"type": "string"
}
},
"required": [
"url",
"displayUrl",
"expandedUrl"
],
"type": "object"
},
"type": "array"
},
"userMentions": {
"description": "User mention entities.",
"items": {
"description": "A user mention entity.",
"properties": {
"displayName": {
"description": "Display name when available.",
"type": "string"
},
"handle": {
"description": "Mentioned screen name.",
"minLength": 1,
"type": "string"
},
"platformUserId": {
"description": "Numeric user id for the mention when available.",
"type": "string"
}
},
"required": [
"handle"
],
"type": "object"
},
"type": "array"
}
},
"required": [
"hashtags",
"userMentions",
"urls",
"symbols"
],
"type": "object"
},
"hasAIGeneratedMedia": {
"description": "Whether X marks the tweet as containing AI-generated media.",
"nullable": true,
"type": "boolean"
},
"hasBirdwatchNotes": {
"description": "Whether Community Notes are attached to this tweet.",
"nullable": true,
"type": "boolean"
},
"id": {
"description": "Tweet id.",
"minLength": 1,
"type": "string"
},
"inReplyToScreenName": {
"description": "Parent author handle when replying.",
"type": "string"
},
"inReplyToTweetId": {
"description": "Parent tweet id when replying.",
"type": "string"
},
"inReplyToUserId": {
"description": "Parent author user id when replying.",
"type": "string"
},
"isEdited": {
"description": "Whether the tweet has been edited.",
"nullable": true,
"type": "boolean"
},
"isLongForm": {
"description": "True when text was taken from note_tweet metadata instead of legacy.full_text alone.",
"type": "boolean"
},
"isPaidPromotion": {
"description": "Whether X marks the tweet as a paid promotion.",
"nullable": true,
"type": "boolean"
},
"isQuote": {
"description": "Whether this tweet quotes another.",
"type": "boolean"
},
"isReply": {
"description": "Whether this is a reply.",
"type": "boolean"
},
"isRetweet": {
"description": "Whether this is a native repost.",
"type": "boolean"
},
"isTranslatable": {
"description": "Whether X considers the tweet text translatable.",
"nullable": true,
"type": "boolean"
},
"language": {
"description": "BCP 47 or X language code.",
"minLength": 1,
"type": "string"
},
"media": {
"description": "Photo, video, or GIF attachments.",
"items": {
"anyOf": [
{
"description": "Photo attachment on a tweet.",
"properties": {
"altText": {
"description": "Alternative text for the media when provided.",
"nullable": true,
"type": "string"
},
"displayUrl": {
"description": "Display URL shown in the tweet.",
"minLength": 1,
"type": "string"
},
"expandedUrl": {
"description": "Expanded destination URL.",
"minLength": 1,
"type": "string"
},
"id": {
"description": "Media id string.",
"minLength": 1,
"type": "string"
},
"mediaUrlHttps": {
"description": "HTTPS URL for the media asset.",
"minLength": 1,
"type": "string"
},
"originalInfo": {
"description": "Original pixel dimensions.",
"properties": {
"height": {
"minimum": 0,
"type": "integer"
},
"width": {
"minimum": 0,
"type": "integer"
}
},
"required": [
"width",
"height"
],
"type": "object"
},
"sizes": {
"description": "Per-label media dimensions from X.",
"properties": {
"large": {
"description": "Large variant.",
"properties": {
"h": {
"minimum": 0,
"type": "integer"
},
"resize": {
"minLength": 1,
"type": "string"
},
"w": {
"minimum": 0,
"type": "integer"
}
},
"required": [
"h",
"w",
"resize"
],
"type": "object"
},
"medium": {
"description": "Medium variant.",
"properties": {
"h": {
"minimum": 0,
"type": "integer"
},
"resize": {
"minLength": 1,
"type": "string"
},
"w": {
"minimum": 0,
"type": "integer"
}
},
"required": [
"h",
"w",
"resize"
],
"type": "object"
},
"small": {
"description": "Small variant.",
"properties": {
"h": {
"minimum": 0,
"type": "integer"
},
"resize": {
"minLength": 1,
"type": "string"
},
"w": {
"minimum": 0,
"type": "integer"
}
},
"required": [
"h",
"w",
"resize"
],
"type": "object"
},
"thumb": {
"description": "Thumbnail size.",
"properties": {
"h": {
"minimum": 0,
"type": "integer"
},
"resize": {
"minLength": 1,
"type": "string"
},
"w": {
"minimum": 0,
"type": "integer"
}
},
"required": [
"h",
"w",
"resize"
],
"type": "object"
}
},
"required": [
"thumb",
"small",
"medium",
"large"
],
"type": "object"
},
"type": {
"enum": [
"photo"
],
"type": "string"
},
"url": {
"description": "Short t.co URL for this media.",
"minLength": 1,
"type": "string"
},
"videoInfo": {
"description": "Video variants (bitrate and URL) when provided.",
"nullable": true,
"properties": {
"variants": {
"description": "Bitrate and URL variants.",
"items": {
"description": "A video variant bitrate and URL.",
"properties": {
"bitrate": {
"description": "Bitrate in bits per second when present.",
"minimum": 0,
"nullable": true,
"type": "integer"
},
"url": {
"description": "Direct URL for this variant.",
"nullable": true,
"type": "string"
}
},
"required": [
"bitrate",
"url"
],
"type": "object"
},
"type": "array"
}
},
"required": [
"variants"
],
"type": "object"
}
},
"required": [
"type",
"id",
"url",
"displayUrl",
"expandedUrl",
"mediaUrlHttps",
"sizes",
"originalInfo"
],
"type": "object"
},
{
"description": "Video or animated GIF attachment.",
"properties": {
"altText": {
"description": "Alternative text for the media when provided.",
"nullable": true,
"type": "string"
},
"aspectRatio": {
"description": "Width:height ratio tuple when provided by X.",
"items": {
"exclusiveMinimum": true,
"minimum": 0,
"type": "integer"
},
"maxItems": 2,
"minItems": 2,
"type": "array"
},
"displayUrl": {
"description": "Display URL shown in the tweet.",
"minLength": 1,
"type": "string"
},
"durationMs": {
"description": "Duration in milliseconds when known.",
"minimum": 0,
"type": "integer"
},
"expandedUrl": {
"description": "Expanded destination URL.",
"minLength": 1,
"type": "string"
},
"id": {
"description": "Media id string.",
"minLength": 1,
"type": "string"
},
"mediaUrlHttps": {
"description": "HTTPS URL for the poster or media.",
"minLength": 1,
"type": "string"
},
"originalInfo": {
"description": "Original pixel dimensions.",
"properties": {
"height": {
"minimum": 0,
"type": "integer"
},
"width": {
"minimum": 0,
"type": "integer"
}
},
"required": [
"width",
"height"
],
"type": "object"
},
"sizes": {
"description": "Per-label media dimensions from X.",
"properties": {
"large": {
"description": "Large variant.",
"properties": {
"h": {
"minimum": 0,
"type": "integer"
},
"resize": {
"minLength": 1,
"type": "string"
},
"w": {
"minimum": 0,
"type": "integer"
}
},
"required": [
"h",
"w",
"resize"
],
"type": "object"
},
"medium": {
"description": "Medium variant.",
"properties": {
"h": {
"minimum": 0,
"type": "integer"
},
"resize": {
"minLength": 1,
"type": "string"
},
"w": {
"minimum": 0,
"type": "integer"
}
},
"required": [
"h",
"w",
"resize"
],
"type": "object"
},
"small": {
"description": "Small variant.",
"properties": {
"h": {
"minimum": 0,
"type": "integer"
},
"resize": {
"minLength": 1,
"type": "string"
},
"w": {
"minimum": 0,
"type": "integer"
}
},
"required": [
"h",
"w",
"resize"
],
"type": "object"
},
"thumb": {
"description": "Thumbnail size.",
"properties": {
"h": {
"minimum": 0,
"type": "integer"
},
"resize": {
"minLength": 1,
"type": "string"
},
"w": {
"minimum": 0,
"type": "integer"
}
},
"required": [
"h",
"w",
"resize"
],
"type": "object"
}
},
"required": [
"thumb",
"small",
"medium",
"large"
],
"type": "object"
},
"type": {
"description": "Video or MP4-based animated GIF.",
"enum": [
"video",
"animated_gif"
],
"type": "string"
},
"url": {
"description": "Short t.co URL for this media.",
"minLength": 1,
"type": "string"
},
"variants": {
"description": "Stream or download variants (mp4, HLS, etc.).",
"items": {
"description": "A downloadable or streamable media variant.",
"properties": {
"bitrate": {
"description": "Bitrate in bits per second when present (omitted for HLS).",
"minimum": 0,
"type": "integer"
},
"contentType": {
"description": "MIME type of the variant.",
"minLength": 1,
"type": "string"
},
"url": {
"description": "Direct URL for this variant.",
"minLength": 1,
"type": "string"
}
},
"required": [
"contentType",
"url"
],
"type": "object"
},
"minItems": 1,
"type": "array"
},
"videoInfo": {
"description": "Video variants (bitrate and URL) when provided.",
"nullable": true,
"properties": {
"variants": {
"description": "Bitrate and URL variants.",
"items": {
"description": "A video variant bitrate and URL.",
"properties": {
"bitrate": {
"description": "Bitrate in bits per second when present.",
"minimum": 0,
"nullable": true,
"type": "integer"
},
"url": {
"description": "Direct URL for this variant.",
"nullable": true,
"type": "string"
}
},
"required": [
"bitrate",
"url"
],
"type": "object"
},
"type": "array"
}
},
"required": [
"variants"
],
"type": "object"
}
},
"required": [
"type",
"id",
"url",
"displayUrl",
"expandedUrl",
"mediaUrlHttps",
"sizes",
"originalInfo",
"variants"
],
"type": "object"
}
]
},
"type": "array"
},
"metrics": {
"description": "Engagement metrics for a tweet.",
"properties": {
"bookmarks": {
"description": "Bookmark count.",
"minimum": 0,
"type": "integer"
},
"favorites": {
"description": "Favorite (like) count.",
"minimum": 0,
"type": "integer"
},
"quotes": {
"description": "Quote tweet count.",
"minimum": 0,
"type": "integer"
},
"replies": {
"description": "Reply count.",
"minimum": 0,
"type": "integer"
},
"retweets": {
"description": "Native repost count.",
"minimum": 0,
"type": "integer"
},
"views": {
"description": "Impression count when reported by X.",
"minimum": 0,
"type": "integer"
}
},
"required": [
"views",
"favorites",
"retweets",
"replies",
"bookmarks",
"quotes"
],
"type": "object"
},
"poll": {
"description": "Poll when the tweet contains one.",
"nullable": true,
"properties": {
"durationMinutes": {
"description": "Configured poll duration in minutes.",
"minimum": 0,
"nullable": true,
"type": "integer"
},
"endDatetime": {
"description": "When voting ends, as reported by X.",
"nullable": true,
"type": "string"
},
"id": {
"description": "Poll id.",
"nullable": true,
"type": "string"
},
"options": {
"description": "Poll choices.",
"items": {
"description": "One poll choice.",
"properties": {
"id": {
"description": "Poll choice id.",
"nullable": true,
"type": "string"
},
"label": {
"description": "Poll choice label.",
"nullable": true,
"type": "string"
},
"percentage": {
"description": "Share of votes for this choice, as a whole percent.",
"minimum": 0,
"nullable": true,
"type": "integer"
},
"voteCount": {
"description": "Votes for this choice.",
"minimum": 0,
"nullable": true,
"type": "integer"
}
},
"required": [
"id",
"label",
"voteCount",
"percentage"
],
"type": "object"
},
"nullable": true,
"type": "array"
},
"totalVotes": {
"description": "Total votes across all choices.",
"minimum": 0,
"nullable": true,
"type": "integer"
},
"votingStatus": {
"description": "Poll voting status (for example `closed`).",
"nullable": true,
"type": "string"
}
},
"required": [
"id",
"options",
"endDatetime",
"durationMinutes",
"votingStatus",
"totalVotes"
],
"type": "object"
},
"possiblySensitive": {
"description": "Whether X marks the content sensitive.",
"type": "boolean"
},
"quotedTweet": {
"description": "Quoted tweet expanded one level (no further nesting on this field). Null when this is not a quote.",
"nullable": true,
"properties": {
"author": {
"description": "Author snapshot when available.",
"nullable": true,
"properties": {
"avatarUrl": {
"description": "Best available square avatar URL for the author.",
"nullable": true,
"type": "string"
},
"blueVerified": {
"description": "Whether the author has X blue (paid) verification.",
"type": "boolean"
},
"displayName": {
"description": "Author display name.",
"nullable": true,
"type": "string"
},
"handle": {
"description": "Author screen name without the leading @.",
"minLength": 1,
"type": "string"
},
"platformUserId": {
"description": "Numeric X user id for the author as a string.",
"type": "string"
},
"verified": {
"description": "Whether X marks the author with legacy verification.",
"type": "boolean"
}
},
"required": [
"handle",
"displayName",
"avatarUrl",
"verified",
"blueVerified"
],
"type": "object"
},
"communityId": {
"description": "Community id when the tweet was posted to a community.",
"nullable": true,
"type": "string"
},
"conversationId": {
"description": "Conversation root tweet id.",
"minLength": 1,
"type": "string"
},
"createdAt": {
"description": "Creation time (ISO-8601).",
"format": "date-time",
"type": "string"
},
"displayTextRange": {
"description": "Start/end character indices for visible text.",
"items": {
"minimum": 0,
"type": "integer"
},
"maxItems": 2,
"minItems": 2,
"type": "array"
},
"editInfo": {
"description": "Edit metadata when applicable.",
"properties": {
"editTweetIds": {
"description": "Tweet ids in this edit chain.",
"items": {
"minLength": 1,
"type": "string"
},
"type": "array"
},
"editableUntilMsec": {
"description": "Epoch milliseconds until edits are locked.",
"type": "string"
},
"editsRemaining": {
"description": "Remaining edits in the window, as reported by X.",
"type": "string"
},
"isEditEligible": {
"description": "Whether the tweet can still be edited.",
"type": "boolean"
}
},
"required": [
"editTweetIds",
"editableUntilMsec",
"isEditEligible",
"editsRemaining"
],
"type": "object"
},
"entities": {
"description": "Entities aligned with `text`.",
"properties": {
"hashtags": {
"description": "Hashtag entities.",
"items": {
"description": "A hashtag entity.",
"properties": {
"text": {
"description": "Hashtag text without #.",
"type": "string"
}
},
"required": [
"text"
],
"type": "object"
},
"type": "array"
},
"symbols": {
"description": "Symbol entities.",
"items": {
"description": "A symbol/cashtag entity.",
"properties": {
"text": {
"description": "Cashtag or symbol text.",
"minLength": 1,
"type": "string"
}
},
"required": [
"text"
],
"type": "object"
},
"type": "array"
},
"urls": {
"description": "URL entities.",
"items": {
"description": "A URL entity.",
"properties": {
"displayUrl": {
"description": "Human-readable display host/path.",
"minLength": 1,
"type": "string"
},
"expandedUrl": {
"description": "Fully expanded destination URL.",
"minLength": 1,
"type": "string"
},
"url": {
"description": "Short URL as it appears in text.",
"minLength": 1,
"type": "string"
}
},
"required": [
"url",
"displayUrl",
"expandedUrl"
],
"type": "object"
},
"type": "array"
},
"userMentions": {
"description": "User mention entities.",
"items": {
"description": "A user mention entity.",
"properties": {
"displayName": {
"description": "Display name when available.",
"type": "string"
},
"handle": {
"description": "Mentioned screen name.",
"minLength": 1,
"type": "string"
},
"platformUserId": {
"description": "Numeric user id for the mention when available.",
"type": "string"
}
},
"required": [
"handle"
],
"type": "object"
},
"type": "array"
}
},
"required": [
"hashtags",
"userMentions",
"urls",
"symbols"
],
"type": "object"
},
"hasAIGeneratedMedia": {
"description": "Whether X marks the tweet as containing AI-generated media.",
"nullable": true,
"type": "boolean"
},
"hasBirdwatchNotes": {
"description": "Whether Community Notes are attached to this tweet.",
"nullable": true,
"type": "boolean"
},
"id": {
"description": "Tweet id.",
"minLength": 1,
"type": "string"
},
"inReplyToScreenName": {
"description": "Parent author handle when replying.",
"type": "string"
},
"inReplyToTweetId": {
"description": "Parent tweet id when replying.",
"type": "string"
},
"inReplyToUserId": {
"description": "Parent author user id when replying.",
"type": "string"
},
"isLongForm": {
"description": "True when text was taken from note_tweet metadata instead of legacy.full_text alone.",
"type": "boolean"
},
"isPaidPromotion": {
"description": "Whether X marks the tweet as a paid promotion.",
"nullable": true,
"type": "boolean"
},
"isQuote": {
"description": "Whether this tweet quotes another.",
"type": "boolean"
},
"isReply": {
"description": "Whether this is a reply.",
"type": "boolean"
},
"isRetweet": {
"description": "Whether this is a native repost.",
"type": "boolean"
},
"isTranslatable": {
"description": "Whether X considers the tweet text translatable.",
"nullable": true,
"type": "boolean"
},
"language": {
"description": "BCP 47 or X language code.",
"minLength": 1,
"type": "string"
},
"media": {
"description": "Photo, video, or GIF attachments.",
"items": {
"anyOf": [
{
"description": "Photo attachment on a tweet.",
"properties": {
"altText": {
"description": "Alternative text for the media when provided.",
"nullable": true,
"type": "string"
},
"displayUrl": {
"description": "Display URL shown in the tweet.",
"minLength": 1,
"type": "string"
},
"expandedUrl": {
"description": "Expanded destination URL.",
"minLength": 1,
"type": "string"
},
"id": {
"description": "Media id string.",
"minLength": 1,
"type": "string"
},
"mediaUrlHttps": {
"description": "HTTPS URL for the media asset.",
"minLength": 1,
"type": "string"
},
"originalInfo": {
"description": "Original pixel dimensions.",
"properties": {
"height": {
"minimum": 0,
"type": "integer"
},
"width": {
"minimum": 0,
"type": "integer"
}
},
"required": [
"width",
"height"
],
"type": "object"
},
"sizes": {
"description": "Per-label media dimensions from X.",
"properties": {
"large": {
"description": "Large variant.",
"properties": {
"h": {
"minimum": 0,
"type": "integer"
},
"resize": {
"minLength": 1,
"type": "string"
},
"w": {
"minimum": 0,
"type": "integer"
}
},
"required": [
"h",
"w",
"resize"
],
"type": "object"
},
"medium": {
"description": "Medium variant.",
"properties": {
"h": {
"minimum": 0,
"type": "integer"
},
"resize": {
"minLength": 1,
"type": "string"
},
"w": {
"minimum": 0,
"type": "integer"
}
},
"required": [
"h",
"w",
"resize"
],
"type": "object"
},
"small": {
"description": "Small variant.",
"properties": {
"h": {
"minimum": 0,
"type": "integer"
},
"resize": {
"minLength": 1,
"type": "string"
},
"w": {
"minimum": 0,
"type": "integer"
}
},
"required": [
"h",
"w",
"resize"
],
"type": "object"
},
"thumb": {
"description": "Thumbnail size.",
"properties": {
"h": {
"minimum": 0,
"type": "integer"
},
"resize": {
"minLength": 1,
"type": "string"
},
"w": {
"minimum": 0,
"type": "integer"
}
},
"required": [
"h",
"w",
"resize"
],
"type": "object"
}
},
"required": [
"thumb",
"small",
"medium",
"large"
],
"type": "object"
},
"type": {
"enum": [
"photo"
],
"type": "string"
},
"url": {
"description": "Short t.co URL for this media.",
"minLength": 1,
"type": "string"
},
"videoInfo": {
"description": "Video variants (bitrate and URL) when provided.",
"nullable": true,
"properties": {
"variants": {
"description": "Bitrate and URL variants.",
"items": {
"description": "A video variant bitrate and URL.",
"properties": {
"bitrate": {
"description": "Bitrate in bits per second when present.",
"minimum": 0,
"nullable": true,
"type": "integer"
},
"url": {
"description": "Direct URL for this variant.",
"nullable": true,
"type": "string"
}
},
"required": [
"bitrate",
"url"
],
"type": "object"
},
"type": "array"
}
},
"required": [
"variants"
],
"type": "object"
}
},
"required": [
"type",
"id",
"url",
"displayUrl",
"expandedUrl",
"mediaUrlHttps",
"sizes",
"originalInfo"
],
"type": "object"
},
{
"description": "Video or animated GIF attachment.",
"properties": {
"altText": {
"description": "Alternative text for the media when provided.",
"nullable": true,
"type": "string"
},
"aspectRatio": {
"description": "Width:height ratio tuple when provided by X.",
"items": {
"exclusiveMinimum": true,
"minimum": 0,
"type": "integer"
},
"maxItems": 2,
"minItems": 2,
"type": "array"
},
"displayUrl": {
"description": "Display URL shown in the tweet.",
"minLength": 1,
"type": "string"
},
"durationMs": {
"description": "Duration in milliseconds when known.",
"minimum": 0,
"type": "integer"
},
"expandedUrl": {
"description": "Expanded destination URL.",
"minLength": 1,
"type": "string"
},
"id": {
"description": "Media id string.",
"minLength": 1,
"type": "string"
},
"mediaUrlHttps": {
"description": "HTTPS URL for the poster or media.",
"minLength": 1,
"type": "string"
},
"originalInfo": {
"description": "Original pixel dimensions.",
"properties": {
"height": {
"minimum": 0,
"type": "integer"
},
"width": {
"minimum": 0,
"type": "integer"
}
},
"required": [
"width",
"height"
],
"type": "object"
},
"sizes": {
"description": "Per-label media dimensions from X.",
"properties": {
"large": {
"description": "Large variant.",
"properties": {
"h": {
"minimum": 0,
"type": "integer"
},
"resize": {
"minLength": 1,
"type": "string"
},
"w": {
"minimum": 0,
"type": "integer"
}
},
"required": [
"h",
"w",
"resize"
],
"type": "object"
},
"medium": {
"description": "Medium variant.",
"properties": {
"h": {
"minimum": 0,
"type": "integer"
},
"resize": {
"minLength": 1,
"type": "string"
},
"w": {
"minimum": 0,
"type": "integer"
}
},
"required": [
"h",
"w",
"resize"
],
"type": "object"
},
"small": {
"description": "Small variant.",
"properties": {
"h": {
"minimum": 0,
"type": "integer"
},
"resize": {
"minLength": 1,
"type": "string"
},
"w": {
"minimum": 0,
"type": "integer"
}
},
"required": [
"h",
"w",
"resize"
],
"type": "object"
},
"thumb": {
"description": "Thumbnail size.",
"properties": {
"h": {
"minimum": 0,
"type": "integer"
},
"resize": {
"minLength": 1,
"type": "string"
},
"w": {
"minimum": 0,
"type": "integer"
}
},
"required": [
"h",
"w",
"resize"
],
"type": "object"
}
},
"required": [
"thumb",
"small",
"medium",
"large"
],
"type": "object"
},
"type": {
"description": "Video or MP4-based animated GIF.",
"enum": [
"video",
"animated_gif"
],
"type": "string"
},
"url": {
"description": "Short t.co URL for this media.",
"minLength": 1,
"type": "string"
},
"variants": {
"description": "Stream or download variants (mp4, HLS, etc.).",
"items": {
"description": "A downloadable or streamable media variant.",
"properties": {
"bitrate": {
"description": "Bitrate in bits per second when present (omitted for HLS).",
"minimum": 0,
"type": "integer"
},
"contentType": {
"description": "MIME type of the variant.",
"minLength": 1,
"type": "string"
},
"url": {
"description": "Direct URL for this variant.",
"minLength": 1,
"type": "string"
}
},
"required": [
"contentType",
"url"
],
"type": "object"
},
"minItems": 1,
"type": "array"
},
"videoInfo": {
"description": "Video variants (bitrate and URL) when provided.",
"nullable": true,
"properties": {
"variants": {
"description": "Bitrate and URL variants.",
"items": {
"description": "A video variant bitrate and URL.",
"properties": {
"bitrate": {
"description": "Bitrate in bits per second when present.",
"minimum": 0,
"nullable": true,
"type": "integer"
},
"url": {
"description": "Direct URL for this variant.",
"nullable": true,
"type": "string"
}
},
"required": [
"bitrate",
"url"
],
"type": "object"
},
"type": "array"
}
},
"required": [
"variants"
],
"type": "object"
}
},
"required": [
"type",
"id",
"url",
"displayUrl",
"expandedUrl",
"mediaUrlHttps",
"sizes",
"originalInfo",
"variants"
],
"type": "object"
}
]
},
"type": "array"
},
"metrics": {
"description": "Engagement metrics for a tweet.",
"properties": {
"bookmarks": {
"description": "Bookmark count.",
"minimum": 0,
"type": "integer"
},
"favorites": {
"description": "Favorite (like) count.",
"minimum": 0,
"type": "integer"
},
"quotes": {
"description": "Quote tweet count.",
"minimum": 0,
"type": "integer"
},
"replies": {
"description": "Reply count.",
"minimum": 0,
"type": "integer"
},
"retweets": {
"description": "Native repost count.",
"minimum": 0,
"type": "integer"
},
"views": {
"description": "Impression count when reported by X.",
"minimum": 0,
"type": "integer"
}
},
"required": [
"views",
"favorites",
"retweets",
"replies",
"bookmarks",
"quotes"
],
"type": "object"
},
"possiblySensitive": {
"description": "Whether X marks the content sensitive.",
"type": "boolean"
},
"quotedTweetId": {
"description": "Quoted tweet id when present.",
"type": "string"
},
"retweetedTweetId": {
"description": "Original tweet id for a repost.",
"type": "string"
},
"source": {
"description": "Client label text.",
"type": "string"
},
"sourceUrl": {
"description": "Link target from the source anchor when present.",
"type": "string"
},
"text": {
"description": "Full tweet text (includes long-form when available).",
"type": "string"
},
"url": {
"description": "Canonical public URL for this tweet on x.com.",
"minLength": 1,
"type": "string"
}
},
"required": [
"id",
"url",
"conversationId",
"createdAt",
"language",
"text",
"isLongForm",
"displayTextRange",
"author",
"metrics",
"media",
"entities",
"isReply",
"isQuote",
"isRetweet",
"possiblySensitive"
],
"type": "object"
},
"quotedTweetId": {
"description": "Quoted tweet id when present.",
"type": "string"
},
"replyTo": {
"description": "Parent tweet when this is a reply.",
"nullable": true,
"properties": {
"tweetId": {
"description": "Parent tweet id.",
"nullable": true,
"type": "string"
},
"userId": {
"description": "Parent author user id.",
"nullable": true,
"type": "string"
},
"username": {
"description": "Parent author handle.",
"nullable": true,
"type": "string"
}
},
"required": [
"tweetId",
"userId",
"username"
],
"type": "object"
},
"retweetedTweet": {
"description": "Reposted tweet expanded one level (no further nesting on this field). Null when this is not a repost.",
"nullable": true,
"properties": {
"author": {
"description": "Author snapshot when available.",
"nullable": true,
"properties": {
"avatarUrl": {
"description": "Best available square avatar URL for the author.",
"nullable": true,
"type": "string"
},
"blueVerified": {
"description": "Whether the author has X blue (paid) verification.",
"type": "boolean"
},
"displayName": {
"description": "Author display name.",
"nullable": true,
"type": "string"
},
"handle": {
"description": "Author screen name without the leading @.",
"minLength": 1,
"type": "string"
},
"platformUserId": {
"description": "Numeric X user id for the author as a string.",
"type": "string"
},
"verified": {
"description": "Whether X marks the author with legacy verification.",
"type": "boolean"
}
},
"required": [
"handle",
"displayName",
"avatarUrl",
"verified",
"blueVerified"
],
"type": "object"
},
"communityId": {
"description": "Community id when the tweet was posted to a community.",
"nullable": true,
"type": "string"
},
"conversationId": {
"description": "Conversation root tweet id.",
"minLength": 1,
"type": "string"
},
"createdAt": {
"description": "Creation time (ISO-8601).",
"format": "date-time",
"type": "string"
},
"createdAtUnix": {
"description": "Legacy Unix epoch seconds for tweet creation. Prefer createdAt.",
"minimum": 0,
"type": "integer"
},
"displayTextRange": {
"description": "Start/end character indices for visible text.",
"items": {
"minimum": 0,
"type": "integer"
},
"maxItems": 2,
"minItems": 2,
"type": "array"
},
"editInfo": {
"description": "Edit metadata when applicable.",
"properties": {
"editTweetIds": {
"description": "Tweet ids in this edit chain.",
"items": {
"minLength": 1,
"type": "string"
},
"type": "array"
},
"editableUntilMsec": {
"description": "Epoch milliseconds until edits are locked.",
"type": "string"
},
"editsRemaining": {
"description": "Remaining edits in the window, as reported by X.",
"type": "string"
},
"isEditEligible": {
"description": "Whether the tweet can still be edited.",
"type": "boolean"
}
},
"required": [
"editTweetIds",
"editableUntilMsec",
"isEditEligible",
"editsRemaining"
],
"type": "object"
},
"entities": {
"description": "Entities aligned with `text`.",
"properties": {
"hashtags": {
"description": "Hashtag entities.",
"items": {
"description": "A hashtag entity.",
"properties": {
"text": {
"description": "Hashtag text without #.",
"type": "string"
}
},
"required": [
"text"
],
"type": "object"
},
"type": "array"
},
"symbols": {
"description": "Symbol entities.",
"items": {
"description": "A symbol/cashtag entity.",
"properties": {
"text": {
"description": "Cashtag or symbol text.",
"minLength": 1,
"type": "string"
}
},
"required": [
"text"
],
"type": "object"
},
"type": "array"
},
"urls": {
"description": "URL entities.",
"items": {
"description": "A URL entity.",
"properties": {
"displayUrl": {
"description": "Human-readable display host/path.",
"minLength": 1,
"type": "string"
},
"expandedUrl": {
"description": "Fully expanded destination URL.",
"minLength": 1,
"type": "string"
},
"url": {
"description": "Short URL as it appears in text.",
"minLength": 1,
"type": "string"
}
},
"required": [
"url",
"displayUrl",
"expandedUrl"
],
"type": "object"
},
"type": "array"
},
"userMentions": {
"description": "User mention entities.",
"items": {
"description": "A user mention entity.",
"properties": {
"displayName": {
"description": "Display name when available.",
"type": "string"
},
"handle": {
"description": "Mentioned screen name.",
"minLength": 1,
"type": "string"
},
"platformUserId": {
"description": "Numeric user id for the mention when available.",
"type": "string"
}
},
"required": [
"handle"
],
"type": "object"
},
"type": "array"
}
},
"required": [
"hashtags",
"userMentions",
"urls",
"symbols"
],
"type": "object"
},
"hasAIGeneratedMedia": {
"description": "Whether X marks the tweet as containing AI-generated media.",
"nullable": true,
"type": "boolean"
},
"hasBirdwatchNotes": {
"description": "Whether Community Notes are attached to this tweet.",
"nullable": true,
"type": "boolean"
},
"id": {
"description": "Tweet id.",
"minLength": 1,
"type": "string"
},
"inReplyToScreenName": {
"description": "Parent author handle when replying.",
"type": "string"
},
"inReplyToTweetId": {
"description": "Parent tweet id when replying.",
"type": "string"
},
"inReplyToUserId": {
"description": "Parent author user id when replying.",
"type": "string"
},
"isLongForm": {
"description": "True when text was taken from note_tweet metadata instead of legacy.full_text alone.",
"type": "boolean"
},
"isPaidPromotion": {
"description": "Whether X marks the tweet as a paid promotion.",
"nullable": true,
"type": "boolean"
},
"isQuote": {
"description": "Whether this tweet quotes another.",
"type": "boolean"
},
"isReply": {
"description": "Whether this is a reply.",
"type": "boolean"
},
"isRetweet": {
"description": "Whether this is a native repost.",
"type": "boolean"
},
"isTranslatable": {
"description": "Whether X considers the tweet text translatable.",
"nullable": true,
"type": "boolean"
},
"language": {
"description": "BCP 47 or X language code.",
"minLength": 1,
"type": "string"
},
"media": {
"description": "Photo, video, or GIF attachments.",
"items": {
"anyOf": [
{
"description": "Photo attachment on a tweet.",
"properties": {
"altText": {
"description": "Alternative text for the media when provided.",
"nullable": true,
"type": "string"
},
"displayUrl": {
"description": "Display URL shown in the tweet.",
"minLength": 1,
"type": "string"
},
"expandedUrl": {
"description": "Expanded destination URL.",
"minLength": 1,
"type": "string"
},
"id": {
"description": "Media id string.",
"minLength": 1,
"type": "string"
},
"mediaUrlHttps": {
"description": "HTTPS URL for the media asset.",
"minLength": 1,
"type": "string"
},
"originalInfo": {
"description": "Original pixel dimensions.",
"properties": {
"height": {
"minimum": 0,
"type": "integer"
},
"width": {
"minimum": 0,
"type": "integer"
}
},
"required": [
"width",
"height"
],
"type": "object"
},
"sizes": {
"description": "Per-label media dimensions from X.",
"properties": {
"large": {
"description": "Large variant.",
"properties": {
"h": {
"minimum": 0,
"type": "integer"
},
"resize": {
"minLength": 1,
"type": "string"
},
"w": {
"minimum": 0,
"type": "integer"
}
},
"required": [
"h",
"w",
"resize"
],
"type": "object"
},
"medium": {
"description": "Medium variant.",
"properties": {
"h": {
"minimum": 0,
"type": "integer"
},
"resize": {
"minLength": 1,
"type": "string"
},
"w": {
"minimum": 0,
"type": "integer"
}
},
"required": [
"h",
"w",
"resize"
],
"type": "object"
},
"small": {
"description": "Small variant.",
"properties": {
"h": {
"minimum": 0,
"type": "integer"
},
"resize": {
"minLength": 1,
"type": "string"
},
"w": {
"minimum": 0,
"type": "integer"
}
},
"required": [
"h",
"w",
"resize"
],
"type": "object"
},
"thumb": {
"description": "Thumbnail size.",
"properties": {
"h": {
"minimum": 0,
"type": "integer"
},
"resize": {
"minLength": 1,
"type": "string"
},
"w": {
"minimum": 0,
"type": "integer"
}
},
"required": [
"h",
"w",
"resize"
],
"type": "object"
}
},
"required": [
"thumb",
"small",
"medium",
"large"
],
"type": "object"
},
"type": {
"enum": [
"photo"
],
"type": "string"
},
"url": {
"description": "Short t.co URL for this media.",
"minLength": 1,
"type": "string"
},
"videoInfo": {
"description": "Video variants (bitrate and URL) when provided.",
"nullable": true,
"properties": {
"variants": {
"description": "Bitrate and URL variants.",
"items": {
"description": "A video variant bitrate and URL.",
"properties": {
"bitrate": {
"description": "Bitrate in bits per second when present.",
"minimum": 0,
"nullable": true,
"type": "integer"
},
"url": {
"description": "Direct URL for this variant.",
"nullable": true,
"type": "string"
}
},
"required": [
"bitrate",
"url"
],
"type": "object"
},
"type": "array"
}
},
"required": [
"variants"
],
"type": "object"
}
},
"required": [
"type",
"id",
"url",
"displayUrl",
"expandedUrl",
"mediaUrlHttps",
"sizes",
"originalInfo"
],
"type": "object"
},
{
"description": "Video or animated GIF attachment.",
"properties": {
"altText": {
"description": "Alternative text for the media when provided.",
"nullable": true,
"type": "string"
},
"aspectRatio": {
"description": "Width:height ratio tuple when provided by X.",
"items": {
"exclusiveMinimum": true,
"minimum": 0,
"type": "integer"
},
"maxItems": 2,
"minItems": 2,
"type": "array"
},
"displayUrl": {
"description": "Display URL shown in the tweet.",
"minLength": 1,
"type": "string"
},
"durationMs": {
"description": "Duration in milliseconds when known.",
"minimum": 0,
"type": "integer"
},
"expandedUrl": {
"description": "Expanded destination URL.",
"minLength": 1,
"type": "string"
},
"id": {
"description": "Media id string.",
"minLength": 1,
"type": "string"
},
"mediaUrlHttps": {
"description": "HTTPS URL for the poster or media.",
"minLength": 1,
"type": "string"
},
"originalInfo": {
"description": "Original pixel dimensions.",
"properties": {
"height": {
"minimum": 0,
"type": "integer"
},
"width": {
"minimum": 0,
"type": "integer"
}
},
"required": [
"width",
"height"
],
"type": "object"
},
"sizes": {
"description": "Per-label media dimensions from X.",
"properties": {
"large": {
"description": "Large variant.",
"properties": {
"h": {
"minimum": 0,
"type": "integer"
},
"resize": {
"minLength": 1,
"type": "string"
},
"w": {
"minimum": 0,
"type": "integer"
}
},
"required": [
"h",
"w",
"resize"
],
"type": "object"
},
"medium": {
"description": "Medium variant.",
"properties": {
"h": {
"minimum": 0,
"type": "integer"
},
"resize": {
"minLength": 1,
"type": "string"
},
"w": {
"minimum": 0,
"type": "integer"
}
},
"required": [
"h",
"w",
"resize"
],
"type": "object"
},
"small": {
"description": "Small variant.",
"properties": {
"h": {
"minimum": 0,
"type": "integer"
},
"resize": {
"minLength": 1,
"type": "string"
},
"w": {
"minimum": 0,
"type": "integer"
}
},
"required": [
"h",
"w",
"resize"
],
"type": "object"
},
"thumb": {
"description": "Thumbnail size.",
"properties": {
"h": {
"minimum": 0,
"type": "integer"
},
"resize": {
"minLength": 1,
"type": "string"
},
"w": {
"minimum": 0,
"type": "integer"
}
},
"required": [
"h",
"w",
"resize"
],
"type": "object"
}
},
"required": [
"thumb",
"small",
"medium",
"large"
],
"type": "object"
},
"type": {
"description": "Video or MP4-based animated GIF.",
"enum": [
"video",
"animated_gif"
],
"type": "string"
},
"url": {
"description": "Short t.co URL for this media.",
"minLength": 1,
"type": "string"
},
"variants": {
"description": "Stream or download variants (mp4, HLS, etc.).",
"items": {
"description": "A downloadable or streamable media variant.",
"properties": {
"bitrate": {
"description": "Bitrate in bits per second when present (omitted for HLS).",
"minimum": 0,
"type": "integer"
},
"contentType": {
"description": "MIME type of the variant.",
"minLength": 1,
"type": "string"
},
"url": {
"description": "Direct URL for this variant.",
"minLength": 1,
"type": "string"
}
},
"required": [
"contentType",
"url"
],
"type": "object"
},
"minItems": 1,
"type": "array"
},
"videoInfo": {
"description": "Video variants (bitrate and URL) when provided.",
"nullable": true,
"properties": {
"variants": {
"description": "Bitrate and URL variants.",
"items": {
"description": "A video variant bitrate and URL.",
"properties": {
"bitrate": {
"description": "Bitrate in bits per second when present.",
"minimum": 0,
"nullable": true,
"type": "integer"
},
"url": {
"description": "Direct URL for this variant.",
"nullable": true,
"type": "string"
}
},
"required": [
"bitrate",
"url"
],
"type": "object"
},
"type": "array"
}
},
"required": [
"variants"
],
"type": "object"
}
},
"required": [
"type",
"id",
"url",
"displayUrl",
"expandedUrl",
"mediaUrlHttps",
"sizes",
"originalInfo",
"variants"
],
"type": "object"
}
]
},
"type": "array"
},
"metrics": {
"description": "Engagement metrics for a tweet.",
"properties": {
"bookmarks": {
"description": "Bookmark count.",
"minimum": 0,
"type": "integer"
},
"favorites": {
"description": "Favorite (like) count.",
"minimum": 0,
"type": "integer"
},
"quotes": {
"description": "Quote tweet count.",
"minimum": 0,
"type": "integer"
},
"replies": {
"description": "Reply count.",
"minimum": 0,
"type": "integer"
},
"retweets": {
"description": "Native repost count.",
"minimum": 0,
"type": "integer"
},
"views": {
"description": "Impression count when reported by X.",
"minimum": 0,
"type": "integer"
}
},
"required": [
"views",
"favorites",
"retweets",
"replies",
"bookmarks",
"quotes"
],
"type": "object"
},
"possiblySensitive": {
"description": "Whether X marks the content sensitive.",
"type": "boolean"
},
"quotedTweetId": {
"description": "Quoted tweet id when present.",
"type": "string"
},
"retweetedTweetId": {
"description": "Original tweet id for a repost.",
"type": "string"
},
"source": {
"description": "Client label text.",
"type": "string"
},
"sourceUrl": {
"description": "Link target from the source anchor when present.",
"type": "string"
},
"text": {
"description": "Full tweet text (includes long-form when available).",
"type": "string"
},
"url": {
"description": "Canonical public URL for this tweet on x.com.",
"minLength": 1,
"type": "string"
}
},
"required": [
"id",
"url",
"conversationId",
"createdAt",
"createdAtUnix",
"language",
"text",
"isLongForm",
"displayTextRange",
"author",
"metrics",
"media",
"entities",
"isReply",
"isQuote",
"isRetweet",
"possiblySensitive"
],
"type": "object"
},
"retweetedTweetId": {
"description": "Original tweet id for a repost.",
"type": "string"
},
"source": {
"description": "Client label text.",
"type": "string"
},
"sourceUrl": {
"description": "Link target from the source anchor when present.",
"type": "string"
},
"text": {
"description": "Full tweet text (includes long-form when available).",
"type": "string"
},
"type": {
"description": "Tweet kind: `tweet`, `reply`, `quote`, or `retweet`.",
"nullable": true,
"type": "string"
},
"url": {
"description": "Canonical public URL for this tweet on x.com.",
"minLength": 1,
"type": "string"
}
},
"required": [
"id",
"url",
"conversationId",
"createdAt",
"language",
"text",
"isLongForm",
"displayTextRange",
"metrics",
"media",
"entities",
"isReply",
"isQuote",
"isRetweet",
"possiblySensitive",
"communityId",
"quotedTweet",
"retweetedTweet",
"type",
"replyTo",
"poll",
"article",
"isEdited"
],
"type": "object"
}
},
"required": [
"lookupStatus",
"author",
"tweet"
],
"type": "object"
},
"meta": {
"description": "Metadata describing the request and billing outcome.",
"properties": {
"cached": {
"description": "True when served from shared response cache. Credits still apply (full endpoint price); Age header may be present.",
"type": "boolean"
},
"creditsCharged": {
"description": "Credits charged for this request.",
"minimum": 0,
"type": "integer"
},
"requestId": {
"description": "Unique request identifier for tracing this API call.",
"minLength": 1,
"type": "string"
},
"version": {
"description": "Public API version that served the response.",
"enum": [
"v1"
],
"type": "string"
}
},
"required": [
"requestId",
"creditsCharged",
"version"
],
"type": "object"
}
},
"required": [
"data",
"meta"
],
"type": "object"
}