![[2025] Building an IG Follower Growth Program | Python Automation Tutorial + Full Risk Analysis](/_next/image?url=%2Fimg%2Fofficial-vs-unofficial-api-dual-screen-comparison.jpg&w=3840&q=75)
[2025] Building an IG Follower Growth Program | Python Automation Tutorial + Full Risk Analysis
Thinking about building your own Instagram follower automation? Full Python tutorial, IG API overview, risk mitigation strategies! Includes code examples, legal vs. illegal comparison, and cost-benefit analysis—but the technical barriers are high, so think twice.
Instagram Marketing[2025] Building an IG Follower Growth Program | Python Automation Tutorial + Full Risk Analysis
Have you ever thought about building your own Instagram automation tool—something that auto-follows, auto-likes, and auto-comments while you sleep? As a developer or tech enthusiast, the idea sounds exciting. But before you start, you need to understand the risks: Instagram is cracking down on automation tools harder than ever. In 2025, the ban rate exceeds 95%, and you could face legal liability.
This article is not an encouragement to violate Instagram's Terms of Service. It is an educational overview of the underlying technology, risk assessment, and legal alternatives. If you still want to try after reading, at least you'll know how to reduce your exposure. But our strong recommendation remains: the technical barriers are too high, the risks too great—a professional service is a smarter choice.
If you want to learn about other growth methods, we recommend reading the 2025 Complete IG Follower Growth Guide first. This article focuses specifically on the development side.
Important Disclaimer and Risk Warning
Legal and Policy Risks
Instagram's official position:
- Using automation tools (bots, scripts) violates the Instagram Terms of Service
- Instagram has the right to permanently ban your account with no right of appeal
- Serious violations may constitute a breach of the Computer Fraud and Abuse Act (CFAA, US federal law)
2025 ban statistics:
- Using unofficial APIs: ban rate 95%+
- Using the official API but violating usage rules: ban rate 70%+
- Large-scale rapid actions (follows/likes) in a short period: shadowban probability 99%
Purpose of this article:
- ✅ Education: Understand the underlying technology and assess risks
- ✅ Warning: Explain why you shouldn't do this
- ✅ Alternatives: Provide legal, low-risk options
❌ This article does NOT encourage you to violate Instagram's Terms of Service. All code samples are for learning and research purposes only. Use them in practice entirely at your own risk.
Who Should Read This
✅ Appropriate for:
- Developers who want to understand Instagram automation at a technical level
- Decision-makers evaluating "build it yourself vs. buy a professional service"
- Students researching social platform APIs
❌ Not appropriate for:
- Beginners with no programming background (see IG Beginner Guide instead)
- People who simply want to grow followers quickly (see professional service reviews for safer options)
Instagram API Basics
Before writing any code, you need to understand what APIs Instagram provides and what their limitations are.
Official API vs. Unofficial API
| Comparison | Official API (Graph API) | Unofficial API (Reverse Engineering) |
|---|---|---|
Legality | ✅ Legal | ❌ Violates Terms of Service |
Ban risk | Low (if compliant) | Very high (95%+) |
Feature limits | ⚠️ Restricted | Unrestricted (but high risk) |
Application requirement | Requires business account + review | No application needed |
Rate limit | Strict (200 calls/hour) | No official limit (but detection applies) |
Maintenance cost | Low (officially maintained) | High (breaks with every IG update) |
Technical difficulty | Medium | High |
Bottom line:
- If you want to legally access your own account data (post analytics, follower insights) → use the official Graph API
- If you want to auto-follow, auto-like, auto-comment → the official API does not support these actions; you must use unofficial APIs (extremely high risk)
Official Graph API Setup (Legal Method)
Step 1: Create a Facebook Developer Account
- Log in with your Facebook account at developers.facebook.com
- Complete developer verification
Step 2: Create an Application
- Click "Create App"
- Select type: "Consumer" or "Business"
- Fill in the app name and contact email
Step 3: Add Instagram Product
- In the app dashboard, click "Add Product"
- Select "Instagram Graph API"
- Complete the setup
Step 4: Get an Access Token
- Go to "Tools" → "Graph API Explorer"
- Select your application
- Choose permissions:
instagram_basic,instagram_manage_insights - Generate an Access Token
Step 5: Test the API
Use your token to fetch basic account info:
https://graph.instagram.com/me?fields=id,username&access_token=YOUR_ACCESS_TOKEN
What you can and cannot do:
- ✅ Can access: post data, follower insights, comment management
- ❌ Cannot do: auto-follow, auto-like, auto-comment
This is exactly why many people turn to unofficial APIs—but the risk is extreme.
Python Environment Setup
If you've decided to try this anyway (at your own risk), here's the basic environment setup.
Install Required Packages
# Install instagrapi (unofficial IG API package—HIGH RISK!)
pip install instagrapi
# Install other tools
pip install requests
pip install python-dotenv
pip install sqlite3
Warning: instagrapi is an unofficial package that uses reverse engineering to bypass Instagram's restrictions. Ban risk is extremely high.
Basic Login Example (For Learning Only)
from instagrapi import Client
import os
from dotenv import load_dotenv
# Load environment variables (.env file—never hardcode credentials in your script)
load_dotenv()
# Initialize client
cl = Client()
try:
# Log in (using environment variables)
cl.login(
username=os.getenv('IG_USERNAME'),
password=os.getenv('IG_PASSWORD')
)
print("Login successful")
# Get your own account info
user_info = cl.account_info()
print(f"Username: {user_info.username}")
print(f"Followers: {user_info.follower_count}")
except Exception as e:
print(f"Login failed: {e}")
.env file (add to .gitignore—never upload to GitHub):
IG_USERNAME=your_ig_username
IG_PASSWORD=your_password
Basic Script Examples (For Learning Only—Not Recommended for Real Use)
The following scripts are for educational and research purposes only. Using them in practice will result in account bans.
Script 1: Auto-Follow Target Users
Logic:
- Get the follower list of a competitor account
- Auto-follow those users
- Hope they follow back
from instagrapi import Client
import time
import random
def auto_follow_target_users(cl, target_username, max_follow=50):
"""
Auto-follows followers of a target account
Parameters:
cl: instagrapi Client
target_username: target account (e.g., a competitor)
max_follow: maximum number to follow (recommend < 50 to reduce detection)
"""
try:
# Get target account's user ID
target_user_id = cl.user_id_from_username(target_username)
# Get target account's follower list
followers = cl.user_followers(target_user_id, amount=max_follow)
followed_count = 0
for user_id, user_info in followers.items():
try:
# Follow the user
cl.user_follow(user_id)
followed_count += 1
print(f"Followed: {user_info.username}")
# Random delay (simulate human behavior to reduce detection risk)
delay = random.randint(30, 90) # 30–90 seconds
print(f"Waiting {delay} seconds...")
time.sleep(delay)
except Exception as e:
print(f"Follow failed: {user_info.username}, error: {e}")
continue
print(f"Done! Followed {followed_count} users")
except Exception as e:
print(f"Script error: {e}")
# Usage example (use at your own risk!)
# auto_follow_target_users(cl, "competitor_account", max_follow=30)
Risks:
- Rapid following in a short period → 99% chance of detection
- Even with random delays, Instagram's AI can still identify the pattern
- In 2025, Instagram can now identify scripts designed to simulate human behavior
Script 2: Auto-Like and Comment
Logic:
- Search posts by hashtag
- Auto-like them
- Auto-comment with a random pre-set message
from instagrapi import Client
import time
import random
def auto_like_and_comment(cl, hashtag, max_posts=30, comment_list=None):
"""
Auto-likes posts and optionally leaves comments
Parameters:
cl: instagrapi Client
hashtag: hashtag to search (e.g., "fitness")
max_posts: maximum posts to interact with
comment_list: list of pre-set comments to choose from
"""
if comment_list is None:
comment_list = [
"Great post! 👍",
"Really helpful, thanks for sharing!",
"Love this content 🔥",
"Well done!",
"Keep it up! 💪"
]
try:
# Search recent posts for the hashtag
medias = cl.hashtag_medias_recent(hashtag, amount=max_posts)
interaction_count = 0
for media in medias:
try:
# Like the post
cl.media_like(media.id)
print(f"Liked: {media.code}")
# Randomly decide whether to comment (50% chance)
if random.random() < 0.5:
comment_text = random.choice(comment_list)
cl.media_comment(media.id, comment_text)
print(f"Commented: {comment_text}")
interaction_count += 1
# Random delay (60–120 seconds)
delay = random.randint(60, 120)
print(f"Waiting {delay} seconds...")
time.sleep(delay)
except Exception as e:
print(f"Interaction failed: {e}")
continue
print(f"Done! Interacted with {interaction_count} posts")
except Exception as e:
print(f"Script error: {e}")
# Usage example (use at your own risk!)
# auto_like_and_comment(cl, "fitness", max_posts=20)
Risks:
- Instagram can identify templated comments (e.g., the same "Great post! 👍" repeated)
- Rapid-fire interactions → shadowban
- If comments are reported as spam → comment function blocked on the account
Script 3: Target Audience Analysis
Logic:
- Analyze a competitor's followers
- Identify high-engagement users
- Prioritize following those users
from instagrapi import Client
import sqlite3
def analyze_target_audience(cl, target_username, db_path="audience.db"):
"""
Analyzes the followers of a target account to find high-engagement users
"""
# Create SQLite database
conn = sqlite3.connect(db_path)
cursor = conn.cursor()
# Create table
cursor.execute('''
CREATE TABLE IF NOT EXISTS target_users (
user_id TEXT PRIMARY KEY,
username TEXT,
follower_count INTEGER,
following_count INTEGER,
engagement_rate REAL,
is_private INTEGER,
is_verified INTEGER,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
)
''')
try:
target_user_id = cl.user_id_from_username(target_username)
followers = cl.user_followers(target_user_id, amount=100)
for user_id, user_info in followers.items():
try:
user_detail = cl.user_info(user_id)
# Simplified engagement rate: followers/following ratio
if user_detail.following_count > 0:
engagement_rate = user_detail.follower_count / user_detail.following_count
else:
engagement_rate = 0
cursor.execute('''
INSERT OR REPLACE INTO target_users
(user_id, username, follower_count, following_count, engagement_rate, is_private, is_verified)
VALUES (?, ?, ?, ?, ?, ?, ?)
''', (
str(user_id),
user_detail.username,
user_detail.follower_count,
user_detail.following_count,
engagement_rate,
1 if user_detail.is_private else 0,
1 if user_detail.is_verified else 0
))
conn.commit()
print(f"Analyzed: {user_detail.username}, engagement rate: {engagement_rate:.2f}")
except Exception as e:
print(f"Analysis failed: {e}")
continue
# Query high-engagement users (rate > 1, public accounts)
cursor.execute('''
SELECT username, follower_count, engagement_rate
FROM target_users
WHERE engagement_rate > 1 AND is_private = 0
ORDER BY engagement_rate DESC
LIMIT 20
''')
high_engagement_users = cursor.fetchall()
print("\nTop 20 High-Engagement Users:")
for username, followers, rate in high_engagement_users:
print(f" - {username}: {followers} followers, rate {rate:.2f}")
except Exception as e:
print(f"Script error: {e}")
finally:
conn.close()
# Usage example (use at your own risk!)
# analyze_target_audience(cl, "competitor_account")
This script carries relatively lower risk (analysis only, no automated actions), but still violates Instagram's Terms of Service (uses unofficial API).
Database Design and Operational Logging
To track operation history and avoid repeating the same actions, you need a database.
SQLite Database Design
import sqlite3
from datetime import datetime
def init_database(db_path="ig_automation.db"):
"""Initialize the database"""
conn = sqlite3.connect(db_path)
cursor = conn.cursor()
# Follow history table
cursor.execute('''
CREATE TABLE IF NOT EXISTS follow_history (
id INTEGER PRIMARY KEY AUTOINCREMENT,
user_id TEXT NOT NULL,
username TEXT,
action TEXT, -- 'follow' or 'unfollow'
timestamp TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
success INTEGER -- 1=success, 0=failed
)
''')
# Like history table
cursor.execute('''
CREATE TABLE IF NOT EXISTS like_history (
id INTEGER PRIMARY KEY AUTOINCREMENT,
media_id TEXT NOT NULL,
media_code TEXT,
timestamp TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
success INTEGER
)
''')
# Comment history table
cursor.execute('''
CREATE TABLE IF NOT EXISTS comment_history (
id INTEGER PRIMARY KEY AUTOINCREMENT,
media_id TEXT NOT NULL,
comment_text TEXT,
timestamp TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
success INTEGER
)
''')
# Daily stats table (track daily totals to stay within IG limits)
cursor.execute('''
CREATE TABLE IF NOT EXISTS daily_stats (
date TEXT PRIMARY KEY,
follow_count INTEGER DEFAULT 0,
like_count INTEGER DEFAULT 0,
comment_count INTEGER DEFAULT 0
)
''')
conn.commit()
conn.close()
print("Database initialized")
init_database()
Benefits:
- Prevents re-following or re-liking the same user/post
- Tracks daily action counts to stay within safe limits
- Helps analyze which actions are effective (follow-back rate, engagement rate)
Risk Mitigation and Safety Settings
Even with all safety measures in place, you cannot 100% prevent account bans—but you can reduce the probability.
Rate Limiting
Instagram's action limits (2025, unofficial estimates):
| Action Type | Per Hour Limit | Per Day Limit | Consequence of Exceeding |
|---|---|---|---|
Follow | 20–30 | 150–200 | Shadowban for 24 hours |
Unfollow | 20–30 | 150–200 | Shadowban for 24 hours |
Like | 60–80 | 500–700 | Like function blocked |
Comment | 10–15 | 50–100 | Comment function blocked |
Send DM | 10–20 | 50–80 | DM function blocked |
Implementing rate limiting:
import sqlite3
from datetime import date
def check_daily_limit(db_path, action_type, limit):
"""Check whether the daily limit has been reached"""
conn = sqlite3.connect(db_path)
cursor = conn.cursor()
today = str(date.today())
cursor.execute(f'''
SELECT {action_type}_count FROM daily_stats WHERE date = ?
''', (today,))
result = cursor.fetchone()
if result is None:
cursor.execute('''
INSERT INTO daily_stats (date, follow_count, like_count, comment_count)
VALUES (?, 0, 0, 0)
''', (today,))
conn.commit()
current_count = 0
else:
current_count = result[0]
conn.close()
if current_count >= limit:
print(f"Daily {action_type} limit reached ({limit}), stopping")
return False
else:
return True
# Usage
if check_daily_limit("ig_automation.db", "follow", 150):
# Execute follow action
pass
else:
print("Daily follow limit reached")
Simulating Human Behavior
How Instagram's AI detects bots:
- Action patterns: Perfectly regular actions (e.g., one follow every exactly 30 seconds) → 100% bot
- Operating hours: 24-hour non-stop activity → not a real person
- Action sequence: Following accounts in user ID order → obviously a script
- Mouse movement/click patterns: No cursor movement, direct API calls → bot
Human-simulation techniques (still cannot guarantee 100% evasion):
import random
import time
from datetime import datetime
def human_like_delay(min_sec=30, max_sec=120):
"""Simulate random human-like delays"""
delay = random.uniform(min_sec, max_sec)
print(f"Waiting {delay:.1f} seconds...")
time.sleep(delay)
def is_active_hours():
"""Only operate during 'human active hours' (8 AM to 11 PM)"""
current_hour = datetime.now().hour
return 8 <= current_hour <= 23
def random_break():
"""Take random breaks (simulate humans needing rest)"""
if random.random() < 0.1: # 10% chance of taking a break
break_time = random.randint(300, 900) # 5–15 minutes
print(f"Random break for {break_time//60} minutes...")
time.sleep(break_time)
def safe_follow(cl, user_id):
"""Safe follow action with all protections applied"""
if not is_active_hours():
print("Outside active hours, stopping")
return False
if not check_daily_limit("ig_automation.db", "follow", 150):
return False
random_break()
try:
cl.user_follow(user_id)
print("Follow successful")
human_like_delay(30, 120)
return True
except Exception as e:
print(f"Follow failed: {e}")
return False
Even with all of this, Instagram's AI in 2025 can still detect bots.
Legal vs. Prohibited: What You Can and Cannot Do
What Is Legal (Using the Official API)
| Function | Legal? | Notes |
|---|---|---|
Access your own account data | ✅ Legal | Follower counts, engagement rates, post analytics |
Schedule posts | ✅ Legal | Via official partner tools (Later, Buffer) |
Manage comments | ✅ Legal | Reply to or delete spam comments |
Access hashtag data | ✅ Legal | Analyze hashtag performance |
Publish posts/Reels | ✅ Legal | Using the official API |
What Is Prohibited (Violates Terms of Service—Will Lead to Account Ban)
| Function | Legal? | Ban Risk |
|---|---|---|
Auto-follow/unfollow | ❌ Prohibited | Very high (95%+) |
Auto-like | ❌ Prohibited | Very high (90%+) |
Auto-comment | ❌ Prohibited | Very high (95%+) |
Auto-DM | ❌ Prohibited | Very high (99%+) |
Scraping other users' data | ❌ Prohibited | High (70%+) |
Creating accounts in bulk | ❌ Prohibited | 100% (IP blocked) |
Using unofficial APIs | ❌ Prohibited | Very high (95%+) |
Build It Yourself vs. Professional Service: Cost-Benefit Analysis
Let the numbers speak. Here's why we don't recommend building it yourself.
Full Cost Comparison
| Item | Build It Yourself | Professional Service (e.g., Lion Fans) |
|---|---|---|
Initial cost | $0 (time cost separate) | $1,000–$5,000 (one-time) |
Time cost | 50–100 hours (learning + development) | 0 hours |
Technical barrier | High (requires Python, APIs, database knowledge) | None |
Risk management | You bear all risk, no safety net | Professional team manages it, with guarantees |
Ban risk | Very high (95%+) | Low (under 5% — real users) |
Maintenance cost | High (must rewrite every time IG updates) | None |
Follower quality | Low (even if follow succeeds, follow-back rate is low) | High (real users who will engage) |
Impact on engagement rate | Severe drop (flagged as spam account) | Unaffected (may even improve) |
Scalability | Poor (must re-configure for every account) | Easy (buy with one click) |
Legal risk | High (violates Terms, possible legal action) | None |
Mental cost | High (constant anxiety about getting banned) | Low (leave it to the professionals) |
Actual cost calculation:
Cost of building it yourself = time cost + risk cost + maintenance cost
Time cost = 50 hours × your hourly rate (e.g., $30) = $1,500
Risk cost = losses if account is banned (followers gone, brand damaged) = priceless
Maintenance cost = 5 hours/month × $30 × 12 months = $1,800
Total cost = $3,300+ (not counting the risk of losing everything)
---
Professional service cost = $1,000–$5,000 (one-time) + zero risk + zero maintenance
ROI = (build yourself − professional service) / professional service = 94%+ savings
Conclusion: From a cost-benefit standpoint, a professional service wins decisively.
Legal Alternatives: Automation Tools That Don't Require Code
If you only want to automate legitimate functions (like scheduling posts or analyzing data), here are legal tools that can do it.
Recommended Legal Automation Tools
1. Later (Post Scheduling)
Features:
- Schedule posts (images, Reels, Stories)
- Best time to post suggestions
- Hashtag recommendations
- Analytics
Price: Free (up to 30 posts/month); paid plans from $18/month
Compliance: ✅ Official Instagram partner
Rating: ⭐⭐⭐⭐⭐
2. Buffer (Multi-Platform Management)
Features:
- Schedule posts across IG, Facebook, Twitter, LinkedIn
- Team collaboration
- Analytics
Price: From $6/month
Compliance: ✅ Official partner
Rating: ⭐⭐⭐⭐
3. Hootsuite (Enterprise-Grade)
Features:
- Manage multiple accounts
- Social listening (monitor brand mentions)
- Advanced analytics
Price: From $99/month
Compliance: ✅ Official partner
Rating: ⭐⭐⭐⭐ (best for enterprises)
4. Zapier / IFTTT (Workflow Automation)
Features:
- Cross-platform automation (e.g., sync Facebook posts to Instagram)
- Automated responses in specific scenarios
- Data integration
Price: Zapier from $19.99/month; IFTTT free
Compliance: ✅ Uses official APIs
Rating: ⭐⭐⭐⭐
Build It Yourself vs. Legal Tools vs. Professional Service
| Comparison | Build It Yourself (unofficial API) | Legal Tools | Professional Service |
|---|---|---|---|
Ban risk | Very high (95%+) | None | Low (under 5%) |
Features | Everything (but illegal) | Limited (legal functions only) | Follower growth |
Cost | High (time + risk) | Medium ($6–$99/month) | Medium ($1,000–$5,000 one-time) |
Technical barrier | High | None | None |
Legal risk | High | None | None |
Recommendation | ❌ | ✅ (for legal automation needs) | ✅ (for follower growth) |
5 Reasons You Shouldn't Build Your Own IG Follower Growth Program
Reason 1: Extremely High Ban Rate (95%+)
In 2025, Instagram's AI detection is extraordinarily sophisticated:
- Can identify the call patterns of unofficial APIs
- Can identify scripts designed to simulate human behavior
- Can track IP addresses, device fingerprints, and behavioral patterns
Even with every precaution in place, the ban probability is still 95%+.
Reason 2: Staggering Time Investment (50–100 Hours)
Building a fully functional Instagram automation program requires:
- Learning Python basics: 10 hours
- Learning API usage: 10 hours
- Learning databases: 5 hours
- Developing the scripts: 20 hours
- Testing and adjustments: 10 hours
- Adapting to Instagram updates: 5+ hours per month
Total: 50–100 hours, which translates to $1,500–$3,000+ in time cost
Reason 3: Low Follower Quality
Even if you successfully follow 1,000 users:
- Follow-back rate: 10–20% (most people will ignore you)
- Engagement rate: near 0% (they know you're a bot)
- Subsequent unfollow rate: 50%+ (they'll unfollow quickly)
Net real followers: 50–100, extremely low quality
Reason 4: Legal Risk
- Violates the Instagram Terms of Service
- May breach the Computer Fraud and Abuse Act (CFAA)
- Commercial use may expose you to civil litigation
The legal risk far outweighs the potential benefit
Reason 5: Extremely Poor Return on Investment
Building it yourself:
- Time cost: $1,500–$3,000
- Risk cost: priceless (account gets banned = lose everything)
- Follower quality: terrible
- Total cost: $3,300+
Professional service:
- Money cost: $1,000–$5,000
- Risk: minimal (under 5%)
- Follower quality: high (real people)
- Total cost: $1,000–$5,000
ROI difference: 10–60× in favor of professional service
To gain 2,000 followers, building it yourself costs ($3,300+ in risk) vs. a professional service ($3,000–$5,000). The self-built approach is 13–20× more costly when all factors are considered.
Final Recommendation: 3 Paths for 3 Types of People
Type 1: Pure Technical Researcher
Goal: Understand IG API mechanics, develop technical skills
Recommendations:
- ✅ Read this article, understand the technical principles
- ✅ Use the official Graph API for legal data analysis
- ❌ Don't test illegal scripts on real accounts
- ✅ OK to research on test accounts (at your own risk)
Type 2: General User Who Wants More Followers
Goal: Grow Instagram followers
Recommendations:
- ❌ Don't build it yourself (risk too high)
- ✅ Use free organic methods: see Free Instagram Growth Guide
- ✅ Or choose a professional service with good reviews from real users
- ✅ Or review all your options: Complete Instagram Growth Methods Guide
Your time is valuable—don't waste it on high-risk, low-reward technical development.
Type 3: Business or Brand
Goal: Build a long-term Instagram presence
Recommendations:
- ❌ Absolutely do not use automation tools (brand damage risk is too severe)
- ✅ Use legal tools: Later, Buffer, Hootsuite for scheduling and analytics
- ✅ Focus on content quality: see IG Growth Techniques
- ✅ Small paid investment for cold-start acceleration via a reputable professional service
Further Reading
Want to learn about other Instagram growth methods?
- Complete guide: 2025 Complete IG Follower Growth Guide — covers every method
- Free techniques: Free Instagram Growth Guide — 15 zero-cost tips
- Plugin reviews: IG Follower Plugin Recommendations — risk analysis
- Full methods breakdown: Complete Instagram Growth Methods Guide — cost-benefit analysis
- Advanced strategies: IG Growth Techniques — 10 advanced secrets
- Beginner guide: How to Gain Instagram Followers — 10-step complete tutorial
References
This article draws from:
- Instagram Terms of Service (2024–2025)
- Facebook Graph API official documentation
- Python instagrapi package documentation (for research purposes only)
- Security expert assessments of automation tool risks
- Hundreds of real community cautionary stories
Last updated: January 2025 Next update: Continuously revised as Instagram policies evolve