Skip to content

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 

Repository files navigation

X (Twitter) Post URL Scraper — Tweet Data & Engagement by Link or ID

Apify Actor No login No API key Pay per result Export

Paste tweet links, get full post data back. No login, no API key, thousands of posts per run.

Hydrate any specific X / Twitter post by URL or tweet ID and get the complete record for each one — full post text, author, and every engagement metric (likes, retweets, replies, quotes, bookmarks and views), plus media, hashtags, mentions, links, language and the publish date. Give it the exact tweet links you already care about and it turns each one into a clean, structured row. No login, no cookies, no developer API key — zero account-ban risk.

This is the practical X / Twitter API alternative for enriching tweet URLs you already have: a marketing report full of post links, a spreadsheet of competitor tweets, a list of press mentions. Instead of copy-pasting metrics by hand, drop the links in and export the full data as JSON, CSV, Excel, JSONL or XML.


✨ What you get (output fields)

One structured record per post. Real output fields:

Field What it contains
tweetId Numeric tweet ID (rest_id)
url Canonical x.com/.../status/… link
text Full post text — long-form note text captured when present
createdAt When the post was published
lang Detected language code
likeCount Number of likes
retweetCount Number of retweets
replyCount Number of replies
quoteCount Number of quote posts
bookmarkCount Number of bookmarks
viewCount Views / impressions (null when unavailable)
isReply / isQuote / isRetweet Post-type boolean flags
hashtags Hashtags used in the post
mentions Handles mentioned in the post
urls Expanded links in the post
media Attached media (type + url)
author Author object — userId, username, name, followers, verified
input The original URL / ID this row was requested with
error Error message if the post was unavailable (deleted / protected)
scrapedAt ISO timestamp when the row was collected

💡 Use cases

  • Engagement & PR reporting — pull likes, views, retweets and bookmarks for a set of campaign or press posts and drop them straight into a report.
  • Content archiving — snapshot specific tweets (text + metrics + media) before they change or get deleted.
  • Research & fact-checking — capture the exact data behind a tweet link for citations and evidence.
  • Tweet-URL data enrichment — hydrate tweet URLs you collected elsewhere into full records with author and engagement.
  • Influencer verification — confirm the real engagement on posts a creator cites in a pitch deck.
  • Thread & campaign audits — hydrate a list of your own posts to build a per-post performance table.
  • Competitor watch — track how a rival's specific announcement posts perform over time.

🚀 Quick start (4 ways)

1. Apify Console (no code)

  1. Open the X Post URL Scraper page and click Try for free.
  2. Paste one or more tweet URLs (or bare tweet IDs) into Tweet / post URLs. Leave it empty to fetch a demo post.
  3. Click Start, then export the results from the Output tab.

2. Apify CLI

npm i -g apify-cli
apify login
apify call logiover/x-post-url-scraper --input='{
  "postUrls": ["https://x.com/NASA/status/2059393717111308634", "2059393717111308634"]
}'

3. API / curl

curl -X POST "https://api.apify.com/v2/acts/logiover~x-post-url-scraper/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "postUrls": ["https://x.com/NASA/status/2059393717111308634"],
    "maxConcurrency": 8
  }'

4. apify-client (JavaScript / Python)

See examples/javascript.md and examples/python.md. More curl recipes in examples/api-curl.md and CLI patterns in examples/cli.md.

📥 Input

All fields are optional — an empty input fetches a popular public post as a demo.

Field Type Description
postUrls array Tweet / post URLs or bare tweet IDs. Mix them freely (e.g. https://x.com/NASA/status/123 and 123).
maxConcurrency integer How many posts to fetch in parallel (1–12). Default 5.
maxResults integer Stop after saving this many posts. 0 = all.
proxyConfiguration object (proxy) Pre-configured residential proxy — leave the default.

📤 Output — sample item

{
  "tweetId": "2059393717111308634",
  "url": "https://x.com/NASA/status/2059393717111308634",
  "text": "Post text captured here, including long-form note text when present.",
  "createdAt": "Tue Jun 03 16:00:00 +0000 2026",
  "lang": "en",
  "likeCount": 38146,
  "retweetCount": 4120,
  "replyCount": 612,
  "quoteCount": 210,
  "bookmarkCount": 1503,
  "viewCount": 2834957,
  "isReply": false,
  "isQuote": false,
  "isRetweet": false,
  "hashtags": ["Artemis"],
  "mentions": ["NASA_Astronauts"],
  "urls": ["https://www.nasa.gov/…"],
  "media": [{ "type": "photo", "url": "https://pbs.twimg.com/media/…" }],
  "author": { "userId": "11348282", "username": "NASA", "name": "NASA", "followers": 92089565, "verified": true },
  "input": "https://x.com/NASA/status/2059393717111308634",
  "scrapedAt": "2026-07-06T14:22:17.392Z"
}

Deleted or protected posts come back with a clear error flag so a single bad link never breaks the run.

🔌 Integrations & automation

  • Schedules — run on a cron in the Apify Console to re-hydrate a set of tracked posts daily and watch engagement grow.
  • Webhooks — fire ACTOR.RUN.SUCCEEDED to your endpoint when a run finishes.
  • Google Sheets / Amazon S3 / databases — push the dataset with Apify integrations or the API.
  • Zapier · Make · n8n · Pipedream — connect via the Apify app to build no-code reporting pipelines.

📦 Export formats

CSV · JSON · JSONL · Excel (XLSX) · XML — download from the Output tab or pull via the API (run-sync-get-dataset-items / dataset/items).

❓ FAQ

How do I scrape a tweet by its URL?

Paste the tweet link (https://x.com/<user>/status/<id>) into postUrls and run. Each link comes back as a full record with text, author and every engagement metric.

Can I pass tweet IDs instead of full URLs?

Yes. Bare numeric tweet IDs work just like full URLs, and you can mix both in one postUrls list.

Is this an X / Twitter API alternative?

Yes. It hydrates tweet URLs into full post data without the official X / Twitter API, a developer account, app keys or per-tweet rate limits — just paste links and run.

Can I scrape tweets without an API key or login?

Yes. No developer account, app, login or cookies are needed — only an Apify account. There is no X account involved, so there is no ban risk.

Does it return tweet engagement metrics (likes, views, bookmarks)?

Every record includes likeCount, retweetCount, replyCount, quoteCount, bookmarkCount and viewCount, making it a ready tweet engagement-metrics export for reporting.

What happens with deleted or protected tweets?

They are returned with a clear error field so your run always completes cleanly instead of failing on one bad link.

How many tweets can I hydrate per run?

Hundreds to thousands — pass a large postUrls list and raise maxConcurrency (up to 12) to fetch in parallel.

How do I export X / Twitter post data to CSV or Excel?

Run the Actor on your tweet URLs, then download the dataset as CSV, JSON, JSONL, Excel or XML — or pull it via API/webhook.

Does it capture media, hashtags and mentions?

Yes — media (photos/videos with type and URL), hashtags, mentions and expanded urls are all extracted per post.

Is it free?

There is a free tier to try it, then it runs on pay-per-result. See the Pricing tab on the Apify page for the current rate.

🔗 Related actors

Browse the full suite at apify.com/logiover.


📄 Documentation only — this repository contains no scraper source code. The Actor runs on the Apify platform. ▶️ Run it: https://apify.com/logiover/x-post-url-scraper

Released under the MIT License · © 2026 logiover

About

Scrape any X (Twitter) post by URL or tweet ID — full text, author, likes, retweets, replies, quotes, bookmarks, views, media. No login, no API key.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors