All endpoints
Instagram Post Details

Instagram Post Details API

Get full details for a single Instagram post, reel, or IGTV video by URL or shortcode. Returns the caption, engagement metrics (likes, comments, shares, views), media URLs, carousel slides, audio track, tagged users, location, and author info.

Price: $0.006 per request
Free tier: 50 requests/month
Endpoint
GET /v1/instagram/post

Parameters

url
Instagram post, reel, or story URL, e.g. https://www.instagram.com/p/CxYQJO8xuC6/ (max 500 characters). Provide either url or code.
code
The post's shortcode, e.g. CxYQJO8xuC6, or numeric media ID (max 50 characters). Provide either url or code.
get_sentiment
Set to true to add AI emotion analysis (+$0.001)

Response fields

post
The post object
title
Post title (format: @username on Instagram)
url
Direct link to the post
date
Publication date and time
date_timestamp
Publication date as a Unix timestamp
author
Instagram username
author_id
Author's Instagram user ID
source
Platform name (Instagram)
domain
instagram.com
snippet
Post caption text
likes
Number of likes
comments
Number of comments
shares
Number of shares
reposts
Number of reposts
views
Number of views/plays (null for image posts)
is_video
Whether the post is a video
media_type
Post type (e.g., feed, clips, carousel_container)
author_verified
Whether the author is verified
author_name
Author's display name
hashtags
Hashtags used in the caption
mentions
Usernames mentioned in the caption
media_id
Instagram media ID
thumbnail_url
URL of the post's cover image (temporary; valid ~6-24 hours)
video_url
Direct video URL for video posts/reels, empty for images (temporary; valid ~6-24 hours)
video_duration
Video length in seconds (null for images)
width
Media width in pixels
height
Media height in pixels
carousel_media_count
Number of items in a carousel post (0 for single-media posts)
is_paid_partnership
Whether the post is a paid partnership / branded content
location
Geotag object (name, city, lat, lng) or null
tagged_users
Users tagged in the post (username, full_name, user_id)
coauthors
Collaborators on the post (username, full_name, user_id, is_verified)
carousel_media
For carousel/album posts: array of slides, each with media_id, is_video, image_url, video_url, width, height (empty for single-media posts)
audio
Audio track for reels/videos: type (music or original), title, artist, audio_id, duration_ms (null when the post has no audio)
is_pinned
Whether the post is pinned to the top of the author's profile
accessibility_caption
Auto-generated alt text describing the image (empty when unavailable)
sentiment
Emotion analysis: emotions, dominant_emotion, emotional_intensity, polarity (when get_sentiment=true)

Example Request

curl "https://apidirect.io/v1/instagram/post?url=https://www.instagram.com/reel/DaTSSukB-Lb/" \
  -H "X-API-Key: YOUR_API_KEY"

Example Response

{
  "post": {
    "title": "@instagram on Instagram",
    "url": "https://instagram.com/p/DaTSSukB-Lb",
    "date": "2026-07-02 18:58:11",
    "date_timestamp": 1783018691,
    "author": "instagram",
    "author_id": "25025320",
    "source": "Instagram",
    "domain": "instagram.com",
    "snippet": "this glow >>> #InTheMoment Video by @chriswoodlight Music by Amory Reel",
    "likes": 167541,
    "comments": 2493,
    "shares": 13063,
    "reposts": 0,
    "views": 21786137,
    "is_video": true,
    "media_type": "clips",
    "author_verified": true,
    "author_name": "Instagram",
    "hashtags": ["#InTheMoment"],
    "mentions": ["chriswoodlight"],
    "media_id": "3932567351408976603",
    "thumbnail_url": "https://scontent.cdninstagram.com/v/t51.82787-15/cover.jpg",
    "video_url": "https://scontent.cdninstagram.com/o1/v/t2/video.mp4",
    "video_duration": 22.03,
    "width": 720,
    "height": 1280,
    "carousel_media_count": 0,
    "is_paid_partnership": false,
    "location": null,
    "tagged_users": [
      {"username": "chriswoodlight", "full_name": "Chris Wood Light Studio", "user_id": "2107151539"}
    ],
    "coauthors": [],
    "carousel_media": [],
    "audio": {
      "type": "music",
      "title": "her garden",
      "artist": "Amory Reel",
      "audio_id": "7115801341882925",
      "duration_ms": 89205
    },
    "is_pinned": false,
    "accessibility_caption": ""
  }
}

Frequently asked questions

What can I pass as input?

Any Instagram post, reel, IGTV, or story URL (/p/, /reel/, /tv/, /stories/), or the post's shortcode from the URL (e.g. CxYQJO8xuC6), or its numeric media ID via the code parameter. Pass exactly one of url or code.

Does this work for Reels?

Yes. Reels return media_type "clips" plus views, video_url, video_duration, and the audio track (music title, artist) used in the reel.

What about carousel (album) posts?

Carousel posts return media_type "carousel_container" and a carousel_media array with every slide's image/video URL and dimensions.

Are the media URLs permanent?

No. thumbnail_url, video_url, and carousel media URLs are served from Instagram's CDN and expire after roughly 6-24 hours. Fetch fresh URLs when you need them.

What happens if the post doesn't exist?

The endpoint returns 404 with code: "not_found". You are not charged for not_found responses.

How does pricing work?

You only pay for successful requests. The Instagram Post Details API costs $0.006 per request. There are no monthly fees or commitments. You get 50 free requests per endpoint every month.

Do I need a credit card to start?

No. You can sign up and use the free tier (50 requests/endpoint/month) without adding a payment method. You only need to add a card when you want to exceed the free tier.

Are there rate limits?

Yes, there's a concurrency limit of 3 simultaneous requests per endpoint per user. If you need more, just get in touch.

Start using the Instagram Post Details API

Get your API key and start making requests in minutes. 50 requests/month free every month.

Get API Key