---
title: "Fetch Twitter/X user tweets"
method: POST
path: "/v1/twitter/user-tweets"
tags: ["X"]
---

# Fetch Twitter/X user tweets

`POST /v1/twitter/user-tweets`

Fetches the latest tweets for a Twitter/X user. Returns a paginated list of tweets with engagement metrics. Use the `cursor` field from the response to retrieve subsequent pages.

<span>⚡ <strong>Rate limit:</strong> 300 requests per 1 minute</span>

<span>💰 <strong>Cost:</strong> 2 credits per page of results&nbsp;<span title="Pricing shown is default pricing. Actual pricing may vary.">ⓘ</span></span>

## Request body

- object
  - `apiKey` string, required — Your Fiber API key
  - `handle` string, required — Twitter/X handle to fetch tweets for. Accepts with or without a leading '@' (e.g. 'elonmusk' or '@elonmusk').
  - `cursor` string, nullable — Pagination cursor from a previous response to retrieve the next page of tweets. Omit for the first page.

## Response `200`

Default Response

- object
  - `output` object, required
    - `tweets` object[], required — List of tweets for this page.
      - `id` string, nullable — Numeric tweet ID.
      - `text` string, nullable — Full tweet text.
      - `authorId` string, nullable — Numeric user ID of the tweet author.
      - `handle` string, nullable — Twitter/X handle of the tweet author (without '@').
      - `displayName` string, nullable — Display name of the tweet author.
      - `createdAt` string, nullable — When the tweet was created.
      - `likeCount` number, nullable — Number of likes.
      - `replyCount` number, nullable — Number of replies.
      - `retweetCount` number, nullable — Number of retweets.
      - `quoteCount` number, nullable — Number of quote tweets.
      - `viewCount` number, nullable — Number of views.
      - `bookmarkCount` number, nullable — Number of bookmarks.
      - `isRetweet` boolean, nullable — Whether this tweet is a retweet.
      - `isReply` boolean, nullable — Whether this tweet is a reply to another tweet.
      - `lang` string, nullable — BCP-47 language code detected for the tweet (e.g. 'en' for English, 'es' for Spanish).
    - `nextCursor` string, nullable — Cursor to retrieve the next page of tweets. Pass as `cursor` in the next request. Null if there are no more pages.
  - `chargeInfo` union, required
    - object — Credits were charged immediately for this operation
      - `method` 'charged-now', required
      - `creditsCharged` number, required
      - `lowCreditAlert` object, nullable — Contains a link to get more credits, a warning message, and the remaining credit count.
        - `getMoreCreditsUrl` string, uri, required — URL to top up credits or restart billing cycle to get fresh credits.
        - `message` string, required — Human-readable credits warning.
        - `availableCredits` number, required — Number of credits remaining in the current billing period.
    - object — Credits will be charged after the operation completes
      - `method` 'charging-later', required
      - `message` string, required
      - `lowCreditAlert` object, nullable — Contains a link to get more credits, a warning message, and the remaining credit count.
        - `getMoreCreditsUrl` string, uri, required — URL to top up credits or restart billing cycle to get fresh credits.
        - `message` string, required — Human-readable credits warning.
        - `availableCredits` number, required — Number of credits remaining in the current billing period.
    - object — Credits that were charged for an asynchronous operation
      - `method` 'charged-for-async-process', required
      - `creditsCharged` number, required
      - `message` string, required
      - `lowCreditAlert` object, nullable — Contains a link to get more credits, a warning message, and the remaining credit count.
        - `getMoreCreditsUrl` string, uri, required — URL to top up credits or restart billing cycle to get fresh credits.
        - `message` string, required — Human-readable credits warning.
        - `availableCredits` number, required — Number of credits remaining in the current billing period.
    - object — No credits were charged for this operation
      - `method` 'free', required
      - `message` string, required
      - `lowCreditAlert` object, nullable — Contains a link to get more credits, a warning message, and the remaining credit count.
        - `getMoreCreditsUrl` string, uri, required — URL to top up credits or restart billing cycle to get fresh credits.
        - `message` string, required — Human-readable credits warning.
        - `availableCredits` number, required — Number of credits remaining in the current billing period.
    - object — Credits were refunded for this operation
      - `method` 'credits-refunded', required
      - `creditsRefunded` number, required
      - `message` string, required
      - `lowCreditAlert` object, nullable — Contains a link to get more credits, a warning message, and the remaining credit count.
        - `getMoreCreditsUrl` string, uri, required — URL to top up credits or restart billing cycle to get fresh credits.
        - `message` string, required — Human-readable credits warning.
        - `availableCredits` number, required — Number of credits remaining in the current billing period.
  - `warnings` object[], nullable — Warnings about extraneous fields in request
    - `field` string, required — Full path to extraneous field (e.g., 'searchParams.ExtraField')
    - `message` string, required — Warning message
  - `advice` string[], nullable — Tips, recommendations, and suggestions for using this API effectively.

## Other responses

- `400` — Default Response
- `401` — Default Response
- `402` — Default Response
- `403` — Default Response
- `404` — Default Response
- `422` — Default Response
- `429` — Default Response
- `500` — Default Response
- `503` — Default Response

---

[API](https://skmtc.net/fiber/apis/fiber-ai-api.md) · [All operations](https://skmtc.net/fiber/apis/fiber-ai-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/fiber/fiber-ai-api/versions/0c537984b99f/schema)
