openapi: 3.2.0 info: title: Social Fetch Public Twitter API version: 1.0.0 description: 'REST API for Social Fetch. Versioned routes under `/v1` accept `x-api-key` credits or x402 USDC on Base (walk-up, no key). OpenAPI: https://api.socialfetch.dev/openapi.json. x402 discovery: https://api.socialfetch.dev/.well-known/x402. MCP: https://api.socialfetch.dev/mcp (POST). Docs and agent guide: https://www.socialfetch.dev/docs and https://www.socialfetch.dev/llms.txt.' servers: - url: https://api.socialfetch.dev description: API origin tags: - name: Twitter paths: /v1/twitter/profiles/{handle}: get: tags: - Twitter summary: Get Twitter profile description: Get an X (Twitter) profile by handle. security: - ApiKeyAuth: [] - {} x-socialfetch-pricing: version: 1 baseCredits: 1 surcharges: [] maxCredits: 1 normalizationFailureCredits: 1 x-socialfetch-credits-pricing: 1 credit per successful request. parameters: - schema: type: string description: X handle to look up, with or without a leading @. required: true description: X handle to look up, with or without a leading @. name: handle in: path responses: '200': description: Twitter profile lookup result. content: application/json: schema: type: object properties: data: type: object properties: lookupStatus: type: string enum: - found - private - not_found description: Whether the profile was resolved. profile: type: - object - 'null' properties: platform: type: string enum: - twitter description: Social platform for this profile. handle: type: string description: X screen name (handle) without the leading @. displayName: type: - string - 'null' description: Display name shown on the profile. bio: type: - string - 'null' description: Profile biography text. avatarUrl: type: - string - 'null' description: Best available square avatar image URL. bannerUrl: type: - string - 'null' description: Profile banner image URL when available. verified: type: boolean description: Whether X marks the profile with legacy verification (not necessarily paid blue). blueVerified: type: boolean description: Whether the account has X blue (paid) verification. profileUrl: type: string minLength: 1 description: Canonical public profile URL on x.com. privateAccount: type: boolean description: Whether the account is protected (private). platformUserId: type: string description: Numeric X user id (`rest_id`) as a string. accountCreatedAt: type: string format: date-time description: Account creation time (ISO-8601) when derivable. location: type: - string - 'null' description: Location string from the profile when provided. website: type: - string - 'null' description: Primary outbound link (expanded URL) from the profile. pinnedTweetId: type: string description: Pinned tweet id when X exposes one. verificationInfo: type: object properties: isIdentityVerified: type: boolean description: Whether X marks the account as identity-verified. verifiedSinceMsec: type: string description: When verification became effective, as milliseconds since epoch (string from X). reason: type: object properties: text: type: string description: Human-readable verification reason text from X. entities: type: array items: {} description: Inline entity metadata for the reason text (vendor-defined). description: Verification reason payload when X provides it. required: - isIdentityVerified description: Structured verification metadata from X. tipJar: type: object properties: isEnabled: type: boolean description: Whether the X tip jar is enabled. handles: type: object properties: bandcamp: type: string description: Bandcamp handle from tip jar. bitcoin: type: string description: Bitcoin address or handle. cashApp: type: string description: Cash App handle. ethereum: type: string description: Ethereum address or handle. goFundMe: type: string description: GoFundMe handle. patreon: type: string description: Patreon handle. payPal: type: string description: PayPal handle. venmo: type: string description: Venmo handle. description: Per-service handles when any are present. required: - isEnabled description: Tip jar configuration when present. highlights: type: object properties: canHighlightTweets: type: boolean description: Whether the account may highlight tweets on the profile. highlightedTweetCount: type: integer minimum: 0 description: Count of highlighted tweets when reported by X. required: - canHighlightTweets - highlightedTweetCount description: Tweet highlights metadata when present. businessAccount: type: object additionalProperties: {} description: Opaque business-account payload from X when non-empty (vendor-defined). creatorSubscriptionsCount: type: integer minimum: 0 description: Creator subscriptions count when X reports it. affiliateLabel: type: object properties: description: type: string description: Affiliate or business label text shown on the profile. badgeUrl: type: string description: Badge image URL when X provides one. url: type: string description: Destination URL for the label link. required: - description description: Affiliate or business label when X provides one. required: - platform - handle - displayName - bio - avatarUrl - verified - blueVerified - profileUrl - privateAccount description: Profile details when available. metrics: type: - object - 'null' properties: followers: type: integer minimum: 0 description: Follower count from X. following: type: integer minimum: 0 description: Following (friends) count from X. tweets: type: integer minimum: 0 description: Total post (status) count from X. favourites: type: integer minimum: 0 description: Total favourites (likes) count from X. listedCount: type: integer minimum: 0 description: Listed count when X provides it. mediaCount: type: integer minimum: 0 description: Media item count when X provides it. fastFollowersCount: type: integer minimum: 0 description: Fast-followers count when X provides it. required: - followers - following - tweets - favourites description: Profile metrics when available. required: - lookupStatus - profile - metrics description: Endpoint-specific response payload. meta: type: object properties: requestId: type: string minLength: 1 description: Unique request identifier for tracing this API call. creditsCharged: type: integer minimum: 0 description: Credits charged for this request. version: type: string enum: - v1 description: Public API version that served the response. cached: type: boolean description: True when served from shared response cache. Credits still apply (full endpoint price); Age header may be present. required: - requestId - creditsCharged - version description: Metadata describing the request and billing outcome. required: - data - meta description: Standard success response envelope. examples: found: value: data: lookupStatus: found profile: platform: twitter handle: elonmusk displayName: Elon Musk bio: https://t.co/dDtDyVssfm avatarUrl: https://pbs.twimg.com/profile_images/2053244804520427520/m8mdWZCG_400x400.jpg bannerUrl: https://pbs.twimg.com/profile_banners/44196397/1774145451 verified: false blueVerified: true profileUrl: https://x.com/elonmusk privateAccount: false platformUserId: '44196397' accountCreatedAt: '2009-06-02T20:12:29.000Z' location: null website: null pinnedTweetId: '2055294612751991090' verificationInfo: isIdentityVerified: false verifiedSinceMsec: '-156836000000000' reason: text: This account is verified because it's an affiliate of @X on X. Learn more entities: - from_index: 54 ref: url: https://twitter.com/X url_type: ExternalUrl to_index: 56 - from_index: 63 ref: url: https://help.twitter.com/en/rules-and-policies/profile-labels url_type: ExternalUrl to_index: 73 tipJar: isEnabled: false highlights: canHighlightTweets: true highlightedTweetCount: 992 creatorSubscriptionsCount: 242 affiliateLabel: description: X badgeUrl: https://pbs.twimg.com/profile_images/1955359038532653056/OSHY3ewP_bigger.jpg url: https://twitter.com/X metrics: followers: 239969577 following: 1332 tweets: 102641 favourites: 227794 listedCount: 169024 mediaCount: 4489 fastFollowersCount: 0 meta: requestId: req_663e3c24-faae-4481-b8c0-5ea403d434ff creditsCharged: 1 version: v1 private: value: data: lookupStatus: private profile: platform: twitter handle: lukem1221 displayName: Luke bio: null avatarUrl: https://pbs.twimg.com/profile_images/1999456116619771904/rmqNgqiu_400x400.jpg bannerUrl: null verified: false blueVerified: false profileUrl: https://x.com/lukem1221 privateAccount: true platformUserId: '761228485981528065' accountCreatedAt: '2016-08-04T15:53:09.000Z' location: null website: https://www.voicegecko.io/ verificationInfo: isIdentityVerified: false tipJar: isEnabled: false highlights: canHighlightTweets: false highlightedTweetCount: 0 creatorSubscriptionsCount: 0 metrics: followers: 115 following: 97 tweets: 47 favourites: 48 listedCount: 3 mediaCount: 5 fastFollowersCount: 0 meta: requestId: req_01example creditsCharged: 1 version: v1 not_found: value: data: lookupStatus: not_found profile: null metrics: null meta: requestId: req_01example creditsCharged: 1 version: v1 '400': description: Invalid handle or bad request content: application/json: schema: type: object properties: error: type: object properties: code: type: string enum: - bad_request description: Machine-readable error code for the failed request. message: type: string description: Human-readable error message. May change over time; do not parse it. Use `error.code` and the HTTP status for programmatic handling. requestId: type: string description: Unique request identifier for tracing the failed API call. checkoutUrl: type: string format: uri description: Optional one-click checkout URL when credits are exhausted and a conversion offer is available. required: - code - message - requestId description: Error details for the failed request. required: - error description: Standard error response envelope. example: error: code: bad_request message: Example message. requestId: req_01example '401': description: Missing or invalid API key content: application/json: schema: type: object properties: error: type: object properties: code: type: string enum: - unauthorized description: Machine-readable error code for the failed request. message: type: string description: Human-readable error message. May change over time; do not parse it. Use `error.code` and the HTTP status for programmatic handling. requestId: type: string description: Unique request identifier for tracing the failed API call. checkoutUrl: type: string format: uri description: Optional one-click checkout URL when credits are exhausted and a conversion offer is available. required: - code - message - requestId description: Error details for the failed request. required: - error description: Standard error response envelope. example: error: code: unauthorized message: Example message. requestId: req_01example '402': description: Insufficient credits content: application/json: schema: type: object properties: error: type: object properties: code: type: string enum: - insufficient_credits description: Machine-readable error code for the failed request. message: type: string description: Human-readable error message. May change over time; do not parse it. Use `error.code` and the HTTP status for programmatic handling. requestId: type: string description: Unique request identifier for tracing the failed API call. checkoutUrl: type: string format: uri description: Optional one-click checkout URL when credits are exhausted and a conversion offer is available. required: - code - message - requestId description: Error details for the failed request. required: - error description: Standard error response envelope. example: error: code: insufficient_credits message: Example message. requestId: req_01example '500': description: Unexpected or billing error content: application/json: schema: type: object properties: error: type: object properties: code: type: string enum: - internal_error description: Machine-readable error code for the failed request. message: type: string description: Human-readable error message. May change over time; do not parse it. Use `error.code` and the HTTP status for programmatic handling. requestId: type: string description: Unique request identifier for tracing the failed API call. checkoutUrl: type: string format: uri description: Optional one-click checkout URL when credits are exhausted and a conversion offer is available. required: - code - message - requestId description: Error details for the failed request. required: - error description: Standard error response envelope. example: error: code: internal_error message: Example message. requestId: req_01example '502': description: Lookup could not be completed from the response (unexpected or invalid data). content: application/json: schema: type: object properties: error: type: object properties: code: type: string enum: - lookup_failed description: Machine-readable error code for the failed request. message: type: string description: Human-readable error message. May change over time; do not parse it. Use `error.code` and the HTTP status for programmatic handling. requestId: type: string description: Unique request identifier for tracing the failed API call. checkoutUrl: type: string format: uri description: Optional one-click checkout URL when credits are exhausted and a conversion offer is available. required: - code - message - requestId description: Error details for the failed request. required: - error description: Standard error response envelope. example: error: code: lookup_failed message: Example message. requestId: req_01example '503': description: Service temporarily unavailable; safe to retry with backoff. content: application/json: schema: type: object properties: error: type: object properties: code: type: string enum: - temporarily_unavailable description: Machine-readable error code for the failed request. message: type: string description: Human-readable error message. May change over time; do not parse it. Use `error.code` and the HTTP status for programmatic handling. requestId: type: string description: Unique request identifier for tracing the failed API call. checkoutUrl: type: string format: uri description: Optional one-click checkout URL when credits are exhausted and a conversion offer is available. required: - code - message - requestId description: Error details for the failed request. required: - error description: Standard error response envelope. example: error: code: temporarily_unavailable message: Example message. requestId: req_01example operationId: getV1TwitterProfilesByHandle x-operation-id-source: derived /v1/twitter/profiles/{handle}/tweets: get: tags: - Twitter summary: List Twitter profile tweets description: List tweets from an X profile by handle. security: - ApiKeyAuth: [] - {} x-socialfetch-pricing: version: 1 baseCredits: 2 surcharges: [] maxCredits: 2 normalizationFailureCredits: 2 x-socialfetch-credits-pricing: 2 credits per successful request. parameters: - schema: type: string description: X handle to look up, with or without a leading @. required: true description: X handle to look up, with or without a leading @. name: handle in: path - schema: type: integer minimum: 1 maximum: 100 description: 'Page size (maximum 100). Default: 40.' required: false description: 'Page size (maximum 100). Default: 40.' name: limit in: query - schema: type: string minLength: 1 description: Opaque pagination cursor returned by a previous response. required: false description: Opaque pagination cursor returned by a previous response. name: cursor in: query - schema: type: boolean description: 'Include reply tweets in the returned list. Default: false.' required: false description: 'Include reply tweets in the returned list. Default: false.' name: includeReplies in: query - schema: type: boolean description: 'Include pinned tweets on the first page. Default: false.' required: false description: 'Include pinned tweets on the first page. Default: false.' name: includePinned in: query responses: '200': description: Tweets for the requested profile. content: application/json: schema: type: object properties: data: type: object properties: lookupStatus: type: string enum: - found - not_found description: Whether tweet data was returned for this handle. profile: type: - object - 'null' properties: platform: type: string enum: - twitter description: Social platform for this profile. handle: type: string minLength: 1 description: Screen name without @. displayName: type: - string - 'null' description: Display name for the profile. bio: type: - string - 'null' description: Profile bio when reported by the upstream provider. location: type: - string - 'null' description: Profile location when reported by the upstream provider. avatarUrl: type: - string - 'null' description: Best available square avatar URL. bannerUrl: type: - string - 'null' description: Profile banner image URL when available. verified: type: boolean description: Legacy verified flag from X. blueVerified: type: boolean description: Paid blue verification flag from X. profileUrl: type: string minLength: 1 description: Canonical profile URL on x.com. platformUserId: type: string description: Numeric user id as a string. required: - platform - handle - displayName - bio - location - avatarUrl - bannerUrl - verified - blueVerified - profileUrl description: Profile card derived from the first returned tweet when available; null when not found or when no tweet rows include author data. tweets: type: array items: type: object properties: id: type: string minLength: 1 description: Tweet id. url: type: - string - 'null' description: Canonical public URL for the tweet when available. text: type: string description: Full tweet text when available. createdAt: type: string format: date-time description: Creation time (ISO-8601). createdAtLabel: type: - string - 'null' description: Human-readable creation timestamp string when available. language: type: - string - 'null' description: Language code for the tweet when available. conversationId: type: - string - 'null' minLength: 1 description: Conversation identifier when supplied. inReplyToStatusId: type: - string - 'null' minLength: 1 description: Parent post identifier when this post is a reply. quotedStatusId: type: - string - 'null' minLength: 1 description: Quoted post identifier when this post quotes another. retweetTweetId: type: - string - 'null' minLength: 1 description: Original post identifier when this post is an engagement repost. author: type: - object - 'null' properties: handle: type: string minLength: 1 description: Author handle without the leading @. displayName: type: - string - 'null' description: Display name shown for the author. avatarUrl: type: - string - 'null' description: Profile image URL for the author when available. profileUrl: type: - string - 'null' description: Canonical public profile URL for the author when available. verified: type: boolean description: Whether the author has legacy verification on X. blueVerified: type: boolean description: Whether the author has paid blue verification on X. platformUserId: type: string description: Numeric X user id for the author as a string. required: - handle - displayName - avatarUrl - profileUrl - verified - blueVerified description: Author metadata for the tweet when available. metrics: type: object properties: likes: type: integer minimum: 0 description: Like count. retweets: type: integer minimum: 0 description: Retweet count. replies: type: integer minimum: 0 description: Reply count. quotes: type: integer minimum: 0 description: Quote count. views: type: - integer - 'null' minimum: 0 description: View count when available. bookmarkCount: type: - integer - 'null' minimum: 0 description: Bookmark count when available. required: - likes - retweets - replies - quotes - views - bookmarkCount description: Engagement metrics for a tweet. media: type: array items: type: object properties: url: type: string minLength: 1 description: Direct media URL when available. type: type: string enum: - photo - video description: Media type when Social Fetch can classify it confidently. thumbnailUrl: type: string minLength: 1 description: Poster or thumbnail URL for video media when distinguishable. contentType: type: string minLength: 1 description: MIME type reported for streamed media. bitrate: type: integer minimum: 0 description: Bitrate in bits per second when supplied for streamed media. width: type: integer minimum: 0 description: Width in pixels when available. height: type: integer minimum: 0 description: Height in pixels when available. required: - url - type description: Media attachment on a tweet. description: Media attachments returned for the tweet. expandedUrl: type: - string - 'null' description: Expanded URL attached to the tweet when available. isRetweet: type: boolean description: Whether the tweet is marked as a retweet. isReply: type: boolean default: false description: Whether the tweet is a reply to another post. isQuote: type: boolean default: false description: Whether the tweet quotes another post. source: type: - string - 'null' description: Source label such as `Twitter Web App` when available. required: - id - url - text - createdAt - createdAtLabel - language - conversationId - inReplyToStatusId - quotedStatusId - retweetTweetId - author - metrics - media - expandedUrl - isRetweet - source description: A normalized Twitter post item. description: Tweets returned for the requested profile page. May be empty when `lookupStatus` is `found` and no eligible tweets are returned, or when `lookupStatus` is `not_found`. page: type: object properties: nextCursor: type: - string - 'null' description: Cursor to pass as `cursor` in the next request when another page exists. hasMore: type: boolean description: Whether another page can be requested. required: - nextCursor - hasMore description: Pagination information for the current response. required: - lookupStatus - profile - tweets - page description: Endpoint-specific response payload. meta: type: object properties: requestId: type: string minLength: 1 description: Unique request identifier for tracing this API call. creditsCharged: type: integer minimum: 0 description: Credits charged for this request. version: type: string enum: - v1 description: Public API version that served the response. cached: type: boolean description: True when served from shared response cache. Credits still apply (full endpoint price); Age header may be present. required: - requestId - creditsCharged - version description: Metadata describing the request and billing outcome. required: - data - meta description: Standard success response envelope. examples: found: value: data: lookupStatus: found profile: platform: twitter handle: TTrimoreau displayName: Thomas Trimoreau bio: null location: null avatarUrl: https://pbs.twimg.com/profile_images/2016450892006883328/8erNdoxt_normal.jpg bannerUrl: null verified: false blueVerified: true profileUrl: https://x.com/TTrimoreau platformUserId: '1480815621076049920' tweets: - id: '2071025589574647913' url: https://x.com/TTrimoreau/status/2071025589574647913 text: anyone still using Cursor? createdAt: '2026-06-28T00:19:13.000Z' createdAtLabel: Sun Jun 28 00:19:13 +0000 2026 language: en conversationId: '2071025589574647913' inReplyToStatusId: null quotedStatusId: null retweetTweetId: null author: handle: TTrimoreau displayName: Thomas Trimoreau avatarUrl: https://pbs.twimg.com/profile_images/2016450892006883328/8erNdoxt_normal.jpg profileUrl: https://x.com/TTrimoreau verified: false blueVerified: true platformUserId: '1480815621076049920' metrics: likes: 27 retweets: 1 replies: 29 quotes: 1 views: 2311 bookmarkCount: 0 media: [] expandedUrl: null isRetweet: false source: Twitter for iPhone page: nextCursor: eyJjIjoiREFBSENnQUJITDN3SjNHX18tc0xBQUlBQUFBVE1qQTNNRFEwTmprNE5UUXhOemN5T0RJNU9BZ0FBd0FBQUFJQUFBIiwiaCI6IlRUcmltb3JlYXUiLCJsIjo0MCwiciI6ZmFsc2UsInAiOmZhbHNlfQ hasMore: true meta: requestId: req_01example_found creditsCharged: 2 version: v1 empty: value: data: lookupStatus: found profile: null tweets: [] page: nextCursor: null hasMore: false meta: requestId: req_01example_empty creditsCharged: 2 version: v1 not_found: value: data: lookupStatus: not_found profile: null tweets: [] page: nextCursor: null hasMore: false meta: requestId: req_01example_nf creditsCharged: 2 version: v1 '400': description: Invalid handle, cursor, or bad request content: application/json: schema: type: object properties: error: type: object properties: code: type: string enum: - bad_request description: Machine-readable error code for the failed request. message: type: string description: Human-readable error message. May change over time; do not parse it. Use `error.code` and the HTTP status for programmatic handling. requestId: type: string description: Unique request identifier for tracing the failed API call. checkoutUrl: type: string format: uri description: Optional one-click checkout URL when credits are exhausted and a conversion offer is available. required: - code - message - requestId description: Error details for the failed request. required: - error description: Standard error response envelope. example: error: code: bad_request message: Example message. requestId: req_01example '401': description: Missing or invalid API key content: application/json: schema: type: object properties: error: type: object properties: code: type: string enum: - unauthorized description: Machine-readable error code for the failed request. message: type: string description: Human-readable error message. May change over time; do not parse it. Use `error.code` and the HTTP status for programmatic handling. requestId: type: string description: Unique request identifier for tracing the failed API call. checkoutUrl: type: string format: uri description: Optional one-click checkout URL when credits are exhausted and a conversion offer is available. required: - code - message - requestId description: Error details for the failed request. required: - error description: Standard error response envelope. example: error: code: unauthorized message: Example message. requestId: req_01example '402': description: Insufficient credits content: application/json: schema: type: object properties: error: type: object properties: code: type: string enum: - insufficient_credits description: Machine-readable error code for the failed request. message: type: string description: Human-readable error message. May change over time; do not parse it. Use `error.code` and the HTTP status for programmatic handling. requestId: type: string description: Unique request identifier for tracing the failed API call. checkoutUrl: type: string format: uri description: Optional one-click checkout URL when credits are exhausted and a conversion offer is available. required: - code - message - requestId description: Error details for the failed request. required: - error description: Standard error response envelope. example: error: code: insufficient_credits message: Example message. requestId: req_01example '500': description: Unexpected or billing error content: application/json: schema: type: object properties: error: type: object properties: code: type: string enum: - internal_error description: Machine-readable error code for the failed request. message: type: string description: Human-readable error message. May change over time; do not parse it. Use `error.code` and the HTTP status for programmatic handling. requestId: type: string description: Unique request identifier for tracing the failed API call. checkoutUrl: type: string format: uri description: Optional one-click checkout URL when credits are exhausted and a conversion offer is available. required: - code - message - requestId description: Error details for the failed request. required: - error description: Standard error response envelope. example: error: code: internal_error message: Example message. requestId: req_01example '502': description: Lookup could not be completed from the response (unexpected or invalid data). content: application/json: schema: type: object properties: error: type: object properties: code: type: string enum: - lookup_failed description: Machine-readable error code for the failed request. message: type: string description: Human-readable error message. May change over time; do not parse it. Use `error.code` and the HTTP status for programmatic handling. requestId: type: string description: Unique request identifier for tracing the failed API call. checkoutUrl: type: string format: uri description: Optional one-click checkout URL when credits are exhausted and a conversion offer is available. required: - code - message - requestId description: Error details for the failed request. required: - error description: Standard error response envelope. example: error: code: lookup_failed message: Example message. requestId: req_01example '503': description: Service temporarily unavailable; safe to retry with backoff. content: application/json: schema: type: object properties: error: type: object properties: code: type: string enum: - temporarily_unavailable description: Machine-readable error code for the failed request. message: type: string description: Human-readable error message. May change over time; do not parse it. Use `error.code` and the HTTP status for programmatic handling. requestId: type: string description: Unique request identifier for tracing the failed API call. checkoutUrl: type: string format: uri description: Optional one-click checkout URL when credits are exhausted and a conversion offer is available. required: - code - message - requestId description: Error details for the failed request. required: - error description: Standard error response envelope. example: error: code: temporarily_unavailable message: Example message. requestId: req_01example operationId: getV1TwitterProfilesByHandleTweets x-operation-id-source: derived /v1/twitter/tweets: get: tags: - Twitter summary: Get Twitter tweet description: Get a single tweet by URL. security: - ApiKeyAuth: [] - {} x-socialfetch-pricing: version: 1 baseCredits: 1 surcharges: [] maxCredits: 1 normalizationFailureCredits: 1 x-socialfetch-credits-pricing: 1 credit per successful request. parameters: - schema: type: string minLength: 1 maxLength: 4096 description: Tweet permalink or identifier. required: true description: Tweet permalink or identifier. name: url in: query - schema: type: boolean description: 'Optional: omit author profile and tweet `core` for a smaller response.' required: false description: 'Optional: omit author profile and tweet `core` for a smaller response.' name: trim in: query responses: '200': description: Tweet details. content: application/json: schema: type: object properties: data: type: object properties: lookupStatus: type: string enum: - found - not_found description: Whether the tweet was found or unavailable. author: type: - object - 'null' properties: profile: type: object properties: platform: type: string enum: - twitter description: Social platform for this profile. handle: type: string description: X screen name (handle) without the leading @. displayName: type: - string - 'null' description: Display name shown on the profile. bio: type: - string - 'null' description: Profile biography text. avatarUrl: type: - string - 'null' description: Best available square avatar image URL. bannerUrl: type: - string - 'null' description: Profile banner image URL when available. verified: type: boolean description: Whether X marks the profile with legacy verification (not necessarily paid blue). blueVerified: type: boolean description: Whether the account has X blue (paid) verification. profileUrl: type: string minLength: 1 description: Canonical public profile URL on x.com. privateAccount: type: boolean description: Whether the account is protected (private). platformUserId: type: string description: Numeric X user id (`rest_id`) as a string. accountCreatedAt: type: string format: date-time description: Account creation time (ISO-8601) when derivable. location: type: - string - 'null' description: Location string from the profile when provided. website: type: - string - 'null' description: Primary outbound link (expanded URL) from the profile. pinnedTweetId: type: string description: Pinned tweet id when X exposes one. verificationInfo: type: object properties: isIdentityVerified: type: boolean description: Whether X marks the account as identity-verified. verifiedSinceMsec: type: string description: When verification became effective, as milliseconds since epoch (string from X). reason: type: object properties: text: type: string description: Human-readable verification reason text from X. entities: type: array items: {} description: Inline entity metadata for the reason text (vendor-defined). description: Verification reason payload when X provides it. required: - isIdentityVerified description: Structured verification metadata from X. tipJar: type: object properties: isEnabled: type: boolean description: Whether the X tip jar is enabled. handles: type: object properties: bandcamp: type: string description: Bandcamp handle from tip jar. bitcoin: type: string description: Bitcoin address or handle. cashApp: type: string description: Cash App handle. ethereum: type: string description: Ethereum address or handle. goFundMe: type: string description: GoFundMe handle. patreon: type: string description: Patreon handle. payPal: type: string description: PayPal handle. venmo: type: string description: Venmo handle. description: Per-service handles when any are present. required: - isEnabled description: Tip jar configuration when present. highlights: type: object properties: canHighlightTweets: type: boolean description: Whether the account may highlight tweets on the profile. highlightedTweetCount: type: integer minimum: 0 description: Count of highlighted tweets when reported by X. required: - canHighlightTweets - highlightedTweetCount description: Tweet highlights metadata when present. businessAccount: type: object additionalProperties: {} description: Opaque business-account payload from X when non-empty (vendor-defined). creatorSubscriptionsCount: type: integer minimum: 0 description: Creator subscriptions count when X reports it. affiliateLabel: type: object properties: description: type: string description: Affiliate or business label text shown on the profile. badgeUrl: type: string description: Badge image URL when X provides one. url: type: string description: Destination URL for the label link. required: - description description: Affiliate or business label when X provides one. required: - platform - handle - displayName - bio - avatarUrl - verified - blueVerified - profileUrl - privateAccount description: Profile fields for the tweet author. metrics: type: object properties: followers: type: integer minimum: 0 description: Follower count from X. following: type: integer minimum: 0 description: Following (friends) count from X. tweets: type: integer minimum: 0 description: Total post (status) count from X. favourites: type: integer minimum: 0 description: Total favourites (likes) count from X. listedCount: type: integer minimum: 0 description: Listed count when X provides it. mediaCount: type: integer minimum: 0 description: Media item count when X provides it. fastFollowersCount: type: integer minimum: 0 description: Fast-followers count when X provides it. required: - followers - following - tweets - favourites description: Aggregate counts for the tweet author. required: - profile - metrics description: Author profile and metrics when not trimmed; null when `trim=true` or when not found. tweet: type: - object - 'null' properties: id: type: string minLength: 1 description: Tweet id (`rest_id`). url: type: string minLength: 1 description: Canonical public URL for this tweet on x.com. conversationId: type: string minLength: 1 description: Conversation root tweet id. createdAt: type: string format: date-time description: Creation time (ISO-8601). language: type: string minLength: 1 description: BCP 47 or X language code. text: type: string description: Full tweet text (includes long-form when available). isLongForm: type: boolean description: True when text was taken from note_tweet metadata instead of legacy.full_text alone. displayTextRange: type: array items: type: integer minimum: 0 minItems: 2 maxItems: 2 description: Start/end character indices for visible text. metrics: type: object properties: views: type: integer minimum: 0 description: Impression count when reported by X. favorites: type: integer minimum: 0 description: Favorite (like) count. retweets: type: integer minimum: 0 description: Native repost count. replies: type: integer minimum: 0 description: Reply count. bookmarks: type: integer minimum: 0 description: Bookmark count. quotes: type: integer minimum: 0 description: Quote tweet count. required: - views - favorites - retweets - replies - bookmarks - quotes description: Engagement metrics for a tweet. media: type: array items: anyOf: - type: object properties: type: type: string enum: - photo id: type: string minLength: 1 description: Media id string. url: type: string minLength: 1 description: Short t.co URL for this media. displayUrl: type: string minLength: 1 description: Display URL shown in the tweet. expandedUrl: type: string minLength: 1 description: Expanded destination URL. mediaUrlHttps: type: string minLength: 1 description: HTTPS URL for the media asset. sizes: type: object properties: thumb: type: object properties: h: type: integer minimum: 0 w: type: integer minimum: 0 resize: type: string minLength: 1 required: - h - w - resize description: Thumbnail size. small: type: object properties: h: type: integer minimum: 0 w: type: integer minimum: 0 resize: type: string minLength: 1 required: - h - w - resize description: Small variant. medium: type: object properties: h: type: integer minimum: 0 w: type: integer minimum: 0 resize: type: string minLength: 1 required: - h - w - resize description: Medium variant. large: type: object properties: h: type: integer minimum: 0 w: type: integer minimum: 0 resize: type: string minLength: 1 required: - h - w - resize description: Large variant. required: - thumb - small - medium - large description: Per-label media dimensions from X. originalInfo: type: object properties: width: type: integer minimum: 0 height: type: integer minimum: 0 required: - width - height description: Original pixel dimensions. required: - type - id - url - displayUrl - expandedUrl - mediaUrlHttps - sizes - originalInfo description: Photo attachment on a tweet. - type: object properties: type: type: string enum: - video - animated_gif description: Video or MP4-based animated GIF. id: type: string minLength: 1 description: Media id string. url: type: string minLength: 1 description: Short t.co URL for this media. displayUrl: type: string minLength: 1 description: Display URL shown in the tweet. expandedUrl: type: string minLength: 1 description: Expanded destination URL. mediaUrlHttps: type: string minLength: 1 description: HTTPS URL for the poster or media. sizes: type: object properties: thumb: type: object properties: h: type: integer minimum: 0 w: type: integer minimum: 0 resize: type: string minLength: 1 required: - h - w - resize description: Thumbnail size. small: type: object properties: h: type: integer minimum: 0 w: type: integer minimum: 0 resize: type: string minLength: 1 required: - h - w - resize description: Small variant. medium: type: object properties: h: type: integer minimum: 0 w: type: integer minimum: 0 resize: type: string minLength: 1 required: - h - w - resize description: Medium variant. large: type: object properties: h: type: integer minimum: 0 w: type: integer minimum: 0 resize: type: string minLength: 1 required: - h - w - resize description: Large variant. required: - thumb - small - medium - large description: Per-label media dimensions from X. originalInfo: type: object properties: width: type: integer minimum: 0 height: type: integer minimum: 0 required: - width - height description: Original pixel dimensions. variants: type: array items: type: object properties: contentType: type: string minLength: 1 description: MIME type of the variant. url: type: string minLength: 1 description: Direct URL for this variant. bitrate: type: integer minimum: 0 description: Bitrate in bits per second when present (omitted for HLS). required: - contentType - url description: A downloadable or streamable media variant. minItems: 1 description: Stream or download variants (mp4, HLS, etc.). durationMs: type: integer minimum: 0 description: Duration in milliseconds when known. aspectRatio: type: array items: type: integer exclusiveMinimum: 0 minItems: 2 maxItems: 2 description: Width:height ratio tuple when provided by X. required: - type - id - url - displayUrl - expandedUrl - mediaUrlHttps - sizes - originalInfo - variants description: Video or animated GIF attachment. description: Photo, video, or GIF attachments. entities: type: object properties: hashtags: type: array items: type: object properties: text: type: string description: 'Hashtag text without #.' required: - text description: A hashtag entity. description: Hashtag entities. userMentions: type: array items: type: object properties: handle: type: string minLength: 1 description: Mentioned screen name. displayName: type: string description: Display name when available. platformUserId: type: string description: Numeric user id for the mention when available. required: - handle description: A user mention entity. description: User mention entities. urls: type: array items: type: object properties: url: type: string minLength: 1 description: Short URL as it appears in text. displayUrl: type: string minLength: 1 description: Human-readable display host/path. expandedUrl: type: string minLength: 1 description: Fully expanded destination URL. required: - url - displayUrl - expandedUrl description: A URL entity. description: URL entities. symbols: type: array items: type: object properties: text: type: string minLength: 1 description: Cashtag or symbol text. required: - text description: A symbol/cashtag entity. description: Symbol entities. required: - hashtags - userMentions - urls - symbols description: Entities aligned with `text`. isReply: type: boolean description: Whether this is a reply. inReplyToTweetId: type: string description: Parent tweet id when replying. inReplyToUserId: type: string description: Parent author user id when replying. inReplyToScreenName: type: string description: Parent author handle when replying. isQuote: type: boolean description: Whether this tweet quotes another. quotedTweetId: type: string description: Quoted tweet id when present. isRetweet: type: boolean description: Whether this is a native repost. retweetedTweetId: type: string description: Original tweet id for a repost. possiblySensitive: type: boolean description: Whether X marks the content sensitive. editInfo: type: object properties: editTweetIds: type: array items: type: string minLength: 1 description: Tweet ids in this edit chain. editableUntilMsec: type: string description: Epoch milliseconds until edits are locked. isEditEligible: type: boolean description: Whether the tweet can still be edited. editsRemaining: type: string description: Remaining edits in the window, as reported by X. required: - editTweetIds - editableUntilMsec - isEditEligible - editsRemaining description: Edit metadata when applicable. source: type: string description: Client label text. sourceUrl: type: string description: Link target from the source anchor when present. quotedTweet: type: object properties: id: type: string minLength: 1 description: Tweet id (`rest_id`). url: type: string minLength: 1 description: Canonical public URL for this tweet on x.com. conversationId: type: string minLength: 1 description: Conversation root tweet id. createdAt: type: string format: date-time description: Creation time (ISO-8601). language: type: string minLength: 1 description: BCP 47 or X language code. text: type: string description: Full tweet text (includes long-form when available). isLongForm: type: boolean description: True when text was taken from note_tweet metadata instead of legacy.full_text alone. displayTextRange: type: array items: type: integer minimum: 0 minItems: 2 maxItems: 2 description: Start/end character indices for visible text. author: type: - object - 'null' properties: handle: type: string minLength: 1 description: Author screen name without the leading @. displayName: type: - string - 'null' description: Author display name. avatarUrl: type: - string - 'null' description: Best available square avatar URL for the author. verified: type: boolean description: Whether X marks the author with legacy verification. blueVerified: type: boolean description: Whether the author has X blue (paid) verification. platformUserId: type: string description: Numeric X user id for the author as a string. required: - handle - displayName - avatarUrl - verified - blueVerified description: Author snapshot when available. metrics: type: object properties: views: type: integer minimum: 0 description: Impression count when reported by X. favorites: type: integer minimum: 0 description: Favorite (like) count. retweets: type: integer minimum: 0 description: Native repost count. replies: type: integer minimum: 0 description: Reply count. bookmarks: type: integer minimum: 0 description: Bookmark count. quotes: type: integer minimum: 0 description: Quote tweet count. required: - views - favorites - retweets - replies - bookmarks - quotes description: Engagement metrics for a tweet. media: type: array items: anyOf: - type: object properties: type: type: string enum: - photo id: type: string minLength: 1 description: Media id string. url: type: string minLength: 1 description: Short t.co URL for this media. displayUrl: type: string minLength: 1 description: Display URL shown in the tweet. expandedUrl: type: string minLength: 1 description: Expanded destination URL. mediaUrlHttps: type: string minLength: 1 description: HTTPS URL for the media asset. sizes: type: object properties: thumb: type: object properties: h: type: integer minimum: 0 w: type: integer minimum: 0 resize: type: string minLength: 1 required: - h - w - resize description: Thumbnail size. small: type: object properties: h: type: integer minimum: 0 w: type: integer minimum: 0 resize: type: string minLength: 1 required: - h - w - resize description: Small variant. medium: type: object properties: h: type: integer minimum: 0 w: type: integer minimum: 0 resize: type: string minLength: 1 required: - h - w - resize description: Medium variant. large: type: object properties: h: type: integer minimum: 0 w: type: integer minimum: 0 resize: type: string minLength: 1 required: - h - w - resize description: Large variant. required: - thumb - small - medium - large description: Per-label media dimensions from X. originalInfo: type: object properties: width: type: integer minimum: 0 height: type: integer minimum: 0 required: - width - height description: Original pixel dimensions. required: - type - id - url - displayUrl - expandedUrl - mediaUrlHttps - sizes - originalInfo description: Photo attachment on a tweet. - type: object properties: type: type: string enum: - video - animated_gif description: Video or MP4-based animated GIF. id: type: string minLength: 1 description: Media id string. url: type: string minLength: 1 description: Short t.co URL for this media. displayUrl: type: string minLength: 1 description: Display URL shown in the tweet. expandedUrl: type: string minLength: 1 description: Expanded destination URL. mediaUrlHttps: type: string minLength: 1 description: HTTPS URL for the poster or media. sizes: type: object properties: thumb: type: object properties: h: type: integer minimum: 0 w: type: integer minimum: 0 resize: type: string minLength: 1 required: - h - w - resize description: Thumbnail size. small: type: object properties: h: type: integer minimum: 0 w: type: integer minimum: 0 resize: type: string minLength: 1 required: - h - w - resize description: Small variant. medium: type: object properties: h: type: integer minimum: 0 w: type: integer minimum: 0 resize: type: string minLength: 1 required: - h - w - resize description: Medium variant. large: type: object properties: h: type: integer minimum: 0 w: type: integer minimum: 0 resize: type: string minLength: 1 required: - h - w - resize description: Large variant. required: - thumb - small - medium - large description: Per-label media dimensions from X. originalInfo: type: object properties: width: type: integer minimum: 0 height: type: integer minimum: 0 required: - width - height description: Original pixel dimensions. variants: type: array items: type: object properties: contentType: type: string minLength: 1 description: MIME type of the variant. url: type: string minLength: 1 description: Direct URL for this variant. bitrate: type: integer minimum: 0 description: Bitrate in bits per second when present (omitted for HLS). required: - contentType - url description: A downloadable or streamable media variant. minItems: 1 description: Stream or download variants (mp4, HLS, etc.). durationMs: type: integer minimum: 0 description: Duration in milliseconds when known. aspectRatio: type: array items: type: integer exclusiveMinimum: 0 minItems: 2 maxItems: 2 description: Width:height ratio tuple when provided by X. required: - type - id - url - displayUrl - expandedUrl - mediaUrlHttps - sizes - originalInfo - variants description: Video or animated GIF attachment. description: Photo, video, or GIF attachments. entities: type: object properties: hashtags: type: array items: type: object properties: text: type: string description: 'Hashtag text without #.' required: - text description: A hashtag entity. description: Hashtag entities. userMentions: type: array items: type: object properties: handle: type: string minLength: 1 description: Mentioned screen name. displayName: type: string description: Display name when available. platformUserId: type: string description: Numeric user id for the mention when available. required: - handle description: A user mention entity. description: User mention entities. urls: type: array items: type: object properties: url: type: string minLength: 1 description: Short URL as it appears in text. displayUrl: type: string minLength: 1 description: Human-readable display host/path. expandedUrl: type: string minLength: 1 description: Fully expanded destination URL. required: - url - displayUrl - expandedUrl description: A URL entity. description: URL entities. symbols: type: array items: type: object properties: text: type: string minLength: 1 description: Cashtag or symbol text. required: - text description: A symbol/cashtag entity. description: Symbol entities. required: - hashtags - userMentions - urls - symbols description: Entities aligned with `text`. isReply: type: boolean description: Whether this is a reply. inReplyToTweetId: type: string description: Parent tweet id when replying. inReplyToUserId: type: string description: Parent author user id when replying. inReplyToScreenName: type: string description: Parent author handle when replying. isQuote: type: boolean description: Whether this tweet quotes another. quotedTweetId: type: string description: Quoted tweet id when present. isRetweet: type: boolean description: Whether this is a native repost. retweetedTweetId: type: string description: Original tweet id for a repost. possiblySensitive: type: boolean description: Whether X marks the content sensitive. editInfo: type: object properties: editTweetIds: type: array items: type: string minLength: 1 description: Tweet ids in this edit chain. editableUntilMsec: type: string description: Epoch milliseconds until edits are locked. isEditEligible: type: boolean description: Whether the tweet can still be edited. editsRemaining: type: string description: Remaining edits in the window, as reported by X. required: - editTweetIds - editableUntilMsec - isEditEligible - editsRemaining description: Edit metadata when applicable. source: type: string description: Client label text. sourceUrl: type: string description: Link target from the source anchor when present. required: - id - url - conversationId - createdAt - language - text - isLongForm - displayTextRange - author - metrics - media - entities - isReply - isQuote - isRetweet - possiblySensitive description: Quoted tweet expanded one level (no further nesting on this field). required: - id - url - conversationId - createdAt - language - text - isLongForm - displayTextRange - metrics - media - entities - isReply - isQuote - isRetweet - possiblySensitive description: Tweet body, metrics, and optional quoted tweet; null when not found. required: - lookupStatus - author - tweet description: Endpoint-specific response payload. meta: type: object properties: requestId: type: string minLength: 1 description: Unique request identifier for tracing this API call. creditsCharged: type: integer minimum: 0 description: Credits charged for this request. version: type: string enum: - v1 description: Public API version that served the response. cached: type: boolean description: True when served from shared response cache. Credits still apply (full endpoint price); Age header may be present. required: - requestId - creditsCharged - version description: Metadata describing the request and billing outcome. required: - data - meta description: Standard success response envelope. examples: found: value: data: lookupStatus: found author: profile: platform: twitter handle: elonmusk displayName: Elon Musk bio: https://t.co/dDtDyVssfm avatarUrl: https://pbs.twimg.com/profile_images/2053244804520427520/m8mdWZCG_400x400.jpg bannerUrl: https://pbs.twimg.com/profile_banners/44196397/1774145451 verified: false blueVerified: true profileUrl: https://x.com/elonmusk privateAccount: false platformUserId: '44196397' accountCreatedAt: '2009-06-02T20:12:29.000Z' location: null website: null pinnedTweetId: '2055294612751991090' affiliateLabel: description: X badgeUrl: https://pbs.twimg.com/profile_images/1955359038532653056/OSHY3ewP_bigger.jpg url: https://twitter.com/X metrics: followers: 239969612 following: 1332 tweets: 102641 favourites: 227796 listedCount: 169024 mediaCount: 4489 fastFollowersCount: 0 tweet: id: '2044683867630833961' url: https://x.com/elonmusk/status/2044683867630833961 conversationId: '2044683867630833961' createdAt: '2026-04-16T07:46:37.000Z' language: en text: Look at the tiny cars in the foreground to get a sense of the vastness of the building isLongForm: false displayTextRange: - 0 - 86 metrics: views: 21703034 favorites: 41905 retweets: 4590 replies: 2809 bookmarks: 1371 quotes: 94 media: [] entities: hashtags: [] userMentions: [] urls: [] symbols: [] isReply: false isQuote: true quotedTweetId: '2044505822533705783' isRetweet: false possiblySensitive: false editInfo: editTweetIds: - '2044683867630833961' editableUntilMsec: '1776329197000' isEditEligible: true editsRemaining: '5' source: Twitter for iPhone sourceUrl: http://twitter.com/download/iphone quotedTweet: id: '2044505822533705783' url: https://x.com/HalcyonHypnotic/status/2044505822533705783 conversationId: '2044505822533705783' createdAt: '2026-04-15T19:59:07.000Z' language: en text: "Hot take but SpaceX is probably the best civil engineering company in the world. Somehow they are able to make these insanely complex ground system and building designs and find the perfect contractors and technicians to build out their ideas in months or 1-2 years. \n\nI feel like we need the SpaceX methodology and their contractors across many projects. If we did we could probably have gotten so much done and in a much higher quality. \n\nThey say you can’t have fast, cheap, and good, but somehow SpaceX always manages to deliver on all 3." isLongForm: true displayTextRange: - 0 - 280 author: handle: HalcyonHypnotic displayName: Hypnotic avatarUrl: https://pbs.twimg.com/profile_images/1991801809845866496/XZ_Qu9m1_400x400.jpg verified: false blueVerified: true platformUserId: '1028515474710114305' metrics: views: 22906734 favorites: 16027 retweets: 1462 replies: 859 bookmarks: 1195 quotes: 115 media: [] entities: hashtags: [] userMentions: [] urls: [] symbols: [] isReply: false isQuote: true quotedTweetId: '2044497016298918073' isRetweet: false possiblySensitive: false editInfo: editTweetIds: - '2044505822533705783' editableUntilMsec: '1776286747000' isEditEligible: false editsRemaining: '5' source: Twitter for iPhone sourceUrl: http://twitter.com/download/iphone meta: requestId: req_498736a9-e0e8-4adc-9100-a59e8bbcd452 creditsCharged: 1 version: v1 found_trimmed: value: data: lookupStatus: found author: null tweet: id: '2044683867630833961' url: https://x.com/i/status/2044683867630833961 conversationId: '2044683867630833961' createdAt: '2025-04-27T20:06:37.000Z' language: en text: Look at the tiny cars in the foreground to get a sense of the vastness of the building isLongForm: false displayTextRange: - 0 - 86 metrics: views: 12708412 favorites: 30931 retweets: 3097 replies: 2215 bookmarks: 945 quotes: 71 media: [] entities: hashtags: [] userMentions: [] urls: [] symbols: [] isReply: false isQuote: true quotedTweetId: '2044505822533705783' isRetweet: false possiblySensitive: false source: Twitter for iPhone sourceUrl: http://twitter.com/download/iphone meta: requestId: req_01example_trim creditsCharged: 1 version: v1 not_found: value: data: lookupStatus: not_found author: null tweet: null meta: requestId: req_01example_nf creditsCharged: 1 version: v1 '400': description: Invalid request content: application/json: schema: type: object properties: error: type: object properties: code: type: string enum: - bad_request description: Machine-readable error code for the failed request. message: type: string description: Human-readable error message. May change over time; do not parse it. Use `error.code` and the HTTP status for programmatic handling. requestId: type: string description: Unique request identifier for tracing the failed API call. checkoutUrl: type: string format: uri description: Optional one-click checkout URL when credits are exhausted and a conversion offer is available. required: - code - message - requestId description: Error details for the failed request. required: - error description: Standard error response envelope. example: error: code: bad_request message: Example message. requestId: req_01example '401': description: Missing or invalid API key content: application/json: schema: type: object properties: error: type: object properties: code: type: string enum: - unauthorized description: Machine-readable error code for the failed request. message: type: string description: Human-readable error message. May change over time; do not parse it. Use `error.code` and the HTTP status for programmatic handling. requestId: type: string description: Unique request identifier for tracing the failed API call. checkoutUrl: type: string format: uri description: Optional one-click checkout URL when credits are exhausted and a conversion offer is available. required: - code - message - requestId description: Error details for the failed request. required: - error description: Standard error response envelope. example: error: code: unauthorized message: Example message. requestId: req_01example '402': description: Insufficient credits content: application/json: schema: type: object properties: error: type: object properties: code: type: string enum: - insufficient_credits description: Machine-readable error code for the failed request. message: type: string description: Human-readable error message. May change over time; do not parse it. Use `error.code` and the HTTP status for programmatic handling. requestId: type: string description: Unique request identifier for tracing the failed API call. checkoutUrl: type: string format: uri description: Optional one-click checkout URL when credits are exhausted and a conversion offer is available. required: - code - message - requestId description: Error details for the failed request. required: - error description: Standard error response envelope. example: error: code: insufficient_credits message: Example message. requestId: req_01example '500': description: Unexpected or billing error content: application/json: schema: type: object properties: error: type: object properties: code: type: string enum: - internal_error description: Machine-readable error code for the failed request. message: type: string description: Human-readable error message. May change over time; do not parse it. Use `error.code` and the HTTP status for programmatic handling. requestId: type: string description: Unique request identifier for tracing the failed API call. checkoutUrl: type: string format: uri description: Optional one-click checkout URL when credits are exhausted and a conversion offer is available. required: - code - message - requestId description: Error details for the failed request. required: - error description: Standard error response envelope. example: error: code: internal_error message: Example message. requestId: req_01example '502': description: Lookup could not be completed from the response (unexpected or invalid data). content: application/json: schema: type: object properties: error: type: object properties: code: type: string enum: - lookup_failed description: Machine-readable error code for the failed request. message: type: string description: Human-readable error message. May change over time; do not parse it. Use `error.code` and the HTTP status for programmatic handling. requestId: type: string description: Unique request identifier for tracing the failed API call. checkoutUrl: type: string format: uri description: Optional one-click checkout URL when credits are exhausted and a conversion offer is available. required: - code - message - requestId description: Error details for the failed request. required: - error description: Standard error response envelope. example: error: code: lookup_failed message: Example message. requestId: req_01example '503': description: Service temporarily unavailable; safe to retry with backoff. content: application/json: schema: type: object properties: error: type: object properties: code: type: string enum: - temporarily_unavailable description: Machine-readable error code for the failed request. message: type: string description: Human-readable error message. May change over time; do not parse it. Use `error.code` and the HTTP status for programmatic handling. requestId: type: string description: Unique request identifier for tracing the failed API call. checkoutUrl: type: string format: uri description: Optional one-click checkout URL when credits are exhausted and a conversion offer is available. required: - code - message - requestId description: Error details for the failed request. required: - error description: Standard error response envelope. example: error: code: temporarily_unavailable message: Example message. requestId: req_01example operationId: getV1TwitterTweets x-operation-id-source: derived /v1/twitter/tweets/replies: get: tags: - Twitter summary: List Twitter tweet replies description: List replies to a tweet by URL. security: - ApiKeyAuth: [] - {} x-socialfetch-pricing: version: 1 baseCredits: 2 surcharges: [] maxCredits: 2 normalizationFailureCredits: 2 x-socialfetch-credits-pricing: 2 credits per successful request. parameters: - schema: type: string minLength: 1 maxLength: 4096 description: Tweet permalink or identifier. required: true description: Tweet permalink or identifier. name: url in: query - schema: type: string minLength: 1 description: Opaque pagination cursor returned by a previous response. required: false description: Opaque pagination cursor returned by a previous response. name: cursor in: query responses: '200': description: Reply posts for the requested tweet. content: application/json: schema: type: object properties: data: type: object properties: lookupStatus: type: string enum: - found - not_found description: Whether the tweet was resolved for this request. replies: type: array items: type: object properties: id: type: string minLength: 1 description: Tweet id. url: type: - string - 'null' description: Canonical public URL for the tweet when available. text: type: string description: Full tweet text when available. createdAt: type: string format: date-time description: Creation time (ISO-8601). createdAtLabel: type: - string - 'null' description: Human-readable creation timestamp string when available. language: type: - string - 'null' description: Language code for the tweet when available. conversationId: type: - string - 'null' minLength: 1 description: Conversation identifier when supplied. inReplyToStatusId: type: - string - 'null' minLength: 1 description: Parent post identifier when this post is a reply. quotedStatusId: type: - string - 'null' minLength: 1 description: Quoted post identifier when this post quotes another. retweetTweetId: type: - string - 'null' minLength: 1 description: Original post identifier when this post is an engagement repost. author: type: - object - 'null' properties: handle: type: string minLength: 1 description: Author handle without the leading @. displayName: type: - string - 'null' description: Display name shown for the author. avatarUrl: type: - string - 'null' description: Profile image URL for the author when available. profileUrl: type: - string - 'null' description: Canonical public profile URL for the author when available. verified: type: boolean description: Whether the author has legacy verification on X. blueVerified: type: boolean description: Whether the author has paid blue verification on X. platformUserId: type: string description: Numeric X user id for the author as a string. required: - handle - displayName - avatarUrl - profileUrl - verified - blueVerified description: Author metadata for the tweet when available. metrics: type: object properties: likes: type: integer minimum: 0 description: Like count. retweets: type: integer minimum: 0 description: Retweet count. replies: type: integer minimum: 0 description: Reply count. quotes: type: integer minimum: 0 description: Quote count. views: type: - integer - 'null' minimum: 0 description: View count when available. bookmarkCount: type: - integer - 'null' minimum: 0 description: Bookmark count when available. required: - likes - retweets - replies - quotes - views - bookmarkCount description: Engagement metrics for a tweet. media: type: array items: type: object properties: url: type: string minLength: 1 description: Direct media URL when available. type: type: string enum: - photo - video description: Media type when Social Fetch can classify it confidently. thumbnailUrl: type: string minLength: 1 description: Poster or thumbnail URL for video media when distinguishable. contentType: type: string minLength: 1 description: MIME type reported for streamed media. bitrate: type: integer minimum: 0 description: Bitrate in bits per second when supplied for streamed media. width: type: integer minimum: 0 description: Width in pixels when available. height: type: integer minimum: 0 description: Height in pixels when available. required: - url - type description: Media attachment on a tweet. description: Media attachments returned for the tweet. expandedUrl: type: - string - 'null' description: Expanded URL attached to the tweet when available. isRetweet: type: boolean description: Whether the tweet is marked as a retweet. isReply: type: boolean default: false description: Whether the tweet is a reply to another post. isQuote: type: boolean default: false description: Whether the tweet quotes another post. source: type: - string - 'null' description: Source label such as `Twitter Web App` when available. required: - id - url - text - createdAt - createdAtLabel - language - conversationId - inReplyToStatusId - quotedStatusId - retweetTweetId - author - metrics - media - expandedUrl - isRetweet - source description: A normalized Twitter post item. description: Reply posts returned for the requested tweet. May be empty when `lookupStatus` is `found` and no replies are returned, or when `lookupStatus` is `not_found`. page: type: object properties: nextCursor: type: - string - 'null' description: Cursor to pass as `cursor` in the next request when another page exists. hasMore: type: boolean description: Whether another page can be requested. required: - nextCursor - hasMore description: Pagination information for the current response. required: - lookupStatus - replies - page description: Endpoint-specific response payload. meta: type: object properties: requestId: type: string minLength: 1 description: Unique request identifier for tracing this API call. creditsCharged: type: integer minimum: 0 description: Credits charged for this request. version: type: string enum: - v1 description: Public API version that served the response. cached: type: boolean description: True when served from shared response cache. Credits still apply (full endpoint price); Age header may be present. required: - requestId - creditsCharged - version description: Metadata describing the request and billing outcome. required: - data - meta description: Standard success response envelope. examples: results: value: data: lookupStatus: found replies: - id: '1920556918868730353' url: https://x.com/SADEX_SA1/status/1920556918868730353 text: 'Riyadh, the capital city of the Kingdom of Saudi Arabia, is ready to host the Second edition of the Saudi Drone Exhibition – SADEX 2025. This important high tech and strategic event will be taking place from 1st to 3rd September 2025, under the effective Patronage of the https://t.co/XpizThJdnq' createdAt: '2025-05-08T19:10:26.000Z' createdAtLabel: Thu May 08 19:10:26 +0000 2025 language: en conversationId: '1920556918868730353' inReplyToStatusId: null quotedStatusId: null retweetTweetId: null author: handle: SADEX_SA1 displayName: SADEX avatarUrl: https://pbs.twimg.com/profile_images/1874178954862456833/vn75PrtK_normal.jpg profileUrl: https://x.com/SADEX_SA1 verified: false blueVerified: false platformUserId: '1724481045939023873' metrics: likes: 44 retweets: 5 replies: 0 quotes: 1 views: null bookmarkCount: 14 media: - url: https://pbs.twimg.com/media/GqcwRaDWEAAUo4b.jpg type: photo width: 4096 height: 4096 expandedUrl: https://x.com/SADEX_SA1/status/1920556918868730353/photo/1 isRetweet: false isReply: false isQuote: false source: null - id: '1924697596989472901' url: https://x.com/grok/status/1924697596989472901 text: '@indragohil @teslaownersSV xAI''s Colossus 2 AI data center in Memphis reportedly uses Tesla Megapacks for power stability, with claims of 168 units, though this lacks confirmation. Each Megapack provides 1.5 MW, suggesting around 100 units for the reported 150 MW capacity. They ensure reliable power for' createdAt: '2025-05-20T05:24:00.000Z' createdAtLabel: Tue May 20 05:24:00 +0000 2025 language: en conversationId: '1924684020107116709' inReplyToStatusId: '1924696723349225979' quotedStatusId: null retweetTweetId: null author: handle: grok displayName: Grok avatarUrl: https://pbs.twimg.com/profile_images/1893219113717342208/Vgg2hEPa_normal.jpg profileUrl: https://x.com/grok verified: false blueVerified: false platformUserId: '1720665183188922368' metrics: likes: 91 retweets: 15 replies: 11 quotes: 3 views: null bookmarkCount: 10 media: [] expandedUrl: null isRetweet: false isReply: true isQuote: false source: null - id: '1924686377696035284' url: https://x.com/BenPott19395132/status/1924686377696035284 text: '@teslaownersSV where is this location' createdAt: '2025-05-20T04:39:26.000Z' createdAtLabel: Tue May 20 04:39:26 +0000 2025 language: en conversationId: '1924684020107116709' inReplyToStatusId: '1924684020107116709' quotedStatusId: null retweetTweetId: null author: handle: BenPott19395132 displayName: Ben Potter avatarUrl: https://abs.twimg.com/sticky/default_profile_images/default_profile_normal.png profileUrl: https://x.com/BenPott19395132 verified: false blueVerified: false platformUserId: '1585959430323318784' metrics: likes: 7 retweets: 0 replies: 1 quotes: 0 views: null bookmarkCount: 0 media: [] expandedUrl: null isRetweet: false isReply: true isQuote: false source: null page: nextCursor: eyJjIjoiWkFBQUFQQlZIQm1tLUlhd29mN1U5N1UxNG9lM2dmT1ZtS2MxOW9lMi1aM2U4clUxNnNleHhhemMwYmMxeElYWWthaTA4clUxd0lhN3ZkMmpfN1kxa0lMVGtlZUdvN1kxcUlmWTZZU0U3clUxNm9MWS1hcXc5TFUxc01lOGlkNjI3N1UxSlFJU0ZRUUFBQSJ9 hasMore: true meta: requestId: req_01example_twitter_tweet_replies creditsCharged: 2 version: v1 empty: value: data: lookupStatus: found replies: [] page: nextCursor: null hasMore: false meta: requestId: req_01twittertweetreplies_empty creditsCharged: 2 version: v1 '400': description: Invalid request content: application/json: schema: type: object properties: error: type: object properties: code: type: string enum: - bad_request description: Machine-readable error code for the failed request. message: type: string description: Human-readable error message. May change over time; do not parse it. Use `error.code` and the HTTP status for programmatic handling. requestId: type: string description: Unique request identifier for tracing the failed API call. checkoutUrl: type: string format: uri description: Optional one-click checkout URL when credits are exhausted and a conversion offer is available. required: - code - message - requestId description: Error details for the failed request. required: - error description: Standard error response envelope. example: error: code: bad_request message: Example message. requestId: req_01example '401': description: Missing or invalid API key content: application/json: schema: type: object properties: error: type: object properties: code: type: string enum: - unauthorized description: Machine-readable error code for the failed request. message: type: string description: Human-readable error message. May change over time; do not parse it. Use `error.code` and the HTTP status for programmatic handling. requestId: type: string description: Unique request identifier for tracing the failed API call. checkoutUrl: type: string format: uri description: Optional one-click checkout URL when credits are exhausted and a conversion offer is available. required: - code - message - requestId description: Error details for the failed request. required: - error description: Standard error response envelope. example: error: code: unauthorized message: Example message. requestId: req_01example '402': description: Insufficient credits content: application/json: schema: type: object properties: error: type: object properties: code: type: string enum: - insufficient_credits description: Machine-readable error code for the failed request. message: type: string description: Human-readable error message. May change over time; do not parse it. Use `error.code` and the HTTP status for programmatic handling. requestId: type: string description: Unique request identifier for tracing the failed API call. checkoutUrl: type: string format: uri description: Optional one-click checkout URL when credits are exhausted and a conversion offer is available. required: - code - message - requestId description: Error details for the failed request. required: - error description: Standard error response envelope. example: error: code: insufficient_credits message: Example message. requestId: req_01example '500': description: Unexpected or billing error content: application/json: schema: type: object properties: error: type: object properties: code: type: string enum: - internal_error description: Machine-readable error code for the failed request. message: type: string description: Human-readable error message. May change over time; do not parse it. Use `error.code` and the HTTP status for programmatic handling. requestId: type: string description: Unique request identifier for tracing the failed API call. checkoutUrl: type: string format: uri description: Optional one-click checkout URL when credits are exhausted and a conversion offer is available. required: - code - message - requestId description: Error details for the failed request. required: - error description: Standard error response envelope. example: error: code: internal_error message: Example message. requestId: req_01example '502': description: Lookup could not be completed from the response (unexpected or invalid data). content: application/json: schema: type: object properties: error: type: object properties: code: type: string enum: - lookup_failed description: Machine-readable error code for the failed request. message: type: string description: Human-readable error message. May change over time; do not parse it. Use `error.code` and the HTTP status for programmatic handling. requestId: type: string description: Unique request identifier for tracing the failed API call. checkoutUrl: type: string format: uri description: Optional one-click checkout URL when credits are exhausted and a conversion offer is available. required: - code - message - requestId description: Error details for the failed request. required: - error description: Standard error response envelope. example: error: code: lookup_failed message: Example message. requestId: req_01example '503': description: Service temporarily unavailable; safe to retry with backoff. content: application/json: schema: type: object properties: error: type: object properties: code: type: string enum: - temporarily_unavailable description: Machine-readable error code for the failed request. message: type: string description: Human-readable error message. May change over time; do not parse it. Use `error.code` and the HTTP status for programmatic handling. requestId: type: string description: Unique request identifier for tracing the failed API call. checkoutUrl: type: string format: uri description: Optional one-click checkout URL when credits are exhausted and a conversion offer is available. required: - code - message - requestId description: Error details for the failed request. required: - error description: Standard error response envelope. example: error: code: temporarily_unavailable message: Example message. requestId: req_01example operationId: getV1TwitterTweetsReplies x-operation-id-source: derived /v1/twitter/tweets/transcript: get: tags: - Twitter summary: Get Twitter tweet transcript description: Get the transcript for a video tweet by URL. security: - ApiKeyAuth: [] - {} x-socialfetch-pricing: version: 1 baseCredits: 1 surcharges: [] maxCredits: 1 normalizationFailureCredits: 1 x-socialfetch-credits-pricing: 1 credit per successful request. x-socialfetch-agent-hints: disambiguation: For video tweets only. Responses can take longer than typical lookups. Videos longer than about two minutes cannot be transcribed. parameters: - schema: type: string minLength: 1 maxLength: 4096 description: Tweet permalink or identifier. required: true description: Tweet permalink or identifier. name: url in: query responses: '200': description: Transcript lookup result. content: application/json: schema: type: object properties: data: type: object properties: lookupStatus: type: string enum: - found - not_found - lookup_failed description: Outcome of the transcript lookup. tweet: type: - object - 'null' properties: url: type: string minLength: 1 description: Public URL of the tweet that was requested (same as the lookup input). required: - url description: Tweet identity when the lookup resolved; otherwise null. transcript: type: - string - 'null' description: Plain transcript text when available. May be null when speech is not detected, the video exceeds supported length, or transcription is otherwise unavailable. required: - lookupStatus - tweet - transcript description: Endpoint-specific response payload. meta: type: object properties: requestId: type: string minLength: 1 description: Unique request identifier for tracing this API call. creditsCharged: type: integer minimum: 0 description: Credits charged for this request. version: type: string enum: - v1 description: Public API version that served the response. cached: type: boolean description: True when served from shared response cache. Credits still apply (full endpoint price); Age header may be present. required: - requestId - creditsCharged - version description: Metadata describing the request and billing outcome. required: - data - meta description: Standard success response envelope. examples: found: value: data: lookupStatus: found tweet: url: https://x.com/TheoVon/status/1916982720317821050 transcript: Since you're kind of like a leader in innovation and technology in our world, you know. Um, do you how do you know that what your convictions are, how do you gauge if what your convictions are are the best for everybody kind of like how do you kind of figure that out, you know. It seems like such a challenge. I mean look at the end of the day, um, there's still a lot of options of things that people can do, just because I build something doesn't mean that people are going to use it. Actually a lot of things that I build, like, some of, some of them work, some of them don't, and like I think part of the reason why the company has been successful is because you know, maybe we have a slightly higher hit rate of things working than others, but if we do something that doesn't work, then in general, people aren't going to use it and then the future doesn't go in that direction, so I see. So you're saying it's up to the user more. Yeah, I mean, look, it's always served me well to generally have faith in people and believe that people are smart and can make good decisions for themselves. And whenever we try to like adopt some sort of like attitude of, "Oh, we must know better than them." It's like we're like, we're the people building technology, that's when you lose. So I I I tend to just think that at the end of the day, yeah, I mean I I think people are smarter than than a lot of people think and I think ultimately drive the direction that society goes in. meta: requestId: req_8e2c7567-6df6-4f70-ba3f-f6ec61e9d6a1 creditsCharged: 1 version: v1 not_found: value: data: lookupStatus: not_found tweet: null transcript: null meta: requestId: req_01example_nf creditsCharged: 1 version: v1 no_transcript: value: data: lookupStatus: found tweet: url: https://x.com/TheoVon/status/1916982720317821050 transcript: null meta: requestId: req_01example_null creditsCharged: 1 version: v1 lookup_failed: value: data: lookupStatus: lookup_failed tweet: null transcript: null meta: requestId: req_01example_lf creditsCharged: 1 version: v1 '400': description: Invalid query, bad request, or the video exceeds supported transcription length. content: application/json: schema: type: object properties: error: type: object properties: code: anyOf: - type: string enum: - bad_request - type: string enum: - video_too_long_for_transcription description: Machine-readable error code for the failed request. message: type: string description: Human-readable error message. May change over time; do not parse it. Use `error.code` and the HTTP status for programmatic handling. requestId: type: string description: Unique request identifier for tracing the failed API call. checkoutUrl: type: string format: uri description: Optional one-click checkout URL when credits are exhausted and a conversion offer is available. required: - code - message - requestId description: Error details for the failed request. required: - error description: Standard error response envelope. examples: bad_request: value: error: code: bad_request message: Example message. requestId: req_01example video_too_long_for_transcription: value: error: code: video_too_long_for_transcription message: Example message. requestId: req_01example '401': description: Missing or invalid API key content: application/json: schema: type: object properties: error: type: object properties: code: type: string enum: - unauthorized description: Machine-readable error code for the failed request. message: type: string description: Human-readable error message. May change over time; do not parse it. Use `error.code` and the HTTP status for programmatic handling. requestId: type: string description: Unique request identifier for tracing the failed API call. checkoutUrl: type: string format: uri description: Optional one-click checkout URL when credits are exhausted and a conversion offer is available. required: - code - message - requestId description: Error details for the failed request. required: - error description: Standard error response envelope. example: error: code: unauthorized message: Example message. requestId: req_01example '402': description: Insufficient credits content: application/json: schema: type: object properties: error: type: object properties: code: type: string enum: - insufficient_credits description: Machine-readable error code for the failed request. message: type: string description: Human-readable error message. May change over time; do not parse it. Use `error.code` and the HTTP status for programmatic handling. requestId: type: string description: Unique request identifier for tracing the failed API call. checkoutUrl: type: string format: uri description: Optional one-click checkout URL when credits are exhausted and a conversion offer is available. required: - code - message - requestId description: Error details for the failed request. required: - error description: Standard error response envelope. example: error: code: insufficient_credits message: Example message. requestId: req_01example '500': description: Unexpected or billing error content: application/json: schema: type: object properties: error: type: object properties: code: type: string enum: - internal_error description: Machine-readable error code for the failed request. message: type: string description: Human-readable error message. May change over time; do not parse it. Use `error.code` and the HTTP status for programmatic handling. requestId: type: string description: Unique request identifier for tracing the failed API call. checkoutUrl: type: string format: uri description: Optional one-click checkout URL when credits are exhausted and a conversion offer is available. required: - code - message - requestId description: Error details for the failed request. required: - error description: Standard error response envelope. example: error: code: internal_error message: Example message. requestId: req_01example '502': description: Lookup could not be completed from the response (unexpected or invalid data). content: application/json: schema: type: object properties: error: type: object properties: code: type: string enum: - lookup_failed description: Machine-readable error code for the failed request. message: type: string description: Human-readable error message. May change over time; do not parse it. Use `error.code` and the HTTP status for programmatic handling. requestId: type: string description: Unique request identifier for tracing the failed API call. checkoutUrl: type: string format: uri description: Optional one-click checkout URL when credits are exhausted and a conversion offer is available. required: - code - message - requestId description: Error details for the failed request. required: - error description: Standard error response envelope. example: error: code: lookup_failed message: Example message. requestId: req_01example '503': description: Service temporarily unavailable; safe to retry with backoff. content: application/json: schema: type: object properties: error: type: object properties: code: type: string enum: - temporarily_unavailable description: Machine-readable error code for the failed request. message: type: string description: Human-readable error message. May change over time; do not parse it. Use `error.code` and the HTTP status for programmatic handling. requestId: type: string description: Unique request identifier for tracing the failed API call. checkoutUrl: type: string format: uri description: Optional one-click checkout URL when credits are exhausted and a conversion offer is available. required: - code - message - requestId description: Error details for the failed request. required: - error description: Standard error response envelope. example: error: code: temporarily_unavailable message: Example message. requestId: req_01example operationId: getV1TwitterTweetsTranscript x-operation-id-source: derived /v1/twitter/search: get: tags: - Twitter summary: Search Twitter posts description: Search X posts by free-text keyword (not hashtag β€” use twitter.hashtag.list for that). security: - ApiKeyAuth: [] - {} x-socialfetch-pricing: version: 1 baseCredits: 2 surcharges: [] maxCredits: 2 normalizationFailureCredits: 2 x-socialfetch-credits-pricing: 2 credits per successful request. parameters: - schema: type: string minLength: 1 maxLength: 512 description: Search query text to run against public posts on X. required: true description: Search query text to run against public posts on X. name: query in: query - schema: type: string enum: - top - latest - people - photos - videos description: Optional search section filter. Omit to use the default `top` section. required: false description: Optional search section filter. Omit to use the default `top` section. name: section in: query - schema: type: integer minimum: 0 description: Optional minimum retweet count filter. required: false description: Optional minimum retweet count filter. name: minRetweets in: query - schema: type: integer minimum: 0 description: Optional minimum like count filter. required: false description: Optional minimum like count filter. name: minLikes in: query - schema: type: integer minimum: 0 description: Optional minimum reply count filter. required: false description: Optional minimum reply count filter. name: minReplies in: query - schema: type: integer minimum: 1 maximum: 20 description: Optional page size. Maximum supported value is 20. required: false description: Optional page size. Maximum supported value is 20. name: limit in: query - schema: type: string pattern: ^\d{4}-\d{2}-\d{2}$ description: Optional start date filter in YYYY-MM-DD format. required: false description: Optional start date filter in YYYY-MM-DD format. name: startDate in: query - schema: type: string pattern: ^\d{4}-\d{2}-\d{2}$ description: Optional end date filter in YYYY-MM-DD format. required: false description: Optional end date filter in YYYY-MM-DD format. name: endDate in: query - schema: type: string enum: - en - es - fr - de - it - pt - ru - zh - ja - ko - ar - bg - hr - cs - da - nl - et - fi - el - hu - id - ga - lv - lt - 'no' - pl - ro - sk - sl - sv - tr - uk - vi - cy - zu description: Optional language filter. required: false description: Optional language filter. name: language in: query - schema: type: string minLength: 1 description: Opaque pagination cursor returned by a previous response. required: false description: Opaque pagination cursor returned by a previous response. name: cursor in: query responses: '200': description: Search results for the requested query. content: application/json: schema: type: object properties: data: type: object properties: tweets: type: array items: type: object properties: id: type: string minLength: 1 description: Tweet id. url: type: - string - 'null' description: Canonical public URL for the tweet when available. text: type: string description: Full tweet text when available. createdAt: type: string format: date-time description: Creation time (ISO-8601). createdAtLabel: type: - string - 'null' description: Human-readable creation timestamp string when available. language: type: - string - 'null' description: Language code for the tweet when available. conversationId: type: - string - 'null' minLength: 1 description: Conversation identifier when supplied. inReplyToStatusId: type: - string - 'null' minLength: 1 description: Parent post identifier when this post is a reply. quotedStatusId: type: - string - 'null' minLength: 1 description: Quoted post identifier when this post quotes another. retweetTweetId: type: - string - 'null' minLength: 1 description: Original post identifier when this post is an engagement repost. author: type: - object - 'null' properties: handle: type: string minLength: 1 description: Author handle without the leading @. displayName: type: - string - 'null' description: Display name shown for the author. avatarUrl: type: - string - 'null' description: Profile image URL for the author when available. profileUrl: type: - string - 'null' description: Canonical public profile URL for the author when available. verified: type: boolean description: Whether the author has legacy verification on X. blueVerified: type: boolean description: Whether the author has paid blue verification on X. platformUserId: type: string description: Numeric X user id for the author as a string. required: - handle - displayName - avatarUrl - profileUrl - verified - blueVerified description: Author metadata for the tweet when available. metrics: type: object properties: likes: type: integer minimum: 0 description: Like count. retweets: type: integer minimum: 0 description: Retweet count. replies: type: integer minimum: 0 description: Reply count. quotes: type: integer minimum: 0 description: Quote count. views: type: - integer - 'null' minimum: 0 description: View count when available. bookmarkCount: type: - integer - 'null' minimum: 0 description: Bookmark count when available. required: - likes - retweets - replies - quotes - views - bookmarkCount description: Engagement metrics for a tweet. media: type: array items: type: object properties: url: type: string minLength: 1 description: Direct media URL when available. type: type: string enum: - photo - video description: Media type when Social Fetch can classify it confidently. thumbnailUrl: type: string minLength: 1 description: Poster or thumbnail URL for video media when distinguishable. contentType: type: string minLength: 1 description: MIME type reported for streamed media. bitrate: type: integer minimum: 0 description: Bitrate in bits per second when supplied for streamed media. width: type: integer minimum: 0 description: Width in pixels when available. height: type: integer minimum: 0 description: Height in pixels when available. required: - url - type description: Media attachment on a tweet. description: Media attachments returned for the tweet. expandedUrl: type: - string - 'null' description: Expanded URL attached to the tweet when available. isRetweet: type: boolean description: Whether the tweet is marked as a retweet. isReply: type: boolean default: false description: Whether the tweet is a reply to another post. isQuote: type: boolean default: false description: Whether the tweet quotes another post. source: type: - string - 'null' description: Source label such as `Twitter Web App` when available. required: - id - url - text - createdAt - createdAtLabel - language - conversationId - inReplyToStatusId - quotedStatusId - retweetTweetId - author - metrics - media - expandedUrl - isRetweet - source description: A normalized Twitter post item. description: Tweets returned for the requested search query. people: type: array items: type: object properties: platformUserId: type: string minLength: 1 description: Numeric X user id as a string. handle: type: - string - 'null' description: X screen name (handle) without the leading @. displayName: type: - string - 'null' description: Display name shown on the profile. bio: type: - string - 'null' description: Profile biography text. avatarUrl: type: - string - 'null' description: Best available square avatar image URL. bannerUrl: type: - string - 'null' description: Profile banner image URL when available. verified: type: boolean description: Whether X marks the profile with legacy verification (not necessarily paid blue). blueVerified: type: boolean description: Whether the account has X blue (paid) verification. privateAccount: type: boolean description: Whether the account is protected (private). profileUrl: type: string minLength: 1 description: Canonical public profile URL on x.com. website: type: - string - 'null' description: Primary outbound link from the profile when provided. location: type: - string - 'null' description: Location string from the profile when provided. accountCreatedAt: type: string format: date-time description: Account creation time (ISO-8601) when derivable. metrics: type: object properties: followers: type: integer minimum: 0 description: Follower count from X. following: type: integer minimum: 0 description: Following (friends) count from X. tweets: type: integer minimum: 0 description: Total post (status) count from X. favourites: type: integer minimum: 0 description: Total favourites (likes) count from X. listedCount: type: integer minimum: 0 description: Listed count when X provides it. mediaCount: type: integer minimum: 0 description: Media item count when X provides it. fastFollowersCount: type: integer minimum: 0 description: Fast-followers count when X provides it. required: - followers - following - tweets - favourites description: Aggregate profile metrics from X. required: - platformUserId - handle - displayName - bio - avatarUrl - verified - blueVerified - privateAccount - profileUrl - metrics description: Profile returned for a people-section search. description: Profiles returned for the requested search query. page: type: object properties: nextCursor: type: - string - 'null' description: Cursor to pass as `cursor` in the next request when another page exists. hasMore: type: boolean description: Whether another page can be requested. required: - nextCursor - hasMore description: Pagination information for the current response. required: - tweets - people - page description: Endpoint-specific response payload. meta: type: object properties: requestId: type: string minLength: 1 description: Unique request identifier for tracing this API call. creditsCharged: type: integer minimum: 0 description: Credits charged for this request. version: type: string enum: - v1 description: Public API version that served the response. cached: type: boolean description: True when served from shared response cache. Credits still apply (full endpoint price); Age header may be present. required: - requestId - creditsCharged - version description: Metadata describing the request and billing outcome. required: - data - meta description: Standard success response envelope. examples: results: value: data: tweets: - id: '2055754992988926323' url: https://x.com/Sim2Mike/status/2055754992988926323 text: It’s clear this has been happening since 2016, when I first noticed itβ€”like removing East Asia from API feeds to keep it out of the top 5 and unnoticed by the public discovering Coinbase. Throwing SEC cases at it. Deploying bots on social media that appeared in every discussion calling it a shitcoin and garbage, plus ad hominem attacks on anyone mentioning its use case. Happening, for sure. And if it’s possible to keep the price low while whales are acquiring then they ARE doing it. createdAt: '2026-05-16T20:59:19.000Z' createdAtLabel: Sat May 16 20:59:19 +0000 2026 language: en conversationId: '2055652631683514731' inReplyToStatusId: '2055753642854973753' quotedStatusId: null retweetTweetId: null author: handle: Sim2Mike displayName: πŸ•³οΈπŸ‡ avatarUrl: https://pbs.twimg.com/profile_images/2026405330058461184/irwZOc4G_normal.jpg profileUrl: https://x.com/Sim2Mike verified: false blueVerified: true platformUserId: '1850694147096649728' metrics: likes: 0 retweets: 0 replies: 1 quotes: 0 views: 24 bookmarkCount: 0 media: [] expandedUrl: null isRetweet: false source: Twitter for iPhone - id: '2055757659731595730' url: https://x.com/filicroval/status/2055757659731595730 text: 'interesting distribution move in the agent space this month from xAI your X subscription now powers an open-source autonomous agent, persistent memory, 47 tools, TTS, image gen, X search, no API key. xAI just collapsed the wall between social media subscriber and agent operator' createdAt: '2026-05-16T21:09:54.000Z' createdAtLabel: Sat May 16 21:09:54 +0000 2026 language: en conversationId: '2055757659731595730' inReplyToStatusId: null quotedStatusId: '2055748546679472322' retweetTweetId: null author: handle: filicroval displayName: Filipe avatarUrl: https://pbs.twimg.com/profile_images/2053464202140893186/5Vgqbdlv_normal.jpg profileUrl: https://x.com/filicroval verified: false blueVerified: true platformUserId: '1654513495507980290' metrics: likes: 1 retweets: 0 replies: 0 quotes: 0 views: 709 bookmarkCount: 1 media: - url: https://pbs.twimg.com/media/HId8UghacAAelH8.png type: photo width: 1200 height: 630 expandedUrl: null isRetweet: false source: Twitter Web App - id: '2054236550020370831' url: https://x.com/PrunaAI/status/2054236550020370831 text: 'Pruna AI P-Image Text to Image is a fast AI image generation model that creates high-quality images from text prompts. Ready-to-use REST inference API for creative design, marketing visuals, concept art, social media content, product mockups, and image generation workflows with simple integration, no coldstarts, and affordable pricing. https://t.co/sCqH9XfKks' createdAt: '2026-05-12T16:25:34.000Z' createdAtLabel: Tue May 12 16:25:34 +0000 2026 language: en conversationId: '2054236526054146240' inReplyToStatusId: '2054236544815227336' quotedStatusId: null retweetTweetId: null author: handle: PrunaAI displayName: Pruna AI avatarUrl: https://pbs.twimg.com/profile_images/1819385083129720832/qv8GhECE_normal.jpg profileUrl: https://x.com/PrunaAI verified: false blueVerified: true platformUserId: '1647142216857419776' metrics: likes: 3 retweets: 0 replies: 0 quotes: 0 views: 279 bookmarkCount: 1 media: [] expandedUrl: null isRetweet: false source: Buffer - id: '2044389083653324862' url: https://x.com/socialmedia2day/status/2044389083653324862 text: Third-party platforms will be able to facilitate a lot more Threads posting and analytics functions with this update https://t.co/F5SA0LXjpF createdAt: '2026-04-15T12:15:15.000Z' createdAtLabel: Wed Apr 15 12:15:15 +0000 2026 language: en conversationId: '2044389083653324862' inReplyToStatusId: null quotedStatusId: null retweetTweetId: null author: handle: socialmedia2day displayName: Social Media Today avatarUrl: https://pbs.twimg.com/profile_images/1549833169888854019/p91jxpTB_normal.jpg profileUrl: https://x.com/socialmedia2day verified: false blueVerified: true platformUserId: '15441074' metrics: likes: 0 retweets: 1 replies: 0 quotes: 0 views: 549 bookmarkCount: 0 media: [] expandedUrl: https://www.socialmediatoday.com/news/meta-updates-threads-api-with-more-third-party-app-integration/817502/ isRetweet: false source: Hootsuite Inc. - id: '2055803820358135858' url: https://x.com/mertkayaai/status/2055803820358135858 text: '@tugberk @Jaaneek Hmm. Thanks a lot. If it happens to be like X api limits, it will not hold. However if @elonmusk thinks about X being the "agentic" social media platform it will stay' createdAt: '2026-05-17T00:13:20.000Z' createdAtLabel: Sun May 17 00:13:20 +0000 2026 language: en conversationId: '2055769885406355665' inReplyToStatusId: '2055803180223488121' quotedStatusId: null retweetTweetId: null author: handle: mertkayaai displayName: Mert Kaya avatarUrl: https://pbs.twimg.com/profile_images/2047104257640341505/Pzxx2AO3_normal.jpg profileUrl: https://x.com/mertkayaai verified: false blueVerified: true platformUserId: '2047104184206450688' metrics: likes: 0 retweets: 0 replies: 1 quotes: 0 views: 25 bookmarkCount: 0 media: [] expandedUrl: null isRetweet: false source: Twitter for iPhone people: [] page: nextCursor: eyJjIjoiREFBQ0NnQUNISWdQMnFTQUp4QUtBQU1jaUFfYXBIX1k4QWdBQkFBQUFBSUxBQVVBQUFCUVJXMVFRelozUVVGQlpsRXZaMGRLVGpCMlIzQXZRVUZCUVVGVlkyZzBTa2RPYkdONFkzaDVTSEp4TmpSV2JrRjVTRWxKWkZGcGFWZHJXVGhqV0hsRlMwOWtaa0ZRYUhsSWFFeE5ZMng0U0ZNSUFBWUFBQUFBQ0FBSEFBQUFBQXdBQ0FvQUFSeGZJUW81MThBLUFBQUEifQ hasMore: true meta: requestId: req_18ee9e32-6f03-4a64-b8d9-d3841b8801fa creditsCharged: 2 version: v1 empty: value: data: tweets: [] people: [] page: nextCursor: null hasMore: false meta: requestId: req_01twittersearch_empty creditsCharged: 2 version: v1 '400': description: Invalid request content: application/json: schema: type: object properties: error: type: object properties: code: type: string enum: - bad_request description: Machine-readable error code for the failed request. message: type: string description: Human-readable error message. May change over time; do not parse it. Use `error.code` and the HTTP status for programmatic handling. requestId: type: string description: Unique request identifier for tracing the failed API call. checkoutUrl: type: string format: uri description: Optional one-click checkout URL when credits are exhausted and a conversion offer is available. required: - code - message - requestId description: Error details for the failed request. required: - error description: Standard error response envelope. example: error: code: bad_request message: Example message. requestId: req_01example '401': description: Missing or invalid API key content: application/json: schema: type: object properties: error: type: object properties: code: type: string enum: - unauthorized description: Machine-readable error code for the failed request. message: type: string description: Human-readable error message. May change over time; do not parse it. Use `error.code` and the HTTP status for programmatic handling. requestId: type: string description: Unique request identifier for tracing the failed API call. checkoutUrl: type: string format: uri description: Optional one-click checkout URL when credits are exhausted and a conversion offer is available. required: - code - message - requestId description: Error details for the failed request. required: - error description: Standard error response envelope. example: error: code: unauthorized message: Example message. requestId: req_01example '402': description: Insufficient credits content: application/json: schema: type: object properties: error: type: object properties: code: type: string enum: - insufficient_credits description: Machine-readable error code for the failed request. message: type: string description: Human-readable error message. May change over time; do not parse it. Use `error.code` and the HTTP status for programmatic handling. requestId: type: string description: Unique request identifier for tracing the failed API call. checkoutUrl: type: string format: uri description: Optional one-click checkout URL when credits are exhausted and a conversion offer is available. required: - code - message - requestId description: Error details for the failed request. required: - error description: Standard error response envelope. example: error: code: insufficient_credits message: Example message. requestId: req_01example '500': description: Unexpected or billing error content: application/json: schema: type: object properties: error: type: object properties: code: type: string enum: - internal_error description: Machine-readable error code for the failed request. message: type: string description: Human-readable error message. May change over time; do not parse it. Use `error.code` and the HTTP status for programmatic handling. requestId: type: string description: Unique request identifier for tracing the failed API call. checkoutUrl: type: string format: uri description: Optional one-click checkout URL when credits are exhausted and a conversion offer is available. required: - code - message - requestId description: Error details for the failed request. required: - error description: Standard error response envelope. example: error: code: internal_error message: Example message. requestId: req_01example '502': description: Lookup could not be completed from the response (unexpected or invalid data). content: application/json: schema: type: object properties: error: type: object properties: code: type: string enum: - lookup_failed description: Machine-readable error code for the failed request. message: type: string description: Human-readable error message. May change over time; do not parse it. Use `error.code` and the HTTP status for programmatic handling. requestId: type: string description: Unique request identifier for tracing the failed API call. checkoutUrl: type: string format: uri description: Optional one-click checkout URL when credits are exhausted and a conversion offer is available. required: - code - message - requestId description: Error details for the failed request. required: - error description: Standard error response envelope. example: error: code: lookup_failed message: Example message. requestId: req_01example '503': description: Service temporarily unavailable; safe to retry with backoff. content: application/json: schema: type: object properties: error: type: object properties: code: type: string enum: - temporarily_unavailable description: Machine-readable error code for the failed request. message: type: string description: Human-readable error message. May change over time; do not parse it. Use `error.code` and the HTTP status for programmatic handling. requestId: type: string description: Unique request identifier for tracing the failed API call. checkoutUrl: type: string format: uri description: Optional one-click checkout URL when credits are exhausted and a conversion offer is available. required: - code - message - requestId description: Error details for the failed request. required: - error description: Standard error response envelope. example: error: code: temporarily_unavailable message: Example message. requestId: req_01example operationId: getV1TwitterSearch x-operation-id-source: derived /v1/twitter/hashtags: get: tags: - Twitter summary: Search Twitter by hashtag description: Search X posts by hashtag (not free-text keyword β€” use twitter.search.list for that). security: - ApiKeyAuth: [] - {} x-socialfetch-pricing: version: 1 baseCredits: 2 surcharges: [] maxCredits: 2 normalizationFailureCredits: 2 x-socialfetch-credits-pricing: 2 credits per successful request. parameters: - schema: type: string minLength: 1 maxLength: 256 description: Hashtag to search for. required: true description: Hashtag to search for. name: hashtag in: query - schema: type: string enum: - top - latest - people - photos - videos description: Optional section filter for the hashtag feed. Omit to use the default `top` section. required: false description: Optional section filter for the hashtag feed. Omit to use the default `top` section. name: section in: query - schema: type: integer minimum: 1 maximum: 20 description: Optional page size. Maximum supported value is 20. required: false description: Optional page size. Maximum supported value is 20. name: limit in: query - schema: type: string minLength: 1 description: Opaque pagination cursor returned by a previous response. required: false description: Opaque pagination cursor returned by a previous response. name: cursor in: query responses: '200': description: Posts returned for the requested hashtag. content: application/json: schema: type: object properties: data: type: object properties: tweets: type: array items: type: object properties: id: type: string minLength: 1 description: Tweet id. url: type: - string - 'null' description: Canonical public URL for the tweet when available. text: type: string description: Full tweet text when available. createdAt: type: string format: date-time description: Creation time (ISO-8601). createdAtLabel: type: - string - 'null' description: Human-readable creation timestamp string when available. language: type: - string - 'null' description: Language code for the tweet when available. conversationId: type: - string - 'null' minLength: 1 description: Conversation identifier when supplied. inReplyToStatusId: type: - string - 'null' minLength: 1 description: Parent post identifier when this post is a reply. quotedStatusId: type: - string - 'null' minLength: 1 description: Quoted post identifier when this post quotes another. retweetTweetId: type: - string - 'null' minLength: 1 description: Original post identifier when this post is an engagement repost. author: type: - object - 'null' properties: handle: type: string minLength: 1 description: Author handle without the leading @. displayName: type: - string - 'null' description: Display name shown for the author. avatarUrl: type: - string - 'null' description: Profile image URL for the author when available. profileUrl: type: - string - 'null' description: Canonical public profile URL for the author when available. verified: type: boolean description: Whether the author has legacy verification on X. blueVerified: type: boolean description: Whether the author has paid blue verification on X. platformUserId: type: string description: Numeric X user id for the author as a string. required: - handle - displayName - avatarUrl - profileUrl - verified - blueVerified description: Author metadata for the tweet when available. metrics: type: object properties: likes: type: integer minimum: 0 description: Like count. retweets: type: integer minimum: 0 description: Retweet count. replies: type: integer minimum: 0 description: Reply count. quotes: type: integer minimum: 0 description: Quote count. views: type: - integer - 'null' minimum: 0 description: View count when available. bookmarkCount: type: - integer - 'null' minimum: 0 description: Bookmark count when available. required: - likes - retweets - replies - quotes - views - bookmarkCount description: Engagement metrics for a tweet. media: type: array items: type: object properties: url: type: string minLength: 1 description: Direct media URL when available. type: type: string enum: - photo - video description: Media type when Social Fetch can classify it confidently. thumbnailUrl: type: string minLength: 1 description: Poster or thumbnail URL for video media when distinguishable. contentType: type: string minLength: 1 description: MIME type reported for streamed media. bitrate: type: integer minimum: 0 description: Bitrate in bits per second when supplied for streamed media. width: type: integer minimum: 0 description: Width in pixels when available. height: type: integer minimum: 0 description: Height in pixels when available. required: - url - type description: Media attachment on a tweet. description: Media attachments returned for the tweet. expandedUrl: type: - string - 'null' description: Expanded URL attached to the tweet when available. isRetweet: type: boolean description: Whether the tweet is marked as a retweet. isReply: type: boolean default: false description: Whether the tweet is a reply to another post. isQuote: type: boolean default: false description: Whether the tweet quotes another post. source: type: - string - 'null' description: Source label such as `Twitter Web App` when available. required: - id - url - text - createdAt - createdAtLabel - language - conversationId - inReplyToStatusId - quotedStatusId - retweetTweetId - author - metrics - media - expandedUrl - isRetweet - source description: A normalized Twitter post item. description: Posts returned for the requested hashtag. people: type: array items: type: object properties: platformUserId: type: string minLength: 1 description: Numeric X user id as a string. handle: type: - string - 'null' description: X screen name (handle) without the leading @. displayName: type: - string - 'null' description: Display name shown on the profile. bio: type: - string - 'null' description: Profile biography text. avatarUrl: type: - string - 'null' description: Best available square avatar image URL. bannerUrl: type: - string - 'null' description: Profile banner image URL when available. verified: type: boolean description: Whether X marks the profile with legacy verification (not necessarily paid blue). blueVerified: type: boolean description: Whether the account has X blue (paid) verification. privateAccount: type: boolean description: Whether the account is protected (private). profileUrl: type: string minLength: 1 description: Canonical public profile URL on x.com. website: type: - string - 'null' description: Primary outbound link from the profile when provided. location: type: - string - 'null' description: Location string from the profile when provided. accountCreatedAt: type: string format: date-time description: Account creation time (ISO-8601) when derivable. metrics: type: object properties: followers: type: integer minimum: 0 description: Follower count from X. following: type: integer minimum: 0 description: Following (friends) count from X. tweets: type: integer minimum: 0 description: Total post (status) count from X. favourites: type: integer minimum: 0 description: Total favourites (likes) count from X. listedCount: type: integer minimum: 0 description: Listed count when X provides it. mediaCount: type: integer minimum: 0 description: Media item count when X provides it. fastFollowersCount: type: integer minimum: 0 description: Fast-followers count when X provides it. required: - followers - following - tweets - favourites description: Aggregate profile metrics from X. required: - platformUserId - handle - displayName - bio - avatarUrl - verified - blueVerified - privateAccount - profileUrl - metrics description: Profile returned for a people-section search. description: Profiles returned for the requested hashtag. page: type: object properties: nextCursor: type: - string - 'null' description: Cursor to pass as `cursor` in the next request when another page exists. hasMore: type: boolean description: Whether another page can be requested. required: - nextCursor - hasMore description: Pagination information for the current response. required: - tweets - people - page description: Endpoint-specific response payload. meta: type: object properties: requestId: type: string minLength: 1 description: Unique request identifier for tracing this API call. creditsCharged: type: integer minimum: 0 description: Credits charged for this request. version: type: string enum: - v1 description: Public API version that served the response. cached: type: boolean description: True when served from shared response cache. Credits still apply (full endpoint price); Age header may be present. required: - requestId - creditsCharged - version description: Metadata describing the request and billing outcome. required: - data - meta description: Standard success response envelope. examples: results: value: data: tweets: - id: '1568819438144704513' url: https://x.com/drchopperX/status/1568819438144704513 text: 'USB Connection Cheat Sheet #infosec #CyberSecurity #Hacking #cyber #infosecurity #arduinolove #Arduin #cyberattack #Linux #MachineLearning #DataAnalytics #Computer #100DaysOfCode #100daysofcodechallenge #Python #javascript #AI #webdevelopment #embedded #hardware #raspberrypi #USB https://t.co/mwErswl2JP' createdAt: '2022-09-11T03:31:15.000Z' createdAtLabel: Sun Sep 11 04:31:15 +0000 2022 language: en conversationId: null inReplyToStatusId: null quotedStatusId: null retweetTweetId: null author: handle: drchopperX displayName: Useful Cheat Sheets avatarUrl: https://pbs.twimg.com/profile_images/1443181642311417858/1iBDiOn5_normal.jpg profileUrl: https://x.com/drchopperX verified: false blueVerified: false platformUserId: '730667101120270336' metrics: likes: 51 retweets: 37 replies: 1 quotes: 1 views: null bookmarkCount: null media: [] expandedUrl: null isRetweet: false isReply: false isQuote: false source: null people: [] page: nextCursor: eyJjIjoiREFBQ0N3QUJBQUFCR25Sb1IwRldWVll3VmtaV1FsbENSbTlEY3pWZlZHaHpMVGRGUzNoSldYUkJSVk5aT0V4eVFVRkJRamxFTFVGWmF6TlRPR0Z1T0VGQlFVRkdRbGhFY1ROTlZERnRRVUpHWTFnMlUyODBZV05CUVZaWVNtdEhNbXhtUVVKb1dFWnNXV3d5VjJwQlFrWmpWVTQyVVhaaFRVRkJWbmR2YkRCck1YRlJRbmhZUTJoMk1rNUdPRUZCUm1OWlVWRjNZMkZyUVVWV2VGcEVNMm94WmxGQlVsaEhSRFozT0ZkdlFVTkdZMWRRVDBFMllWVkJTVlo0YUROck1ERnhVVUZDV0VabVlYaFpWMjVCUTBaalRUbHRRM0JZYTBGTlZuaFpZbTFaVW05QlFVSllSbGxrVlcxR09VRkJSbU5aWVdzd1FXRm5RVTFXZUZwSFVsSk9iMEZCVWxoQ056VjRSakU0UVVGR1kxbGhVR3g1WVVGQlNFWkxRbFZCUmxGQlFRb0FBaFhHSHVUUWdDY1JDZ0FERmNZZTVOQl9felVJQUFRQUFBQUNDd0FGQUFBQThFVnRVRU0yZDBGQlFXWlJMMmRIU2s0d2RrZHdMMEZCUVVGQ1VWWjNOblI2UlRsYVowRlNXRVlyYTNGUFIyNUJRVVpXZVZwQ2RIQllkMEZaVm5oYVYwcGtiRzkzUVZKWVJrUmxhMHd5YWtGQlJtTkxTbVJLVG1GclFXTldkMjlpT1dwU1prRkJRbGhIUlVWTlNFZHdRVUpHWTFkUk9UUTVXREJCUlZaNFp5dHpVRVp4UVVGb1dFWnFlbWRQYld4QlEwWmpXV1ExVGs1aGEwRkJWbmhZTW5OWFJuQjNRV2hZUkZCYVozRldOVUZFUm1OWFJ6VnRSV0ZCUVVGV2VGZElWa3BvWmxGQlFsaEhSM0JPUVVkdlFVUkdZMWRTYTFWVVlVRkJSVlozWlN0alVtUm1RVUZDV0VkSGFqVmpiV2RCUWdnQUJnQUFBQUFJQUFjQUFBQUFBQUEifQ hasMore: true meta: requestId: req_01example_twitter_hashtag creditsCharged: 2 version: v1 empty: value: data: tweets: [] people: [] page: nextCursor: null hasMore: false meta: requestId: req_01twitterhashtag_empty creditsCharged: 2 version: v1 '400': description: Invalid request content: application/json: schema: type: object properties: error: type: object properties: code: type: string enum: - bad_request description: Machine-readable error code for the failed request. message: type: string description: Human-readable error message. May change over time; do not parse it. Use `error.code` and the HTTP status for programmatic handling. requestId: type: string description: Unique request identifier for tracing the failed API call. checkoutUrl: type: string format: uri description: Optional one-click checkout URL when credits are exhausted and a conversion offer is available. required: - code - message - requestId description: Error details for the failed request. required: - error description: Standard error response envelope. example: error: code: bad_request message: Example message. requestId: req_01example '401': description: Missing or invalid API key content: application/json: schema: type: object properties: error: type: object properties: code: type: string enum: - unauthorized description: Machine-readable error code for the failed request. message: type: string description: Human-readable error message. May change over time; do not parse it. Use `error.code` and the HTTP status for programmatic handling. requestId: type: string description: Unique request identifier for tracing the failed API call. checkoutUrl: type: string format: uri description: Optional one-click checkout URL when credits are exhausted and a conversion offer is available. required: - code - message - requestId description: Error details for the failed request. required: - error description: Standard error response envelope. example: error: code: unauthorized message: Example message. requestId: req_01example '402': description: Insufficient credits content: application/json: schema: type: object properties: error: type: object properties: code: type: string enum: - insufficient_credits description: Machine-readable error code for the failed request. message: type: string description: Human-readable error message. May change over time; do not parse it. Use `error.code` and the HTTP status for programmatic handling. requestId: type: string description: Unique request identifier for tracing the failed API call. checkoutUrl: type: string format: uri description: Optional one-click checkout URL when credits are exhausted and a conversion offer is available. required: - code - message - requestId description: Error details for the failed request. required: - error description: Standard error response envelope. example: error: code: insufficient_credits message: Example message. requestId: req_01example '500': description: Unexpected or billing error content: application/json: schema: type: object properties: error: type: object properties: code: type: string enum: - internal_error description: Machine-readable error code for the failed request. message: type: string description: Human-readable error message. May change over time; do not parse it. Use `error.code` and the HTTP status for programmatic handling. requestId: type: string description: Unique request identifier for tracing the failed API call. checkoutUrl: type: string format: uri description: Optional one-click checkout URL when credits are exhausted and a conversion offer is available. required: - code - message - requestId description: Error details for the failed request. required: - error description: Standard error response envelope. example: error: code: internal_error message: Example message. requestId: req_01example '502': description: Lookup could not be completed from the response (unexpected or invalid data). content: application/json: schema: type: object properties: error: type: object properties: code: type: string enum: - lookup_failed description: Machine-readable error code for the failed request. message: type: string description: Human-readable error message. May change over time; do not parse it. Use `error.code` and the HTTP status for programmatic handling. requestId: type: string description: Unique request identifier for tracing the failed API call. checkoutUrl: type: string format: uri description: Optional one-click checkout URL when credits are exhausted and a conversion offer is available. required: - code - message - requestId description: Error details for the failed request. required: - error description: Standard error response envelope. example: error: code: lookup_failed message: Example message. requestId: req_01example '503': description: Service temporarily unavailable; safe to retry with backoff. content: application/json: schema: type: object properties: error: type: object properties: code: type: string enum: - temporarily_unavailable description: Machine-readable error code for the failed request. message: type: string description: Human-readable error message. May change over time; do not parse it. Use `error.code` and the HTTP status for programmatic handling. requestId: type: string description: Unique request identifier for tracing the failed API call. checkoutUrl: type: string format: uri description: Optional one-click checkout URL when credits are exhausted and a conversion offer is available. required: - code - message - requestId description: Error details for the failed request. required: - error description: Standard error response envelope. example: error: code: temporarily_unavailable message: Example message. requestId: req_01example operationId: getV1TwitterHashtags x-operation-id-source: derived /v1/twitter/communities: get: tags: - Twitter summary: Get Twitter community description: Get details for an X community by community id or URL. security: - ApiKeyAuth: [] - {} x-socialfetch-pricing: version: 1 baseCredits: 1 surcharges: [] maxCredits: 1 normalizationFailureCredits: 1 x-socialfetch-credits-pricing: 1 credit per successful request. parameters: - schema: type: string minLength: 1 maxLength: 4096 description: Community URL to look up. required: true description: Community URL to look up. name: url in: query responses: '200': description: Community details. content: application/json: schema: type: object properties: data: type: object properties: lookupStatus: type: string enum: - found - not_found description: Whether the community was found. community: type: - object - 'null' properties: platform: type: string enum: - twitter description: Social platform for this community. id: type: string minLength: 1 description: Numeric community identifier as a string. url: type: string minLength: 1 description: Canonical public community URL on x.com. name: type: string minLength: 1 description: Community display name. description: type: - string - 'null' description: Short description text when available. createdAt: type: string format: date-time description: Creation time (ISO-8601). memberCount: type: integer minimum: 0 description: Approximate member count. isNsfw: type: boolean description: Whether the community is marked as sensitive. joinPolicy: type: string enum: - open - restricted description: Who can join this community. primaryTopic: type: - string - 'null' description: Primary topic label when available. bannerImageUrl: type: - string - 'null' description: Banner image URL when available. creator: type: - object - 'null' properties: handle: type: string minLength: 1 description: Creator screen name without the leading @. verified: type: boolean description: Whether X marks the creator with legacy verification. blueVerified: type: boolean description: Whether the creator has X blue (paid) verification. required: - handle - verified - blueVerified description: Creator handle and verification flags when available. rules: type: array items: type: object properties: id: type: string minLength: 1 description: Stable rule identifier. name: type: string minLength: 1 description: Short rule title. description: type: - string - 'null' description: Longer rule explanation when provided. required: - id - name - description description: A published community rule. description: Published community rules. memberFacepileAvatarUrls: type: array items: type: string minLength: 1 description: Recent member avatar image URLs shown in the community preview. trendingHashtags: type: array items: type: string minLength: 1 description: Trending hashtags associated with this community when available. required: - platform - id - url - name - description - createdAt - memberCount - isNsfw - joinPolicy - primaryTopic - bannerImageUrl - creator - rules - memberFacepileAvatarUrls - trendingHashtags description: Community details when available. required: - lookupStatus - community description: Endpoint-specific response payload. meta: type: object properties: requestId: type: string minLength: 1 description: Unique request identifier for tracing this API call. creditsCharged: type: integer minimum: 0 description: Credits charged for this request. version: type: string enum: - v1 description: Public API version that served the response. cached: type: boolean description: True when served from shared response cache. Credits still apply (full endpoint price); Age header may be present. required: - requestId - creditsCharged - version description: Metadata describing the request and billing outcome. required: - data - meta description: Standard success response envelope. examples: found: value: data: lookupStatus: found community: platform: twitter id: '1493446837214187523' url: https://x.com/i/communities/1493446837214187523 name: Build in Public description: Share what you're working on. Get feedback. Help each other move forward. – Sponsored by bolt.new ⚑ createdAt: '2022-02-15T04:47:27.551Z' memberCount: 257599 isNsfw: false joinPolicy: open primaryTopic: Entrepreneurship bannerImageUrl: https://pbs.twimg.com/community_banner_img/1915033378811772928/KdaKUaRP?format=png&name=orig creator: handle: marckohlbrugge verified: false blueVerified: true rules: - id: '1493447542045958144' name: Share what you're working on description: Don't be scared to share unfinished work - id: '1493448150169755648' name: Screenshots, screencasts, drafts, etc description: Visual tweets tend to grab people's attention - id: '1836095088465781029' name: No self-promotion description: Don't ask for upvotes or advertise your products/services. - id: '1836095194716066104' name: Stay on-topic description: Only post about building in public. No politics or other off-topic posts. There are other communities for that. - id: '1836095002557944207' name: No engagement farming description: If your goal is to get replies, likes, etc, don’t post it here. Don’t ask super generic questions like β€œwhat’s everyone working on?” - id: '1836094745590059481' name: Use a personal account description: No company accounts. No logos. Use your own name. No promotion or URLs in your name. memberFacepileAvatarUrls: - https://pbs.twimg.com/profile_images/1857124042433572864/iMivVaYP_normal.jpg - https://pbs.twimg.com/profile_images/1142795908221952001/QdBqHhdn_normal.jpg - https://pbs.twimg.com/profile_images/1416201794200477700/Kasb_zJv_normal.jpg - https://pbs.twimg.com/profile_images/1873286532947427330/y1Y8f660_normal.jpg - https://pbs.twimg.com/profile_images/1795602079073046529/-sxJWrIq_normal.jpg trendingHashtags: - '#design' - '#code' - '#marketing' - '#sales' - '#ai' - '#milestone' - '#requestforfeedback' - '#launch' meta: requestId: req_ac3c13d7-bc45-4f31-a4ac-697256889d89 creditsCharged: 1 version: v1 found_restricted: value: data: lookupStatus: found community: platform: twitter id: '1453811010935001090' url: https://x.com/i/communities/1453811010935001090 name: The Entrepreneurship Community description: A community for both aspiring and current entrepreneurs. createdAt: '2021-10-28T19:48:50.170Z' memberCount: 430 isNsfw: false joinPolicy: restricted primaryTopic: null bannerImageUrl: https://pbs.twimg.com/list_banner_img/example.png creator: handle: harleyf verified: false blueVerified: true rules: - id: '1453811497495248897' name: Be kind. description: It's simple. No discrimination, no hate, no put-downs. Be kind. memberFacepileAvatarUrls: - https://pbs.twimg.com/profile_images/example2_normal.jpg trendingHashtags: [] meta: requestId: req_01example_r creditsCharged: 1 version: v1 not_found: value: data: lookupStatus: not_found community: null meta: requestId: req_01example_nf creditsCharged: 1 version: v1 '400': description: Invalid request content: application/json: schema: type: object properties: error: type: object properties: code: type: string enum: - bad_request description: Machine-readable error code for the failed request. message: type: string description: Human-readable error message. May change over time; do not parse it. Use `error.code` and the HTTP status for programmatic handling. requestId: type: string description: Unique request identifier for tracing the failed API call. checkoutUrl: type: string format: uri description: Optional one-click checkout URL when credits are exhausted and a conversion offer is available. required: - code - message - requestId description: Error details for the failed request. required: - error description: Standard error response envelope. example: error: code: bad_request message: Example message. requestId: req_01example '401': description: Missing or invalid API key content: application/json: schema: type: object properties: error: type: object properties: code: type: string enum: - unauthorized description: Machine-readable error code for the failed request. message: type: string description: Human-readable error message. May change over time; do not parse it. Use `error.code` and the HTTP status for programmatic handling. requestId: type: string description: Unique request identifier for tracing the failed API call. checkoutUrl: type: string format: uri description: Optional one-click checkout URL when credits are exhausted and a conversion offer is available. required: - code - message - requestId description: Error details for the failed request. required: - error description: Standard error response envelope. example: error: code: unauthorized message: Example message. requestId: req_01example '402': description: Insufficient credits content: application/json: schema: type: object properties: error: type: object properties: code: type: string enum: - insufficient_credits description: Machine-readable error code for the failed request. message: type: string description: Human-readable error message. May change over time; do not parse it. Use `error.code` and the HTTP status for programmatic handling. requestId: type: string description: Unique request identifier for tracing the failed API call. checkoutUrl: type: string format: uri description: Optional one-click checkout URL when credits are exhausted and a conversion offer is available. required: - code - message - requestId description: Error details for the failed request. required: - error description: Standard error response envelope. example: error: code: insufficient_credits message: Example message. requestId: req_01example '500': description: Unexpected or billing error content: application/json: schema: type: object properties: error: type: object properties: code: type: string enum: - internal_error description: Machine-readable error code for the failed request. message: type: string description: Human-readable error message. May change over time; do not parse it. Use `error.code` and the HTTP status for programmatic handling. requestId: type: string description: Unique request identifier for tracing the failed API call. checkoutUrl: type: string format: uri description: Optional one-click checkout URL when credits are exhausted and a conversion offer is available. required: - code - message - requestId description: Error details for the failed request. required: - error description: Standard error response envelope. example: error: code: internal_error message: Example message. requestId: req_01example '502': description: Lookup could not be completed from the response (unexpected or invalid data). content: application/json: schema: type: object properties: error: type: object properties: code: type: string enum: - lookup_failed description: Machine-readable error code for the failed request. message: type: string description: Human-readable error message. May change over time; do not parse it. Use `error.code` and the HTTP status for programmatic handling. requestId: type: string description: Unique request identifier for tracing the failed API call. checkoutUrl: type: string format: uri description: Optional one-click checkout URL when credits are exhausted and a conversion offer is available. required: - code - message - requestId description: Error details for the failed request. required: - error description: Standard error response envelope. example: error: code: lookup_failed message: Example message. requestId: req_01example '503': description: Service temporarily unavailable; safe to retry with backoff. content: application/json: schema: type: object properties: error: type: object properties: code: type: string enum: - temporarily_unavailable description: Machine-readable error code for the failed request. message: type: string description: Human-readable error message. May change over time; do not parse it. Use `error.code` and the HTTP status for programmatic handling. requestId: type: string description: Unique request identifier for tracing the failed API call. checkoutUrl: type: string format: uri description: Optional one-click checkout URL when credits are exhausted and a conversion offer is available. required: - code - message - requestId description: Error details for the failed request. required: - error description: Standard error response envelope. example: error: code: temporarily_unavailable message: Example message. requestId: req_01example operationId: getV1TwitterCommunities x-operation-id-source: derived /v1/twitter/communities/tweets: get: tags: - Twitter summary: List Twitter community tweets description: List tweets from an X community by community id or URL. security: - ApiKeyAuth: [] - {} x-socialfetch-pricing: version: 1 baseCredits: 1 surcharges: [] maxCredits: 1 normalizationFailureCredits: 1 x-socialfetch-credits-pricing: 1 credit per successful request. x-socialfetch-agent-hints: emptyResults: '`lookupStatus: found` may still return an empty `data.tweets` array.' parameters: - schema: type: string minLength: 1 maxLength: 4096 description: Community URL to look up. required: true description: Community URL to look up. name: url in: query responses: '200': description: Tweets for the requested community. content: application/json: schema: type: object properties: data: type: object properties: lookupStatus: type: string enum: - found - not_found description: Whether tweet data was returned for this community. tweets: type: array items: type: object properties: id: type: string minLength: 1 description: Tweet id (`rest_id`). url: type: string minLength: 1 description: Canonical public URL for this tweet on x.com. conversationId: type: string minLength: 1 description: Conversation root tweet id. createdAt: type: string format: date-time description: Creation time (ISO-8601). language: type: string minLength: 1 description: BCP 47 or X language code. text: type: string description: Full tweet text (includes long-form when available). isLongForm: type: boolean description: True when text was taken from note_tweet metadata instead of legacy.full_text alone. displayTextRange: type: array items: type: integer minimum: 0 minItems: 2 maxItems: 2 description: Start/end character indices for visible text. author: type: - object - 'null' properties: handle: type: string minLength: 1 description: Author screen name without the leading @. displayName: type: - string - 'null' description: Author display name. avatarUrl: type: - string - 'null' description: Best available square avatar URL for the author. verified: type: boolean description: Whether X marks the author with legacy verification. blueVerified: type: boolean description: Whether the author has X blue (paid) verification. platformUserId: type: string description: Numeric X user id for the author as a string. required: - handle - displayName - avatarUrl - verified - blueVerified description: Author snapshot when available. metrics: type: object properties: views: type: integer minimum: 0 description: Impression count when reported by X. favorites: type: integer minimum: 0 description: Favorite (like) count. retweets: type: integer minimum: 0 description: Native repost count. replies: type: integer minimum: 0 description: Reply count. bookmarks: type: integer minimum: 0 description: Bookmark count. quotes: type: integer minimum: 0 description: Quote tweet count. required: - views - favorites - retweets - replies - bookmarks - quotes description: Engagement metrics for a tweet. media: type: array items: anyOf: - type: object properties: type: type: string enum: - photo id: type: string minLength: 1 description: Media id string. url: type: string minLength: 1 description: Short t.co URL for this media. displayUrl: type: string minLength: 1 description: Display URL shown in the tweet. expandedUrl: type: string minLength: 1 description: Expanded destination URL. mediaUrlHttps: type: string minLength: 1 description: HTTPS URL for the media asset. sizes: type: object properties: thumb: type: object properties: h: type: integer minimum: 0 w: type: integer minimum: 0 resize: type: string minLength: 1 required: - h - w - resize description: Thumbnail size. small: type: object properties: h: type: integer minimum: 0 w: type: integer minimum: 0 resize: type: string minLength: 1 required: - h - w - resize description: Small variant. medium: type: object properties: h: type: integer minimum: 0 w: type: integer minimum: 0 resize: type: string minLength: 1 required: - h - w - resize description: Medium variant. large: type: object properties: h: type: integer minimum: 0 w: type: integer minimum: 0 resize: type: string minLength: 1 required: - h - w - resize description: Large variant. required: - thumb - small - medium - large description: Per-label media dimensions from X. originalInfo: type: object properties: width: type: integer minimum: 0 height: type: integer minimum: 0 required: - width - height description: Original pixel dimensions. required: - type - id - url - displayUrl - expandedUrl - mediaUrlHttps - sizes - originalInfo description: Photo attachment on a tweet. - type: object properties: type: type: string enum: - video - animated_gif description: Video or MP4-based animated GIF. id: type: string minLength: 1 description: Media id string. url: type: string minLength: 1 description: Short t.co URL for this media. displayUrl: type: string minLength: 1 description: Display URL shown in the tweet. expandedUrl: type: string minLength: 1 description: Expanded destination URL. mediaUrlHttps: type: string minLength: 1 description: HTTPS URL for the poster or media. sizes: type: object properties: thumb: type: object properties: h: type: integer minimum: 0 w: type: integer minimum: 0 resize: type: string minLength: 1 required: - h - w - resize description: Thumbnail size. small: type: object properties: h: type: integer minimum: 0 w: type: integer minimum: 0 resize: type: string minLength: 1 required: - h - w - resize description: Small variant. medium: type: object properties: h: type: integer minimum: 0 w: type: integer minimum: 0 resize: type: string minLength: 1 required: - h - w - resize description: Medium variant. large: type: object properties: h: type: integer minimum: 0 w: type: integer minimum: 0 resize: type: string minLength: 1 required: - h - w - resize description: Large variant. required: - thumb - small - medium - large description: Per-label media dimensions from X. originalInfo: type: object properties: width: type: integer minimum: 0 height: type: integer minimum: 0 required: - width - height description: Original pixel dimensions. variants: type: array items: type: object properties: contentType: type: string minLength: 1 description: MIME type of the variant. url: type: string minLength: 1 description: Direct URL for this variant. bitrate: type: integer minimum: 0 description: Bitrate in bits per second when present (omitted for HLS). required: - contentType - url description: A downloadable or streamable media variant. minItems: 1 description: Stream or download variants (mp4, HLS, etc.). durationMs: type: integer minimum: 0 description: Duration in milliseconds when known. aspectRatio: type: array items: type: integer exclusiveMinimum: 0 minItems: 2 maxItems: 2 description: Width:height ratio tuple when provided by X. required: - type - id - url - displayUrl - expandedUrl - mediaUrlHttps - sizes - originalInfo - variants description: Video or animated GIF attachment. description: Photo, video, or GIF attachments. entities: type: object properties: hashtags: type: array items: type: object properties: text: type: string description: 'Hashtag text without #.' required: - text description: A hashtag entity. description: Hashtag entities. userMentions: type: array items: type: object properties: handle: type: string minLength: 1 description: Mentioned screen name. displayName: type: string description: Display name when available. platformUserId: type: string description: Numeric user id for the mention when available. required: - handle description: A user mention entity. description: User mention entities. urls: type: array items: type: object properties: url: type: string minLength: 1 description: Short URL as it appears in text. displayUrl: type: string minLength: 1 description: Human-readable display host/path. expandedUrl: type: string minLength: 1 description: Fully expanded destination URL. required: - url - displayUrl - expandedUrl description: A URL entity. description: URL entities. symbols: type: array items: type: object properties: text: type: string minLength: 1 description: Cashtag or symbol text. required: - text description: A symbol/cashtag entity. description: Symbol entities. required: - hashtags - userMentions - urls - symbols description: Entities aligned with `text`. isReply: type: boolean description: Whether this is a reply. inReplyToTweetId: type: string description: Parent tweet id when replying. inReplyToUserId: type: string description: Parent author user id when replying. inReplyToScreenName: type: string description: Parent author handle when replying. isQuote: type: boolean description: Whether this tweet quotes another. quotedTweetId: type: string description: Quoted tweet id when present. isRetweet: type: boolean description: Whether this is a native repost. retweetedTweetId: type: string description: Original tweet id for a repost. possiblySensitive: type: boolean description: Whether X marks the content sensitive. editInfo: type: object properties: editTweetIds: type: array items: type: string minLength: 1 description: Tweet ids in this edit chain. editableUntilMsec: type: string description: Epoch milliseconds until edits are locked. isEditEligible: type: boolean description: Whether the tweet can still be edited. editsRemaining: type: string description: Remaining edits in the window, as reported by X. required: - editTweetIds - editableUntilMsec - isEditEligible - editsRemaining description: Edit metadata when applicable. source: type: string description: Client label text. sourceUrl: type: string description: Link target from the source anchor when present. quotedTweet: type: object properties: id: type: string minLength: 1 description: Tweet id (`rest_id`). url: type: string minLength: 1 description: Canonical public URL for this tweet on x.com. conversationId: type: string minLength: 1 description: Conversation root tweet id. createdAt: type: string format: date-time description: Creation time (ISO-8601). language: type: string minLength: 1 description: BCP 47 or X language code. text: type: string description: Full tweet text (includes long-form when available). isLongForm: type: boolean description: True when text was taken from note_tweet metadata instead of legacy.full_text alone. displayTextRange: type: array items: type: integer minimum: 0 minItems: 2 maxItems: 2 description: Start/end character indices for visible text. author: type: - object - 'null' properties: handle: type: string minLength: 1 description: Author screen name without the leading @. displayName: type: - string - 'null' description: Author display name. avatarUrl: type: - string - 'null' description: Best available square avatar URL for the author. verified: type: boolean description: Whether X marks the author with legacy verification. blueVerified: type: boolean description: Whether the author has X blue (paid) verification. platformUserId: type: string description: Numeric X user id for the author as a string. required: - handle - displayName - avatarUrl - verified - blueVerified description: Author snapshot when available. metrics: type: object properties: views: type: integer minimum: 0 description: Impression count when reported by X. favorites: type: integer minimum: 0 description: Favorite (like) count. retweets: type: integer minimum: 0 description: Native repost count. replies: type: integer minimum: 0 description: Reply count. bookmarks: type: integer minimum: 0 description: Bookmark count. quotes: type: integer minimum: 0 description: Quote tweet count. required: - views - favorites - retweets - replies - bookmarks - quotes description: Engagement metrics for a tweet. media: type: array items: anyOf: - type: object properties: type: type: string enum: - photo id: type: string minLength: 1 description: Media id string. url: type: string minLength: 1 description: Short t.co URL for this media. displayUrl: type: string minLength: 1 description: Display URL shown in the tweet. expandedUrl: type: string minLength: 1 description: Expanded destination URL. mediaUrlHttps: type: string minLength: 1 description: HTTPS URL for the media asset. sizes: type: object properties: thumb: type: object properties: h: type: integer minimum: 0 w: type: integer minimum: 0 resize: type: string minLength: 1 required: - h - w - resize description: Thumbnail size. small: type: object properties: h: type: integer minimum: 0 w: type: integer minimum: 0 resize: type: string minLength: 1 required: - h - w - resize description: Small variant. medium: type: object properties: h: type: integer minimum: 0 w: type: integer minimum: 0 resize: type: string minLength: 1 required: - h - w - resize description: Medium variant. large: type: object properties: h: type: integer minimum: 0 w: type: integer minimum: 0 resize: type: string minLength: 1 required: - h - w - resize description: Large variant. required: - thumb - small - medium - large description: Per-label media dimensions from X. originalInfo: type: object properties: width: type: integer minimum: 0 height: type: integer minimum: 0 required: - width - height description: Original pixel dimensions. required: - type - id - url - displayUrl - expandedUrl - mediaUrlHttps - sizes - originalInfo description: Photo attachment on a tweet. - type: object properties: type: type: string enum: - video - animated_gif description: Video or MP4-based animated GIF. id: type: string minLength: 1 description: Media id string. url: type: string minLength: 1 description: Short t.co URL for this media. displayUrl: type: string minLength: 1 description: Display URL shown in the tweet. expandedUrl: type: string minLength: 1 description: Expanded destination URL. mediaUrlHttps: type: string minLength: 1 description: HTTPS URL for the poster or media. sizes: type: object properties: thumb: type: object properties: h: type: integer minimum: 0 w: type: integer minimum: 0 resize: type: string minLength: 1 required: - h - w - resize description: Thumbnail size. small: type: object properties: h: type: integer minimum: 0 w: type: integer minimum: 0 resize: type: string minLength: 1 required: - h - w - resize description: Small variant. medium: type: object properties: h: type: integer minimum: 0 w: type: integer minimum: 0 resize: type: string minLength: 1 required: - h - w - resize description: Medium variant. large: type: object properties: h: type: integer minimum: 0 w: type: integer minimum: 0 resize: type: string minLength: 1 required: - h - w - resize description: Large variant. required: - thumb - small - medium - large description: Per-label media dimensions from X. originalInfo: type: object properties: width: type: integer minimum: 0 height: type: integer minimum: 0 required: - width - height description: Original pixel dimensions. variants: type: array items: type: object properties: contentType: type: string minLength: 1 description: MIME type of the variant. url: type: string minLength: 1 description: Direct URL for this variant. bitrate: type: integer minimum: 0 description: Bitrate in bits per second when present (omitted for HLS). required: - contentType - url description: A downloadable or streamable media variant. minItems: 1 description: Stream or download variants (mp4, HLS, etc.). durationMs: type: integer minimum: 0 description: Duration in milliseconds when known. aspectRatio: type: array items: type: integer exclusiveMinimum: 0 minItems: 2 maxItems: 2 description: Width:height ratio tuple when provided by X. required: - type - id - url - displayUrl - expandedUrl - mediaUrlHttps - sizes - originalInfo - variants description: Video or animated GIF attachment. description: Photo, video, or GIF attachments. entities: type: object properties: hashtags: type: array items: type: object properties: text: type: string description: 'Hashtag text without #.' required: - text description: A hashtag entity. description: Hashtag entities. userMentions: type: array items: type: object properties: handle: type: string minLength: 1 description: Mentioned screen name. displayName: type: string description: Display name when available. platformUserId: type: string description: Numeric user id for the mention when available. required: - handle description: A user mention entity. description: User mention entities. urls: type: array items: type: object properties: url: type: string minLength: 1 description: Short URL as it appears in text. displayUrl: type: string minLength: 1 description: Human-readable display host/path. expandedUrl: type: string minLength: 1 description: Fully expanded destination URL. required: - url - displayUrl - expandedUrl description: A URL entity. description: URL entities. symbols: type: array items: type: object properties: text: type: string minLength: 1 description: Cashtag or symbol text. required: - text description: A symbol/cashtag entity. description: Symbol entities. required: - hashtags - userMentions - urls - symbols description: Entities aligned with `text`. isReply: type: boolean description: Whether this is a reply. inReplyToTweetId: type: string description: Parent tweet id when replying. inReplyToUserId: type: string description: Parent author user id when replying. inReplyToScreenName: type: string description: Parent author handle when replying. isQuote: type: boolean description: Whether this tweet quotes another. quotedTweetId: type: string description: Quoted tweet id when present. isRetweet: type: boolean description: Whether this is a native repost. retweetedTweetId: type: string description: Original tweet id for a repost. possiblySensitive: type: boolean description: Whether X marks the content sensitive. editInfo: type: object properties: editTweetIds: type: array items: type: string minLength: 1 description: Tweet ids in this edit chain. editableUntilMsec: type: string description: Epoch milliseconds until edits are locked. isEditEligible: type: boolean description: Whether the tweet can still be edited. editsRemaining: type: string description: Remaining edits in the window, as reported by X. required: - editTweetIds - editableUntilMsec - isEditEligible - editsRemaining description: Edit metadata when applicable. source: type: string description: Client label text. sourceUrl: type: string description: Link target from the source anchor when present. required: - id - url - conversationId - createdAt - language - text - isLongForm - displayTextRange - author - metrics - media - entities - isReply - isQuote - isRetweet - possiblySensitive description: Expanded quoted tweet (one level deep). retweetedTweet: type: object properties: id: type: string minLength: 1 description: Tweet id (`rest_id`). url: type: string minLength: 1 description: Canonical public URL for this tweet on x.com. conversationId: type: string minLength: 1 description: Conversation root tweet id. createdAt: type: string format: date-time description: Creation time (ISO-8601). language: type: string minLength: 1 description: BCP 47 or X language code. text: type: string description: Full tweet text (includes long-form when available). isLongForm: type: boolean description: True when text was taken from note_tweet metadata instead of legacy.full_text alone. displayTextRange: type: array items: type: integer minimum: 0 minItems: 2 maxItems: 2 description: Start/end character indices for visible text. author: type: - object - 'null' properties: handle: type: string minLength: 1 description: Author screen name without the leading @. displayName: type: - string - 'null' description: Author display name. avatarUrl: type: - string - 'null' description: Best available square avatar URL for the author. verified: type: boolean description: Whether X marks the author with legacy verification. blueVerified: type: boolean description: Whether the author has X blue (paid) verification. platformUserId: type: string description: Numeric X user id for the author as a string. required: - handle - displayName - avatarUrl - verified - blueVerified description: Author snapshot when available. metrics: type: object properties: views: type: integer minimum: 0 description: Impression count when reported by X. favorites: type: integer minimum: 0 description: Favorite (like) count. retweets: type: integer minimum: 0 description: Native repost count. replies: type: integer minimum: 0 description: Reply count. bookmarks: type: integer minimum: 0 description: Bookmark count. quotes: type: integer minimum: 0 description: Quote tweet count. required: - views - favorites - retweets - replies - bookmarks - quotes description: Engagement metrics for a tweet. media: type: array items: anyOf: - type: object properties: type: type: string enum: - photo id: type: string minLength: 1 description: Media id string. url: type: string minLength: 1 description: Short t.co URL for this media. displayUrl: type: string minLength: 1 description: Display URL shown in the tweet. expandedUrl: type: string minLength: 1 description: Expanded destination URL. mediaUrlHttps: type: string minLength: 1 description: HTTPS URL for the media asset. sizes: type: object properties: thumb: type: object properties: h: type: integer minimum: 0 w: type: integer minimum: 0 resize: type: string minLength: 1 required: - h - w - resize description: Thumbnail size. small: type: object properties: h: type: integer minimum: 0 w: type: integer minimum: 0 resize: type: string minLength: 1 required: - h - w - resize description: Small variant. medium: type: object properties: h: type: integer minimum: 0 w: type: integer minimum: 0 resize: type: string minLength: 1 required: - h - w - resize description: Medium variant. large: type: object properties: h: type: integer minimum: 0 w: type: integer minimum: 0 resize: type: string minLength: 1 required: - h - w - resize description: Large variant. required: - thumb - small - medium - large description: Per-label media dimensions from X. originalInfo: type: object properties: width: type: integer minimum: 0 height: type: integer minimum: 0 required: - width - height description: Original pixel dimensions. required: - type - id - url - displayUrl - expandedUrl - mediaUrlHttps - sizes - originalInfo description: Photo attachment on a tweet. - type: object properties: type: type: string enum: - video - animated_gif description: Video or MP4-based animated GIF. id: type: string minLength: 1 description: Media id string. url: type: string minLength: 1 description: Short t.co URL for this media. displayUrl: type: string minLength: 1 description: Display URL shown in the tweet. expandedUrl: type: string minLength: 1 description: Expanded destination URL. mediaUrlHttps: type: string minLength: 1 description: HTTPS URL for the poster or media. sizes: type: object properties: thumb: type: object properties: h: type: integer minimum: 0 w: type: integer minimum: 0 resize: type: string minLength: 1 required: - h - w - resize description: Thumbnail size. small: type: object properties: h: type: integer minimum: 0 w: type: integer minimum: 0 resize: type: string minLength: 1 required: - h - w - resize description: Small variant. medium: type: object properties: h: type: integer minimum: 0 w: type: integer minimum: 0 resize: type: string minLength: 1 required: - h - w - resize description: Medium variant. large: type: object properties: h: type: integer minimum: 0 w: type: integer minimum: 0 resize: type: string minLength: 1 required: - h - w - resize description: Large variant. required: - thumb - small - medium - large description: Per-label media dimensions from X. originalInfo: type: object properties: width: type: integer minimum: 0 height: type: integer minimum: 0 required: - width - height description: Original pixel dimensions. variants: type: array items: type: object properties: contentType: type: string minLength: 1 description: MIME type of the variant. url: type: string minLength: 1 description: Direct URL for this variant. bitrate: type: integer minimum: 0 description: Bitrate in bits per second when present (omitted for HLS). required: - contentType - url description: A downloadable or streamable media variant. minItems: 1 description: Stream or download variants (mp4, HLS, etc.). durationMs: type: integer minimum: 0 description: Duration in milliseconds when known. aspectRatio: type: array items: type: integer exclusiveMinimum: 0 minItems: 2 maxItems: 2 description: Width:height ratio tuple when provided by X. required: - type - id - url - displayUrl - expandedUrl - mediaUrlHttps - sizes - originalInfo - variants description: Video or animated GIF attachment. description: Photo, video, or GIF attachments. entities: type: object properties: hashtags: type: array items: type: object properties: text: type: string description: 'Hashtag text without #.' required: - text description: A hashtag entity. description: Hashtag entities. userMentions: type: array items: type: object properties: handle: type: string minLength: 1 description: Mentioned screen name. displayName: type: string description: Display name when available. platformUserId: type: string description: Numeric user id for the mention when available. required: - handle description: A user mention entity. description: User mention entities. urls: type: array items: type: object properties: url: type: string minLength: 1 description: Short URL as it appears in text. displayUrl: type: string minLength: 1 description: Human-readable display host/path. expandedUrl: type: string minLength: 1 description: Fully expanded destination URL. required: - url - displayUrl - expandedUrl description: A URL entity. description: URL entities. symbols: type: array items: type: object properties: text: type: string minLength: 1 description: Cashtag or symbol text. required: - text description: A symbol/cashtag entity. description: Symbol entities. required: - hashtags - userMentions - urls - symbols description: Entities aligned with `text`. isReply: type: boolean description: Whether this is a reply. inReplyToTweetId: type: string description: Parent tweet id when replying. inReplyToUserId: type: string description: Parent author user id when replying. inReplyToScreenName: type: string description: Parent author handle when replying. isQuote: type: boolean description: Whether this tweet quotes another. quotedTweetId: type: string description: Quoted tweet id when present. isRetweet: type: boolean description: Whether this is a native repost. retweetedTweetId: type: string description: Original tweet id for a repost. possiblySensitive: type: boolean description: Whether X marks the content sensitive. editInfo: type: object properties: editTweetIds: type: array items: type: string minLength: 1 description: Tweet ids in this edit chain. editableUntilMsec: type: string description: Epoch milliseconds until edits are locked. isEditEligible: type: boolean description: Whether the tweet can still be edited. editsRemaining: type: string description: Remaining edits in the window, as reported by X. required: - editTweetIds - editableUntilMsec - isEditEligible - editsRemaining description: Edit metadata when applicable. source: type: string description: Client label text. sourceUrl: type: string description: Link target from the source anchor when present. required: - id - url - conversationId - createdAt - language - text - isLongForm - displayTextRange - author - metrics - media - entities - isReply - isQuote - isRetweet - possiblySensitive description: Expanded reposted tweet (one level deep). required: - id - url - conversationId - createdAt - language - text - isLongForm - displayTextRange - author - metrics - media - entities - isReply - isQuote - isRetweet - possiblySensitive description: Tweets returned for the requested community. This array may be empty when `lookupStatus` is `found` and no tweets are returned in this response, or when `lookupStatus` is `not_found`. required: - lookupStatus - tweets description: Endpoint-specific response payload. meta: type: object properties: requestId: type: string minLength: 1 description: Unique request identifier for tracing this API call. creditsCharged: type: integer minimum: 0 description: Credits charged for this request. version: type: string enum: - v1 description: Public API version that served the response. cached: type: boolean description: True when served from shared response cache. Credits still apply (full endpoint price); Age header may be present. required: - requestId - creditsCharged - version description: Metadata describing the request and billing outcome. required: - data - meta description: Standard success response envelope. examples: found: value: data: lookupStatus: found tweets: - id: '2054308458565095634' url: https://x.com/jpbelmo/status/2054308458565095634 conversationId: '2054308458565095634' createdAt: '2026-05-12T21:11:18.000Z' language: en text: 'built a 450k users company in san francisco with: 1 macbook yerba mate dangerous optimism https://t.co/Trl8WRfmCk' isLongForm: false displayTextRange: - 0 - 90 author: handle: jpbelmo displayName: juan belmont avatarUrl: https://pbs.twimg.com/profile_images/1914130312537264128/ExOXNvw5_400x400.jpg verified: false blueVerified: true platformUserId: '498601325' metrics: views: 237480 favorites: 982 retweets: 15 replies: 75 bookmarks: 142 quotes: 5 media: - type: photo id: '2054308455503347712' url: https://t.co/Trl8WRfmCk displayUrl: pic.x.com/Trl8WRfmCk expandedUrl: https://x.com/jpbelmo/status/2054308458565095634/photo/1 mediaUrlHttps: https://pbs.twimg.com/media/HIJep_VbwAAsBuA.jpg sizes: thumb: h: 150 w: 150 resize: crop small: h: 680 w: 510 resize: fit medium: h: 1200 w: 900 resize: fit large: h: 2048 w: 1536 resize: fit originalInfo: width: 1536 height: 2048 entities: hashtags: [] userMentions: [] urls: [] symbols: [] isReply: false isQuote: false isRetweet: false possiblySensitive: false source: Twitter for iPhone sourceUrl: http://twitter.com/download/iphone - id: '2054929051769303346' url: https://x.com/juiceboy_of_abj/status/2054929051769303346 conversationId: '2054929051769303346' createdAt: '2026-05-14T14:17:19.000Z' language: en text: 'Not everything has to be celebrated publicly, I just hit 5m impressions and got eligible for creator revenue on x and i never said anything about it . That’s maturity. https://t.co/GLi24fIoxv' isLongForm: false displayTextRange: - 0 - 168 author: handle: juiceboy_of_abj displayName: Elijah 🌊 avatarUrl: https://pbs.twimg.com/profile_images/2047368553309798400/e19Qhn0y_400x400.jpg verified: false blueVerified: true platformUserId: '1525367022070145024' metrics: views: 147092 favorites: 340 retweets: 23 replies: 152 bookmarks: 9 quotes: 11 media: - type: photo id: '2054929038095912960' url: https://t.co/GLi24fIoxv displayUrl: pic.x.com/GLi24fIoxv expandedUrl: https://x.com/juiceboy_of_abj/status/2054929051769303346/photo/1 mediaUrlHttps: https://pbs.twimg.com/media/HISTEppXkAAUyJC.jpg sizes: thumb: h: 150 w: 150 resize: crop small: h: 680 w: 489 resize: fit medium: h: 1200 w: 863 resize: fit large: h: 1627 w: 1170 resize: fit originalInfo: width: 1170 height: 1627 entities: hashtags: [] userMentions: [] urls: [] symbols: [] isReply: false isQuote: false isRetweet: false possiblySensitive: false source: Twitter for iPhone sourceUrl: http://twitter.com/download/iphone - id: '2055290818231996745' url: https://x.com/juiceboy_of_abj/status/2055290818231996745 conversationId: '2055290818231996745' createdAt: '2026-05-15T14:14:51.000Z' language: en text: "How much would you charge for a full stack Real Estate project that lets users list properties/buy, hotel booking with payment integration etc\n\nWebsite \nMobile app - iOS/Android\nAdmin Dashboard .\n\nthis client reached out to me few days back, scheduled a short call, sent project https://t.co/xgYBYvoHYq" isLongForm: false displayTextRange: - 0 - 280 author: handle: juiceboy_of_abj displayName: Elijah 🌊 avatarUrl: https://pbs.twimg.com/profile_images/2047368553309798400/e19Qhn0y_400x400.jpg verified: false blueVerified: true platformUserId: '1525367022070145024' metrics: views: 91186 favorites: 272 retweets: 13 replies: 136 bookmarks: 72 quotes: 13 media: - type: photo id: '2055290807284817920' url: https://t.co/xgYBYvoHYq displayUrl: pic.x.com/xgYBYvoHYq expandedUrl: https://x.com/juiceboy_of_abj/status/2055290818231996745/photo/1 mediaUrlHttps: https://pbs.twimg.com/media/HIXcGY5WYAANSF3.jpg sizes: thumb: h: 150 w: 150 resize: crop small: h: 680 w: 428 resize: fit medium: h: 1200 w: 754 resize: fit large: h: 1861 w: 1170 resize: fit originalInfo: width: 1170 height: 1861 entities: hashtags: [] userMentions: [] urls: [] symbols: [] isReply: false isQuote: false isRetweet: false possiblySensitive: false source: Twitter for iPhone sourceUrl: http://twitter.com/download/iphone - id: '2054475758752661744' url: https://x.com/beka_saparbek/status/2054475758752661744 conversationId: '2054475758752661744' createdAt: '2026-05-13T08:16:05.000Z' language: en text: "Day 137 of building in Public. \nGoal is to earn $9,000 in May. \n\nCurrent progress: \nInstalls: 1,609(+121) \nRevenue: $2,683(+188) \nMRR: $2070(+80)\n\nJust finished fixing last bug. App is ready.\nSoon marketing campaign will start. https://t.co/gcM3ohKPEW" isLongForm: false displayTextRange: - 0 - 237 author: handle: beka_saparbek displayName: Shynggys Saparbek avatarUrl: https://pbs.twimg.com/profile_images/2013139549845614592/rKRZqLye_400x400.jpg verified: false blueVerified: true platformUserId: '1482928912334270464' metrics: views: 84806 favorites: 270 retweets: 1 replies: 108 bookmarks: 17 quotes: 1 media: - type: photo id: '2054475729715478528' url: https://t.co/gcM3ohKPEW displayUrl: pic.x.com/gcM3ohKPEW expandedUrl: https://x.com/beka_saparbek/status/2054475758752661744/photo/1 mediaUrlHttps: https://pbs.twimg.com/media/HIL2yoVaQAAXWed.jpg sizes: thumb: h: 150 w: 150 resize: crop small: h: 510 w: 680 resize: fit medium: h: 900 w: 1200 resize: fit large: h: 1536 w: 2048 resize: fit originalInfo: width: 4032 height: 3024 entities: hashtags: [] userMentions: [] urls: [] symbols: [] isReply: false isQuote: false isRetweet: false possiblySensitive: false source: Twitter Web App sourceUrl: https://mobile.twitter.com - id: '2054787968024338799' url: https://x.com/juiceboy_of_abj/status/2054787968024338799 conversationId: '2054787968024338799' createdAt: '2026-05-14T04:56:42.000Z' language: en text: 'Good morning techies πŸ™ŒπŸŒ„ Let''s do more todayπŸ˜€πŸ’ͺ Do have a productive day πŸ˜ŠπŸ€— https://t.co/BE1qHO3nqH' isLongForm: false displayTextRange: - 0 - 74 author: handle: juiceboy_of_abj displayName: Elijah 🌊 avatarUrl: https://pbs.twimg.com/profile_images/2047368553309798400/e19Qhn0y_400x400.jpg verified: false blueVerified: true platformUserId: '1525367022070145024' metrics: views: 82717 favorites: 239 retweets: 22 replies: 116 bookmarks: 3 quotes: 1 media: - type: photo id: '2054787926584692736' url: https://t.co/BE1qHO3nqH displayUrl: pic.x.com/BE1qHO3nqH expandedUrl: https://x.com/juiceboy_of_abj/status/2054787968024338799/photo/1 mediaUrlHttps: https://pbs.twimg.com/media/HIQSu4TXkAAejqs.jpg sizes: thumb: h: 150 w: 150 resize: crop small: h: 680 w: 510 resize: fit medium: h: 1080 w: 810 resize: fit large: h: 1080 w: 810 resize: fit originalInfo: width: 810 height: 1080 - type: photo id: '2054787927364734976' url: https://t.co/BE1qHO3nqH displayUrl: pic.x.com/BE1qHO3nqH expandedUrl: https://x.com/juiceboy_of_abj/status/2054787968024338799/photo/1 mediaUrlHttps: https://pbs.twimg.com/media/HIQSu7NWEAAd4-S.jpg sizes: thumb: h: 150 w: 150 resize: crop small: h: 680 w: 510 resize: fit medium: h: 992 w: 744 resize: fit large: h: 992 w: 744 resize: fit originalInfo: width: 744 height: 992 entities: hashtags: [] userMentions: [] urls: [] symbols: [] isReply: false isQuote: false isRetweet: false possiblySensitive: false source: Twitter for iPhone sourceUrl: http://twitter.com/download/iphone - id: '2053832454176125066' url: https://x.com/ericdjav/status/2053832454176125066 conversationId: '2053832454176125066' createdAt: '2026-05-11T13:39:50.000Z' language: en text: 'I launched a SAAS 3 month ago... Today, I got my first annual subscription 🎊 https://t.co/TViC0tQSbC' isLongForm: false displayTextRange: - 0 - 77 author: handle: ericdjav displayName: Eric Djavid avatarUrl: https://pbs.twimg.com/profile_images/1884705640246915072/4Y39VboE_400x400.jpg verified: false blueVerified: true platformUserId: '1260691957640298500' metrics: views: 29508 favorites: 220 retweets: 2 replies: 112 bookmarks: 7 quotes: 0 media: - type: photo id: '2053832442817970176' url: https://t.co/TViC0tQSbC displayUrl: pic.x.com/TViC0tQSbC expandedUrl: https://x.com/ericdjav/status/2053832454176125066/photo/1 mediaUrlHttps: https://pbs.twimg.com/media/HICtuZ5WgAAwBvX.jpg sizes: thumb: h: 150 w: 150 resize: crop small: h: 680 w: 680 resize: fit medium: h: 1200 w: 1200 resize: fit large: h: 1200 w: 1200 resize: fit originalInfo: width: 1200 height: 1200 entities: hashtags: [] userMentions: [] urls: [] symbols: [] isReply: false isQuote: false isRetweet: false possiblySensitive: false source: Twitter Web App sourceUrl: https://mobile.twitter.com - id: '2054874790003896355' url: https://x.com/JulesMandoX/status/2054874790003896355 conversationId: '2054874790003896355' createdAt: '2026-05-14T10:41:42.000Z' language: en text: 'We can once again say that Steve Jobs was right, 20 years in advance πŸ₯² What machine will you build on this weekend? πŸ’» https://t.co/JEbiI5A50F' isLongForm: false displayTextRange: - 0 - 118 author: handle: JulesMandoX displayName: Jules Mando avatarUrl: https://pbs.twimg.com/profile_images/2041534130286972928/xA7_y3BM_400x400.jpg verified: false blueVerified: true platformUserId: '2037233097293361152' metrics: views: 227975 favorites: 187 retweets: 4 replies: 3 bookmarks: 8 quotes: 0 media: - type: photo id: '2054874785117622272' url: https://t.co/JEbiI5A50F displayUrl: pic.x.com/JEbiI5A50F expandedUrl: https://x.com/JulesMandoX/status/2054874790003896355/photo/1 mediaUrlHttps: https://pbs.twimg.com/media/HIRhutjX0AAw7R5.jpg sizes: thumb: h: 150 w: 150 resize: crop small: h: 454 w: 680 resize: fit medium: h: 547 w: 820 resize: fit large: h: 547 w: 820 resize: fit originalInfo: width: 820 height: 547 entities: hashtags: [] userMentions: [] urls: [] symbols: [] isReply: false isQuote: false isRetweet: false possiblySensitive: false source: Twitter for iPhone sourceUrl: http://twitter.com/download/iphone - id: '2054824774790938717' url: https://x.com/juiceboy_of_abj/status/2054824774790938717 conversationId: '2054824774790938717' createdAt: '2026-05-14T07:22:57.000Z' language: en text: So If Cache is faster than database, then why use database instead of cache ? https://t.co/65CcV7edFi isLongForm: false displayTextRange: - 0 - 77 author: handle: juiceboy_of_abj displayName: Elijah 🌊 avatarUrl: https://pbs.twimg.com/profile_images/2047368553309798400/e19Qhn0y_400x400.jpg verified: false blueVerified: true platformUserId: '1525367022070145024' metrics: views: 9559 favorites: 179 retweets: 7 replies: 65 bookmarks: 11 quotes: 11 media: - type: photo id: '2054824767287390208' url: https://t.co/65CcV7edFi displayUrl: pic.x.com/65CcV7edFi expandedUrl: https://x.com/juiceboy_of_abj/status/2054824774790938717/photo/1 mediaUrlHttps: https://pbs.twimg.com/media/HIQ0PSnW8AA68zZ.jpg sizes: thumb: h: 150 w: 150 resize: crop small: h: 425 w: 582 resize: fit medium: h: 425 w: 582 resize: fit large: h: 425 w: 582 resize: fit originalInfo: width: 582 height: 425 entities: hashtags: [] userMentions: [] urls: [] symbols: [] isReply: false isQuote: false isRetweet: false possiblySensitive: false source: Twitter for iPhone sourceUrl: http://twitter.com/download/iphone - id: '2055511814406840681' url: https://x.com/juiceboy_of_abj/status/2055511814406840681 conversationId: '2055511814406840681' createdAt: '2026-05-16T04:53:00.000Z' language: en text: 'Good morning techies πŸ™ŒπŸŒ„ Let''s do more todayπŸ˜€πŸ’ͺ Do have a productive day πŸ˜ŠπŸ€— https://t.co/fyUFgCvKHZ' isLongForm: false displayTextRange: - 0 - 74 author: handle: juiceboy_of_abj displayName: Elijah 🌊 avatarUrl: https://pbs.twimg.com/profile_images/2047368553309798400/e19Qhn0y_400x400.jpg verified: false blueVerified: true platformUserId: '1525367022070145024' metrics: views: 97273 favorites: 170 retweets: 15 replies: 99 bookmarks: 3 quotes: 1 media: - type: photo id: '2055511803455488000' url: https://t.co/fyUFgCvKHZ displayUrl: pic.x.com/fyUFgCvKHZ expandedUrl: https://x.com/juiceboy_of_abj/status/2055511814406840681/photo/1 mediaUrlHttps: https://pbs.twimg.com/media/HIalGDyWQAAXBaB.jpg sizes: thumb: h: 150 w: 150 resize: crop small: h: 680 w: 510 resize: fit medium: h: 1200 w: 900 resize: fit large: h: 2048 w: 1536 resize: fit originalInfo: width: 1536 height: 2048 entities: hashtags: [] userMentions: [] urls: [] symbols: [] isReply: false isQuote: false isRetweet: false possiblySensitive: false source: Twitter for iPhone sourceUrl: http://twitter.com/download/iphone - id: '2053652141257191690' url: https://x.com/innovate_leo/status/2053652141257191690 conversationId: '2053652141257191690' createdAt: '2026-05-11T01:43:20.000Z' language: en text: "Builders \U0001F447 \n\nWhat are you building and who is it for? \n\nDrop it below \n\nLet’s see real products, not ideas \U0001F440" isLongForm: false displayTextRange: - 0 - 110 author: handle: innovate_leo displayName: Leo avatarUrl: https://pbs.twimg.com/profile_images/1658454550586720256/ca3pmd6W_400x400.jpg verified: false blueVerified: true platformUserId: '971583099724353538' metrics: views: 289389 favorites: 154 retweets: 4 replies: 292 bookmarks: 12 quotes: 2 media: [] entities: hashtags: [] userMentions: [] urls: [] symbols: [] isReply: false isQuote: false isRetweet: false possiblySensitive: false source: Twitter Web App sourceUrl: https://mobile.twitter.com - id: '2054189494752993519' url: https://x.com/ugo_builds/status/2054189494752993519 conversationId: '2054189494752993519' createdAt: '2026-05-12T13:18:35.000Z' language: en text: 'I didn''t even pay attention 😱 Crossed $50 MRR!! Next stop: $100 https://t.co/lc0HJ3LDsR' isLongForm: false displayTextRange: - 0 - 65 author: handle: ugo_builds displayName: Ugo avatarUrl: https://pbs.twimg.com/profile_images/1952099724623794176/Ts9l7Qzg_400x400.png verified: false blueVerified: true platformUserId: '1808416770744516609' metrics: views: 11135 favorites: 152 retweets: 1 replies: 87 bookmarks: 4 quotes: 0 media: - type: photo id: '2054188719393939456' url: https://t.co/lc0HJ3LDsR displayUrl: pic.x.com/lc0HJ3LDsR expandedUrl: https://x.com/ugo_builds/status/2054189494752993519/photo/1 mediaUrlHttps: https://pbs.twimg.com/media/HIHxwbkXIAARx1G.jpg sizes: thumb: h: 150 w: 150 resize: crop small: h: 510 w: 680 resize: fit medium: h: 900 w: 1200 resize: fit large: h: 1440 w: 1920 resize: fit originalInfo: width: 1920 height: 1440 entities: hashtags: [] userMentions: [] urls: [] symbols: [] isReply: false isQuote: false isRetweet: false possiblySensitive: false source: Twitter Web App sourceUrl: https://mobile.twitter.com - id: '2055105223392403727' url: https://x.com/woocassh/status/2055105223392403727 conversationId: '2055105223392403727' createdAt: '2026-05-15T01:57:21.000Z' language: en text: "MASSIVE milestone! \U0001F389\n\nmy product finally covered claude code subscription cost lmfao \n\n100k MRR WEN https://t.co/9cxs2Re1OF" isLongForm: false displayTextRange: - 0 - 99 author: handle: woocassh displayName: Lukasz avatarUrl: https://pbs.twimg.com/profile_images/1858049621974724612/weTDvvOg_400x400.jpg verified: false blueVerified: true platformUserId: '2158961771' metrics: views: 3317 favorites: 147 retweets: 1 replies: 59 bookmarks: 0 quotes: 1 media: - type: photo id: '2055105104882360320' url: https://t.co/9cxs2Re1OF displayUrl: pic.x.com/9cxs2Re1OF expandedUrl: https://x.com/woocassh/status/2055105223392403727/photo/1 mediaUrlHttps: https://pbs.twimg.com/media/HIUzNFia4AAb9v8.jpg sizes: thumb: h: 150 w: 150 resize: crop small: h: 383 w: 680 resize: fit medium: h: 675 w: 1200 resize: fit large: h: 1152 w: 2048 resize: fit originalInfo: width: 4096 height: 2304 entities: hashtags: [] userMentions: [] urls: [] symbols: [] isReply: false isQuote: false isRetweet: false possiblySensitive: false source: Twitter Web App sourceUrl: https://mobile.twitter.com - id: '2053460165421137951' url: https://x.com/acadictive/status/2053460165421137951 conversationId: '2053460165421137951' createdAt: '2026-05-10T13:00:29.000Z' language: en text: 'I have: 0 MRR. 0 ARR. 0 salary. 0 investors. 0 funding. But maybe this tweet makes me rich.' isLongForm: false displayTextRange: - 0 - 93 author: handle: acadictive displayName: Ehsan avatarUrl: https://pbs.twimg.com/profile_images/1996662487731560448/r6wo78NW_400x400.jpg verified: false blueVerified: true platformUserId: '1991513303018008580' metrics: views: 4299 favorites: 142 retweets: 3 replies: 63 bookmarks: 2 quotes: 0 media: [] entities: hashtags: [] userMentions: [] urls: [] symbols: [] isReply: false isQuote: false isRetweet: false possiblySensitive: false source: Twitter Web App sourceUrl: https://mobile.twitter.com - id: '2054610963933073430' url: https://x.com/Javizecom/status/2054610963933073430 conversationId: '2054610963933073430' createdAt: '2026-05-13T17:13:21.000Z' language: en text: working here. working there. working everywhere. https://t.co/Jcnbviextq isLongForm: false displayTextRange: - 0 - 48 author: handle: Javizecom displayName: Javiz avatarUrl: https://pbs.twimg.com/profile_images/1910743181164949504/OQIzZ8mf_400x400.jpg verified: false blueVerified: true platformUserId: '1832431101605765120' metrics: views: 5238 favorites: 139 retweets: 6 replies: 21 bookmarks: 14 quotes: 0 media: - type: photo id: '2054610956735705088' url: https://t.co/Jcnbviextq displayUrl: pic.x.com/Jcnbviextq expandedUrl: https://x.com/Javizecom/status/2054610963933073430/photo/1 mediaUrlHttps: https://pbs.twimg.com/media/HINxx4PbcAA91sH.jpg sizes: thumb: h: 150 w: 150 resize: crop small: h: 680 w: 510 resize: fit medium: h: 1200 w: 900 resize: fit large: h: 2048 w: 1536 resize: fit originalInfo: width: 1536 height: 2048 entities: hashtags: [] userMentions: [] urls: [] symbols: [] isReply: false isQuote: false isRetweet: false possiblySensitive: false source: Twitter for iPhone sourceUrl: http://twitter.com/download/iphone - id: '2054772606801523019' url: https://x.com/qwertyu_alex/status/2054772606801523019 conversationId: '2054772606801523019' createdAt: '2026-05-14T03:55:39.000Z' language: en text: "2K followers! Took me +2 years. \n\nThis number encapsulates my entrepreneurial journey until now:\n- my first viral tweet\n- quitting my fulltime job\n- my first internet money\n- getting interviewed for podcasts and articles\n- finding my co-founder\n- getting accepted into https://t.co/1Vnt7yFSXI" isLongForm: false displayTextRange: - 0 - 268 author: handle: qwertyu_alex displayName: Alex πŸ‡©πŸ‡° avatarUrl: https://pbs.twimg.com/profile_images/1920413020280266752/QNjWDf_I_400x400.jpg verified: false blueVerified: true platformUserId: '1050886046' metrics: views: 3089 favorites: 136 retweets: 1 replies: 59 bookmarks: 5 quotes: 1 media: - type: photo id: '2054772592796733440' url: https://t.co/1Vnt7yFSXI displayUrl: pic.x.com/1Vnt7yFSXI expandedUrl: https://x.com/qwertyu_alex/status/2054772606801523019/photo/1 mediaUrlHttps: https://pbs.twimg.com/media/HIQEyVfbkAAe3ND.jpg sizes: thumb: h: 150 w: 150 resize: crop small: h: 680 w: 510 resize: fit medium: h: 1200 w: 900 resize: fit large: h: 2048 w: 1536 resize: fit originalInfo: width: 1536 height: 2048 entities: hashtags: [] userMentions: [] urls: [] symbols: [] isReply: false isQuote: false isRetweet: false possiblySensitive: false source: Twitter for iPhone sourceUrl: http://twitter.com/download/iphone - id: '2053919023482687672' url: https://x.com/TimJayas/status/2053919023482687672 conversationId: '2053919023482687672' createdAt: '2026-05-11T19:23:49.000Z' language: en text: '"I Just made $400 MRR with my app" πŸŽ‰ Reality: - ai subscription: $200 - api cost: $110.60 - profit: $89 that''s not even including refunds :) https://t.co/GLPjy36Bz8' isLongForm: false displayTextRange: - 0 - 143 author: handle: TimJayas displayName: Tim Jayas avatarUrl: https://pbs.twimg.com/profile_images/2016190209768226821/MW5mAfL-_400x400.jpg verified: false blueVerified: true platformUserId: '1956954573614313472' metrics: views: 4745 favorites: 131 retweets: 0 replies: 77 bookmarks: 5 quotes: 1 media: - type: photo id: '2053917377050595328' url: https://t.co/GLPjy36Bz8 displayUrl: pic.x.com/GLPjy36Bz8 expandedUrl: https://x.com/TimJayas/status/2053919023482687672/photo/1 mediaUrlHttps: https://pbs.twimg.com/media/HID6-OkaUAADecK.jpg sizes: thumb: h: 150 w: 150 resize: crop small: h: 369 w: 680 resize: fit medium: h: 467 w: 861 resize: fit large: h: 467 w: 861 resize: fit originalInfo: width: 861 height: 467 entities: hashtags: [] userMentions: [] urls: [] symbols: [] isReply: false isQuote: false isRetweet: false possiblySensitive: false source: Twitter Web App sourceUrl: https://mobile.twitter.com - id: '2055552551043383521' url: https://x.com/meta_courier1/status/2055552551043383521 conversationId: '2055552551043383521' createdAt: '2026-05-16T07:34:53.000Z' language: en text: 'There are days in this space where everything clicks. The content flows, the opportunities are coming in and you feel like you''ve cracked the code on building in Web3. Then there are days where you question all of it. Am I good enough for this? Is this sustainable? Why does it https://t.co/2QXynVoRI9' isLongForm: false displayTextRange: - 0 - 279 author: handle: meta_courier1 displayName: Meta Courier avatarUrl: https://pbs.twimg.com/profile_images/2054270344031031296/JfycQOMn_400x400.jpg verified: false blueVerified: true platformUserId: '1866356501285142528' metrics: views: 1552 favorites: 130 retweets: 1 replies: 31 bookmarks: 0 quotes: 1 media: - type: photo id: '2055552548078047232' url: https://t.co/2QXynVoRI9 displayUrl: pic.x.com/2QXynVoRI9 expandedUrl: https://x.com/meta_courier1/status/2055552551043383521/photo/1 mediaUrlHttps: https://pbs.twimg.com/media/HIbKJtVXUAAYPyT.jpg sizes: thumb: h: 150 w: 150 resize: crop small: h: 674 w: 680 resize: fit medium: h: 714 w: 720 resize: fit large: h: 714 w: 720 resize: fit originalInfo: width: 720 height: 714 entities: hashtags: [] userMentions: [] urls: [] symbols: [] isReply: false isQuote: false isRetweet: false possiblySensitive: false source: Twitter for Android sourceUrl: http://twitter.com/download/android - id: '2054518987153633487' url: https://x.com/insights5g/status/2054518987153633487 conversationId: '2054518987153633487' createdAt: '2026-05-13T11:07:52.000Z' language: en text: If you are too busy working, you won't have time to get rich. isLongForm: false displayTextRange: - 0 - 61 author: handle: insights5g displayName: Yaron. avatarUrl: https://pbs.twimg.com/profile_images/2055143907025989632/VYsIvEgg_400x400.jpg verified: false blueVerified: true platformUserId: '1817151789860610048' metrics: views: 11029 favorites: 130 retweets: 92 replies: 39 bookmarks: 4 quotes: 2 media: [] entities: hashtags: [] userMentions: [] urls: [] symbols: [] isReply: false isQuote: false isRetweet: false possiblySensitive: false source: Twitter for Android sourceUrl: http://twitter.com/download/android - id: '2054869866562064492' url: https://x.com/beka_saparbek/status/2054869866562064492 conversationId: '2054869866562064492' createdAt: '2026-05-14T10:22:08.000Z' language: en text: "Day 138 of building in Public. \n\nGoal is to earn $9,000 in May. \n\nCurrent progress: \nInstalls: 1,750(+141) \nRevenue: $2,882(+199) \nMRR: $2050(-20)\n\nMy new app Ingram was released. So far only: 51 installs and 5$ in sales https://t.co/tXdJA2xC7W" isLongForm: false displayTextRange: - 0 - 236 author: handle: beka_saparbek displayName: Shynggys Saparbek avatarUrl: https://pbs.twimg.com/profile_images/2013139549845614592/rKRZqLye_400x400.jpg verified: false blueVerified: true platformUserId: '1482928912334270464' metrics: views: 2603 favorites: 124 retweets: 0 replies: 39 bookmarks: 7 quotes: 1 media: - type: photo id: '2054869827697745920' url: https://t.co/tXdJA2xC7W displayUrl: pic.x.com/tXdJA2xC7W expandedUrl: https://x.com/beka_saparbek/status/2054869866562064492/photo/1 mediaUrlHttps: https://pbs.twimg.com/media/HIRdOJuXoAAgM9L.jpg sizes: thumb: h: 150 w: 150 resize: crop small: h: 510 w: 680 resize: fit medium: h: 900 w: 1200 resize: fit large: h: 1536 w: 2048 resize: fit originalInfo: width: 4032 height: 3024 entities: hashtags: [] userMentions: [] urls: [] symbols: [] isReply: false isQuote: false isRetweet: false possiblySensitive: false source: Twitter Web App sourceUrl: https://mobile.twitter.com - id: '2053401693656604790' url: https://x.com/byLuocca/status/2053401693656604790 conversationId: '2053401693656604790' createdAt: '2026-05-10T09:08:08.000Z' language: en text: 'I had my best day ever on @X πŸŽ‰ So close to 10k impressions! Again… I will reach my first 10k day soon Let’s keep building and growing together! https://t.co/unrMxkopli' isLongForm: false displayTextRange: - 0 - 147 author: handle: byLuocca displayName: Luca Marchetti avatarUrl: https://pbs.twimg.com/profile_images/1848649694907420672/Z-tV7W-2_400x400.jpg verified: false blueVerified: true platformUserId: '1835397805155749888' metrics: views: 19701 favorites: 124 retweets: 2 replies: 76 bookmarks: 3 quotes: 3 media: - type: photo id: '2053401687595851779' url: https://t.co/unrMxkopli displayUrl: pic.x.com/unrMxkopli expandedUrl: https://x.com/byLuocca/status/2053401693656604790/photo/1 mediaUrlHttps: https://pbs.twimg.com/media/HH8l9JpWoAMRpSn.jpg sizes: thumb: h: 150 w: 150 resize: crop small: h: 680 w: 635 resize: fit medium: h: 1200 w: 1121 resize: fit large: h: 1253 w: 1170 resize: fit originalInfo: width: 1170 height: 1253 entities: hashtags: [] userMentions: - handle: X displayName: X platformUserId: '783214' urls: [] symbols: [] isReply: false isQuote: false isRetweet: false possiblySensitive: false source: Twitter for iPhone sourceUrl: http://twitter.com/download/iphone meta: requestId: req_2df9b084-4647-48e0-9567-1cea41de3afa creditsCharged: 1 version: v1 found_empty: value: data: lookupStatus: found tweets: [] meta: requestId: req_01example_empty creditsCharged: 1 version: v1 not_found: value: data: lookupStatus: not_found tweets: [] meta: requestId: req_01example_nf creditsCharged: 1 version: v1 '400': description: Invalid request content: application/json: schema: type: object properties: error: type: object properties: code: type: string enum: - bad_request description: Machine-readable error code for the failed request. message: type: string description: Human-readable error message. May change over time; do not parse it. Use `error.code` and the HTTP status for programmatic handling. requestId: type: string description: Unique request identifier for tracing the failed API call. checkoutUrl: type: string format: uri description: Optional one-click checkout URL when credits are exhausted and a conversion offer is available. required: - code - message - requestId description: Error details for the failed request. required: - error description: Standard error response envelope. example: error: code: bad_request message: Example message. requestId: req_01example '401': description: Missing or invalid API key content: application/json: schema: type: object properties: error: type: object properties: code: type: string enum: - unauthorized description: Machine-readable error code for the failed request. message: type: string description: Human-readable error message. May change over time; do not parse it. Use `error.code` and the HTTP status for programmatic handling. requestId: type: string description: Unique request identifier for tracing the failed API call. checkoutUrl: type: string format: uri description: Optional one-click checkout URL when credits are exhausted and a conversion offer is available. required: - code - message - requestId description: Error details for the failed request. required: - error description: Standard error response envelope. example: error: code: unauthorized message: Example message. requestId: req_01example '402': description: Insufficient credits content: application/json: schema: type: object properties: error: type: object properties: code: type: string enum: - insufficient_credits description: Machine-readable error code for the failed request. message: type: string description: Human-readable error message. May change over time; do not parse it. Use `error.code` and the HTTP status for programmatic handling. requestId: type: string description: Unique request identifier for tracing the failed API call. checkoutUrl: type: string format: uri description: Optional one-click checkout URL when credits are exhausted and a conversion offer is available. required: - code - message - requestId description: Error details for the failed request. required: - error description: Standard error response envelope. example: error: code: insufficient_credits message: Example message. requestId: req_01example '500': description: Unexpected or billing error content: application/json: schema: type: object properties: error: type: object properties: code: type: string enum: - internal_error description: Machine-readable error code for the failed request. message: type: string description: Human-readable error message. May change over time; do not parse it. Use `error.code` and the HTTP status for programmatic handling. requestId: type: string description: Unique request identifier for tracing the failed API call. checkoutUrl: type: string format: uri description: Optional one-click checkout URL when credits are exhausted and a conversion offer is available. required: - code - message - requestId description: Error details for the failed request. required: - error description: Standard error response envelope. example: error: code: internal_error message: Example message. requestId: req_01example '502': description: Lookup could not be completed from the response (unexpected or invalid data). content: application/json: schema: type: object properties: error: type: object properties: code: type: string enum: - lookup_failed description: Machine-readable error code for the failed request. message: type: string description: Human-readable error message. May change over time; do not parse it. Use `error.code` and the HTTP status for programmatic handling. requestId: type: string description: Unique request identifier for tracing the failed API call. checkoutUrl: type: string format: uri description: Optional one-click checkout URL when credits are exhausted and a conversion offer is available. required: - code - message - requestId description: Error details for the failed request. required: - error description: Standard error response envelope. example: error: code: lookup_failed message: Example message. requestId: req_01example '503': description: Service temporarily unavailable; safe to retry with backoff. content: application/json: schema: type: object properties: error: type: object properties: code: type: string enum: - temporarily_unavailable description: Machine-readable error code for the failed request. message: type: string description: Human-readable error message. May change over time; do not parse it. Use `error.code` and the HTTP status for programmatic handling. requestId: type: string description: Unique request identifier for tracing the failed API call. checkoutUrl: type: string format: uri description: Optional one-click checkout URL when credits are exhausted and a conversion offer is available. required: - code - message - requestId description: Error details for the failed request. required: - error description: Standard error response envelope. example: error: code: temporarily_unavailable message: Example message. requestId: req_01example operationId: getV1TwitterCommunitiesTweets x-operation-id-source: derived components: securitySchemes: ApiKeyAuth: type: apiKey in: header name: x-api-key description: API key (`sfk_...`)