Back to Blog
General

Twitter/X Scraper API: Extract Profiles, Tweets & Engagement Data

February 18, 2026
4 min read
S
By SociaVault Team
twitterxscraper apitweetssocial media data

Twitter/X Scraper API: Complete Guide to Extracting X Data

Need Twitter/X data without the expensive official API? This guide shows you how to scrape profiles, tweets, and engagement metrics using SociaVault's affordable alternative.

Why Use a Twitter/X Scraper API?

X's (formerly Twitter) official API pricing increased dramatically. SociaVault provides:

  • Affordable Pricing - Pay per request, not monthly subscriptions
  • No Rate Limits - Scale without hitting API walls
  • Full Data Access - Get more data than basic tiers
  • Simple Integration - REST API, no OAuth complexity

Twitter API Endpoints

EndpointDescription
ProfileGet user profile data
User TweetsGet tweets from a user
TweetGet single tweet details
Tweet TranscriptGet video transcript
CommunityGet community info
Community TweetsGet community posts

Profile Scraper

Get Twitter/X user profile data:

const response = await fetch('https://api.sociavault.com/twitter/profile', {
  method: 'POST',
  headers: {
    'Authorization': 'Bearer YOUR_API_KEY',
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    handle: 'elonmusk'
  })
});

const profile = await response.json();

Profile Response

{
  "id": "44196397",
  "username": "elonmusk",
  "displayName": "Elon Musk",
  "bio": "Mars & Cars, Chips & Dips",
  "followers": 175000000,
  "following": 450,
  "tweets": 35000,
  "likes": 42000,
  "joined": "2009-06-02",
  "location": "𝕏",
  "website": "https://x.com",
  "profilePicture": "https://...",
  "banner": "https://...",
  "verified": true,
  "isBlueVerified": true
}

User Tweets Scraper

Get recent tweets from any user:

const response = await fetch('https://api.sociavault.com/twitter/user-tweets', {
  method: 'POST',
  headers: {
    'Authorization': 'Bearer YOUR_API_KEY',
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    handle: 'elonmusk'
  })
});

const tweets = await response.json();

Tweets Response

{
  "tweets": [
    {
      "id": "1234567890123456789",
      "text": "The future is going to be amazing ⚡",
      "likes": 250000,
      "retweets": 45000,
      "replies": 12000,
      "views": 15000000,
      "createdAt": "2026-01-08T14:30:00Z",
      "media": [
        {
          "type": "image",
          "url": "https://..."
        }
      ],
      "isRetweet": false,
      "isReply": false,
      "quotedTweet": null
    }
  ],
  "hasMore": true,
  "cursor": "next_page"
}

Single Tweet Details

Get detailed info about a specific tweet:

const response = await fetch('https://api.sociavault.com/twitter/tweet', {
  method: 'POST',
  headers: {
    'Authorization': 'Bearer YOUR_API_KEY',
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    url: 'https://x.com/elonmusk/status/1234567890123456789'
  })
});

const tweet = await response.json();

Tweet Video Transcript

Extract speech-to-text from video tweets:

const response = await fetch('https://api.sociavault.com/twitter/tweet/transcript', {
  method: 'POST',
  headers: {
    'Authorization': 'Bearer YOUR_API_KEY',
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    url: 'https://x.com/user/status/1234567890123456789'
  })
});

const transcript = await response.json();

X Communities

Get community information and tweets:

// Community details
const community = await fetch('https://api.sociavault.com/twitter/community', {
  method: 'POST',
  headers: {
    'Authorization': 'Bearer YOUR_API_KEY',
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    url: 'https://x.com/i/communities/1234567890'
  })
});

// Community tweets
const communityTweets = await fetch('https://api.sociavault.com/twitter/community/tweets', {
  method: 'POST',
  headers: {
    'Authorization': 'Bearer YOUR_API_KEY',
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    url: 'https://x.com/i/communities/1234567890'
  })
});

Use Cases

Social Listening

Monitor brand mentions and sentiment:

async function monitorBrand(handle) {
  const { tweets } = await getUserTweets(handle);
  
  // Analyze sentiment
  const sentiment = tweets.map(t => ({
    text: t.text,
    engagement: t.likes + t.retweets,
    sentiment: analyzeSentiment(t.text)
  }));
  
  return sentiment;
}

Influencer Analysis

Evaluate Twitter influencers:

async function analyzeInfluencer(handle) {
  const profile = await getProfile(handle);
  const { tweets } = await getUserTweets(handle);
  
  const avgEngagement = tweets.reduce((s, t) => 
    s + t.likes + t.retweets + t.replies, 0
  ) / tweets.length;
  
  return {
    handle: profile.username,
    followers: profile.followers,
    avgEngagement,
    engagementRate: (avgEngagement / profile.followers * 100).toFixed(3) + '%'
  };
}

Track Tweet Performance

Monitor how tweets perform:

async function trackTweet(tweetUrl) {
  const tweet = await getTweet(tweetUrl);
  
  await saveSnapshot({
    tweetId: tweet.id,
    likes: tweet.likes,
    retweets: tweet.retweets,
    views: tweet.views,
    timestamp: new Date()
  });
}

Frequently Asked Questions

How does this compare to X's official API?

SociaVault provides similar data at a fraction of the cost. You pay per request instead of expensive monthly tiers.

Can I get historical tweets?

Yes, you can access a user's tweet history through pagination.

Are retweets and replies included?

Yes, user tweets include retweets and replies. You can filter by isRetweet and isReply fields.

Can I search tweets by keyword?

Currently, the API provides user-based tweet retrieval. Use profile scraping to monitor specific accounts.

SociaVault accesses publicly available data visible to any X user. Always use data responsibly.

Get Started

Sign up free and start extracting Twitter/X data affordably.

Documentation: /docs/api-reference/twitter/profile

Found this helpful?

Share it with others who might benefit

Ready to Try SociaVault?

Start extracting social media data with our powerful API. No credit card required.