List Instagram user reels
List the latest public Instagram reels of an account (pinned reels first, then the newest 12) with play, like and comment counts, upload times and thumbnails. include_details adds each reel's publication time and caption; since and until keep a time window; trim selects compact records.
/v1/instagram/user/reelsx-api-keyHeaders
Get your API keyYour ScrapeAtlas customer key. Create one on /account/ and set SCRAPEATLAS_API_KEY.
Optional.
Optional.
max 31 chars
exampleCursor pages are served only to logged-in visitors: a request with max_id answers 403 restricted_page.
true returns the reference's flattened trimmed layout: items[] with id, code, taken_at, created_at, uploaded_at, caption (the last four as available), play_count, comment_count, like_count, display_uri, user and url, and a top-level max_id (null) instead of paging_info.
one of: true, false
true also reads the profile grid around the page's reels (up to two documents) and adds taken_at, created_at and caption to each reel it lists; reels the grid does not list keep uploaded_at only and the response is partial with reel_details_partial.
one of: true, false
Earliest upload time to include, ISO 8601 or Unix seconds; pinned reels are kept when inside the window.
Upload time to stop before, ISO 8601 or Unix seconds; later than since.
Request correlation identifier.
HTTP attempts for the operation (profile: one document, plus the page load the first time a handle is seen; basic-profile: one document; post-count: page; posts: page plus document the first time a handle is seen, otherwise the profile document, the session probe and the posts document; reels: the reels page, plus the profile document when identified by user id; with include_details up to two grid documents, one by user id; post: document plus page, or the document alone with include_comments=false on non-carousel media; comments: page; highlights: page, plus a document when identified by user id; popular search: page; all including the shared transient retry), decoded bytes and duration.
Always included.
≥ 0
Always included.
≥ 0
Always included.
≥ 0
True when usable data is returned; inspect status and coverage for omissions.
success, partial, failed, or challenged. HTTP 200 can be partial.
one of: success, partial
Canonical instagram.com URL of the profile, post or reel.
absolute HTTPS URL
UTC retrieval time.
order is newest_first, after pinned reels; window echoes since and until. Warnings name every omission or cap (first_page_only when the account has more reels than the first page, private_account, items_truncated, reel_details_partial).
Always included.
Always included.
Always included.
Always included.
one of: newest_first, oldest_first, ranked, relevance, source_order
Optional.
Optional.
Optional.
Always included.
up to 50 items
Always included.
Always included.
Always included.
min 1 chars
Always included.
min 1 chars
Always included.
Always included.
absolute HTTPS URL
Always included.
Always included.
Always included.
No fields match.
HTTP 200 returns the success variant. Check status: partial means usable data with warnings, and failed or challenged requests carry a failure object described in Errors & responses.
| HTTP | failure.code | Meaning |
|---|---|---|
| 400 | invalid_request | Missing, duplicate, malformed or unsupported parameters, handles, ids, cursors or URLs. |
| 401 | unauthorized | Invalid API key. |
| 404 | not_found | Unknown handle, user id, post, or a keyword without a popular page. |
| 403 | restricted_page | The page or document is private or gated (private account, gated media, login redirect). |
| 422 | count_estimated_only | Instagram abbreviates this post count and allow_estimated was not set. |
| 429 | upstream_rate_limited | Instagram rate limited the page load or the GraphQL read. |
| 502 | upstream_challenged | Instagram refused the request with its error shell (status challenged). |
| 502 | operation_unavailable | Instagram no longer serves the pinned document for this operation. |
| 502 | unsafe_redirect | Instagram redirected the request somewhere other than the login form. |
| 502 | unsupported_page | The page or GraphQL result is missing, mismatched or structurally unsupported. |
| 502 | response_too_large | The decoded responses exceeded the operation's byte budget (1–5 MiB). |
| 502 | payload_too_complex | The response exceeded the JSON depth or node limits. |
| 502 | request_limit | The upstream request budget was exhausted. |
| 502 | upstream_error | Network failure or HTTP 5xx after the single retry. |
| 503 | busy | All retrieval slots are busy. |
| 504 | timeout | The 45-second deadline elapsed. |