> ## Documentation Index
> Fetch the complete documentation index at: https://docs.scraperize.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Scrape a user's profile tweets

> Fetches a public profile (`https://x.com/<handle>`, logged-out) and returns the user's tweets in display order (pinned first, then newest → oldest). Strictly tweet details — no user/author objects. Returns the batch present on the initial profile load. Set `trim=true` for a lightweight response.



## OpenAPI

````yaml /api-reference/openapi.json get /v1/twitter/user-tweets
openapi: 3.0.3
info:
  title: Scraperize API
  version: 1.0.0
  description: >-
    Extract public data from social media platforms as clean JSON. Endpoints are
    split by platform and by what they return, e.g. `GET /v1/twitter/tweet`.


    ## Authentication

    Send your API key in the `x-api-key` header (or `Authorization: Bearer
    <key>`). Create keys in your dashboard.


    ## Credits

    Each successful live scrape costs **1 credit**. Credits are prepaid and
    never expire.


    ## Caching

    Every endpoint accepts an optional `cache_max_age`
    (`1d`|`3d`|`7d`|`14d`|`30d`). A cache hit within that window is returned for
    **0 credits**.


    ## Responses

    Success returns `{ "data": …, "meta": { "requestId", … } }`. Errors return
    `{ "error": { "code", "message", "requestId" } }` with a matching HTTP
    status. `meta` on a scrape carries `creditsCharged`, `creditsRemaining`,
    `cached`, and (on a hit) `cachedAt`.


    ## Rate limits

    Requests are limited per team per minute; over the limit returns `429` with
    a `Retry-After` header.
servers:
  - url: https://api.scraperize.com
    description: Production
security:
  - ApiKeyAuth: []
tags:
  - name: Twitter
    description: Twitter / X scraping endpoints
  - name: Facebook
    description: Facebook scraping endpoints
  - name: Linkme
    description: Linkme (link.me) scraping endpoints
  - name: Amazon
    description: Amazon (creator shop / storefront) scraping endpoints
  - name: Linkbio
    description: Linkbio (lnk.bio) scraping endpoints
  - name: Pillar
    description: Pillar (pillar.io) scraping endpoints
  - name: Komi
    description: Komi (komi.io) scraping endpoints
  - name: Linktree
    description: Linktree (linktr.ee) scraping endpoints
  - name: Kick
    description: Kick (kick.com) scraping endpoints
  - name: Snapchat
    description: Snapchat (snapchat.com) scraping endpoints
  - name: Telegram
    description: Telegram (t.me) scraping endpoints
  - name: Google
    description: Google Search scraping endpoints
