api.socialfetch.dev
https://api.socialfetch.dev/v1/twitter/hashtagsShares a payout wallet with 137 other endpoints — its adoption is attributed from that shared wallet's traffic, not earned exclusively.
Search X posts by hashtag (not free-text keyword — use twitter.search.list for that).
Reliability & health
Uptime and response time from our own unpaid probes, plus the reliability score built from them.
Uptime
0.0% avgResponse time
Data table
| Bucket | Uptime | Probes | Response time |
|---|---|---|---|
| 9/28/2026, 9:00:00 PM | 0% | 1 | — |
| 9/28/2026, 11:00:00 PM | 0% | 1 | — |
| 9/29/2026, 1:00:00 AM | 0% | 1 | — |
| 9/29/2026, 2:00:00 AM | 0% | 1 | — |
| 9/29/2026, 3:00:00 AM | 0% | 1 | — |
| 9/29/2026, 5:00:00 AM | 0% | 1 | — |
| 9/29/2026, 7:00:00 AM | 0% | 1 | — |
| 9/29/2026, 9:00:00 AM | 0% | 1 | — |
| 9/29/2026, 10:00:00 AM | 0% | 1 | — |
| 9/29/2026, 12:00:00 PM | 0% | 1 | — |
| 9/29/2026, 1:00:00 PM | 0% | 1 | — |
| 9/29/2026, 3:00:00 PM | 0% | 1 | — |
| 9/29/2026, 5:00:00 PM | 0% | 1 | — |
| 9/29/2026, 7:00:00 PM | 0% | 1 | — |
| 9/29/2026, 9:00:00 PM | 0% | 1 | — |
| 9/29/2026, 11:00:00 PM | 0% | 1 | — |
| 9/30/2026, 2:00:00 AM | 0% | 1 | — |
| 9/30/2026, 4:00:00 AM | 0% | 1 | — |
| 9/30/2026, 6:00:00 AM | 0% | 1 | — |
| 9/30/2026, 8:00:00 AM | 0% | 1 | — |
| 9/30/2026, 10:00:00 AM | 0% | 1 | — |
| 9/30/2026, 12:00:00 PM | 0% | 1 | — |
| 9/30/2026, 2:00:00 PM | 0% | 1 | — |
| 9/30/2026, 4:00:00 PM | 0% | 1 | — |
| 9/30/2026, 6:00:00 PM | 0% | 1 | — |
| 9/30/2026, 8:00:00 PM | 0% | 1 | — |
| 9/30/2026, 10:00:00 PM | 0% | 1 | — |
| 10/1/2026, 12:00:00 AM | 0% | 1 | — |
| 10/1/2026, 2:00:00 AM | 0% | 1 | — |
| 10/1/2026, 4:00:00 AM | 0% | 1 | — |
| 10/1/2026, 6:00:00 AM | 0% | 1 | — |
| 10/1/2026, 8:00:00 AM | 0% | 1 | — |
| 10/1/2026, 10:00:00 AM | 0% | 1 | — |
| 10/1/2026, 12:00:00 PM | 0% | 1 | — |
| 10/1/2026, 2:00:00 PM | 0% | 1 | — |
| 10/1/2026, 4:00:00 PM | 0% | 1 | — |
| 10/1/2026, 5:00:00 PM | 0% | 1 | — |
| 10/1/2026, 7:00:00 PM | 0% | 1 | — |
| 10/1/2026, 9:00:00 PM | 0% | 1 | — |
| 10/1/2026, 11:00:00 PM | 0% | 1 | — |
| 10/2/2026, 1:00:00 AM | 0% | 1 | — |
| 10/2/2026, 3:00:00 AM | 0% | 1 | — |
| 10/2/2026, 5:00:00 AM | 0% | 1 | — |
| 10/2/2026, 6:00:00 AM | 0% | 1 | — |
| 10/2/2026, 8:00:00 AM | 0% | 1 | — |
| 10/2/2026, 10:00:00 AM | 0% | 1 | — |
| 10/2/2026, 12:00:00 PM | 0% | 1 | — |
| 10/2/2026, 2:00:00 PM | 0% | 1 | — |
| 10/2/2026, 4:00:00 PM | 0% | 1 | — |
| 10/2/2026, 6:00:00 PM | 0% | 1 | — |
| 10/2/2026, 8:00:00 PM | 0% | 1 | — |
| 10/2/2026, 11:00:00 PM | 0% | 1 | — |
| 10/3/2026, 12:00:00 AM | 0% | 1 | — |
| 10/3/2026, 2:00:00 AM | 0% | 1 | — |
| 10/3/2026, 4:00:00 AM | 0% | 1 | — |
| 10/3/2026, 6:00:00 AM | 0% | 1 | — |
| 10/3/2026, 8:00:00 AM | 0% | 1 | — |
| 10/3/2026, 10:00:00 AM | 0% | 1 | — |
| 10/3/2026, 12:00:00 PM | 0% | 1 | — |
| 10/3/2026, 2:00:00 PM | 0% | 1 | — |
| 10/3/2026, 4:00:00 PM | 0% | 1 | — |
| 10/3/2026, 6:00:00 PM | 0% | 1 | — |
| 10/3/2026, 8:00:00 PM | 0% | 1 | — |
| 10/3/2026, 11:00:00 PM | 0% | 1 | — |
| 10/4/2026, 1:00:00 AM | 0% | 1 | — |
| 10/4/2026, 2:00:00 AM | 0% | 1 | — |
| 10/4/2026, 3:00:00 AM | 0% | 1 | — |
| 10/4/2026, 5:00:00 AM | 0% | 1 | — |
| 10/4/2026, 7:00:00 AM | 0% | 1 | — |
| 10/4/2026, 9:00:00 AM | 0% | 1 | — |
| 10/4/2026, 1:00:00 PM | 0% | 1 | — |
| 10/4/2026, 3:00:00 PM | 0% | 1 | — |
| 10/4/2026, 4:00:00 PM | 0% | 1 | — |
| 10/4/2026, 5:00:00 PM | 0% | 1 | — |
| 10/4/2026, 7:00:00 PM | 0% | 1 | — |
| 10/4/2026, 9:00:00 PM | 0% | 1 | — |
| 10/5/2026, 2:00:00 AM | 0% | 1 | — |
| 10/5/2026, 7:00:00 AM | 0% | 1 | — |
| 10/5/2026, 8:00:00 AM | 0% | 1 | — |
| 10/5/2026, 10:00:00 AM | 0% | 1 | — |
| 10/5/2026, 11:00:00 AM | 0% | 1 | — |
| 10/5/2026, 1:00:00 PM | 0% | 1 | — |
| 10/5/2026, 2:00:00 PM | 0% | 1 | — |
| 10/5/2026, 4:00:00 PM | 0% | 1 | — |
| 10/5/2026, 5:00:00 PM | 0% | 1 | — |
- Availability
- 53
- Latency
- not yet measured
- Security
- 100
- Transparency
- 61
- 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 | 92 | 1.29 | 6 |
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": {
"page": {
"description": "Pagination information for the current response.",
"properties": {
"hasMore": {
"description": "Whether another page can be requested.",
"type": "boolean"
},
"nextCursor": {
"description": "Cursor to pass as `cursor` in the next request when another page exists.",
"nullable": true,
"type": "string"
}
},
"required": [
"nextCursor",
"hasMore"
],
"type": "object"
},
"people": {
"description": "Profiles returned for the requested hashtag.",
"items": {
"description": "Profile returned for a people-section search.",
"properties": {
"accountCreatedAt": {
"description": "Account creation time (ISO-8601) when derivable.",
"format": "date-time",
"type": "string"
},
"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"
},
"displayName": {
"description": "Display name shown on the profile.",
"nullable": true,
"type": "string"
},
"favoritesCount": {
"description": "Total likes (favorites) on the profile when available.",
"minimum": 0,
"nullable": true,
"type": "integer"
},
"handle": {
"description": "X screen name (handle) without the leading @.",
"nullable": true,
"type": "string"
},
"location": {
"description": "Location string from the profile when provided.",
"nullable": true,
"type": "string"
},
"mediaCount": {
"description": "Media item count when X provides it.",
"minimum": 0,
"nullable": true,
"type": "integer"
},
"metrics": {
"description": "Aggregate profile metrics from X.",
"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"
},
"pinnedTweetIds": {
"description": "Pinned tweet ids from X, in display order.",
"items": {
"type": "string"
},
"nullable": true,
"type": "array"
},
"platformUserId": {
"description": "Numeric X user id as a string.",
"minLength": 1,
"type": "string"
},
"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"
},
"profileUrl": {
"description": "Canonical public profile URL on x.com.",
"minLength": 1,
"type": "string"
},
"verified": {
"description": "Whether X marks the profile with legacy verification (not necessarily paid blue).",
"type": "boolean"
},
"verifiedType": {
"description": "X verification type label when provided (for example a government or organization note).",
"nullable": true,
"type": "string"
},
"website": {
"description": "Primary outbound link from the profile when provided.",
"nullable": true,
"type": "string"
},
"withheldInCountries": {
"description": "Country codes where the profile is withheld.",
"items": {
"type": "string"
},
"nullable": true,
"type": "array"
}
},
"required": [
"platformUserId",
"handle",
"displayName",
"bio",
"avatarUrl",
"verified",
"blueVerified",
"privateAccount",
"profileUrl",
"metrics"
],
"type": "object"
},
"type": "array"
},
"tweets": {
"description": "Posts returned for the requested hashtag.",
"items": {
"properties": {
"author": {
"description": "Author metadata for the tweet when available.",
"nullable": true,
"properties": {
"avatarUrl": {
"description": "Profile image URL for the author when available.",
"nullable": true,
"type": "string"
},
"blueVerified": {
"description": "Whether the author has paid blue verification on X.",
"type": "boolean"
},
"displayName": {
"description": "Display name shown for the author.",
"nullable": true,
"type": "string"
},
"handle": {
"description": "Author handle without the leading @.",
"minLength": 1,
"type": "string"
},
"platformUserId": {
"description": "Numeric X user id for the author as a string.",
"type": "string"
},
"profileUrl": {
"description": "Canonical public profile URL for the author when available.",
"nullable": true,
"type": "string"
},
"verified": {
"description": "Whether the author has legacy verification on X.",
"type": "boolean"
}
},
"required": [
"handle",
"displayName",
"avatarUrl",
"profileUrl",
"verified",
"blueVerified"
],
"type": "object"
},
"communityId": {
"description": "Community id when the tweet was posted to a community.",
"nullable": true,
"type": "string"
},
"conversationId": {
"description": "Conversation identifier when supplied.",
"minLength": 1,
"nullable": true,
"type": "string"
},
"createdAt": {
"description": "Creation time (ISO-8601).",
"format": "date-time",
"type": "string"
},
"createdAtLabel": {
"description": "Human-readable creation timestamp string when available.",
"nullable": true,
"type": "string"
},
"expandedUrl": {
"description": "Expanded URL attached to the tweet when available.",
"nullable": true,
"type": "string"
},
"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"
},
"inReplyToStatusId": {
"description": "Parent post identifier when this post is a reply.",
"minLength": 1,
"nullable": true,
"type": "string"
},
"isPaidPromotion": {
"description": "Whether X marks the tweet as a paid promotion.",
"nullable": true,
"type": "boolean"
},
"isQuote": {
"default": false,
"description": "Whether the tweet quotes another post.",
"type": "boolean"
},
"isReply": {
"default": false,
"description": "Whether the tweet is a reply to another post.",
"type": "boolean"
},
"isRetweet": {
"description": "Whether the tweet is marked as a retweet.",
"type": "boolean"
},
"isTranslatable": {
"description": "Whether X considers the tweet text translatable.",
"nullable": true,
"type": "boolean"
},
"language": {
"description": "Language code for the tweet when available.",
"nullable": true,
"type": "string"
},
"media": {
"description": "Media attachments returned for the tweet.",
"items": {
"description": "Media attachment on a tweet.",
"properties": {
"bitrate": {
"description": "Bitrate in bits per second when supplied for streamed media.",
"minimum": 0,
"type": "integer"
},
"contentType": {
"description": "MIME type reported for streamed media.",
"minLength": 1,
"type": "string"
},
"height": {
"description": "Height in pixels when available.",
"minimum": 0,
"type": "integer"
},
"thumbnailUrl": {
"description": "Poster or thumbnail URL for video media when distinguishable.",
"minLength": 1,
"type": "string"
},
"type": {
"description": "Media type when Social Fetch can classify it confidently.",
"enum": [
"photo",
"video",
"animated_gif"
],
"type": "string"
},
"url": {
"description": "Direct media URL when available.",
"minLength": 1,
"type": "string"
},
"width": {
"description": "Width in pixels when available.",
"minimum": 0,
"type": "integer"
}
},
"required": [
"url",
"type"
],
"type": "object"
},
"type": "array"
},
"metrics": {
"description": "Engagement metrics for a tweet.",
"properties": {
"bookmarkCount": {
"description": "Bookmark count when available.",
"minimum": 0,
"nullable": true,
"type": "integer"
},
"likes": {
"description": "Like count.",
"minimum": 0,
"type": "integer"
},
"quotes": {
"description": "Quote count.",
"minimum": 0,
"type": "integer"
},
"replies": {
"description": "Reply count.",
"minimum": 0,
"type": "integer"
},
"retweets": {
"description": "Retweet count.",
"minimum": 0,
"type": "integer"
},
"views": {
"description": "View count when available.",
"minimum": 0,
"nullable": true,
"type": "integer"
}
},
"required": [
"likes",
"retweets",
"replies",
"quotes",
"views",
"bookmarkCount"
],
"type": "object"
},
"quotedStatusId": {
"description": "Quoted post identifier when this post quotes another.",
"minLength": 1,
"nullable": true,
"type": "string"
},
"quotedTweet": {
"description": "Quoted tweet expanded one level (no further nesting).",
"nullable": true,
"properties": {
"author": {
"description": "Author metadata for the tweet when available.",
"nullable": true,
"properties": {
"avatarUrl": {
"description": "Profile image URL for the author when available.",
"nullable": true,
"type": "string"
},
"blueVerified": {
"description": "Whether the author has paid blue verification on X.",
"type": "boolean"
},
"displayName": {
"description": "Display name shown for the author.",
"nullable": true,
"type": "string"
},
"handle": {
"description": "Author handle without the leading @.",
"minLength": 1,
"type": "string"
},
"platformUserId": {
"description": "Numeric X user id for the author as a string.",
"type": "string"
},
"profileUrl": {
"description": "Canonical public profile URL for the author when available.",
"nullable": true,
"type": "string"
},
"verified": {
"description": "Whether the author has legacy verification on X.",
"type": "boolean"
}
},
"required": [
"handle",
"displayName",
"avatarUrl",
"profileUrl",
"verified",
"blueVerified"
],
"type": "object"
},
"communityId": {
"description": "Community id when the tweet was posted to a community.",
"nullable": true,
"type": "string"
},
"conversationId": {
"description": "Conversation identifier when supplied.",
"minLength": 1,
"nullable": true,
"type": "string"
},
"createdAt": {
"description": "Creation time (ISO-8601).",
"format": "date-time",
"type": "string"
},
"createdAtLabel": {
"description": "Human-readable creation timestamp string when available.",
"nullable": true,
"type": "string"
},
"createdAtUnix": {
"description": "Legacy Unix epoch seconds for tweet creation. Prefer createdAt.",
"minimum": 0,
"type": "integer"
},
"expandedUrl": {
"description": "Expanded URL attached to the tweet when available.",
"nullable": true,
"type": "string"
},
"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"
},
"inReplyToStatusId": {
"description": "Parent post identifier when this post is a reply.",
"minLength": 1,
"nullable": true,
"type": "string"
},
"isPaidPromotion": {
"description": "Whether X marks the tweet as a paid promotion.",
"nullable": true,
"type": "boolean"
},
"isQuote": {
"default": false,
"description": "Whether the tweet quotes another post.",
"type": "boolean"
},
"isReply": {
"default": false,
"description": "Whether the tweet is a reply to another post.",
"type": "boolean"
},
"isRetweet": {
"description": "Whether the tweet is marked as a retweet.",
"type": "boolean"
},
"isTranslatable": {
"description": "Whether X considers the tweet text translatable.",
"nullable": true,
"type": "boolean"
},
"language": {
"description": "Language code for the tweet when available.",
"nullable": true,
"type": "string"
},
"media": {
"description": "Media attachments returned for the tweet.",
"items": {
"description": "Media attachment on a tweet.",
"properties": {
"bitrate": {
"description": "Bitrate in bits per second when supplied for streamed media.",
"minimum": 0,
"type": "integer"
},
"contentType": {
"description": "MIME type reported for streamed media.",
"minLength": 1,
"type": "string"
},
"height": {
"description": "Height in pixels when available.",
"minimum": 0,
"type": "integer"
},
"thumbnailUrl": {
"description": "Poster or thumbnail URL for video media when distinguishable.",
"minLength": 1,
"type": "string"
},
"type": {
"description": "Media type when Social Fetch can classify it confidently.",
"enum": [
"photo",
"video",
"animated_gif"
],
"type": "string"
},
"url": {
"description": "Direct media URL when available.",
"minLength": 1,
"type": "string"
},
"width": {
"description": "Width in pixels when available.",
"minimum": 0,
"type": "integer"
}
},
"required": [
"url",
"type"
],
"type": "object"
},
"type": "array"
},
"metrics": {
"description": "Engagement metrics for a tweet.",
"properties": {
"bookmarkCount": {
"description": "Bookmark count when available.",
"minimum": 0,
"nullable": true,
"type": "integer"
},
"likes": {
"description": "Like count.",
"minimum": 0,
"type": "integer"
},
"quotes": {
"description": "Quote count.",
"minimum": 0,
"type": "integer"
},
"replies": {
"description": "Reply count.",
"minimum": 0,
"type": "integer"
},
"retweets": {
"description": "Retweet count.",
"minimum": 0,
"type": "integer"
},
"views": {
"description": "View count when available.",
"minimum": 0,
"nullable": true,
"type": "integer"
}
},
"required": [
"likes",
"retweets",
"replies",
"quotes",
"views",
"bookmarkCount"
],
"type": "object"
},
"quotedStatusId": {
"description": "Quoted post identifier when this post quotes another.",
"minLength": 1,
"nullable": true,
"type": "string"
},
"retweetTweetId": {
"description": "Original post identifier when this post is an engagement repost.",
"minLength": 1,
"nullable": true,
"type": "string"
},
"source": {
"description": "Source label such as `Twitter Web App` when available.",
"nullable": true,
"type": "string"
},
"text": {
"description": "Full tweet text when available.",
"type": "string"
},
"url": {
"description": "Canonical public URL for the tweet when available.",
"nullable": true,
"type": "string"
}
},
"required": [
"id",
"url",
"text",
"createdAt",
"createdAtUnix",
"createdAtLabel",
"language",
"conversationId",
"inReplyToStatusId",
"quotedStatusId",
"retweetTweetId",
"author",
"metrics",
"media",
"expandedUrl",
"isRetweet",
"source"
],
"type": "object"
},
"retweetTweetId": {
"description": "Original post identifier when this post is an engagement repost.",
"minLength": 1,
"nullable": true,
"type": "string"
},
"retweetedTweet": {
"description": "Reposted tweet expanded one level (no further nesting).",
"nullable": true,
"properties": {
"author": {
"description": "Author metadata for the tweet when available.",
"nullable": true,
"properties": {
"avatarUrl": {
"description": "Profile image URL for the author when available.",
"nullable": true,
"type": "string"
},
"blueVerified": {
"description": "Whether the author has paid blue verification on X.",
"type": "boolean"
},
"displayName": {
"description": "Display name shown for the author.",
"nullable": true,
"type": "string"
},
"handle": {
"description": "Author handle without the leading @.",
"minLength": 1,
"type": "string"
},
"platformUserId": {
"description": "Numeric X user id for the author as a string.",
"type": "string"
},
"profileUrl": {
"description": "Canonical public profile URL for the author when available.",
"nullable": true,
"type": "string"
},
"verified": {
"description": "Whether the author has legacy verification on X.",
"type": "boolean"
}
},
"required": [
"handle",
"displayName",
"avatarUrl",
"profileUrl",
"verified",
"blueVerified"
],
"type": "object"
},
"communityId": {
"description": "Community id when the tweet was posted to a community.",
"nullable": true,
"type": "string"
},
"conversationId": {
"description": "Conversation identifier when supplied.",
"minLength": 1,
"nullable": true,
"type": "string"
},
"createdAt": {
"description": "Creation time (ISO-8601).",
"format": "date-time",
"type": "string"
},
"createdAtLabel": {
"description": "Human-readable creation timestamp string when available.",
"nullable": true,
"type": "string"
},
"createdAtUnix": {
"description": "Legacy Unix epoch seconds for tweet creation. Prefer createdAt.",
"minimum": 0,
"type": "integer"
},
"expandedUrl": {
"description": "Expanded URL attached to the tweet when available.",
"nullable": true,
"type": "string"
},
"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"
},
"inReplyToStatusId": {
"description": "Parent post identifier when this post is a reply.",
"minLength": 1,
"nullable": true,
"type": "string"
},
"isPaidPromotion": {
"description": "Whether X marks the tweet as a paid promotion.",
"nullable": true,
"type": "boolean"
},
"isQuote": {
"default": false,
"description": "Whether the tweet quotes another post.",
"type": "boolean"
},
"isReply": {
"default": false,
"description": "Whether the tweet is a reply to another post.",
"type": "boolean"
},
"isRetweet": {
"description": "Whether the tweet is marked as a retweet.",
"type": "boolean"
},
"isTranslatable": {
"description": "Whether X considers the tweet text translatable.",
"nullable": true,
"type": "boolean"
},
"language": {
"description": "Language code for the tweet when available.",
"nullable": true,
"type": "string"
},
"media": {
"description": "Media attachments returned for the tweet.",
"items": {
"description": "Media attachment on a tweet.",
"properties": {
"bitrate": {
"description": "Bitrate in bits per second when supplied for streamed media.",
"minimum": 0,
"type": "integer"
},
"contentType": {
"description": "MIME type reported for streamed media.",
"minLength": 1,
"type": "string"
},
"height": {
"description": "Height in pixels when available.",
"minimum": 0,
"type": "integer"
},
"thumbnailUrl": {
"description": "Poster or thumbnail URL for video media when distinguishable.",
"minLength": 1,
"type": "string"
},
"type": {
"description": "Media type when Social Fetch can classify it confidently.",
"enum": [
"photo",
"video",
"animated_gif"
],
"type": "string"
},
"url": {
"description": "Direct media URL when available.",
"minLength": 1,
"type": "string"
},
"width": {
"description": "Width in pixels when available.",
"minimum": 0,
"type": "integer"
}
},
"required": [
"url",
"type"
],
"type": "object"
},
"type": "array"
},
"metrics": {
"description": "Engagement metrics for a tweet.",
"properties": {
"bookmarkCount": {
"description": "Bookmark count when available.",
"minimum": 0,
"nullable": true,
"type": "integer"
},
"likes": {
"description": "Like count.",
"minimum": 0,
"type": "integer"
},
"quotes": {
"description": "Quote count.",
"minimum": 0,
"type": "integer"
},
"replies": {
"description": "Reply count.",
"minimum": 0,
"type": "integer"
},
"retweets": {
"description": "Retweet count.",
"minimum": 0,
"type": "integer"
},
"views": {
"description": "View count when available.",
"minimum": 0,
"nullable": true,
"type": "integer"
}
},
"required": [
"likes",
"retweets",
"replies",
"quotes",
"views",
"bookmarkCount"
],
"type": "object"
},
"quotedStatusId": {
"description": "Quoted post identifier when this post quotes another.",
"minLength": 1,
"nullable": true,
"type": "string"
},
"retweetTweetId": {
"description": "Original post identifier when this post is an engagement repost.",
"minLength": 1,
"nullable": true,
"type": "string"
},
"source": {
"description": "Source label such as `Twitter Web App` when available.",
"nullable": true,
"type": "string"
},
"text": {
"description": "Full tweet text when available.",
"type": "string"
},
"url": {
"description": "Canonical public URL for the tweet when available.",
"nullable": true,
"type": "string"
}
},
"required": [
"id",
"url",
"text",
"createdAt",
"createdAtUnix",
"createdAtLabel",
"language",
"conversationId",
"inReplyToStatusId",
"quotedStatusId",
"retweetTweetId",
"author",
"metrics",
"media",
"expandedUrl",
"isRetweet",
"source"
],
"type": "object"
},
"source": {
"description": "Source label such as `Twitter Web App` when available.",
"nullable": true,
"type": "string"
},
"text": {
"description": "Full tweet text when available.",
"type": "string"
},
"url": {
"description": "Canonical public URL for the tweet when available.",
"nullable": true,
"type": "string"
}
},
"required": [
"id",
"url",
"text",
"createdAt",
"createdAtLabel",
"language",
"conversationId",
"inReplyToStatusId",
"quotedStatusId",
"retweetTweetId",
"author",
"metrics",
"media",
"expandedUrl",
"isRetweet",
"source"
],
"type": "object"
},
"type": "array"
}
},
"required": [
"tweets",
"people",
"page"
],
"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"
}