> For the complete documentation index, see [llms.txt](https://docs.agenticflow.ai/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.agenticflow.ai/reference/nodes/instagram_scrapper.md).

# Instagram scrapper

**Action ID:** `instagram_scrapper`

## Description

Scrape an Instagram user.

## Input Parameters

| Name       | Type   | Required | Default | Description                         |
| ---------- | ------ | :------: | ------- | ----------------------------------- |
| user\_name | string |     ✓    | -       | The username of the Instagram user. |

<details>

<summary>View JSON Schema</summary>

**Input Schema**

```json
{
  "description": "Instagram scrapper node input.",
  "properties": {
    "user_name": {
      "description": "The username of the Instagram user.",
      "title": "Instagram username",
      "type": "string"
    }
  },
  "required": [
    "user_name"
  ],
  "title": "InstagramScrapperNodeInput",
  "type": "object"
}
```

</details>

## Output Parameters

| Name                     | Type    | Description                                                             |
| ------------------------ | ------- | ----------------------------------------------------------------------- |
| id                       | string  | The ID of the Instagram user                                            |
| user\_name               | string  | The username of the Instagram user                                      |
| full\_name               | string  | The full name of the Instagram user                                     |
| biography                | string  | The biography of the Instagram user                                     |
| external\_url            | string  | The external URL of the Instagram user                                  |
| followers\_count         | integer | The number of followers of the Instagram user                           |
| follows\_count           | integer | The number of follows of the Instagram user                             |
| has\_channel             | boolean | Whether the Instagram user has a channel                                |
| highlight\_reel\_count   | integer | The number of highlight reels of the Instagram user                     |
| is\_business\_account    | boolean | Whether the Instagram user is a business account                        |
| joined\_recently         | boolean | Whether the Instagram user joined recently                              |
| business\_category\_name | string  | The business category name of the Instagram user (optional)             |
| private                  | boolean | Whether the Instagram user is private                                   |
| profile\_pic\_url        | string  | The URL of the profile picture of the Instagram user                    |
| profile\_pic\_url\_hd    | string  | The URL of the profile picture of the Instagram user in high definition |
| posts\_count             | integer | The number of posts of the Instagram user                               |
| latest\_posts            | array   | The latest posts of the Instagram user                                  |

<details>

<summary>View JSON Schema</summary>

```json
{
  "description": "Instagram scrapper node output.",
  "properties": {
    "id": {
      "description": "The ID of the Instagram user.",
      "title": "ID",
      "type": "string"
    },
    "user_name": {
      "description": "The username of the Instagram user.",
      "title": "Username",
      "type": "string"
    },
    "full_name": {
      "description": "The full name of the Instagram user.",
      "title": "Full name",
      "type": "string"
    },
    "biography": {
      "description": "The biography of the Instagram user.",
      "title": "Biography",
      "type": "string"
    },
    "external_url": {
      "description": "The external URL of the Instagram user.",
      "title": "External URL",
      "type": "string"
    },
    "followers_count": {
      "description": "The number of followers of the Instagram user.",
      "title": "Followers count",
      "type": "integer"
    },
    "follows_count": {
      "description": "The number of follows of the Instagram user.",
      "title": "Follows count",
      "type": "integer"
    },
    "has_channel": {
      "description": "Whether the Instagram user has a channel.",
      "title": "Has channel",
      "type": "boolean"
    },
    "highlight_reel_count": {
      "description": "The number of highlight reels of the Instagram user.",
      "title": "Highlight reel count",
      "type": "integer"
    },
    "is_business_account": {
      "description": "Whether the Instagram user is a business account.",
      "title": "Is business account",
      "type": "boolean"
    },
    "joined_recently": {
      "description": "Whether the Instagram user joined recently.",
      "title": "Joined recently",
      "type": "boolean"
    },
    "business_category_name": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "The business category name of the Instagram user.",
      "title": "Business category name"
    },
    "private": {
      "description": "Whether the Instagram user is private.",
      "title": "Is private",
      "type": "boolean"
    },
    "profile_pic_url": {
      "description": "The URL of the profile picture of the Instagram user.",
      "title": "Profile picture URL",
      "type": "string"
    },
    "profile_pic_url_hd": {
      "description": "The URL of the profile picture of the Instagram user in high definition.",
      "title": "Profile picture URL HD",
      "type": "string"
    },
    "posts_count": {
      "description": "The number of posts of the Instagram user.",
      "title": "Posts count",
      "type": "integer"
    },
    "latest_posts": {
      "description": "The latest posts of the Instagram user.",
      "items": {
        "additionalProperties": true,
        "type": "object"
      },
      "title": "Latest posts",
      "type": "array"
    }
  },
  "required": [
    "id",
    "user_name",
    "full_name",
    "biography",
    "external_url",
    "followers_count",
    "follows_count",
    "has_channel",
    "highlight_reel_count",
    "is_business_account",
    "joined_recently",
    "private",
    "profile_pic_url",
    "profile_pic_url_hd",
    "posts_count",
    "latest_posts"
  ],
  "title": "InstagramScrapperNodeOutput",
  "type": "object"
}
```

</details>

## How It Works

This node connects to Instagram's public data to retrieve comprehensive profile information for a specified username. It fetches account metadata including follower counts, bio information, business status, and recent posts, then returns all this data in a structured format that can be used for analysis, monitoring, or integration with other workflow nodes.

## Usage Examples

### Example 1: Influencer Profile Analysis

**Input:**

```
user_name: "natgeo"
```

**Output:**

```
id: "25025320"
user_name: "natgeo"
full_name: "National Geographic"
biography: "Experience the world through the eyes of National Geographic photographers."
external_url: "https://www.natgeo.com"
followers_count: 283000000
follows_count: 145
has_channel: true
highlight_reel_count: 28
is_business_account: true
joined_recently: false
business_category_name: "Media/News Company"
private: false
profile_pic_url: "https://instagram.com/profile_pic.jpg"
profile_pic_url_hd: "https://instagram.com/profile_pic_hd.jpg"
posts_count: 22450
latest_posts: [...]
```

### Example 2: Competitor Monitoring

**Input:**

```
user_name: "starbucks"
```

**Output:**

```
id: "8829468"
user_name: "starbucks"
full_name: "Starbucks Coffee"
biography: "Inspiring and nurturing the human spirit - one person, one cup, and one neighborhood at a time."
external_url: "https://www.starbucks.com"
followers_count: 19200000
follows_count: 68
has_channel: false
highlight_reel_count: 12
is_business_account: true
joined_recently: false
business_category_name: "Restaurant"
private: false
profile_pic_url: "https://instagram.com/starbucks_pic.jpg"
profile_pic_url_hd: "https://instagram.com/starbucks_pic_hd.jpg"
posts_count: 5890
latest_posts: [...]
```

### Example 3: Brand Ambassador Discovery

**Input:**

```
user_name: "fitness_coach_mike"
```

**Output:**

```
id: "45672891"
user_name: "fitness_coach_mike"
full_name: "Mike Johnson - Fitness Coach"
biography: "Certified Personal Trainer | Nutrition Expert | Helping you reach your fitness goals"
external_url: "https://mikefitnesscoaching.com"
followers_count: 125000
follows_count: 450
has_channel: true
highlight_reel_count: 8
is_business_account: true
joined_recently: false
business_category_name: "Personal Coach"
private: false
profile_pic_url: "https://instagram.com/mike_pic.jpg"
profile_pic_url_hd: "https://instagram.com/mike_pic_hd.jpg"
posts_count: 1247
latest_posts: [...]
```

## Common Use Cases

* **Influencer Marketing Research**: Gather data on potential influencers including follower counts, engagement metrics, and content style
* **Competitor Analysis**: Monitor competitor Instagram accounts to track their growth, posting frequency, and content strategy
* **Brand Monitoring**: Track your own brand's Instagram presence and metrics over time
* **Lead Generation**: Identify potential business partners or customers based on their Instagram profile information
* **Market Research**: Analyze industry trends by examining profiles of leading accounts in your sector
* **Content Strategy Planning**: Study successful accounts to inform your own content approach and posting schedule
* **Influencer Verification**: Validate influencer claims about follower counts and business status before partnerships

## Error Handling

| Error Type              | Cause                                                     | Solution                                                                                   |
| ----------------------- | --------------------------------------------------------- | ------------------------------------------------------------------------------------------ |
| User Not Found          | Instagram username doesn't exist                          | Verify the username spelling and ensure the account exists                                 |
| Private Account         | User's account is set to private with limited public data | Only public account data can be scraped; request won't fail but latest\_posts may be empty |
| Rate Limit Exceeded     | Too many scraping requests in a short time                | Implement delays between requests or reduce request frequency                              |
| Invalid Username Format | Username contains invalid characters or format            | Use valid Instagram username format (letters, numbers, underscores, periods)               |
| Connection Timeout      | Unable to reach Instagram servers                         | Check network connectivity and retry the request                                           |
| Account Suspended       | Instagram account has been suspended or deleted           | Verify account status on Instagram directly                                                |
| Service Unavailable     | Instagram's servers are temporarily unavailable           | Retry the request after a short delay                                                      |

## Notes

* **Public Data Only**: This node can only access publicly available information. Private accounts will return basic metadata but no posts.
* **Latest Posts**: The latest\_posts array contains recent post data including URLs, captions, likes, and comments (for public accounts).
* **Rate Limiting**: Be mindful of request frequency to avoid rate limits. Consider caching results for frequently accessed profiles.
* **Data Freshness**: Scraped data reflects the profile state at the time of request. For real-time monitoring, schedule periodic scraping.
* **Business Accounts**: Business and creator accounts provide more detailed information than personal accounts.
* **Profile Pictures**: Both standard and HD profile picture URLs are provided for downloading or displaying profile images.
* **Terms of Service**: Ensure your use of scraped Instagram data complies with Instagram's terms of service and applicable laws.
* **Data Storage**: Consider storing scraped data in a database if you need historical tracking or trend analysis.
