Publish Image
instagram_publish_imagePublish a single JPEG image to an Instagram feed using a direct public HTTPS URL, and add captions, alt text, and tags.
Instructions
Publish a single image to the Instagram feed.
The image must be a JPEG served from a public HTTPS URL that returns the file directly — no redirects, no authentication, no HTML wrapper. Meta fetches it server-side, so a local path or a signed URL that expires will fail.
For two or more images in one post use instagram_publish_carousel. For video use instagram_publish_reel.
Example: "post this photo with the caption 'new drop'" -> image_url="https://cdn.example.com/a.jpg", caption="new drop"
Tool call template
Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"image_url": "<image_url>"
},
"name": "instagram_publish_image"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| caption | No | Caption text, up to 2200 characters. Hashtags and @mentions work inside the caption. Instagram counts a maximum of 30 hashtags. | |
| alt_text | No | Accessibility alt text. Supported on image posts only, not reels or stories. | |
| image_url | Yes | Public HTTPS URL of a JPEG image | |
| user_tags | No | People to tag. Images need x and y coordinates; videos and reels take username only. The tagged account must be public. | |
| account_id | No | Instagram professional account ID. Omit to use the token's own account. | |
| location_id | No | Facebook Page ID of a location to tag | |
| collaborators | No | Up to 3 public usernames invited as collaborators | |
| is_ai_generated | No | Mark the content as AI-generated. Set it when the image was AI-created. |