GAPI

Instagram

Resolves any public Instagram URL into direct media links. One endpoint covers reels, photos, carousels and stories — you never pick a mode.

GEThttps://api.gapi.dev/instagram

Requires the X-API-Key header · responds in JSON

Parameters

urlrequiredstring

Public Instagram URL. Share links copied straight from the app work as-is — tracking parameters such as ?igsh= are handled for you.

e.g. https://www.instagram.com/reel/DbLWsRuyurp/

Try it

GEThttps://api.gapi.dev/instagram
Try
No key yet? Create one free
curl -G 'https://api.gapi.dev/instagram' \
  --data-urlencode 'url=https://www.instagram.com/reel/DbLWsRuyurp/' \
  -H 'X-API-Key: YOUR_KEY'

Responses

{
  "platform": "instagram",
  "type": "album",
  "title": "Three days in the mountains",
  "author": null,
  "thumbnail": "https://scontent.cdninstagram.com/…",
  "duration": null,
  "media": [
    { "type": "image", "url": "https://…", "quality": null, "ext": null },
    { "type": "image", "url": "https://…", "quality": null, "ext": null },
    { "type": "video", "url": "https://…", "quality": null, "ext": null }
  ]
}

What each link gives you

You sendtypemedia contains
/reel/…videoone MP4
/p/… single photoimageone image
/p/… carouselalbumevery slide, in order
/stories/<user>/…albumall stories currently active on that account

Field-by-field detail is on the response shape page.

Speed

Typical response time of 0.5 to 2.5 seconds

Measured on cold requests for links the resolver had not seen before. Reels are usually fastest; carousels take longest because more files are resolved.

One call, one request

A carousel with ten slides costs the same as a single photo — one request against your quota. You are billed for calls, not files.