Skip to main content
Use POST /web/scrape with formats.parse: true and parseParams: {"type": "prebuilt", "parser": "instagram-post"}. Read the result in parsed.data, with parsed.type: "instagram-post". See the Quickstart for authentication and SDK setup. Don’t send custom rules with this parser. For CSS selectors and rules, use the Custom parser.

Request

Use a public post or reel URL: instagram.com/p/{shortcode}/, /reel/{shortcode}/, or /tv/{shortcode}/. A username before the path, as in instagram.com/natgeo/reel/{shortcode}/, also works.

Output

When parsed.success is true, the parsed output has this shape:

Post fields

The Instagram profile and Instagram feed parsers return posts in the same shape.
All fields are present. Unavailable scalar values are null; missing lists are []. IDs are strings, and dates are ISO 8601. hashtags and mentions are read from the caption, without # or @. tagged_users, collaborators, and sponsors are usernames. view_count and video_duration_seconds are null for images. Media URLs are signed Instagram CDN links that expire, so download them promptly if you need to keep them. comments holds the top comments Instagram shows publicly, usually about 14; comment_count is the total. Replies and further comments need an Instagram login and aren’t returned. is_paid_partnership is null when the post page doesn’t state it; the profile parser reports paid partnerships and sponsors for a profile’s latest posts.

Empty results and errors

A deleted or nonexistent post produces NOT_FOUND. Read parsed.success before using the data. A failed parse has data: null and can coexist with successful outputs. parsed.type remains "instagram-post" even when parsing fails. See timeouts and errors for handling failures.

Request options

This parser reads public Instagram data separately from the rendered page, without logging in. Content filters and browser actions do not change its results. Browser profiles are unsupported with this parser. Other Scrape controls, including caching, timeouts, and zero data retention, still apply.