Instagram Reels product tags: five per post and what the API needs

Product tags on a Reel take up to 5 product_ids, need a Business Manager admin role and shop permissions. What to prepare, and where Sume ends.

5 min readSume
All posts

You can tag up to five products on a Reel through the Instagram API by sending product_tags with a product_id for each. Before that works, the app user needs an admin role on the Business Manager that owns the account's Instagram Shop, plus catalog and shopping-tag permissions. Sume makes the product video; the tagging happens in your Graph API request, not in Sume.

Details are from Meta's IG User Media reference, read 2026-10-02. The reference describes product_tags for images and videos; this post only covers what it states about videos and reels.

What does product_tags take?

Meta describes product_tags as required for product tagging and applying to images and videos: an array of objects, maximum five, where tags and product IDs must be unique. Each object has product_id, required. The x and y fields, floats from 0.0 to 1.0, are for images only, so a video or Reel tag carries only the product id.

There is no position on the frame for a Reel product tag. That means your video does not need a reserved empty patch where the tag will sit.

product_tags, Meta reference read 2026-10-02
ItemRule
Maximum tags5
UniquenessTags and product IDs must be unique
product_idRequired for each tag
x and yImages only

What permissions and roles are needed?

For containers with product tagging, Meta says the app user must have an admin role on the Business Manager that owns the IG user's Instagram Shop. Permissions listed are catalog_management and instagram_shopping_tag_products, on top of instagram_basic, instagram_content_publish and pages_read_engagement.

The Sep 28 changelog also adds an error for when the account or the merchant is not eligible for product tagging. Treat that as a separate failure from a bad product_id: eligibility belongs to the account, not the request.

Where does Sume fit in a product Reel?

Sume produces the clip you publish. Import product footage to the workspace first (POST /v1/media-imports), then cut it with video trim: one Sume-hosted clip, a start, and an end or duration, returning a new MP4. The cut is $0.02 per job at the documented public rate, and every request carries an Idempotency-Key.

For a catalogue run, keep a table of product id, clip URL and caption per Reel. Sume returns the video_url per job, and your publisher joins it to the product id. Sume does not read your Instagram catalog or sign you in to Business Manager.

curl -X POST https://api.sume.com/v1/video-trim \
  -H "Authorization: Bearer $SUME_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: product-reel-3231775643511089" \
  -d '{
    "video_url": "https://media.sume.com/artifacts/artf_demo/product.mp4",
    "start": 4,
    "duration": 20
  }'

What does the final container look like?

Send the Reels fields and add product_tags with ids only. Use an array of objects, not a string of ids.

curl -X POST "https://graph.instagram.com/v26.0/$IG_USER_ID/media" \
  -H "Authorization: Bearer $ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "media_type": "REELS",
    "video_url": "https://media.sume.com/artifacts/artf_demo/product-cut.mp4",
    "product_tags": [{"product_id": "3231775643511089"}]
  }'

What are the usual blockers?

Most failed product-tag attempts are account problems, not request problems: the Shop is not connected, the user lacks the Business Manager admin role, a permission is missing, or the merchant is not eligible. Fix those before debugging JSON.

Next come data problems: a product id from the wrong catalog, a duplicate id in the same array, or more than five. Validate the array length and uniqueness in your publisher, and keep the product id with the Sume job that made the clip, so a failed tag can be retried with the same video and no new render.

Test with one Reel and one product first. A single successful tag proves the Shop connection, the role and the permissions together, and only then is it worth running a batch. Keep the Sume clip, the product id and the container response together in your logs, so any tag that fails can be traced to a specific video without re-rendering.

Sources

Related posts

More in Use cases

All Use cases posts

Written by Sume