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

# User Timeline

> Get the latest posts from any X account with cursor pagination

Returns the most recent posts authored by an X account (up to 20 per page). Retweets are excluded — only the account's own posts are returned. Each entry is a fully hydrated tweet payload, identical in shape to the [Post Data](/rest-api-reference/post-data) response.

<Note>This endpoint is rate-limited to **10 requests per 60 seconds**.</Note>

## Query Parameters

<ParamField query="username" type="string" required>
  The X username (handle) to fetch the timeline for, without the `@`.
</ParamField>

<ParamField query="cursor" type="string">
  Pagination cursor from a previous response's `nextCursor`. Omit to fetch the
  first page.
</ParamField>

## Response

<ResponseField name="tweets" type="array">
  Array of tweet payloads, newest first. Empty when the account has no posts or
  the page is exhausted.
</ResponseField>

<ResponseField name="nextCursor" type="string | null">
  Cursor for the next page. Pass it as the `cursor` query parameter on the next
  request. `null` when there are no further pages.
</ResponseField>

<RequestExample>
  ```bash first page theme={null}
  curl -X GET "https://scrape.st/x/user-timeline?username=elonmusk" \
    -H "x-api-key: YOUR_API_KEY"
  ```

  ```bash next page theme={null}
  curl -X GET "https://scrape.st/x/user-timeline?username=elonmusk&cursor=DAABCgABGc..." \
    -H "x-api-key: YOUR_API_KEY"
  ```
</RequestExample>

<ResponseExample>
  ```json theme={null}
  {
    "tweets": [
      {
        "id": "1858123456789012345",
        "text": "Example post content",
        "author": {
          "username": "elonmusk",
          "name": "Elon Musk"
        },
        "createdAt": "2026-06-11T18:24:00.000Z"
      }
    ],
    "nextCursor": "DAABCgABGc7hF0lAAAAACgACGc..."
  }
  ```
</ResponseExample>
