Get one Instagram post
Fetch one Instagram post or Reel by its URL or shortcode: caption, media, username, timestamp, like_count, comments_count and view_count.
https://api.scrapefield.com/v1/instagram/posthttps://api.scrapefield.com/v1/instagram/post?shortcode=C8xYz1AbCdEIn your code
const params = new URLSearchParams({
"shortcode": "C1a2B3c4D5e"
});
const res = await fetch(`https://api.scrapefield.com/v1/instagram/post?${params}`, {
headers: { Authorization: `Bearer ${process.env.SCRAPEFIELD_KEY}` },
});
const { data, meta } = await res.json();
console.log(data, meta.credits_charged);Parameters
| Parameter | What it does |
|---|---|
url | The post URL. |
shortcode | The shortcode from the URL, e.g. C1a2B3c4D5e. |
fresh | Skip the cache and fetch now. Charged normally. Not available on trial credits — buy any pack to unlock it. default false |
Response
Returns one instagram_post. This is the demo’s answer, the one the playground above returns, in full rather than abbreviated — including the fields that come back null, because a field is null when the platform does not show it and you should know which ones those are before you build on them. A call with your key returns the account you ask for.
{
"data": {
"id": "3504321690910732144",
"shortcode": "C8xYz1AbCdE",
"permalink": "https://www.instagram.com/p/C8xYz1AbCdE/",
"media_type": "IMAGE",
"media_product_type": "FEED",
"caption": "Same corner, four years apart. #filmphoto #baking",
"timestamp": "2026-09-14T07:10:08.000Z",
"username": "blue.door.coffee",
"media_url": "https://cdn.example/ig/C8xYz1AbCdE.jpg",
"thumbnail_url": null,
"children": [],
"video_duration": null,
"like_count": 930,
"comments_count": 21,
"view_count": null,
"hashtags": [
"filmphoto",
"baking"
],
"mentions": [],
"location": null,
"is_paid_partnership": false
},
"meta": {
"request_id": "req_7f3ac1e94b2d40f8a1c6e5d2",
"credits_charged": 3,
"credits_remaining": 74218,
"cached": false,
"fetched_at": "2026-09-20T09:12:03Z",
"next_cursor": null
}
}Fields of instagram_post
An Instagram post or Reel. Named after Instagram's Graph API.
| Field | What it is |
|---|---|
id | Instagram's numeric id for the post. |
shortcode | The code in the URL, e.g. C1a2B3c4D5e. |
permalink | The post. |
media_type | As the Graph API names them. IMAGE · VIDEO · CAROUSEL_ALBUM |
media_product_type | A grid post or a Reel. FEED · REELS |
caption | The caption. |
timestamp | When it was posted. null when the source does not say. |
username | Who posted it. |
media_url | The image, or the video file. A carousel's first item. On Instagram's CDN. Instagram signs the link, and it stops working within a few days, so fetch the file soon. We do not rehost media. |
thumbnail_url | The cover of a video. On Instagram's CDN. Instagram signs the link, and it stops working within a few days, so fetch the file soon. We do not rehost media. |
children | A carousel's items, in order. Empty for a single image or video. |
children[].media_type | An image or a video. IMAGE · VIDEO |
children[].media_url | The image, or the video file. On Instagram's CDN. Instagram signs the link, and it stops working within a few days, so fetch the file soon. We do not rehost media. |
video_duration | Seconds. |
like_count | null when the owner has hidden it. |
comments_count | null when the source does not give it. |
view_count | Views, for videos and Reels. |
hashtags | The caption's hashtags, without the #. |
mentions | The usernames the caption mentions, without the @. |
location | The location tag. |
location.id | Instagram's id for the location. |
location.name | The place's name, as the tag shows it. |
is_paid_partnership | Whether it carries the "Paid partnership" label. null where that is not known. |
What it costs
3 credits per successful call, whether we fetch it or serve it from cache — you pay for the answer, not for how we produced it. Responses are cached for 3 hours and a cached one tells you when the data was actually fetched. A call we fail costs 0 and is refunded automatically.
On the smallest pack that is $2.34 per 1,000 calls; on the largest, $1.32. The full table.
What people build with it
Questions
How much does the Instagram post details API cost?
3 credits a call: $2.34 per 1,000 calls on the smallest pack and $1.32 on the largest. A call that fails costs nothing, and the refund is automatic. A cached answer costs the same as a fresh one. Credits are bought in packs and never expire; there is no plan.
Do I need a Instagram account, a login or cookies?
No. You need a key from us and nothing from Instagram. We never take a customer's login, cookies or session, at any price, and no account of yours is ever at risk.
Can I try it without signing up?
Yes. Add demo=true and leave the key out, or press Send request in the playground on this page. The demo answers with a real answer about Ferrari, captured once a week, in exactly the shape a live call returns, whatever you ask, and charges nothing.
How fresh is the data?
An answer is kept for up to 3 hours, and a cached one says when it was fetched, in meta.fetched_at. Add fresh=true to fetch it again now, at the same price; it needs any purchase, not the trial.
What does it return?
One instagram_post object. Its fields are named after Instagram's Graph API. A field is null when Instagram does not show it, never missing. Every field is described on this page.
Can an AI agent call it?
Yes: it is the MCP tool get_instagram_post on our MCP server, with the same parameters, answer and price. Without a key, the tool answers from the demo.