POST /web/scrape with formats.parse: true and parseParams: {"type": "prebuilt", "parser": "instagram-feed"}. Read the result in parsed.data, with parsed.type: "instagram-feed". 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 one of these URLs:Output
Whenparsed.success is true, the parsed output has this shape:
Post fields
Each post uses the post shape, without duplicates. Without a login, Instagram shows hashtags as its keyword page, so hashtag and keyword URLs return the same ranked posts. Broad keywords return a couple of hundred posts; narrow ones return about 12. Keyword posts carry theshortcode, url, owner, thumbnail_url, and view_count, plus the caption and video_url when Instagram shows them; their other fields are null or []. Location posts carry the full post fields, about 15 to 20 at a time. For a keyword post’s full details, pass its url to Instagram post.
Empty results and errors
A hashtag or keyword Instagram has no public page for producesNOT_FOUND; this includes rare terms and some non-English hashtags. A location with no public posts, or an unknown location ID, produces posts: []. Read parsed.success before using the data. A failed parse has data: null and can coexist with successful outputs. parsed.type remains "instagram-feed" even when parsing fails. See timeouts and errors for handling failures.