GetInSaver Developers
Sticky notes planning a workflow: API, ETL, login, submit and a reminder to test
Guide · No-code automation

n8n Instagram Downloader API

In n8n, add an HTTP Request node that POSTs {"service": "instagram", "url": "..."} to https://developers.getinsaver.com/v1/resolve with your API key as a Bearer header. Split the returned items, then download each URL as a file and send it on to Drive, Telegram, S3 or anywhere else. Make and Zapier use the same request.

n8n workflow: trigger, HTTP Request POST /v1/resolve, Split Out items, HTTP Request file download, then Drive, Telegram or S3

Key facts

Endpoint
POST /v1/resolve (one endpoint for every service)
Free trial
20 result credits after email verification, no card
Price
from $19 for 7,500 results ($1.33–$2.53 per 1,000)
Billing
prepaid credits, no subscription, no expiry; failed or empty requests cost 0
Credits per result
1 (Instagram, TikTok, X, Pinterest) or 2 (Stories, Highlights, Telegram)
Limits
up to 20 items per request; 120 requests per minute per account; 2 in progress at once on the trial, 8 on paid accounts

n8n: HTTP Request node settings

SettingValue
MethodPOST
URLhttps://developers.getinsaver.com/v1/resolve
AuthenticationGeneric Credential Type → Header Auth. Name Authorization, value Bearer gis_live_...
Send BodyOn, Body Content Type JSON, Specify Body Using JSON
JSON{"service": "instagram", "url": "{{ $json.url }}", "max_results": 10}
Options → Timeout130000
  1. Feed the node a link from any trigger: a form, a Telegram message, a sheet row or an RSS item. The example reads it from the field url.
  2. Add a Split Out node on the field items, so each media file becomes one item.
  3. Add a second HTTP Request node: GET {{ $json.url }} with the response format set to File.
  4. Send the binary file to Google Drive, Telegram, Dropbox or S3. Do it in the same run: the media URLs are short-lived.

Make and Zapier

In Make, use HTTP → Make a request with the same method, URL, Authorization header and a raw JSON body, and turn on response parsing. In Zapier, use Webhooks by Zapier → Custom Request with the same values. Both then loop over items.

Test the request first

This is the exact request the node sends. Run it in a terminal to check your key before building the workflow:

curl -X POST https://developers.getinsaver.com/v1/resolve \
  -H "Authorization: Bearer $GIS_KEY" \
  -H "Content-Type: application/json" \
  --max-time 130 \
  -d '{"service": "instagram", "url": "https://www.instagram.com/reel/SHORTCODE/", "max_results": 10}'
{
  "ok": true,
  "service": "instagram",
  "source_url": "https://www.instagram.com/reel/SHORTCODE/",
  "item_count": 1,
  "items": [
    {
      "type": "video",
      "url": "https://cdn.example/media.mp4"
    }
  ],
  "metadata": {
    "title": null,
    "author": "creator",
    "caption": null
  },
  "request_id": "39a3bff5-0000-4000-8000-000000000000",
  "credits_used": 1
}

Service IDs

serviceCoversCredits / resultLink format
instagramInstagram Posts & Reels1instagram.com/p/...
instagram-storyInstagram Stories2instagram.com/stories/username/...
instagram-highlightInstagram Highlights2instagram.com/stories/highlights/...
tiktokTikTok1tiktok.com/@user/video/...
xX / Twitter1x.com/user/status/...
pinterestPinterest1pinterest.com/pin/...
telegramTelegram Public Media2t.me/channel/123

Errors your workflow should route

HTTPCodeWhat to do
402INSUFFICIENT_CREDITSTop up, or lower max_results: a request reserves max_results × credits per result first.
422UPSTREAM_REJECTEDThe post is private, deleted, expired or login-only. Show the message to your user; nothing was charged.
429RATE_LIMITED / CONCURRENCY_LIMITWait for Retry-After seconds and retry. 120 requests per minute per account; 2 at once on the trial, 8 after buying credits.
502 / 504UPSTREAM_*Temporary platform failure. Safe to retry; nothing was charged.

Every error body is JSON with a stable code and a readable message. The full list is in the API reference.

FAQ

Does this need an Instagram login in n8n?

No. The workflow never signs in to Instagram. It sends a public link and your GetInSaver API key.

Can one workflow handle Instagram and TikTok links?

Yes. Set the service field from the link with an IF or Switch node: instagram.com goes to instagram, tiktok.com to tiktok, x.com to x.

How many credits does a workflow run use?

One credit per returned Instagram, TikTok, X or Pinterest item and two per Story, Highlight or Telegram item. Failed runs use none.

Do failed requests cost credits?

No. Credits are reserved while a request runs and refunded in full when it fails or finds no media. You only pay for items that come back.

Updated 2026-10-30. The code on this page is executed by our test suite against the API server before every release.

Make your first call in five minutes.

20 free credits when you verify your email. No card needed.

Create a free account