W Social Scraper - Profiles, Posts & Followers
Pricing
from $2.49 / 1,000 profiles
W Social Scraper - Profiles, Posts & Followers
Extract W Social profiles, posts with like, repost and reply counts, followers, and media from wsocial.eu. Search users by keyword, scrape by handle, or collect the whole network. Export to JSON, CSV, or Excel.
Pricing
from $2.49 / 1,000 profiles
Rating
0.0
(0)
Developer
Zen Studio
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
0
Monthly active users
8 days ago
Last modified
Categories
Share
W Social Scraper | Profiles, Posts, Post Search & Followers from wsocial.eu (2026)
One nested row per user, every field kept: full profiles, posts with like / repost / reply / quote counts, resolved media, and the follower graph from W Social. The most complete W Social scraper on Apify.

Copy to your AI assistant
zen-studio/wsocial-scraper on Apify. Scrapes W Social (wsocial.eu) users: full profiles, posts with engagement counts, identity-verification records, followers, and media. Call ApifyClient("TOKEN").actor("zen-studio/wsocial-scraper").call(run_input={...}), then client.dataset(run["defaultDatasetId"]).list_items().items. Provide at least one of profileUrls, searchTerms, postSearchTerms, feedUrls, or scrapeAllAccounts. Full spec: GET https://api.apify.com/v2/acts/zen-studio~wsocial-scraper/builds/default (Bearer TOKEN) → inputSchema, actorDefinition.storages.dataset, readme. Token: https://console.apify.com/account/integrations
Key Features
- One row per user, fully nested: profile, posts, followers, following, and engagement records collected into a single structured record.
- Posts with real engagement counts: like, repost, reply, quote, and bookmark counts plus resolved image and video links.
- Identity verification, in full: not just the badge, but who approved each verified human and exactly when, from W Social's own verification records.
- Complete by design: posts are merged from two sources so nothing the platform exposes is left out, and every field is passed through untouched.
- Flexible targeting: scrape specific profiles, search users by keyword, search posts by word or phrase, or collect the whole network.
- Full-network post search: find every post containing your term, across every account on the platform, including brand-new ones that keyword search cannot see.
- Feed scraping: point at a feed and get every user who appears in it, each with the posts the feed surfaced.
How to Scrape W Social Data
Give the actor one or more profiles, a search term, or turn on whole-network collection. Each user becomes one result row.
Basic: scrape one or more profiles
{"profileUrls": ["wsocial.eu", "matnil01.wsocial.eu"]}
Search users by keyword
{"searchTerms": ["news", "tech"],"maxResults": 50,"maxPostsPerProfile": 20}
Search posts by word or phrase
Returns every user with a matching post. Each row's posts list contains only the posts that matched.
{"postSearchTerms": ["climate", "renewable energy"],"maxResults": 50}
Matching is case-insensitive, and a post matches if it contains any one of your terms.
Scrape the users in a feed
Returns every author who appears in a feed, with their posts narrowed to the posts the feed surfaced.
{"feedUrls": ["https://wsocial.eu/profile/wsocial.eu/feed/whats-hot"],"maxResults": 50}
Paste a feed link or its identifier. One row per author in the feed.
Profiles with the follower graph
{"profileUrls": ["wsocial.eu"],"includeFollowers": true,"includeFollowing": true,"maxFollowers": 500,"maxFollowing": 500}
Handles (name.wsocial.eu), full profile links, and user IDs are all accepted in profileUrls. Set any limit to 0 to collect everything.
Input Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
profileUrls | array | one mode required | Profile links, handles, or user IDs. Each becomes a result row. |
searchTerms | array | [] | Find users by name or keyword. Every match is scraped. |
postSearchTerms | array | [] | Find posts containing a word or phrase, anywhere on the network. Each matching user becomes a row whose posts list holds only the matched posts. |
feedUrls | array | [] | Collect the users in a feed. Each author becomes a row whose posts list holds only the posts the feed surfaced. Accepts a feed link or identifier. |
scrapeAllAccounts | boolean | false | Collect every public account on the network. |
includePosts | boolean | true | Include each user's posts with engagement counts. |
maxPostsPerProfile | integer | 0 | Maximum posts per user. 0 = all. |
includeFollowers | boolean | false | Include the list of accounts following each user. |
includeFollowing | boolean | false | Include the list of accounts each user follows. |
maxFollowers | integer | 0 | Cap followers per user. 0 = all. |
maxFollowing | integer | 0 | Cap following per user. 0 = all. |
includeEngagementRecords | boolean | false | Include the user's own likes, reposts, lists, and blocks. |
downloadMedia | boolean | false | Save image and video files to storage and link them on each post. |
includeConnectionProfiles | boolean | true | Full profile per follower / following entry. Set false for handle, display name, and ID only (much smaller output on large audiences). |
includePostEmbeds | boolean | false | Advanced. Also attach the raw, unprocessed embed structure to each post. The clean media / links / externalLink / quotedPost fields are always present. |
includeRawPostRecord | boolean | false | Advanced. Also attach each post's raw underlying record. Clean text, timestamps, and counts are always present. |
includeRawRecords | boolean | false | Advanced. Also attach the raw underlying value of each archival record (likes, reposts, lists, and the rest). The clean flat form is always present. |
maxResults | integer | 0 | Maximum number of users to scrape. 0 = no limit. |
Provide at least one of profileUrls, searchTerms, postSearchTerms, feedUrls, or scrapeAllAccounts.
What Data Can You Extract from W Social?
Every result is one user, with everything nested inside:
- Profile: handle, display name, description, avatar, banner, follower / following / post counts, account creation date, labels, verification status, and account type (person, organization, bot).
- Identity verification: for verified humans, the full verification record: approving authority, verification timestamp, and fine-grained account type (
wsocialVerification). - Posts: text, creation time, languages, like / repost / reply / quote / bookmark counts, plus clean
links,hashtags,mentions,externalLink, andquotedPostfields, and reply / repost context. - Media: image and video links per post with thumbnail, alt text, and dimensions, optionally downloaded to storage.
- Graph: followers and following lists (each a full profile view).
- Archival records: everything the user wrote to their account beyond posts: likes and reposts given, lists and their members, blocks, starter packs, and per-post reply / quote controls.
Output Example
{"did": "did:plc:e3bwgswz6lniwjadqqfno3c4","handle": "wsocial.eu","displayName": "W Social","description": "We believe in the need for a global, trusted social media platform owned, run, and hosted in Europe.","avatar": "https://cdn.example/avatar/wsocial.jpg","banner": "https://cdn.example/banner/wsocial.jpg","followersCount": 1872,"followsCount": 113,"postsCount": 62,"createdAt": "2026-03-04T14:40:42.058Z","indexedAt": "2026-03-10T09:43:19.849Z","labels": [],"associated": {"lists": 3, "feedgens": 0, "starterPacks": 0, "labeler": false},"verification": {"verifiedStatus": "valid", "trustedVerifierStatus": "none"},"wsocialVerified": "admin","wsocialAccountType": "organization","wsocialVerification": {"accountType": "organization", "approvedByDid": "did:plc:am3r5ugi44s26fwouvel7mrz", "adminVerifiedAt": "2026-04-02T09:12:00.000Z", "createdAt": "2026-04-02T09:12:00.000Z"},"posts": [{"id": "3moiotljpns2y","cid": "bafyreib7ntnp65zxmoginsvagsd6zdxeznxvyvfbxeavsqinkviwdkaokq","text": "Today I am joining W. Launch details: wsocial.eu #WSocial","createdAt": "2026-06-17T16:03:25.361Z","indexedAt": "2026-06-17T16:03:34.365Z","langs": ["en"],"likeCount": 112,"repostCount": 30,"replyCount": 13,"quoteCount": 6,"bookmarkCount": 2,"author": {"did": "did:plc:e3bwgswz6lniwjadqqfno3c4", "handle": "wsocial.eu", "displayName": "W Social", "avatar": "https://cdn.example/avatar/wsocial.jpg"},"media": [{"type": "image", "url": "https://cdn.example/feed/full.jpg", "thumb": "https://cdn.example/feed/thumb.jpg", "alt": "Launch banner", "width": 1200, "height": 800, "kvUrl": "https://api.apify.com/v2/key-value-stores/STORE_ID/records/media_ab12cd34.jpg"}],"links": [{"url": "https://wsocial.eu", "text": "wsocial.eu", "start": 38, "end": 48}],"hashtags": [{"tag": "WSocial", "start": 49, "end": 57}],"mentions": [{"did": "did:plc:axqfxntrrgfanh4pguuhsknp", "start": 0, "end": 8}],"labels": [],"_source": "indexed"},{"id": "3molpg5kcx22z","cid": "bafyreih7c3p7w2n5xqz6tjk4l8vd9m0aqfh2bewxn3rytl5sgkq8m4od2u","text": "Thanks, and welcome to W! More on the roadmap here.","createdAt": "2026-06-17T18:10:00.000Z","langs": ["en"],"likeCount": 8, "repostCount": 0, "replyCount": 1, "quoteCount": 0, "bookmarkCount": 0,"replyTo": {"root": {"id": "3molnheuu222g", "cid": "bafyreifzncqbobfdyogsg4la442mhp3atfvrp6g4l3a4weayopgcsjj6ai"},"parent": {"id": "3molnheuu222g", "cid": "bafyreifzncqbobfdyogsg4la442mhp3atfvrp6g4l3a4weayopgcsjj6ai"}},"quotedPost": {"id": "3mijbjrew7c27", "cid": "bafyreietzacyu4v3voogw3ui6rygfqhlmejain3oqazgnwj576vmqig3tm", "author": "matnil01.wsocial.eu", "text": "The next 90 days are about direction.", "media": [{"type": "image", "url": "https://cdn.example/feed/quoted.jpg"}]},"externalLink": {"url": "https://europa.eu/digital", "title": "Europe's digital future", "description": "Policy overview and roadmap.", "thumb": "https://cdn.example/ext/thumb.jpg"},"media": [{"type": "video", "url": "https://cdn.example/feed/clip.m3u8", "thumb": "https://cdn.example/feed/clip-thumb.jpg", "width": 720, "height": 1280}],"links": [], "hashtags": [], "mentions": [],"_source": "indexed"}// ... more posts],"followers": [{"did": "did:plc:axqfxntrrgfanh4pguuhsknp", "handle": "matnil01.wsocial.eu", "displayName": "Mathias", "description": "Building in public.", "avatar": "https://cdn.example/avatar/mathias.jpg", "createdAt": "2026-04-01T09:00:00.000Z", "indexedAt": "2026-04-02T09:00:00.000Z", "labels": [], "associated": {"lists": 0, "feedgens": 0, "starterPacks": 0, "labeler": false}}// ... more followers],"following": [{"did": "did:plc:zk4f2m9q7w", "handle": "news.wsocial.eu", "displayName": "W News", "avatar": "https://cdn.example/avatar/news.jpg", "labels": []}// ... more following],"engagementRecords": {"likes": [{"id": "3molm5ikwp423", "cid": "bafyreicssfvamvsbwbh3gemov46kvq3qy25wnfycpaegkadj5fmzynhzeq", "subject": {"id": "3mokjupgsk22l", "cid": "bafyreidn5x2k7q9w", "author": "did:plc:zk4f2m9q7w"}, "createdAt": "2026-06-17T15:00:00.000Z"}// ... more likes],"reposts": [{"id": "3mol9qf2xa11p", "cid": "bafyreih2w8t6", "subject": {"id": "3mok7yd1ze99k", "cid": "bafyreif3p0m1", "author": "did:plc:6tvg32cgfb7e"}, "createdAt": "2026-06-17T15:10:00.000Z"}],"lists": [{"id": "3mok1ab2cd33e", "cid": "bafyreil0p9q8", "name": "Founders", "purpose": "curatelist", "description": "People building in Europe.", "createdAt": "2026-05-01T10:00:00.000Z"}],"listItems": [{"id": "3mok1cd4ef55g", "cid": "bafyreim3n2p1", "list": "3mok1ab2cd33e", "subject": "did:plc:zk4f2m9q7w", "createdAt": "2026-05-01T10:05:00.000Z"}],"blocks": [],"starterPacks": [{"id": "3mok2gh5ij77k", "cid": "bafyreio7q6r5", "name": "Interesting people on W", "description": "Active, interesting voices to follow.", "list": "3mok1ab2cd33e", "feeds": [], "createdAt": "2026-05-10T11:59:02.483Z"}],"threadgates": [],"postgates": []},"_meta": {"sources": ["indexed"], "complete": true, "postsTruncated": false},"_input": "wsocial.eu"}
author, verification, kvUrl, replyTo, repostOf, quotedPost, and externalLink appear only when relevant: verification and wsocialVerification on verified accounts, kvUrl when downloadMedia is on, replyTo / quotedPost / externalLink on replies, quotes, and link-card posts, and repostOf on reposts. followers, following, and engagementRecords appear only when their toggles are enabled.
Posts carry a _source flag and the row carries _meta so you can tell at a glance how complete each record is.
Advanced Usage
Ready-made configurations for audience research, profile monitoring, media archiving, and full-network collection.
Archive a profile with all media files
{"profileUrls": ["wsocial.eu"],"maxPostsPerProfile": 0,"downloadMedia": true}
Map an account's full audience
{"profileUrls": ["wsocial.eu"],"includePosts": false,"includeFollowers": true,"includeFollowing": true}
Slim output for a large audience
{"profileUrls": ["wsocial.eu"],"includeFollowers": true,"includeFollowing": true,"includeConnectionProfiles": false}
Followers and following come back as handle, display name, and ID only. On accounts with large audiences this cuts the result size by roughly two thirds, since the connection lists are most of the data.
Collect the whole network
{"scrapeAllAccounts": true,"maxPostsPerProfile": 10}
Deep profile with engagement history
{"profileUrls": ["wsocial.eu"],"includeEngagementRecords": true,"maxPostsPerProfile": 200}
Pricing: Pay Per Event (PPE)
You pay only for what you collect. Profiles and posts are the core product; connections and media downloads are optional and priced lower.
| Event | Per 1,000 |
|---|---|
| Profile result | $2.99 |
| Post result | $2.99 |
| Follower / following entry | $0.99 |
| Media file downloaded | $1.99 |
FAQ
What is W Social (wsocial.eu)?
W Social, also written wsocial or simply W, is a European microblogging network based in Brussels, built around verified human users, privacy, and free speech. Accounts use handles like name.wsocial.eu. This actor turns any W Social user into a structured record of their profile, posts, and connections.
Do I need a W Social account or invite? No. W Social signup is invite-gated, but this actor reads publicly visible profiles and posts without any account, invite, or credentials. Provide a handle or profile link and run.
How many users can I scrape?
As many as you want. Target specific profiles, search by keyword, or turn on whole-network collection. Use maxResults and the per-profile caps to control volume and cost.
Can I search posts by keyword?
Yes. Put a word or phrase in postSearchTerms and every user with a matching post comes back as a result row, with their posts list narrowed to just the posts that matched. Matching is case-insensitive and a post matches if it contains any one of your terms.
What is the difference between searchTerms and postSearchTerms?
searchTerms looks at who someone is: it matches names, handles, and profile descriptions. postSearchTerms looks at what people wrote: it matches the text of posts. Post search also reaches every account on the network, including very new ones that name search does not surface yet.
Can I scrape a feed?
Yes. Put a feed's link or identifier in feedUrls and every user who appears in that feed comes back as a result row, with their posts narrowed to the posts the feed surfaced. Point it at any public feed on the network.
Can I get posts with like and repost counts? Yes. Every post includes like, repost, reply, quote, and bookmark counts, alongside the post text, media, and reply or repost context.
Can I see who is a verified human on W Social, and who verified them?
Yes. W Social's badge marks identity-verified humans, and this actor returns the underlying record in wsocialVerification: the approving authority, the verification timestamp, and a fine-grained account type (personal, organization, service, bot). Accounts that are not identity-verified simply have no wsocialVerification field.
Can I download the images and videos?
Yes. Turn on downloadMedia to save each image and video file to storage; the saved file link is added to its post. Leave it off to keep the direct media links only.
Can I also get who a user follows?
Yes. Turn on includeFollowers and includeFollowing. Each entry is a full profile, and you can cap the lists with maxFollowers and maxFollowing on large accounts.
Can I make the output smaller?
Yes. Every result is complete by default, but three switches slim it down when you don't need everything. Turn off includeConnectionProfiles to get followers and following as handle, display name, and ID only; this is the biggest saving, since on accounts with large audiences the connection lists are most of the data. Turn off includePostEmbeds to keep just the resolved media links on each post. Turn off includeRawPostRecord to keep only the top-level post text, timestamps, and counts. Mix and match whichever you need.
How fresh is the data? Each run fetches live data at the moment it runs. Engagement counts, follower numbers, and new posts reflect the current state. Post search is checked against the network at the start of every run, so posts published moments earlier are included.
How do I export the data? Download results as JSON, CSV, Excel, XML, or HTML from the run's Storage tab, or pull them through the Apify API. JSON preserves the nested posts and followers best; flat formats expand nested fields into columns.
Is it legal to scrape W Social data? This actor extracts only publicly available data, nothing behind a login. Profiles, posts, and reviewer names are personal data, so you are responsible for complying with W Social's terms and applicable data protection law, including the EU GDPR.
Support
- Bugs: Issues tab
- Features: Issues tab
Legal Compliance
Extracts publicly available data. Users must comply with W Social terms and data protection regulations (GDPR, CCPA).
Scrape W Social profiles, posts, engagement counts, and followers into one structured record per user.