New features, improvements, and fixes to Scrapely.
In the terminal, run npm install -g scrapely-mcp to update to version 1.18.1. Using Scrapely in Claude.ai? Disconnect and reconnect the Scrapely integration so Claude sees the new tools.
Every conversation from the API, MCP and terminal now shows the campaign and the exact message the lead replied to, plus which of the campaign's message variants it was. That makes it easy to group replies by variant and see which message works best. You can also list only the replies to one campaign: scrapely conversations list --campaign-name "October launch".
The "Reassign pending DMs" option from your dashboard now works outside it too. Pick the accounts to take DMs from and the accounts to give them to, and Scrapely splits them evenly. Try it first with a preview that shows exactly what would move without changing anything. The account list now also shows how many DMs are waiting on each account, so you (or your AI agent) can see which ones are backed up. In the terminal: scrapely accounts reassign-pending --from-account-ids <id> --to-account-ids <id> --dry-run. In MCP server v1.18.0, use the new reassign_pending_dms tool. See "Reassign Pending DMs" in the docs.
From version 1.17.0, Scrapely in your terminal lets you know when a newer version is out, with the two commands to update: npm install -g scrapely-mcp, then scrapely setup-agent. It checks once a day and never slows your commands. AI agents pass the message on to you and update only after you say yes. Update now to get it: npm install -g scrapely-mcp.
Give a handle and get back the person's name, bio, website links, follower counts, profile picture, verified badge and location. Links show the real website, not a t.co short link. It's free and doesn't use enrichment credits. Use it from the API, from the terminal (scrapely enrich profile --handle elonmusk), or in MCP server v1.16.0 with the new enrich_profile tool. See "Get X Profile" in the docs.
Install with npm i -g scrapely-mcp, run scrapely login, and every Scrapely action is a command: scrapely campaigns list, scrapely dm send, scrapely people search and more. You get readable tables, or --json for scripts. Commands that send DMs, launch campaigns or spend credits ask before they run. Run scrapely --help to see everything.
Run scrapely setup-agent once and Claude Code, Codex, Cursor and other coding agents know how to use Scrapely for you. They show you what they're about to do and wait for your OK before sending DMs, launching campaigns or spending credits.
Agencies can save one login per workspace (scrapely login --profile clientname) and pick one per command with --profile. Before anything changes, the confirmation names the workspace, so you never act on the wrong client by mistake.
List, add and remove webhooks, set or regenerate a webhook key, turn webhooks on or off, and send a test event, without opening the dashboard. Scrapely can generate a strong webhook key for you; it's shown once, so save it right away. In MCP server v1.15.0, use the new webhook tools. See "Webhooks" in the docs.
The "Send Webhook for All Replies" switch has been removed from Integrations. You choose which events send a webhook, including follow-up replies in a conversation, in Settings → Notifications.
You can now have up to 10 webhook URLs. If you already have more, they all keep working; you just can't add new ones until you're under 10.
Webhooks are now sent through Cloudflare's network instead of directly from our servers. If your firewall only accepts requests from certain IP addresses, allow Cloudflare's ranges (cloudflare.com/ips). Webhooks no longer follow redirects, so if your URL redirects (for example from http to https), update it to the final address. Webhook URLs must now start with https:// and use a domain name rather than an IP address, so every webhook is encrypted on its way to you.
Every new follower and new following your follower listeners detect is now saved, even if your webhook was down. Look them up anytime and filter by watched account, followers or following, date range, the person's handle, a keyword in their name or bio, follower count or verified status. In MCP server v1.10.0, use the new get_listener_events tool. See "Query Listener Events" in the docs.
The extra columns you import with an import campaign (like first_name, company or a booking link) are now returned as custom_fields on each lead in Fetch Conversations and Get CRM Conversations, and included in new_reply and reply_back_and_forth webhooks. Your reply automation can use them the moment someone replies. If someone is in more than one import campaign, you get the columns from the campaign that messaged them from that account. See "Fetch Conversations" and "Webhooks" in the docs.
Get all leads in a campaign with their status, sending account, reply info and custom_fields, paginated and filterable by status, replied or handle. In MCP server v1.12.0, use the new get_campaign_leads tool. See "Campaign Leads" in the docs.
New MCP tools add_leads_to_campaign (by handle, any number, sent in chunks automatically) and add_lead_source_to_campaign (a whole scrape or import). The Add Lead endpoint no longer stops at 1,000 handles, and adding leads now checks for duplicates correctly in very large campaigns.
When you add leads or a lead source to a campaign, they're now spread across all of the campaign's active accounts, including paused ones. Inactive accounts are skipped. This works the same in the dashboard, the API and MCP.
Add a Discord webhook URL in Settings > Integrations and replies, follower listener events and account alerts are posted to your channel as readable messages, the same as Slack.
You no longer need an X-Webhook-Key header to add a webhook. Leave the secret blank to send without one, or set one to verify requests come from Scrapely.
The docs now cover Update Account Handle, Get Lead Source Leads, Check Enrichment Credits and Report a Problem, along with everything above. The MCP Setup section lists all 48 MCP tools, and the Rate Limits section shows the correct default of 120 requests per minute.
Leads added to an existing campaign (from the dashboard, the API or MCP) could be messaged outside the campaign's send window. They now get exactly the campaign's settings: message versions and images, follow-ups, engagement actions, location filters and send window.
Add Lead now takes leads with their own custom_fields (and comment), so leads you add to an import campaign fill its {{columns}} just like the original import. If you add leads without the columns a campaign's messages use, you'll see a warning in the dashboard, the API response and MCP. In MCP server v1.13.0, add_leads_to_campaign accepts leads with custom_fields. See "Add Lead to Campaign" in the docs.
Some follower scrapes finished with 0 leads when the account doing the scraping had been temporarily locked by X. Scrapes now switch to another account straight away and keep going.
The "active in the last X hours" filter on lead sources was being skipped for a short time, so inactive leads could get through. It's working again for all new scrapes.
Follower listeners recover faster from connection errors, so fewer checks are missed and new followers show up sooner.
Rename any campaign from the ... menu on the Campaigns page. All DMs, follow-ups, stats and its paused or running state carry over to the new name. Names must be unique, including names used by deleted campaigns.
Rename a campaign programmatically with the new rename endpoint, or with the rename_campaign tool in MCP server v1.7.0. After a rename, use the new name in your API calls. See "Rename Campaign" in the docs.
Upload a JPEG, PNG, GIF or WebP image (up to 5MB) from a public link or as base64 with the new media upload endpoint, then add its media_url to a message variant or follow-up when you launch, import or edit a campaign. In MCP server v1.8.0, use the new upload_media tool and the media_url fields on launch_campaign, launch_import_campaign and edit_campaign. See "Upload Media" in the docs.
Watch up to 25 X accounts from Settings > Integrations and get a webhook whenever one gains a new follower (new_follower) or follows someone new (new_following). Each event includes the person's profile, and you can pick followers, following or both, and pause or remove a listener anytime.
List, add, update and remove listeners with the new follower listeners endpoint, using the same rules as the dashboard. In MCP server v1.9.0, use the new list_listeners, add_listener, update_listener and remove_listener tools.
Import campaigns now support up to 50 message versions, just like regular campaigns. Each version gets its own follow-ups, and every lead is randomly assigned one so you can see which message gets more replies.
Send your own lead list with custom columns straight from the API or MCP and launch a campaign in one step. Supports message versions, follow-ups, engagement actions and sending hours.
Choose which hours, timezone and days of the week your import campaign sends DMs, right when you launch it.
Add up to 25 follow-ups to every message version, in both regular and import campaigns. You can also attach images to follow-ups in import campaigns.
Deleting a campaign now stops all sending and removes it from your list instantly, while your replies and conversations stay in your inbox. You'll see exactly what happens before you confirm.
Import a CSV directly from the Import CSV tab. Large files, emojis and special characters in bios, and follower counts like 12.5K are all handled correctly. After importing you'll see how many leads were added, skipped as duplicates, or invalid.
Duplicate handles in your import file are removed automatically, and if an import is interrupted you can relaunch it safely. Leads already queued won't be messaged twice.
Conversations from accounts that were paused, banned or removed now open normally in your inbox instead of showing a blank screen.
Two new filters when building a lead list: only keep leads with DMs open (or closed), and only keep leads active within the last X hours. Target people who can actually receive your message and are active on the platform.
Attach images to your initial DM and every follow-up - in the campaign builder and the edit-campaign modal. Images are stored and sent automatically.
When adding leads to a campaign, paused or inactive accounts are now skipped so leads are only assigned to accounts that can send.
Removing multiple accounts now happens in parallel instead of one at a time.
Search millions of Twitter/X profiles by bio keywords, location, follower count, website, and more. Available via the API and MCP server.
Configure which hours, timezone, and days of the week DMs are sent - right from the campaign builder. No need to edit after launching.
The follow-before-DM setting now works correctly when launching campaigns.
New API endpoints to pause, unpause, and edit campaign settings like messages, follow-ups, engagement actions, and send windows - all programmatically.
New option in the campaign menu to remove all leads from that campaign from your blocklist, so they can be contacted again in future campaigns.
Add or remove individual handles from your DM blocklist. Search through blocked users and manage them one by one from the Accounts page.
New API endpoints to list, add, and remove blocklist entries programmatically. Search by handle and manage your blocklist from any integration.
Email lookups now return results in 5-10 seconds (down from 10-30). Improved accuracy across the board.
Pause or resume any campaign from the 3 dot menu. Paused campaigns stop sending DMs instantly and resume right where they left off.
Campaign stats, CRM, and lead sources now load significantly faster.
New conversation stats endpoint with DM seen rate and reply rate analytics. See exactly how your campaigns are performing.
Re-adding a previously removed Twitter account no longer returns a conflict error.
Soft-deleted accounts no longer count toward your plan limit. Re-add accounts freely without hitting caps.
Removing an account now preserves all DM history and analytics. Re-add it anytime without losing data.
Analytics now correctly include DM history from accounts that have been removed.
See when your DMs have been read by the prospect. Seen status available in the inbox, via webhooks, and in notifications.
Enable or disable account warmup programmatically. Available in the public API and MCP server v1.4.0.
You can now create up to 50 message variants per campaign step, up from 5.
Get notified via webhook every time a DM is sent. Push real-time send data to your CRM, Slack, or any tool.
Programmatic access to campaigns, leads, conversations, and enrichment. Generate API keys from your dashboard.
Scrape users who commented on specific tweets. A new way to find engaged, high-intent leads.
Push Twitter handles directly into a campaign via the API. Skip the scraping step for leads you already have.
Find verified work emails for any Twitter lead. Available in the dashboard and the API.
Connect Scrapely to any AI agent or assistant via the Model Context Protocol. Manage campaigns, enrich leads, and send DMs from Claude, Cursor, or any MCP-compatible client.