You can send image, video, audio, and media-post messages to your Instagram contacts through the Inrō API and MCP tools, not only plain text. That lets you run rich, automated outreach from your own systems or your AI agent, using the same message types you'd use inside Inrō scenarios and campaigns.
Before you start
You'll need a Pro or Trial account and your API token or an MCP connection. See The Inrō Private API: Getting Started for auth.
Message types
Set the message_type on your request:
text: Plain text (the default).
image: An image, by URL or file.
video: A video, by URL or file.
audio: An audio clip, by URL or file.
share: Share one of your Instagram media posts (a Reel or post) with the contact.
Send via the API
Use POST /api/v1/messages. Add a message_type and the matching media field alongside your recipient.
Send an image by URL:
POST /api/v1/messages{ "contact_id": 123, "message_type": "image", "image": "https://example.com/photo.jpg"}
Use the image, video, or audio field to match the message_type. Over the REST API you can pass either a public URL or a multipart file upload. Over MCP, pass a public URL.
Share a media post:
POST /api/v1/messages{ "contact_id": 123, "message_type": "share", "media_id": "your_media_id"}
For share, pass the media_id of one of your Instagram posts. You can look up media IDs with GET /api/v1/medias (see Access Your Media Posts via the Public API).
You can send to one contact or many: use contact_id / contact_username / contact_email for one, or the plural contact_ids / contact_usernames / contact_emails for a list.
Send via your AI agent (MCP)
The send_message tool takes the same parameters. Ask your agent:
"Send a video to contact X" and give it the video URL
"Share my latest Reel with contact Y" and it will find the media ID and send it
Text-only messages are unchanged: message_type defaults to text when you don't set it.
Good to know
Messages are sent asynchronously, and only active contacts actually receive them.
You can target up to 1,000 recipients in a single call.
For
share, nothing new is stored: Inrō reuses your existing post's Instagram media directly.Instagram's own limits still apply (file size, format, and DM permissions), so they govern what can actually be delivered.
🐾 Netsuke's Tips
Test with a single contact before sending to a list. It's the quickest way to confirm a media URL renders the way you expect.
Hosting your own files? See Manage Media Files via the API to upload and reuse them instead of passing a fresh URL each time.
What's next?
Access Your Media Posts via the Public API to find the
media_idfor ashare.Manage Media Files via the API to upload and reuse media.
Connect Your AI Agent to Inrō with the MCP Server to send messages from a conversation.
