Instagram Account Posts
Instagram Account Posts
Overview
List the latest posts of an Instagram account, one page per call, together with the account's engagement statistics. Identify the account by username (handle, @handle or profile URL) or by user_id (numeric Instagram account id). Every post carries its id, shortcode, canonical URL, type (image, video, reel or carousel), publication time, author handle, caption (cut at 300 characters) and its like and comment counters. Reels and videos also carry view_count (views or plays); it is null on images and carousels and when the account hides its counters.
The stats block is computed over the posts of the returned page: average likes, average comments (each only over the posts with a visible counter) and the engagement rate (average likes + average comments) / followers × 100, rounded to four decimals. The follower count comes from the account's profile, which is cached for up to 30 days. The rate is null when the follower count is unknown.
Fetched pages are cached for 24 hours and shared across the platform. A second request for the same page within that window answers instantly and is charged the lower cached price.
When to use
- Audit an account's content performance: likes, comments and views of the latest posts plus the engagement rate in one call.
- Compare candidate accounts for a lead list before resolving full profiles with
instagram_profile.
- Follow an account's posting rhythm over time by paging back through
next_cursor.
[!NOTE]
An account without posts completes successfully with count: 0 and is not charged. A private account answers restricted: true, an unknown handle found: false, both free. Genuine errors of the data service (auth, rate limit, 5xx) still fail the run and are refunded.
Endpoint
Output
Paging
Each call returns one page. To get the next page, pass the value of next_cursor back as cursor. A null cursor means the list is fully read. Pages are priced individually, so page only as deep as you need.
Pricing
This enrichment costs 2 credits for a freshly fetched page. A page served from the cache (at most 24 hours old) is charged the lower cached tier. Pages without posts, private accounts and unknown accounts are free.
Examples
Playground
States
| State |
Description |
queued |
Request accepted; waiting to be picked up by a worker. |
processing |
Worker is actively running the enrichment. |
completed |
Enrichment finished and results are available in output. |
failed |
Enrichment failed; reason is in error. Credits are refunded for failures unless otherwise noted. |
Errors
| Error |
When it happens |
What to do |
invalid_input |
Neither username nor user_id is given, username is not a valid handle or profile URL, or cursor is malformed. |
Pass a handle like natgeo or a numeric account id. |
rate_limited |
The data service throttled the request. |
Retry with backoff. |
provider_error |
The data service returned an unexpected error. |
Retry; if persistent, contact support. |
503 endpoint_unavailable |
The endpoint is currently not configured or temporarily disabled. Nothing is reserved or charged. |
Retry later; if persistent, contact support. |