Automate bulk posting of images to Pinterest - Upload hundreds of pins in minutes instead of hours.
Quick Start β’ Features β’ Configuration β’ FAQ β’ Contributing
Pinterest Bulk Post Bot is a free, open-source Pinterest automation tool built with Python and Selenium. It lets you bulk upload images to Pinterest directly from your computer. Instead of manually creating pins one by one, this bot automates the entire process: uploading images, filling in titles, descriptions, destination links, and selecting boards - all in one go.
Whether you need to post 10 pins or 1000, this Pinterest pin scheduler handles it automatically while you focus on what matters.
- Pinterest Marketers looking to scale their pinning strategy
- Bloggers who want to drive traffic from Pinterest to their blog posts
- E-commerce Sellers promoting products on Pinterest at scale
- Social Media Managers handling multiple Pinterest accounts
- Affiliate Marketers bulk-posting promotional pins
- Content Creators who want to save hours of manual work
- Bulk Upload - Post dozens or hundreds of pins in one session
- Cross-Platform - Works on Windows, macOS, and Linux
- Per-Image Metadata - Use a CSV file to set unique title, description, link, and board for each pin
- Configurable - JSON config file for persistent settings
- Smart Waits - Uses intelligent waits instead of fixed delays for reliability
- Progress Tracking - Real-time progress bar and logging
- Error Recovery - Continues posting even if individual pins fail
- CLI Arguments - Full command-line interface with options
- Headless Mode - Run without a visible browser window
- Free & Open Source - MIT license, no API key required
| Requirement | Details |
|---|---|
| Python | Version 3.8 or higher (Download) |
| Google Chrome | Latest version (Download) |
| Pinterest Account | A valid Pinterest account |
# 1. Clone the repository
git clone https://github.com/SoCloseSociety/PinterestBulkPostBot.git
cd PinterestBulkPostBot
# 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.txtpython main.pyThe bot will:
- Open Chrome and navigate to Pinterest login
- Wait for you to log in manually
- Ask you for a title, description, link, and board name
- Upload all images from the
bulk_post_pinterest/folder
python main.py --csv pins.csvpython main.py --help| Option | Description | Default |
|---|---|---|
--config FILE |
Path to JSON config file | config.json |
--csv FILE |
Path to CSV file with per-image metadata | None |
--headless |
Run Chrome without visible window | Off |
--board NAME |
Pinterest board name to post to | (interactive) |
--images FOLDER |
Path to folder containing images | bulk_post_pinterest/ |
# Post all images to "My Recipes" board
python main.py --board "My Recipes"
# Use a CSV for unique metadata per pin
python main.py --csv my_pins.csv --board "Travel"
# Run in background (headless) with custom image folder
python main.py --headless --images ./my_photos --board "Photography"
# Use a custom config file
python main.py --config my_config.jsonCreate or edit config.json in the project root:
{
"board_name": "My Board",
"login_wait_seconds": 60,
"delay_between_pins": 2,
"images_folder": "bulk_post_pinterest",
"headless": false
}| Field | Type | Description |
|---|---|---|
board_name |
string | Default Pinterest board name |
login_wait_seconds |
number | Seconds to wait for manual login |
delay_between_pins |
number | Seconds to wait between each pin |
images_folder |
string | Folder containing images to upload |
headless |
boolean | Run Chrome without visible window |
Create a CSV file with unique title, description, link, and board for each pin:
filename,title,description,link,board
photo1.jpg,Beautiful Sunset,A stunning sunset over the ocean,https://myblog.com/sunset,Travel
photo2.png,Recipe Card,Easy pasta recipe in 30 minutes,https://myblog.com/pasta,Recipes| Column | Required | Description |
|---|---|---|
filename |
Yes | Image filename (must match file in images folder) |
title |
Yes | Pin title |
description |
Yes | Pin description |
link |
No | Destination URL for the pin |
board |
No | Board name (overrides default) |
See pins_example.csv for a ready-to-use template.
| Format | Extension |
|---|---|
| JPEG | .jpg, .jpeg |
| PNG | .png |
| GIF | .gif |
| WebP | .webp |
| BMP | .bmp |
| TIFF | .tiff |
PinterestBulkPostBot/
βββ main.py # Main bot script
βββ config.json # Configuration file
βββ pins_example.csv # Example CSV for per-image metadata
βββ requirements.txt # Python dependencies
βββ bulk_post_pinterest/ # Default folder for images to upload
β βββ (your images here)
βββ assets/
β βββ banner.svg # Project banner
βββ LICENSE # MIT License
βββ README.md # This file
βββ CONTRIBUTING.md # Contribution guidelines
βββ .gitignore # Git ignore rules
The bot uses webdriver-manager to automatically download the correct ChromeDriver version. If you encounter issues:
pip install --upgrade webdriver-managerIf 60 seconds isn't enough to log in, increase the timeout in config.json:
{
"login_wait_seconds": 120
}Pinterest occasionally updates its web interface. If the bot stops working:
- Check the Issues page for known problems
- Open a new issue with the error message
chmod +x main.pyQ: Is this free? A: Yes. Pinterest Bulk Post Bot is 100% free and open source under the MIT license.
Q: Do I need a Pinterest API key? A: No. This tool uses browser automation (Selenium), so no API key or developer account is needed.
Q: How many pins can I post at once? A: There is no hard limit. The bot posts pins one by one, so you can upload as many images as you have in your folder. Just be mindful of Pinterest's usage policies.
Q: Does it work with Pinterest business accounts? A: Yes. It works with both personal and business Pinterest accounts.
Q: Can I set different titles and descriptions for each pin?
A: Yes! Use the --csv option with a CSV file to provide unique metadata for each image. See Configuration.
Q: Does it work on Mac / Linux? A: Yes. The bot is fully cross-platform and works on Windows, macOS, and Linux.
Q: Can I run it without opening a browser window?
A: Yes. Use --headless mode: python main.py --headless
A demo video (watch_me.mp4) is included in the repository. Clone the project and watch it locally to see the bot in action.
| Feature | Pinterest Bulk Post Bot | Manual Posting | Tailwind | Buffer |
|---|---|---|---|---|
| Price | Free | Free | $14.99/mo | $15/mo |
| Bulk upload | Yes | No | Limited | Limited |
| Custom metadata per pin | Yes (CSV) | Yes | Yes | Yes |
| Open source | Yes | N/A | No | No |
| API key required | No | No | Yes | Yes |
| Cross-platform | Yes | Yes | Web only | Web only |
| Headless mode | Yes | N/A | N/A | N/A |
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 personal productivity purposes only. Use it responsibly and in compliance with Pinterest's Terms of Service. The authors are not responsible for any misuse or consequences arising 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