---
title: "Search"
method: GET
path: "/tw-v2/search"
tags: ["Search"]
---

# Search

`GET /tw-v2/search`

## Request

- Base URL: `https://api.tweetapi.com`
- URL: `https://api.tweetapi.com/tw-v2/search`
- Auth: API key in header `X-API-Key`

Search for tweets, users, or other content on the platform. Supports various search operators and filters.

## Query parameters

- `query` string, required
- `type` 'Top' | 'Latest' | 'People' | 'Photos' | 'Videos', required
- `cursor` string

## Response `200`

Successful response

- SearchResponse
  - `data` union[], required
    - union
      - Tweet, nullable
        - `id` string, required
        - `conversationId` string, nullable
        - `text` string, required
        - `displayTextRange` integer[]
        - `author` User, nullable
          - `id` string, required
          - `username` string, required
          - `name` string
          - `bio` string
          - `location` string, nullable
          - `website` string, uri, nullable
          - `pinnedTweetIds` string[]
          - `avatar` string, uri, nullable
          - `banner` string, uri, nullable
          - `profileImageShape` 'Circle' | 'Square' | 'null', nullable
          - `verified` boolean
          - `isBlueVerified` boolean
          - `verifiedType` string, nullable
          - `verifiedSince` string, date-time, nullable
          - `isIdentityVerified` boolean
          - `isProtected` boolean
          - `possiblySensitive` boolean
          - `profileInterstitialType` string, nullable
          - `withheldInCountries` string[]
          - `professional` object, nullable
          - `businessAccount` object, nullable
          - `creatorSubscriptionsCount` integer
          - `hasHiddenSubscriptions` boolean
          - `highlightsInfo` object, nullable
          - `hasGraduatedAccess` boolean
          - `isProfileTranslatable` boolean
          - `hasCustomTimelines` boolean
          - `isTranslator` boolean
          - `affiliatesHighlightedLabel` object, nullable
          - `defaultProfile` boolean
          - `defaultProfileImage` boolean
          - `followerCount` integer
          - `followingCount` integer
          - `tweetCount` integer
          - `listedCount` integer
          - `mediaCount` integer
          - `favoritesCount` integer
          - `createdAt` string, date-time, nullable
        - `source` string, nullable
        - `type` 'tweet' | 'reply' | 'quote' | 'retweet' | 'thread'
        - `replyTo` object, nullable
        - `quotedTweet` Tweet (recursive)
        - `reactionContext` object, nullable
        - `retweetedTweet` Tweet (recursive)
        - `likeCount` integer
        - `retweetCount` integer
        - `replyCount` integer
        - `quoteCount` integer
        - `bookmarkCount` integer
        - `viewCount` integer, nullable
        - `media` Media[], nullable
          - `id` string, required
          - `key` string
          - `type` 'photo' | 'video' | 'animated_gif', required
          - `url` string, uri
          - `displayUrl` string
          - `expandedUrl` string
          - `thumbnailUrl` string, uri, nullable
          - `width` integer
          - `height` integer
          - `aspectRatio` integer[]
          - `sizes` object
          - `duration` number, nullable
          - `bitrate` integer, nullable
          - `videoInfo` object, nullable
          - `altText` string, nullable
          - `sensitiveMedia` boolean
          - `features` object, nullable
          - `mediaAvailability` object
          - `allowDownload` boolean
          - `mediaStats` object, nullable
          - `processingInfo` object, nullable
          - `sourceStatusId` string, nullable
          - `sourceUserId` string, nullable
          - `stickers` object[], nullable
        - `poll` object, nullable
        - `card` object, nullable
        - `article` Article, nullable
          - `id` string, required
          - `title` string, required
          - `text` string, required
          - `previewText` string, required
          - `coverImageUrl` string, uri, nullable, required
        - `hashtags` string[]
        - `mentions` union[]
          - union
            - string
            - object
        - `urls` string[]
        - `symbols` string[]
        - `possiblySensitive` boolean
        - `limitedActions` string, nullable
        - `hasAIGeneratedMedia` boolean
        - `isPaidPromotion` boolean
        - `isEdited` boolean
        - `editControl` object, nullable
        - `isTranslatable` boolean
        - `lang` string
        - `translatedText` string, nullable
        - `hasBirdwatchNotes` boolean
        - `birdwatchPivot` object, nullable
        - `conversationControl` object, nullable
        - `isPromoted` boolean
        - `promotedMetadata` object, nullable
        - `communityId` string, nullable
        - `communityResults` object, nullable
        - `createdAt` string, date-time, nullable
        - `place` object, nullable
      - User, nullable
        - `id` string, required
        - `username` string, required
        - `name` string
        - `bio` string
        - `location` string, nullable
        - `website` string, uri, nullable
        - `pinnedTweetIds` string[]
        - `avatar` string, uri, nullable
        - `banner` string, uri, nullable
        - `profileImageShape` 'Circle' | 'Square' | 'null', nullable
        - `verified` boolean
        - `isBlueVerified` boolean
        - `verifiedType` string, nullable
        - `verifiedSince` string, date-time, nullable
        - `isIdentityVerified` boolean
        - `isProtected` boolean
        - `possiblySensitive` boolean
        - `profileInterstitialType` string, nullable
        - `withheldInCountries` string[]
        - `professional` object, nullable
        - `businessAccount` object, nullable
        - `creatorSubscriptionsCount` integer
        - `hasHiddenSubscriptions` boolean
        - `highlightsInfo` object, nullable
        - `hasGraduatedAccess` boolean
        - `isProfileTranslatable` boolean
        - `hasCustomTimelines` boolean
        - `isTranslator` boolean
        - `affiliatesHighlightedLabel` object, nullable
        - `defaultProfile` boolean
        - `defaultProfileImage` boolean
        - `followerCount` integer
        - `followingCount` integer
        - `tweetCount` integer
        - `listedCount` integer
        - `mediaCount` integer
        - `favoritesCount` integer
        - `createdAt` string, date-time, nullable
  - `pagination` Pagination, required
    - `nextCursor` string, nullable, required
    - `prevCursor` string, nullable, required

## Other responses

- `400`: The request is invalid. Check the parameters and try again.
- `401`: The TweetAPI key or caller-supplied Twitter authentication token is missing or invalid.
- `403`: The authenticated account is not permitted to perform the operation.
- `404`: The requested resource or route was not found.
- `429`: A plan limit rejected the request. The code field says which one. RATE_LIMITED means the per-minute limit was exceeded; wait for Retry-After. QUOTA_EXHAUSTED means the allowance and prepaid balance are used up. SUBSCRIPTION_INACTIVE means the subscription has expired or is inactive. Retrying won't fix the last two. A 429 without a code is temporary; retry with bounded backoff. This response does not include X-RateLimit headers.
- `500`: The request could not be completed.
- `503`: Request allowance is temporarily unavailable. This request was not processed. Follow Retry-After before trying again; contact support if the error persists.

---

[API](https://skmtc.dev/tweetapi/apis/tweetapi-v2-api-reference.md) · [All operations](https://skmtc.dev/tweetapi/apis/tweetapi-v2-api-reference/llms.txt) · [OpenAPI document](https://skmtc.dev/tweetapi/apis/tweetapi-v2-api-reference/revisions/51bc9024013d?raw)
