Build An Auto-posting Instagram Bot In 20 Lines Of Python
What if your AI agent could generate professional Instagram posts and schedule them automatically — with zero design skills?
I built RendrKit, a Design API that turns text into production-ready graphics. Today I'll show you how to combine it with Python to create an auto-posting Instagram bot in ~20 lines of code.
What We're Building
A Python script that:
- Takes a topic (e.g., "productivity tips")
- Generates a professional Instagram graphic via API
- Posts it to Instagram automatically
- Runs on a schedule (daily, hourly, whatever)
Here's the end result — generated entirely from text:
Prerequisites
pip install rendrkit instagrapi requests
- A free RendrKit API key (50 images/month on free tier)
- An Instagram account
The Code (Yes, It's Actually 20 Lines)
from rendrkit import RendrKit
from instagrapi import Client
from datetime import datetime
# Setup
rk = RendrKit(api_key="your-rendrkit-key")
ig = Client()
ig.login("your_instagram", "your_password")
# Generate image from a text prompt
result = rk.generate(
prompt="A motivational quote about productivity: 'Ship fast, learn faster.' Modern dark gradient design with bold typography",
size="1080x1080"
)
# Download the image
import requests
image_path = "/tmp/post.png"
with open(image_path, "wb") as f:
f.write(requests.get(result["url"]).content)
# Post to Instagram
ig.photo_upload(image_path, "Ship fast, learn faster ????\n\n#productivity #startup #buildinpublic")
print(f"Posted at {datetime.now()}")
That's it. Run it, and you've got a fresh Instagram post generated from nothing but text.
Level Up: Use Templates for Consistent Branding
The prompt mode is great for one-offs, but for a branded feed you want consistency. RendrKit has 69+ templates — pick one and fill in the slots:
result = rk.generate(
template_id="social-quote",
slots={
"heading": "Ship fast, learn faster.",
"subheading": "The best feedback comes from real users.",
"accent_color": "#6366F1"
},
size="1080x1080"
)
Same API, but now every post matches your brand colors and layout. No more random AI-generated chaos.
Make It Automatic: Run Daily with Schedule
import schedule
import time
import random
tips = [
{"heading": "Ship fast, learn faster.", "subheading": "Real users give the best feedback."},
{"heading": "Done > Perfect", "subheading": "Perfection is the enemy of progress."},
{"heading": "Build in public.", "subheading": "Your journey inspires others."},
{"heading": "Solve your own problem.", "subheading": "The best startups come from personal pain."},
{"heading": "Talk to users daily.", "subheading": "Metrics lie. Conversations don't."},
]
def post_daily():
tip = random.choice(tips)
result = rk.generate(
template_id="social-quote",
slots={**tip, "accent_color": "#6366F1"},
size="1080x1080"
)
with open("/tmp/post.png", "wb") as f:
f.write(requests.get(result["url"]).content)
ig.photo_upload("/tmp/post.png", f"{tip['heading']}\n\n#startup #buildinpublic #productivity")
print(f"Posted: {tip['heading']}")
schedule.every().day.at("09:00").do(post_daily)
while True:
schedule.run_pending()
time.sleep(60)
Set it and forget it. Your Instagram posts itself every morning at 9 AM.
Why Not Just Use DALL-E or Midjourney?
Good question. I tried that first. Here's why templates win for social media:
| DALL-E / Midjourney | RendrKit Templates | |
|---|---|---|
| Consistency | Every image looks different | Same brand, every time |
| Text rendering | Misspells words constantly | Pixel-perfect typography |
| Speed | 5-15 seconds | 1-2 seconds |
| Cost | $0.04-0.08/image | $0.001/image (direct render) |
| Brand control | Hope for the best | Exact colors, fonts, layout |
For generative art? Use DALL-E. For professional branded content? Use templates.
Other Ideas You Can Build
This same pattern works for:
- Twitter/X auto-poster — generate OG images for your threads
- Email newsletter headers — fresh header image every issue
-
Slack bot —
/motivatecommand that generates and posts a quote - E-commerce — auto-generate product banners from your catalog
- Certificates — generate completion certificates for your course platform
Available Templates
RendrKit has 69+ templates including:
-
social-quote— motivational quotes, tips -
blog-post-cover— article headers -
product-showcase— product announcements -
stats-banner— metrics and numbers -
hiring-post— job announcements -
event-poster— event promotions -
certificate— completion certificates -
invoice— business documents
Full list: rendrkit.dev/templates
Get Started
- Grab a free API key at rendrkit.dev
pip install rendrkit- Start generating
The free tier gives you 50 images/month — enough to post daily and test everything.
I'm building RendrKit as a solo dev. If you have questions or feature requests, hit me up on Twitter/X or drop a comment below.
Popular Products
-
Large Wall Calendar Planner$55.76$27.78 -
Child Safety Cabinet Locks - Set of 6$83.56$41.78 -
USB Touchscreen Heated Fingerless Gloves$75.56$37.78 -
Golf Swing Trainer Practice Stick wit...$21.56$10.78 -
Golf Swing Training Belt$41.56$20.78