Skip to content

Likes

GET/tw-v2/interaction/likes

1 API unit per call · How billing works

Description

Retrieve the posts liked by the X account behind authToken. Returns a paginated timeline of posts.

Usage notes

Supply both authToken and the numeric userId of that same X account. The user ID is not looked up automatically; use /tw-v2/user/by-username if you only know the username. This endpoint is for your own account's likes. Supplying another account's ID does not grant access to its private likes. Keep the same account and pass nextCursor until it is null.

A request costs one API unit. 400, 401, 403, 429 and 5xx errors are free; a 404 is billed.

Query Parameters

ParameterDescription
authTokenstringrequiredAuthentication token (auth_token cookie value) of the same X account identified by userId.
userIdstringrequiredNumeric user ID of the X account that authToken belongs to. Required; the ID is not looked up automatically.
cursorstringoptionalPagination cursor from the previous response's nextCursor. Omit for the first page.
proxystringoptionalOptional proxy in format 'host:port@user:pass'

Code Examples

const params = new URLSearchParams({
  authToken: 'YOUR_AUTH_TOKEN',
  userId: '1000000000000000001'
});

const response = await fetch(`https://api.tweetapi.com/tw-v2/interaction/likes?${params}`, {
  method: 'GET',
  headers: {
    'X-API-Key': 'YOUR_API_KEY'
  }
});

const data = await response.json();
console.log(data);

Response

Success Response (200 OK)

Synthetic example:

200
{
  "data": [
    {
      "id": "2000000000000000001",
      "conversationId": "2000000000000000001",
      "text": "Sample post 2000000000000000001",
      "displayTextRange": [
        0,
        20
      ],
      "author": {
        "id": "1000000000000000902",
        "username": "sample_user_00002",
        "name": "Sample User",
        "bio": "Sample bio",
        "location": "Sample City",
        "website": null,
        "pinnedTweetIds": [],
        "avatar": "https://example.com/images/sample-avatar.jpg",
        "banner": "https://example.com/images/sample-banner.jpg",
        "profileImageShape": null,
        "verified": false,
        "isBlueVerified": false,
        "verifiedType": null,
        "verifiedSince": null,
        "isIdentityVerified": false,
        "isProtected": false,
        "possiblySensitive": false,
        "profileInterstitialType": null,
        "withheldInCountries": [],
        "professional": null,
        "businessAccount": null,
        "creatorSubscriptionsCount": 0,
        "hasHiddenSubscriptions": false,
        "highlightsInfo": null,
        "hasGraduatedAccess": false,
        "isProfileTranslatable": false,
        "hasCustomTimelines": false,
        "isTranslator": false,
        "affiliatesHighlightedLabel": null,
        "defaultProfile": false,
        "defaultProfileImage": false,
        "followerCount": 1200,
        "followingCount": 34,
        "tweetCount": 560,
        "listedCount": 0,
        "mediaCount": 78,
        "favoritesCount": 90,
        "createdAt": "2023-01-02T00:00:00.000Z"
      },
      "source": null,
      "type": "tweet",
      "replyTo": null,
      "quotedTweet": null,
      "reactionContext": null,
      "retweetedTweet": null,
      "likeCount": 1,
      "retweetCount": 0,
      "replyCount": 0,
      "quoteCount": 0,
      "bookmarkCount": 0,
      "viewCount": 0,
      "media": [],
      "poll": null,
      "card": null,
      "article": null,
      "hashtags": [],
      "mentions": [],
      "urls": [],
      "symbols": [],
      "possiblySensitive": false,
      "limitedActions": null,
      "hasAIGeneratedMedia": false,
      "isPaidPromotion": false,
      "isEdited": false,
      "editControl": null,
      "isTranslatable": false,
      "lang": "en",
      "translatedText": null,
      "hasBirdwatchNotes": false,
      "birdwatchPivot": null,
      "conversationControl": null,
      "isPromoted": false,
      "promotedMetadata": null,
      "createdAt": "2026-10-27T12:00:00.000Z",
      "place": null,
      "communityId": null,
      "communityResults": null
    }
  ],
  "pagination": {
    "nextCursor": "NEXT_CURSOR",
    "prevCursor": "PREVIOUS_CURSOR"
  }
}

An empty page is also successful:

200
{
  "data": [],
  "pagination": {
    "nextCursor": null,
    "prevCursor": null
  }
}

Errors

Errors return { statusCode, message } with a non-2xx HTTP status.

A missing authToken or userId, or a non-numeric userId, returns 400. An auth token X rejects returns 401. Both errors are not billed. Use the ID of the account that owns the token; access to likes is subject to X's account permissions.

400
{
  "statusCode": 400,
  "message": "Request validation failed"
}

TweetAPI is a third-party API and is not affiliated with X Corp.