Operated by Sourcelane✓ verified
Scrapes every account on a public X (Twitter) list without requiring login or cookies, extracting per-account profile metadata and list context for large-scale list harvesting. The connector collects profile identifiers and display names, bios/descriptions, location and personal URLs, profile and banner image links, account creation timestamp, verification states (legacy and premium checks and verification type), messaging/automation flags, engagement metrics (follower counts, following counts, post/tweet counts, media and like counts), and whether an account is a curated list member or a list subscriber. It supports traversing paginated list results via continuation cursors to enumerate hundreds or thousands of accounts and can resume multi-run extraction using the pagination cursor.
Verified Sep 28, 3:56 AM
$0.0012
per user
Up to 100 per call. Only pay for results returned; failed calls are refunded.
| Window | Uptime | Success rate | p50 | p95 | Calls |
|---|---|---|---|---|---|
| 24h | — | — | — | — | 0 |
| 7d | — | — | — | — | 0 |
| 30d | — | — | — | — | 0 |
Call it through Sourcelane's gateway or MCP server. We run the connector, apply your agent's spend guardrails, and bill only the results returned.
Call it via Sourcelane
curl -X POST https://api.usesourcelane.com/v1/call \
-H "Authorization: Bearer sl_live_your_agent_key" \
-H "Content-Type: application/json" \
-d '{"listing":"x-list-members-scraper","params":{"listId":"84839422","maxItems":5},"maxResults":10}'Request params
| Field | Type | Required | Description |
|---|---|---|---|
listId | string | required | X (Twitter) list ID (e.g. 84839422) or full list URL (e.g. https://x.com/i/lists/84839422). |
mode | string | optional | Members = the accounts curated into the list. Followers = the accounts subscribed to receive the list. |
maxItems | integer | optional | Maximum users to return. Set 0 for unlimited (stops ~60s before connector timeout). Capped at 100 per call. |
pageId | string | optional | Optional. Cursor from a previous run's NEXT_PAGE_ID record in the Key-value store. Pass to resume from where the previous run stopped. |
Each result contains
| Field | Type | Description |
|---|---|---|
scrapedFromListId | string | Scraped From List Id |
membership | string | Membership |
userId | string | User Id |
username | string | Username |
name | string | Name |
description | string | Description |
location | string | Location |
url | string | Url |
isVerified | boolean | Is Verified |
isBlueVerified | boolean | Is Blue Verified |
verifiedType | string | Verified Type |
protected | boolean | Protected |
followersCount | integer | — |
followingCount | integer | — |
tweetsCount | integer | — |
mediaCount | integer | — |
likesCount | integer | — |
createdAt | string | — |
profilePicture | string | — |
coverPicture | string | — |
canDm | boolean | — |
isAutomated | boolean | — |
profileUrl | string | — |
Pick your tool and connect in under a minute. Then just ask — for example: “Find the 50 most-liked tweets about 'MCP servers' this month and summarise the takes.”
Connect Claude
Web, desktop and mobile. Paste one URL.
Adds the Sourcelane MCP server with your key as a header.
claude mcp add --transport http sourcelane https://api.usesourcelane.com/mcp \
--header "Authorization: Bearer sl_live_your_agent_key"Alternative to the connector URL: add to claude_desktop_config.json, then restart Claude.
{
"mcpServers": {
"sourcelane": {
"command": "npx",
"args": [
"-y",
"mcp-remote",
"https://api.usesourcelane.com/mcp",
"--header",
"Authorization:${AUTH_HEADER}"
],
"env": {
"AUTH_HEADER": "Bearer sl_live_your_agent_key"
}
}
}
}Add to ~/.cursor/mcp.json (or Windsurf's mcp_config.json).
{
"mcpServers": {
"sourcelane": {
"url": "https://api.usesourcelane.com/mcp",
"headers": {
"Authorization": "Bearer sl_live_your_agent_key"
}
}
}
}Save as .vscode/mcp.json. VS Code prompts for your key once.
{
"servers": {
"sourcelane": {
"type": "http",
"url": "https://api.usesourcelane.com/mcp",
"headers": {
"Authorization": "Bearer ${input:sourcelane-key}"
}
}
},
"inputs": [
{
"type": "promptString",
"id": "sourcelane-key",
"description": "Sourcelane agent key",
"password": true
}
]
}Create a GPT → Actions → Import from URL, then Authentication: API Key, Bearer.
https://usesourcelane.com/openapi.jsonOne POST. Pass maxResults to cap cost.
curl -X POST https://api.usesourcelane.com/v1/call \
-H "Authorization: Bearer sl_live_your_agent_key" \
-H "Content-Type: application/json" \
-d '{"listing":"x-list-members-scraper","params":{"listId":"84839422","maxItems":5},"maxResults":10}'Wrap the REST call as a tool, or point an MCP client at the endpoint.
import requests
res = requests.post(
"https://api.usesourcelane.com/v1/call",
headers={"Authorization": "Bearer sl_live_your_agent_key"},
json={
"listing": "x-list-members-scraper",
"params": {"listId":"84839422","maxItems":5},
"maxResults": 10,
},
timeout=300,
)
body = res.json()
print(body["receipt"]["chargedMicros"], "micro-USD for", body["receipt"]["results"], "results")
print(body["data"])—
0 reviews
Leave a review
Loading reviews…