Instagram Profile posts
Fetch recent posts and activity from a profile or page
Endpoint
One endpoint for every offer below. Omit provider and the router picks with automatic failover — the response's served_by tells you which one ran.
https://api.socialrouter.io/v1/extract/instagram/profile.postsOffers
Every offer below returns the same normalized output, in failover order — the first one serves unless you pin another with the provider field.
brightdata/instagramvia Bright Datadefault routeUp to 1000 URLs per request
$0.0017per recordapify/apifyvia ApifyUp to 50 URLs per request
$0.0037per record
Parameters
JSON body of the request. Unknown fields and unknown options are rejected with the valid list, so a wrong guess costs nothing.
| Parameter | Type | Description |
|---|---|---|
urlsRequired | string[] | One URL per record to process. Accepted shapes:https://www.instagram.com/<username>Example: https://www.instagram.com/instagramA single url string is accepted too. |
providerOptional | string | Pin one offer, e.g. brightdata/instagram. Omit it and the router picks with failover. |
limitOptional | integer | Max records to return per URL. |
optionsOptional | object | Service-specific options, listed below. |
options.onlyPostsNewerThanOptional | YYYY-MM-DD | Only return posts published on or after this UTC date. A relative value works too — "1 day", "2 months", "3 years". |
Output
Each record has the fields below, whichever offer serves the request. Offers may include additional platform-specific fields on top.
post_urlurlLink to the individual post
post_textstringText content of the post
likes_countnumberTotal likes / reactions
comments_countnumberTotal comments
shares_countnumberTotal shares / reposts
posted_atiso8601When the post was published
author_namestringName of the author (the profile being queried)
sourcestringPlatform the record was extracted from (e.g. "linkedin")
extracted_atiso8601UTC timestamp when the record was produced
Going further
Auth, error semantics, and every other endpoint live in the API reference — including the machine-readable OpenAPI spec at /v1/openapi.json.
Frequently asked questions
How much does Instagram profile posts cost?
Prices start at $0.0017 per record, depending on the offer that serves the request. You are only charged for records actually returned.
Which offers serve instagram/profile.posts?
brightdata/instagram, apify/apify — 2 offers are available behind the same endpoint. Pin one with the optional "provider" field, or omit it and the router picks with automatic failover. The response's "served_by" field names the offer that ran.
What input does it need?
The "urls" field of the JSON body, as an array of strings: https://www.instagram.com/<username>. For example: https://www.instagram.com/instagram
Is the output format the same for every offer?
Yes. Every offer returns the normalized record schema documented on this page; some add extra platform-specific fields on top, but the documented fields are always present.
How many URLs can I send per request?
Up to 1000 URLs in a single request, depending on the offer.
What happens if an offer fails?
SocialRouter automatically fails over to the next offer serving the same service, so a single upstream outage doesn't break your integration.
What options does it take?
onlyPostsNewerThan (string): Only return posts published on or after this UTC date. A relative value works too — "1 day", "2 months", "3 years".