paths:
  /v1/twitter/user-tweets:
    get:
      tags:
        - Twitter
      summary: Scrape a user's profile tweets
      description: >-
        Fetches a public profile (`https://x.com/<handle>`, logged-out) and
        returns the user's tweets in display order (pinned first, then newest →
        oldest). Strictly tweet details — no user/author objects. Returns the
        batch present on the initial profile load. Set `trim=true` for a
        lightweight response.
      parameters:
        - name: handle
          in: query
          required: true
          description: User handle WITHOUT the @ symbol, e.g. `thedankoe`.
          schema:
            type: string
          example: thedankoe
        - name: trim
          in: query
          required: false
          description: Return trimmed-down tweets (essential fields only).
          schema:
            type: boolean
            default: false
        - name: cache_max_age
          in: query
          required: false
          description: >-
            Optional. Return a cached result if one this age or newer exists —
            served for **0 credits** with `meta.cached=true` and
            `meta.cachedAt`. Otherwise a fresh scrape runs (**1 credit**) and
            refreshes the cache. Omit to always scrape fresh.
          schema:
            type: string
            enum:
              - 1d
              - 3d
              - 7d
              - 14d
              - 30d
          example: 7d
      responses:
        '200':
          description: The user's tweets (tweet details only).
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      tweets:
                        type: array
                        items:
                          type: object
                      tweetCount:
                        type: integer
                      fetchedAt:
                        type: string
                        format: date-time
                  meta:
                    type: object
                    description: >-
                      requestId + credit/caching metadata (creditsCharged,
                      creditsRemaining, cached, cachedAt).
                required:
                  - data
                  - meta
              example:
                data:
                  tweets:
                    - id: '2010751592346030461'
                      url: https://x.com/thedankoe/status/2010751592346030461
                      text: https://t.co/7l7Jef99QZ
                      isLongForm: false
                      lang: null
                      createdAtMs: 1768235512000
                      createdAt: '2026-01-12T16:31:52.000Z'
                      counts:
                        likes: 352382
                        retweets: 56145
                        replies: 9229
                        quotes: null
                        bookmarks: 927581
                      views: '239906974'
                      media: []
                      mentions: []
                      urls:
                        - url: https://t.co/7l7Jef99QZ
                          expandedUrl: http://x.com/i/article/2010742786430021632
                          displayUrl: x.com/i/article/2010…
                      hashtags: []
                      cashtags: []
                      card:
                        legacy: null
                        id: Q2FyZDpodHRwczovL3QuY28vN2w3SmVmOTlRWg==
                      communityNote: null
                      article:
                        id: '2010742786430021632'
                        title: How to fix your entire life in 1 day
                        previewText: >-
                          If you're anything like me, you think new years
                          resolutions are stupid.

                          Because most people go about changing their lives in
                          the completely wrong way. They create these
                          resolutions because everyone
                        coverImage:
                          url: https://pbs.twimg.com/media/G-efypCbQAEEi8a.jpg
                          width: 1456
                          height: 582
                        fullText: null
                        raw:
                          article_results:
                            result:
                              title: How to fix your entire life in 1 day
                              preview_text: >-
                                If you're anything like me, you think new years
                                resolutions are stupid.

                                Because most people go about changing their
                                lives in the completely wrong way. They create
                                these resolutions because everyone
                              cover_media_results:
                                result:
                                  media_info:
                                    original_img_height: 582
                                    original_img_url: >-
                                      https://pbs.twimg.com/media/G-efypCbQAEEi8a.jpg
                                    original_img_width: 1456
                                  id: >-
                                    QXBpTWVkaWE6DAAFCgABG+efypCbQAEKAAIAAAAAD0o7MAAA
                                id: >-
                                  QXBpTWVkaWFSZXN1bHRzOgwABQoAARvnn8qQm0ABCgACAAAAAA9KOzAAAA==
                              id: QXJ0aWNsZUVudGl0eToyMDEwNzQyNzg2NDMwMDIxNjMy
                              rest_id: '2010742786430021632'
                            id: >-
                              QXJ0aWNsZUVudGl0eVJlc3VsdHM6MjAxMDc0Mjc4NjQzMDAyMTYzMg==
                      isReply: false
                      replyToTweetId: null
                      replyToUserId: null
                      isQuote: false
                      quotedTweetId: null
                      quotedTweet: null
                      possiblySensitive: false
                      conversationControl: null
                      editTweetIds: null
                      place: null
                      isPinned: true
                    - id: '2099154092153008400'
                      url: https://x.com/thedankoe/status/2099154092153008400
                      text: >-
                        You don't need a PhD in a topic before you can start
                        doing it. You don't need to watch 10 YouTube videos, 20
                        podcasts, and read 5 books before you start.


                        That only gets you stuck in a cycle of mental
                        masturbation and feeling like you never know enough.


                        Most people should start learning only after they've
                        started doing the thing.
                      isLongForm: true
                      lang: null
                      createdAtMs: 1789312310000
                      createdAt: '2026-09-13T15:11:50.000Z'
                      counts:
                        likes: 5897
                        retweets: 675
                        replies: 290
                        quotes: null
                        bookmarks: 2106
                      views: '235284'
                      media: []
                      mentions: []
                      urls: []
                      hashtags: []
                      cashtags: []
                      card: null
                      communityNote: null
                      article: null
                      isReply: false
                      replyToTweetId: null
                      replyToUserId: null
                      isQuote: false
                      quotedTweetId: null
                      quotedTweet: null
                      possiblySensitive: null
                      conversationControl: null
                      editTweetIds: null
                      place: null
                      isPinned: false
                    - id: '2098813973714149757'
                      url: https://x.com/thedankoe/status/2098813973714149757
                      text: https://t.co/LalU5XENsk
                      isLongForm: false
                      lang: null
                      createdAtMs: 1789231220000
                      createdAt: '2026-09-12T16:40:20.000Z'
                      counts:
                        likes: 20250
                        retweets: 3140
                        replies: 427
                        quotes: null
                        bookmarks: 29483
                      views: '4495696'
                      media: []
                      mentions: []
                      urls:
                        - url: https://t.co/LalU5XENsk
                          expandedUrl: https://x.com/i/article/2098813570234613760
                          displayUrl: x.com/i/article/2098…
                      hashtags: []
                      cashtags: []
                      card:
                        legacy: null
                        id: Q2FyZDpodHRwczovL3QuY28vTGFsVTVYRU5zaw==
                      communityNote: null
                      article:
                        id: '2098813570234613760'
                        title: You need to be delusional if you want to succeed
                        previewText: >-
                          Tell me if any of these sound like you:

                          1) You feel like you’ve been lied to about what a good
                          life looks like.

                          You’re pursuing a goal that sounds nice when you
                          mention it at dinner with grandma. Or a
                        coverImage:
                          url: https://pbs.twimg.com/media/HSB74qJbAAA1Cb5.jpg
                          width: 1920
                          height: 768
                        fullText: null
                        raw:
                          article_results:
                            result:
                              title: You need to be delusional if you want to succeed
                              preview_text: >-
                                Tell me if any of these sound like you:

                                1) You feel like you’ve been lied to about what
                                a good life looks like.

                                You’re pursuing a goal that sounds nice when you
                                mention it at dinner with grandma. Or a
                              cover_media_results:
                                result:
                                  media_info:
                                    original_img_height: 768
                                    original_img_url: >-
                                      https://pbs.twimg.com/media/HSB74qJbAAA1Cb5.jpg
                                    original_img_width: 1920
                                  id: >-
                                    QXBpTWVkaWE6DAAFCgABHSB74qJbAAAKAAIAAAAAD0o7MAAA
                                id: >-
                                  QXBpTWVkaWFSZXN1bHRzOgwABQoAAR0ge+KiWwAACgACAAAAAA9KOzAAAA==
                              id: QXJ0aWNsZUVudGl0eToyMDk4ODEzNTcwMjM0NjEzNzYw
                              rest_id: '2098813570234613760'
                            id: >-
                              QXJ0aWNsZUVudGl0eVJlc3VsdHM6MjA5ODgxMzU3MDIzNDYxMzc2MA==
                      isReply: false
                      replyToTweetId: null
                      replyToUserId: null
                      isQuote: false
                      quotedTweetId: null
                      quotedTweet: null
                      possiblySensitive: false
                      conversationControl: null
                      editTweetIds: null
                      place: null
                      isPinned: false
                  tweetCount: 5
                  fetchedAt: '2026-09-14T12:12:54.089Z'
                meta:
                  requestId: req_8f0c2b7e-1a2b-4c3d-9e8f-0a1b2c3d4e5f
                  creditsCharged: 1
                  creditsRemaining: 4999
                  cached: false
        '401':
          description: Missing, invalid, or revoked API key.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                error:
                  code: UNAUTHORIZED
                  message: API key required — pass it in the `x-api-key` header.
                  requestId: req_8f0c2b7e-1a2b-4c3d-9e8f-0a1b2c3d4e5f
        '402':
          description: Not enough credits for this request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                error:
                  code: INSUFFICIENT_CREDITS
                  message: >-
                    This request costs 1 credit, but your balance is 0. Top up
                    to continue.
                  requestId: req_8f0c2b7e-1a2b-4c3d-9e8f-0a1b2c3d4e5f
        '404':
          description: Handle not found / suspended / no profile data.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                error:
                  code: NOT_FOUND
                  message: >-
                    The requested content was not found (it may not exist, be
                    deleted, or be private).
                  requestId: req_8f0c2b7e-1a2b-4c3d-9e8f-0a1b2c3d4e5f
        '422':
          description: Invalid query parameters.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                error:
                  code: VALIDATION_ERROR
                  message: Request validation failed
                  requestId: req_8f0c2b7e-1a2b-4c3d-9e8f-0a1b2c3d4e5f
                  details:
                    - path: url
                      message: Required
        '429':
          description: Over the per-minute rate limit — honour `Retry-After`.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                error:
                  code: RATE_LIMITED
                  message: >-
                    Rate limit exceeded — max 100 requests per 60s. Retry in
                    ~30s.
                  requestId: req_8f0c2b7e-1a2b-4c3d-9e8f-0a1b2c3d4e5f
        '502':
          description: Upstream block or extraction failure.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                error:
                  code: UPSTREAM_BLOCKED
                  message: >-
                    The source was temporarily unavailable. Please try again
                    shortly.
                  requestId: req_8f0c2b7e-1a2b-4c3d-9e8f-0a1b2c3d4e5f
components:
  schemas:
    Error:
      type: object
      properties:
        error:
          type: object
          properties:
            code:
              type: string
              example: NOT_FOUND
            message:
              type: string
              example: The requested content was not found.
            requestId:
              type: string
              example: req_8f0c2b7e-1a2b-4c3d-9e8f-0a1b2c3d4e5f
            details:
              type: array
              items:
                type: object
              description: Present on validation errors.
          required:
            - code
            - message
            - requestId
      required:
        - error
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key
      description: >-
        Your API key. Send it in the `x-api-key` header (or `Authorization:
        Bearer <key>`). Create and manage keys from your dashboard.

````