---
title: "X Timeline Scraper"
method: GET
path: "/v1/x/users/{handle}/tweets"
tags: ["x"]
---

# X Timeline Scraper

`GET /v1/x/users/{handle}/tweets`

## Request

- Base URL: `https://chatterapi.com`
- URL: `https://chatterapi.com/v1/x/users/{handle}/tweets`
- Auth: HTTP bearer

Get an X account's recent tweets, newest first, with likes, retweets, replies, views and media. Costs 3 credits per page of about 20 tweets. Tip: set includeRetweets=false to see only what the account wrote itself. Costs 3 credits.

## Path parameters

- `handle` string, required

## Query parameters

- `includeRetweets` union
  - boolean
  - string
- `limit` integer
- `cursor` string

## Response `200`

Success

- object
  - `data` XTweet[], required
    - `id` string, required
    - `text` string, required
    - `url` string, required
    - `createdAt` string, nullable, required: ISO 8601 UTC timestamp
    - `lang` string, nullable, required
    - `likes` number, nullable, required
    - `retweets` number, nullable, required
    - `replies` number, nullable, required
    - `quotes` number, nullable, required
    - `views` number, nullable, required
    - `bookmarks` number, nullable, required
    - `isReply` boolean, required
    - `inReplyToId` string, nullable, required
    - `conversationId` string, nullable, required
    - `isRetweet` boolean, required
    - `quotedTweetId` string, nullable, required
    - `author` object, required
      - `id` string, required
      - `handle` string, required
      - `name` string, required
      - `bio` string, nullable, required
      - `followers` number, nullable, required
      - `following` number, nullable, required
      - `tweets` number, nullable, required
      - `verified` boolean, nullable, required
      - `blueVerified` boolean, nullable, required
      - `canDm` boolean, nullable, required
      - `protected` boolean, nullable, required
      - `location` string, nullable, required
      - `url` string, nullable, required
      - `avatarUrl` string, nullable, required
      - `createdAt` string, nullable, required: ISO 8601 UTC timestamp
    - `media` object[], required
      - `type` string, required
      - `url` string, required
  - `page` PageInfo
    - `nextCursor` string, nullable, required
    - `hasMore` boolean, required
  - `credits` Credits, required
    - `charged` integer, required
    - `remaining` integer, required
  - `requestId` string, required
  - `cached` boolean, required
  - `warnings` Warning[]
    - `code` 'partial_data' | 'stale_data' | 'platform_unavailable' | 'source_unavailable', required
    - `platform` 'reddit' | 'x'
    - `source` string
    - `fields` string[]

## Other responses

- `400`: Bad request: invalid_input
- `401`: Unauthorized: missing_key, invalid_key, key_revoked
- `402`: Payment required: insufficient_credits
- `403`: Forbidden: account_suspended, scope_denied
- `404`: Not found: not_found
- `429`: Too many requests: rate_limited
- `500`: Internal error: internal
- `502`: Bad gateway: upstream_error
- `504`: Gateway timeout: upstream_timeout

---

[API](https://skmtc.dev/chatterapi/apis/chatterapi-api.md) · [All operations](https://skmtc.dev/chatterapi/apis/chatterapi-api/llms.txt) · [OpenAPI document](https://skmtc.dev/chatterapi/apis/chatterapi-api/revisions/74036d6f908a?raw)
