Skip to main content

Access Your Media Posts via the Public API

List and retrieve your Instagram media posts programmatically with Inrō's public API, for custom integrations or connecting AI tools.

You can read your Instagram media posts through Inrō's public API. Use it to build custom integrations, pull media data into your own tools, or let an AI assistant browse your content library, all without logging into Inrō by hand. The same resource also lets you create, schedule, publish and delete posts and stories (see below).

Before you start

You'll need a Pro or Trial account and your API token. See The Inrō Private API: Getting Started for auth.

Endpoints

  • List media posts: GET /api/v1/medias Returns a paginated list of your posts. Filter by status (published, scheduled, draft, pending) and search by caption.

  • Get a single media post: GET /api/v1/medias/:id Returns the full details of one post: caption, media type, URLs, like count, and publication status.

How to use it

  1. Open the account menu (bottom-left) and go to API & MCP to copy your API token. (Your token used to sit on the Integrations & API page, which is now split into Integrations and API & MCP.)

  2. Call the endpoints with your preferred HTTP client, passing the token as a Bearer token in the Authorization header.

  3. Use the status and search query parameters to narrow the results.

Create, schedule or publish a post: POST /api/v1/medias. Upload the visual first with POST /api/v1/media_files (use purpose: publishing so it keeps its resolution), then pass its media_file_id with publish_media_type set to IMAGE or REELS. For a carousel, set CAROUSEL and pass 2 to 10 file IDs in children. Leave out scheduled_at and publish_now to save a draft, set scheduled_at to schedule, or publish_now: true to post immediately. Publishing needs Instagram's publishing permission (check can_publish on GET /api/v1/me).

Update, publish or delete: PATCH /api/v1/medias/:id edits a draft, POST /api/v1/medias/:id/publish posts a draft or scheduled post now, and DELETE /api/v1/medias/:id removes it. Stories work the same way under /api/v1/stories.

Attach a Comment-to-DM automation: POST /api/v1/medias/:id/comment_to_dm sets up the reply-and-DM flow for one post in a single call, or pass comment_to_dm when you create the post.

⚠️ Carousels can only be created through the API or MCP for now. The in-app composer offers image and reel posts.

Via your AI agent (MCP)

These are also available as MCP tools, so Claude or ChatGPT can query your media library directly:

  • The medias tool with action: list lists your posts (with the same status and search filters), and action: get fetches one by its ID.

  • The same tool creates, updates, publishes and deletes posts, and attach_comment_to_dm adds a Comment-to-DM automation to a post. The stories tool does the same for stories.

A common use is finding a post to share: ask your agent to list your recent Reels, then share one with a contact. See Send Rich Messages via API & MCP for the share message type.

🐾 Netsuke's Tips

  • The id returned here is the media_id you pass to a share message, so listing posts is usually the first step before sending one.

  • Filter by status to skip drafts and scheduled posts when you only want what's already live.

What's next?

Did this answer your question?