Scrape Everything for n8n

A community node that brings all nine platforms into your self-hosted n8n workflows. It is marked usableAsTool, so AI Agent nodes can call it too. On n8n Cloud, use the HTTP Request node instead.

Install (self-hosted n8n)

Using n8n Cloud? n8n Cloud only offers community nodes that n8n has verified. This node is not verified yet, so it installs on self-hosted n8n only. On Cloud, call the API with the built-in HTTP Request node: see the setup below.

  1. In n8n, go to Settings → Community Nodes and click Install. You need the Owner or Admin role.
  2. Enter n8n-nodes-scrapeeverything, tick the box that confirms you understand the risks of installing unverified code, and click Install.
  3. Create a Scrape Everything API credential and paste your API key. n8n tests it against GET /v1/account, which never spends credits.
  4. Search for Scrape Everything in the nodes panel, pick a platform (resource) and an action (operation).

Operations

  • Instagram: profile (1), photos (2), post (1), reel (1), comments (1), reels (2), reels search (3)
  • X (Twitter): profile (1), posts (2), post (1)
  • TikTok: profile (1), posts (1), video (1), comments (1), transcript (1), music (2), hashtag (1)
  • YouTube: profile (1), videos (1), video (1), search (1), comments (1), transcript (1), playlist (1)
  • Facebook: profile (1)
  • Telegram: profile (1), posts (2), post (1)
  • Spotify: track (1), artist (1), album (1), playlist (1)
  • Pinterest: profile (1), pins (2), pin (1), search (2), board (2)
  • Twitch: channel (1), videos (1), clips (1)

Numbers are credits per call. A Custom Request operation calls any endpoint by path. Use Cache Days to make repeat lookups free, and Loop Over Items with a small batch for large lists.

n8n Cloud: use the HTTP Request node

This works on any n8n, with no node to install. The API is plain JSON over HTTPS.

  1. Create a Header Auth credential. Name: Authorization. Value: Bearer ssk_live_... (your API key).
  2. Add an HTTP Request node. Method POST, URL https://api.scrapeeverything.com/v1/instagram/profile (any endpoint path from the docs).
  3. Authentication: Generic Credential Type → Header Auth. Turn on Send Body, choose JSON, and send for example { "username": "nasa" }.
  4. Under Options → Timeout, enter 90000 (milliseconds). The response is { success, data, meta }, so map fields from data.

Example workflows

Both read usernames from a Google Sheet, fetch each Instagram profile (1 credit each, free on a cache hit) and append followers, posts and verification status to a second tab. Copy the JSON and paste it into the n8n canvas, or save it as a file and use Import from File. Then pick your credentials and your sheet URL.

{
  "name": "Sheet → Instagram profile → Sheet (Scrape Everything node)",
  "nodes": [
    {
      "parameters": {},
      "name": "When clicking 'Execute workflow'",
      "type": "n8n-nodes-base.manualTrigger",
      "typeVersion": 1,
      "position": [
        0,
        0
      ]
    },
    {
      "parameters": {
        "operation": "read",
        "documentId": {
          "__rl": true,
          "mode": "url",
          "value": "https://docs.google.com/spreadsheets/d/YOUR_SHEET_ID/edit"
        },
        "sheetName": {
          "__rl": true,
          "mode": "name",
          "value": "Input"
        },
        "options": {}
      },
      "name": "Read usernames",
      "type": "n8n-nodes-base.googleSheets",
      "typeVersion": 4.5,
      "position": [
        220,
        0
      ]
    },
    {
      "parameters": {
        "resource": "instagram",
        "operation": "profile",
        "username": "={{ $json.username }}",
        "options": {
          "cacheDays": 1
        }
      },
      "name": "Instagram profile",
      "type": "n8n-nodes-scrapeeverything.scrapeEverything",
      "typeVersion": 1,
      "position": [
        440,
        0
      ],
      "retryOnFail": true,
      "waitBetweenTries": 3000,
      "credentials": {
        "scrapeEverythingApi": {
          "id": "",
          "name": "Scrape Everything account"
        }
      }
    },
    {
      "parameters": {
        "operation": "append",
        "documentId": {
          "__rl": true,
          "mode": "url",
          "value": "https://docs.google.com/spreadsheets/d/YOUR_SHEET_ID/edit"
        },
        "sheetName": {
          "__rl": true,
          "mode": "name",
          "value": "Results"
        },
        "columns": {
          "mappingMode": "defineBelow",
          "value": {
            "username": "={{ $json.username }}",
            "followers": "={{ $json.follower_count }}",
            "posts": "={{ $json.post_count }}",
            "verified": "={{ $json.is_verified }}",
            "category": "={{ $json.category_name }}",
            "checked_at": "={{ $now.toISO() }}"
          }
        },
        "options": {}
      },
      "name": "Append to sheet",
      "type": "n8n-nodes-base.googleSheets",
      "typeVersion": 4.5,
      "position": [
        660,
        0
      ]
    }
  ],
  "connections": {
    "When clicking 'Execute workflow'": {
      "main": [
        [
          {
            "node": "Read usernames",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Read usernames": {
      "main": [
        [
          {
            "node": "Instagram profile",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Instagram profile": {
      "main": [
        [
          {
            "node": "Append to sheet",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  },
  "settings": {}
}

The sheet needs an Input tab with a username column and an empty Results tab. For long lists, add a Loop Over Items node with a small batch size. Timeouts and retries are covered in Rate limits.

Start with 100 free credits.

Continue with Google, create an API key and send your first request in under a minute.

Get 100 free credits