Automate bulk direct messaging on Instagram — intelligent outreach with progress tracking.
Quick Start • Features • Configuration • FAQ • Contributing
Instagram DM Bulk Sender is a free, open-source Instagram automation tool built with Python and Selenium. It automates sending direct messages to multiple Instagram profiles from a CSV list. Instead of messaging contacts one by one, this bot handles the entire process with human-like delays and progress tracking.
Whether you're doing outreach, networking, or community engagement, this tool saves hours of manual work while keeping your account safe with intelligent delay patterns.
- Growth Hackers running DM outreach campaigns at scale
- Digital Marketers engaging with prospects and influencers
- Community Managers sending announcements to members
- Startup Founders doing cold outreach to potential customers
- Freelancers reaching out to potential clients
- Content Creators building relationships with their audience
- Bulk DM Sending - Automated messaging to multiple Instagram profiles
- Progress Tracking - Tracks sent messages, resume where you left off
- Secure Credentials - Environment variables via .env file (never hardcoded)
- Multi-Browser - Firefox & Chrome support with automatic driver management
- Human-Like Delays - Randomized timing between actions (8-15 seconds)
- Auto-Save - Progress saved after each message
- Branded CLI - Beautiful terminal interface powered by Rich
- Cross-Platform - Works on Windows, macOS, and Linux
- Free & Open Source - MIT license, no API key required
| Requirement | Details |
|---|---|
| Python | Version 3.9 or higher (Download) |
| Firefox or Chrome | Latest version installed |
| Instagram Account | A valid Instagram account |
# 1. Clone the repository
git clone https://github.com/SoCloseSociety/InstagramMpBulk.git
cd InstagramMpBulk
# 2. (Recommended) Create a virtual environment
python -m venv venv
# Activate it:
# Windows:
venv\Scripts\activate
# macOS / Linux:
source venv/bin/activate
# 3. Install dependencies
pip install -r requirements.txtcp .env.example .envEdit .env with your Instagram credentials:
INSTAGRAM_EMAIL=your_email@example.com
INSTAGRAM_PASSWORD=your_password- Add target usernames to
profile_links.csv(one per line):
username1
username2
username3Both plain usernames and full Instagram URLs are supported.
- Write your message in
message.txt:
Hello!
I'd love to connect with you.
python main.pyThe bot will open a browser, log in, and start sending messages. If 2FA is required, complete it manually in the browser then press ENTER to continue.
profile_links.csv message.txt
│ │
▼ ▼
┌─────────────────────────────────────┐
│ SoClose DM Engine │
│ │
│ 1. Launch browser │
│ 2. Login to Instagram │
│ 3. For each profile: │
│ → Navigate to profile │
│ → Click "Message" │
│ → Type & send message │
│ → Save progress │
│ 4. Report results │
└─────────────────────────────────────┘
│
▼
already_send_message.csv
| Variable | Default | Description |
|---|---|---|
INSTAGRAM_EMAIL |
— | Instagram login email |
INSTAGRAM_PASSWORD |
— | Instagram login password |
BROWSER |
firefox |
Browser to use (firefox or chrome) |
HEADLESS |
false |
Run browser without visible window |
MESSAGE_FILE |
message.txt |
Path to message template |
PROFILES_FILE |
profile_links.csv |
Path to target profiles CSV |
SENT_FILE |
already_send_message.csv |
Sent messages tracking file |
MAX_MESSAGES |
10000 |
Maximum messages per session |
MIN_DELAY |
8 |
Minimum delay between actions (seconds) |
MAX_DELAY |
15 |
Maximum delay between actions (seconds) |
InstagramMpBulk/
├── main.py # Main automation script
├── requirements.txt # Python dependencies
├── .env.example # Configuration template
├── message.txt # Message template
├── profile_links.csv # Target profiles list
├── already_send_message.csv # Progress tracking
├── assets/
│ └── banner.svg # Project banner
├── LICENSE # MIT License
├── README.md # This file
├── CONTRIBUTING.md # Contribution guidelines
└── .gitignore # Git ignore rules
pip install --upgrade webdriver-manager- Check your credentials in
.env - Instagram may require 2FA — complete it manually in the browser
- Wait for the login to complete, then press ENTER
- Instagram may have changed its UI — open an issue
- Your account may be temporarily restricted — wait a few hours
- Try increasing delay values in
.env
Q: Is this free? A: Yes. Instagram DM Bulk Sender is 100% free and open source under the MIT license.
Q: Do I need an API key? A: No. This tool uses browser automation (Selenium), no API key needed.
Q: How many messages can I send? A: The default limit is 10,000 per session. Instagram may restrict your account if you send too many too quickly — use reasonable delays.
Q: Are my credentials safe?
A: Credentials are stored in a local .env file that is gitignored. They are never uploaded or shared.
Q: Can I use Chrome instead of Firefox?
A: Yes. Set BROWSER=chrome in your .env file.
Q: Does it work on Mac / Linux? A: Yes. Fully cross-platform on Windows, macOS, and Linux.
| Feature | Instagram DM Bulk | Manual DMs | Paid DM Tools |
|---|---|---|---|
| Price | Free | Free | $30-100/mo |
| Bulk sending | Yes | No | Yes |
| Progress tracking | Yes | Manual | Yes |
| Open source | Yes | N/A | No |
| API key required | No | No | Varies |
| Human-like delays | Yes | N/A | Yes |
| Cross-platform | Yes | Yes | Web only |
Contributions are welcome! Please read the Contributing Guide before submitting a pull request.
This project is licensed under the MIT License.
This tool is provided for educational and informational purposes only. Automated messaging may violate Instagram's Terms of Service. Use responsibly and at your own risk. The authors are not responsible for any consequences resulting from the use of this software.
If this project helps you, please give it a star!
It helps others discover this tool.
Built with purpose by SoClose — Digital Innovation Through Automation & AI
Website •
LinkedIn •
Twitter •
Contact