Instagram video and photo downloader

Paste a public Instagram link. Get the video or photo file.

SampleRecorded public data, shortened. Run the tool for a live result.

Verified NASA’s Johnson Space Center @nasajohnson

More power loading. 🔋 Today, NASA astronaut Anil Menon and CSA (Canadian Space Agency) astronaut Joshua Kutryk conducted a spacewalk to install the 7th of 8 new roll out solar arrays. The final new array is slated to b…

90,356 views, 6,271 likes, 64 comments, 0:41, Oct 29, 2026

Download video

Free, no signup. A limited number of lookups per visitor each hour. Public data only.

How it works

For a reel or video post the API returns the video file address; for a photo post, the image address. Private accounts and stories are not public, so they are not available. Download links expire, so save the file when you look it up.

Use this in your app

This tool calls GET /v1/instagram/post. See the reference, or get early access for a key.

curl
curl -G "https://api.socialscrape.io/v1/instagram/post" \
  -H "x-api-key: $SOCIALSCRAPE_API_KEY" \
  --data-urlencode "url=https://www.instagram.com/reel/DfF3eqGSKKc/"
Python
import os
import requests

params = {
    "url": "https://www.instagram.com/reel/DfF3eqGSKKc/",
}
res = requests.get(
    "https://api.socialscrape.io/v1/instagram/post",
    headers={"x-api-key": os.environ["SOCIALSCRAPE_API_KEY"]},
    params=params,
)
body = res.json()

if body["ok"]:
    print(body["data"])
else:
    print(body["error"]["code"], body["error"]["message"])
TypeScript
const url = new URL("https://api.socialscrape.io/v1/instagram/post");
url.search = new URLSearchParams({
  "url": "https://www.instagram.com/reel/DfF3eqGSKKc/"
}).toString();
const res = await fetch(url, {
  headers: { "x-api-key": process.env.SOCIALSCRAPE_API_KEY! },
});
const body = await res.json();

if (body.ok) {
  console.log(body.data);
} else {
  console.error(body.error.code, body.error.message);
}
n8n
{
  "nodes": [
    {
      "name": "SocialScrape Instagram post or reel details",
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4.2,
      "position": [
        0,
        0
      ],
      "parameters": {
        "method": "GET",
        "url": "https://api.socialscrape.io/v1/instagram/post",
        "sendQuery": true,
        "queryParameters": {
          "parameters": [
            {
              "name": "url",
              "value": "https://www.instagram.com/reel/DfF3eqGSKKc/"
            }
          ]
        },
        "sendHeaders": true,
        "headerParameters": {
          "parameters": [
            {
              "name": "x-api-key",
              "value": "={{ $env.SOCIALSCRAPE_API_KEY }}"
            }
          ]
        }
      }
    }
  ],
  "connections": {}
}

Questions

Does it work for stories?

No. Stories are not public data. Posts, reels and IGTV links work.

What about carousels?

You get the main media of the post. The API's post endpoint lists every item of a carousel.

Is this tool free?

Yes. No account and no card. Each visitor gets a limited number of lookups an hour, so it stays free for everyone.

How do I get this data in my own app?

Send GET /v1/instagram/post with your key in the x-api-key header. A request costs 1 credit. A repeat of something fetched recently costs 0 credits, and failed requests are free. See the reference.