How to manage multiple Instagram accounts
Instagram lets you switch between a few accounts in the app. That stops working when you run 20 or 100 creator accounts for clients. This guide covers connecting accounts without passwords, scheduling Reels, Stories and carousels, splitting work by team, and reading results.
Updated
Where the Instagram app stops
The app is built for one person and a handful of profiles. With many accounts, the problems pile up fast.
- Switching accounts and posting by hand takes minutes per post. At 50 accounts it is a full-time job.
- Sharing passwords with a team triggers security checks and breaks when a creator changes theirs.
- Native scheduling is per account. There is no way to spread one batch of content across a roster.
- Results live in each account's insights, so a report means opening every profile.
Account type comes first
Meta's publishing API only works with Business and Creator accounts. Personal accounts can't publish through it. Switching is free and takes a minute in the Instagram app under account type settings. Ask creators to do this before you send a connect link.
Connect accounts without passwords
Each creator gets a connect link and approves access on Meta's own login page. You get an account ID to post to. No password changes hands. In the dashboard, create and copy a link. With the API:
curl https://ugcapi.dev/v1/accounts/connect \
-H "Authorization: Bearer ugc_live_..." \
-H "Content-Type: application/json" \
-d '{ "platform": "instagram", "external_id": "creator-204" }'The external_id is your own ID for the creator. Use it to find their accounts later with GET /v1/accounts?platform=instagram&external_id=creator-204. If you want the connect page to carry your brand, see white-label account connect.
Organize by team
Put each client or brand in its own team workspace. Accounts, posts and results stay separate, so a teammate working on one client doesn't post to another client's creators by mistake. Credits are shared at the account level and there are no per-seat or per-account fees.
What you can post
| Format | Instagram result | Options |
|---|---|---|
video | Reel | grid to show it on the profile grid, story to also post it as a Story |
slideshow | Carousel, 2 to 20 slides, cropped to 4:5 | story with story_slides: all or first |
image | Feed image | story to also post it as a Story |
Any format with feed: false | Story only | Skips the Reel or feed post |
Each Story frame is a separate result and one post credit. Use JPEG for images. Full rules in formats and options, and a walkthrough in carousels and Stories.
Schedule Instagram Reels across the roster
In the dashboard composer, drop in a batch of clips, pick the Instagram accounts, set posts per account per day and posting times, preview the schedule, and confirm. With the API, a campaign does the same thing:
curl https://ugcapi.dev/v1/campaigns \
-H "Authorization: Bearer ugc_live_..." \
-H "Content-Type: application/json" \
-d '{
"name": "Client 12 - Reels December",
"accounts": ["acc_ig_01", "acc_ig_02", "acc_ig_03"],
"cadence": { "per_day": 1 },
"times": ["11:00"],
"timezone": "Europe/London",
"start_date": "2026-12-01",
"posts": [
{ "format": "video", "media": ["https://cdn.example.com/r/001.mp4"], "caption": "Morning routine #ad",
"options": { "instagram": { "grid": true, "story": true } } },
{ "format": "slideshow", "media": ["https://cdn.example.com/c/002-1.jpg", "https://cdn.example.com/c/002-2.jpg"], "caption": "3 picks under $30" }
]
}'Posts go out round-robin, one account at a time, with each account's time shifted a few minutes. Add "dry_run": true to preview the schedule and credits first. See the campaigns doc.
Cadence for Instagram
Meta caps API-published posts per account in a rolling 24 hours, and carousels count as one. UGC teams rarely get near it. A common start is 1 Reel a day per account, with Stories on top for the clips that suit them. Run Instagram in its own campaign so its cadence doesn't have to match TikTok's. More in UGC posting cadence.
Read results across accounts
Each published result has a public URL. Engagement numbers are read back from Instagram insights and refreshed hourly: views, likes, comments, shares, saves and reach. You can see them per post in the dashboard, or by API:
GET /v1/stats?account_id=acc_ig_01for one account's totals, includingengagementandtop_posts.GET /v1/stats?from=2026-12-01&to=2027-01-01for the whole roster, withby_platformandby_day.GET /v1/posts?campaign_id=cmp_xyzto list one campaign's posts with their metrics.
This replaces opening each account's insights by hand. See UGC campaign analytics for a reporting workflow.
Look at reach next to views. On Instagram, a Reel can be replayed many times by the same people, so a high view count with low reach often means a small, loyal audience rather than new people. For growth, reach is the better number. For a product push, saves and shares tell you more about intent than likes do.
Approvals and client sign-off
With many creators, the slow part is often approval, not posting. A simple flow keeps it moving:
- Your team builds the batch in the client's workspace and previews the schedule.
- The client reviews the clips and captions in your usual tool, such as a shared folder or a sheet.
- Once approved, you confirm the campaign. Anything the client pulls later can be cancelled with
DELETE /v1/posts/:idbefore it publishes, and its credit comes back.
Tag every post with an external_id from your brief so the client's approval, the scheduled post and the published Reel all share one ID.
Instagram and other platforms together
Most creator rosters run on TikTok and Instagram at once, often with a Facebook Page or YouTube channel too. The same clip can go to all of them in one post, with Instagram-specific options such as a Story. If you want a different pace on each platform, run one campaign per platform. See posting to all four at once.
Keep accounts healthy
- Watch for the
account.disconnectedwebhook. It fires when a creator removes access or a token stops working. Their posts wait while you send a fresh connect link. - Vary captions and first frames across accounts. Identical posts on many profiles can be treated as unoriginal.
- Keep text inside the center 4:5 area if you also use 9:16 art for carousels.
- Check failures weekly in
top_errorsfromGET /v1/stats. A repeated media error usually means a bad URL or format.
Pricing is per post: $10 per 1,000, prepaid, credits never expire, 50 free. A Reel plus its Story is 2 posts. See pricing.
FAQ
How many Instagram accounts can I manage?
As many as you connect. There are no per-account fees, and each team workspace can hold its own roster.
Do the accounts need to be Business or Creator accounts?
Yes. Meta's publishing API only works with Business and Creator accounts. Switching is free in the Instagram app.
Can I schedule Instagram Stories as well as Reels?
Yes. Set options.instagram.story to true to post a Story with the Reel, image or carousel, or set feed to false for a Story only.
Will my team need the creators' passwords?
No. Creators approve access through a connect link on Meta's own page. Your team works with account IDs.
Can I see reach and likes for every account in one place?
Yes. Instagram insights are read back hourly. GET /v1/stats returns totals and top posts, and the dashboard shows them per post.