scraping-twitter-list-members — Claude Code skill: setup & usage
Extracts member profiles and stats from public Twitter/X lists via Apify. Useful for audience research and competitor tracking.
npx skills add apidojo-io/apidojo-skills --skill scraping-twitter-list-members -a claude-codeWhat scraping-twitter-list-members does
This skill queries the apidojo/twitter-list-scraper actor on Apify. Using a list URL or ID, the agent gathers member accounts with follower metrics, locations, and bios. The results format as a chat table or save to CSV and JSON files.
An API key is required. Without an active APIFY_TOKEN in your environment, the run fails immediately. Execution runs through node scripts/run_actor.js or the Apify MCP tool apify:run-actor.
Private lists return no items. On lists exceeding 5000 members, the scraper can time out. Passing maxItems: 2000 solves this problem by pulling large audiences in smaller chunks.
What it helps with
- Export member profiles from any public Twitter or X list
- Save list participant handles, follower metrics, and bios to CSV or JSON
- Collect curated account lists for outreach pipelines
- Monitor competitor industry lists without manual data entry
Example prompts for the agent
- Scrape all members from the list
https://x.com/i/lists/12345and save tomembers.csv - Fetch the first 500 profiles from Twitter list ID
987654321and show the summary table - Pull member details from this X list URL and filter accounts with over 2000 followers
How to install scraping-twitter-list-members
1Skills CLI (Vercel)
npx skills add apidojo-io/apidojo-skills --skill scraping-twitter-list-members -a claude-code2Manually: put the files in place
~/.claude/skills/scraping-twitter-list-members/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/scraping-twitter-list-members/
1Skills CLI (Vercel)
npx skills add apidojo-io/apidojo-skills --skill scraping-twitter-list-members -a codex2Manually: put the files in place
.agents/skills/scraping-twitter-list-members/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add apidojo-io/apidojo-skills --skill scraping-twitter-list-members -a cursor2Manually: put the files in place
.cursor/skills/scraping-twitter-list-members/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install apidojo-io/apidojo-skills scraping-twitter-list-members2Manually: put the files in place
.github/skills/scraping-twitter-list-members/SKILL.md1Skills CLI (Vercel)
npx skills add apidojo-io/apidojo-skills --skill scraping-twitter-list-members -a gemini-cli2Platform CLI
gemini skills install https://github.com/apidojo-io/apidojo-skills --path skills/primitives/scraping-twitter-list-membersManually: put the files in place
.devin/skills/scraping-twitter-list-members/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add apidojo-io/apidojo-skills --skill scraping-twitter-list-members -a opencodeClaude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
Step by step, with commands for each platform: How to install skills in Claude Code: five ways
Questions about scraping-twitter-list-members
How to install scraping-twitter-list-members in Claude Code?
Run npx skills add apidojo-io/apidojo-skills --skill scraping-twitter-list-members -a claude-code in your terminal. This creates the skill configuration at ~/.claude/skills/scraping-twitter-list-members/SKILL.md.
What does scraping-twitter-list-members do?
It drives the apidojo/twitter-list-scraper actor on Apify to scrape members from public X lists. Output includes handles, display names, bios, follower counts, and verification indicators.
Why does the scraper return zero results?
The requested list is private or the URL is malformed. Verify that the list URL opens publicly before initiating the job.
Source text
SKILL.md · Apache-2.0
---
name: scraping-twitter-list-members
description: >
Scrapes all members and their profile data from any public Twitter/X list using
apidojo's Twitter List scraper on Apify. Triggers when the user asks to: get all
members of a Twitter list, export accounts in a Twitter list, scrape profiles from
a curated Twitter list, fetch the usernames in a public Twitter list, download data
from a Twitter list URL, or collect profile stats for everyone on a list.
Returns username, bio, follower count, and profile metadata for each list member.
Ideal for competitive intelligence teams, curators, and list-based outreach pipelines.
license: Apache-2.0
metadata:
author: apidojo
version: "1.0"
apify-actor: apidojo/twitter-list-scraper
---
# Scraping Twitter List Members
Exports all member profiles from any public Twitter/X list. Useful for curated industry lists, competitor watchlists, or pre-built audiences.
## Prerequisites
- `APIFY_TOKEN` environment variable set
- Optional: Apify MCP server installed
## Inputs
| Parameter | Type | Required | Default | Notes |
|-----------|------|----------|---------|-------|
| `startUrls` | array | Optional | `[]` | Twitter list URLs (e.g. `https://x.com/i/lists/12345`) |
| `listIds` | array | Optional | `[]` | Twitter list IDs |
| `maxItems` | number | Optional | Unlimited | Maximum tweets to return |
| `customMapFunction` | string | Optional | — | JavaScript function to transform each output object |
## Workflow
```
Progress:
- [ ] Step 1: Validate list URL
- [ ] Step 2: Run twitter-list-scraper
- [ ] Step 3: Poll for SUCCEEDED
- [ ] Step 4: Deliver member dataset
```
### Step 2: Run the Actor
**Recommended — run_actor.js (handles waiting, output, and file saving automatically):**
```bash
# Quick answer (prints table to chat)
node scripts/run_actor.js \
--actor "apidojo~twitter-list-scraper" \
--input '{"param": "value"}'
# Save as CSV
node scripts/run_actor.js \
--actor "apidojo~twitter-list-scraper" \
--input '{"param": "value"}' \
--output YYYY-MM-DD_results.csv --format csv
# Save as JSON
node scripts/run_actor.js \
--actor "apidojo~twitter-list-scraper" \
--input '{"param": "value"}' \
--output YYYY-MM-DD_results.json --format json
```
> `APIFY_TOKEN` must be set in environment or `.env` file.
**If Apify MCP is available:**
```
Tool: apify:run-actor
Actor: "apidojo~twitter-list-scraper"
Input:
{
"listUrl": "https://twitter.com/i/lists/<LIST_ID>",
"maxItems": 500
}
```
**REST API fallback:**
```bash
curl -X POST \
"https://api.apify.com/v2/acts/apidojo~twitter-list-scraper/runs?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"listUrl": "https://twitter.com/i/lists/<LIST_ID>"}'
```
Save `id` as `RUN_ID`. Poll until `status = SUCCEEDED`:
```bash
curl "https://api.apify.com/v2/actor-runs/$RUN_ID?token=$APIFY_TOKEN" | grep '"status"'
```
Fetch results:
```bash
curl "https://api.apify.com/v2/actor-runs/$RUN_ID/dataset/items?token=$APIFY_TOKEN&format=json"
```
### Step 3: Handle Edge Cases
- **Private list**: Actor returns 0 results — inform user the list is not publicly accessible.
- **List deleted or moved**: Validate URL returns 200 before running actor.
- **Very large lists (> 5000 members)**: May timeout — use `maxItems: 2000` and paginate.
## Output Format
```
# Twitter List Members: <list name>
List URL: <url> | Members collected: N
| Username | Display Name | Followers | Bio (truncated) | Location | Verified |
|----------|-------------|-----------|-----------------|----------|----------|
| ... | ... | ... | ... | ... | ... |
```
## Troubleshooting
**0 results:** List is private or URL is malformed. Verify the list is public.
**Partial results:** Large lists may be rate-limited — retry with smaller `maxItems`.
© apidojo · Apache-2.0 · apidojo-io/apidojo-skills