> **For coding agents and LLMs:** This is one Social Fetch marketing page (markdown export). For API orientation start with [`/llms.txt`](https://www.socialfetch.dev/llms.txt); for auth and crawl rules use [`/agents.txt`](https://www.socialfetch.dev/agents.txt); for every operation use [`/llms-endpoints.txt`](https://www.socialfetch.dev/llms-endpoints.txt).

## This page

- **On-site (HTML):** <https://www.socialfetch.dev/platforms/instagram/v2-instagram-media-media>
- **Markdown (.mdx) URL:** <https://www.socialfetch.dev/platforms/instagram/v2-instagram-media-media.mdx>

---

# Instagram Media API

One post or Reel in full detail by shortcode, URL or numeric media id, in the same media object every v2 list returns.

`GET /v2/instagram/media/{media}` takes a shortcode, a post, Reel or TV URL, or a numeric media id. Share links (`instagram.com/share/…`) are a 400: open the link and pass the post URL it opens. Read `data.lookupStatus` (`found` or `not_found`), then `data.media`. A post that doesn't exist, was deleted, or belongs to a private account is `not_found` with a null `media`. Every field is always present and is `null` when Instagram doesn't say. `meta.version` is `v2`.

The media object holds the id, shortcode and URL, `kind` (`post` or `reel`), `mediaType` (`image`, `video` or `carousel`), caption and time, the owner, like, comment, play, share and save counts (`likeCount` is `null` and `likesHidden` is `true` when the likes are hidden), image and video URLs, every item of a carousel, audio, co-authors, tagged users, location and the paid-partnership flag. This is the detail view, so `taggedUsers` is always a list, `[]` when nobody is tagged. Comments aren't included. Media URLs are Instagram's and expire after a while. A lookup costs 1 credit, found or not; confirm with `meta.creditsCharged`.

Add `include=files` (+10 credits) to keep the post: its original files are copied to our media CDN and `data.files` lists them as `{ url, type, expiresAt }`, in the order of `media.carousel` (the one image or video otherwise), with videos in the best quality available. The links stay valid until `expiresAt`, the end of the retention period, so save the files if you need them longer. `files` is `null` when it isn't asked for, when the post is not found, and when the files couldn't be hosted (one that can't be fetched, or one too large, fails the whole set so the list is never shorter than the post); then the 10 credits aren't charged and the lookup costs 1.

## Request

- **Endpoint:** `GET /v2/instagram/media/{media}`
- **Credits:** 1 credit per lookup, found or not found
+10 credits per 16 MB of files, max 60 (most posts: 10)
Files that aren't hosted are free
- **Input:** by shortcode, URL or media id
- **Full reference:** [docs](https://www.socialfetch.dev/docs/api/v2/instagram/media/media/get)
- **Platform page:** [/platforms/instagram](https://www.socialfetch.dev/platforms/instagram)

## FAQ

### How do I get an Instagram post or Reel with the v2 API?

Call `GET /v2/instagram/media/{media}` with your Social Fetch API key (`x-api-key`) and a shortcode, post or Reel URL, or numeric media id in the path. Read `data.lookupStatus` and `data.media`.

### How much does it cost?

1 credit for a completed lookup, whether the post is found or not, plus 10 for `include=files` when the files are hosted. `meta.creditsCharged` is the amount billed.

### What can I pass as the media identifier?

A shortcode (`DePzV26vLFB`), a post, Reel or TV URL (URL-encode it in the path), or the numeric media id. They all find the same post. Share links aren't accepted: open one and pass the post URL it opens.

### What does a private account's post return?

`lookupStatus: not_found` with a null `media`, the same as a deleted post. Social Fetch only returns publicly visible data.

### Are tagged users always included?

Yes. This detail view always fills `taggedUsers`: the accounts tagged in the post, in a carousel's items, or in a Reel. It is an empty list when nobody is tagged. List endpoints may return `null` there because a list page doesn't carry tags.

### How do I download the files of a post or Reel?

Add `include=files`. The original image, video or every carousel item is copied to our media CDN and `data.files` lists `url`, `type` and `expiresAt` for each, in carousel order. It costs 10 credits on top of the lookup (11 in total). The links work until `expiresAt`, so save the files if you need them longer. If the files couldn't be hosted, `files` is `null` and only the 1-credit lookup is billed.
