{
  "openapi": "3.0.1",
  "info": {
    "title": "Instagram E-commerce Brands with Shopify Stores Leads Scraper",
    "description": "Find Instagram ecommerce brands in any niche, verify which ones use Shopify, and export qualified outreach leads in minutes.",
    "version": "1.0",
    "x-build-id": "zlOWiDuqgOVDhJaCZ"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/leafy-dev-jr~instagram-shopify-leads-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-leafy-dev-jr-instagram-shopify-leads-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/acts/leafy-dev-jr~instagram-shopify-leads-scraper/runs": {
      "post": {
        "operationId": "runs-sync-leafy-dev-jr-instagram-shopify-leads-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor and returns information about the initiated run in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/runsResponseSchema"
                }
              }
            }
          }
        }
      }
    },
    "/acts/leafy-dev-jr~instagram-shopify-leads-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-leafy-dev-jr-instagram-shopify-leads-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "inputSchema": {
        "type": "object",
        "properties": {
          "searchTerms": {
            "title": "Search terms (niche keywords)",
            "type": "array",
            "description": "Niche keywords used to discover Instagram business profiles, e.g. <b>skincare</b>, <b>streetwear</b>, <b>handmade jewelry</b>. Discovery automatically expands beyond literal name matches: it also tries commerce variants of each term, profiles Instagram suggests as related, and hashtags the discovered brands actually use. For best results, also add a few seed usernames below.",
            "items": {
              "type": "string"
            }
          },
          "locations": {
            "title": "Locations (optional)",
            "type": "array",
            "description": "Countries or cities combined with your search terms, e.g. <b>United Kingdom</b>, <b>London</b>, <b>Philippines</b>. Leave empty for worldwide discovery.",
            "items": {
              "type": "string"
            }
          },
          "hashtags": {
            "title": "Hashtags (optional)",
            "type": "array",
            "description": "Instagram hashtags to discover profiles from, with or without the leading #, e.g. <b>skincarebrand</b>.",
            "items": {
              "type": "string"
            }
          },
          "usernames": {
            "title": "Instagram usernames (highly recommended)",
            "type": "array",
            "description": "<b>Highly recommended for the best results.</b> Add 2-3 Instagram usernames of brands you already like in this niche (with or without the leading @) and the Actor uses them as seeds to find similar accounts via Instagram's own suggestions, on top of anything search terms find. This consistently surfaces better, less obvious matches than keywords alone, and works even without search terms.",
            "items": {
              "type": "string"
            }
          },
          "startUrls": {
            "title": "Instagram profile URLs (optional)",
            "type": "array",
            "description": "Direct links to Instagram profiles, e.g. <b>https://www.instagram.com/examplebrand/</b>.",
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          },
          "maxResults": {
            "title": "Leads to collect",
            "minimum": 1,
            "maximum": 5000,
            "type": "integer",
            "description": "The run stops as soon as this many leads have been saved to the dataset. Discovery keeps searching (more result pages, related profiles, hashtags) until this target is reached or sources are exhausted. Start small to preview results, then scale up.",
            "default": 5
          },
          "leadType": {
            "title": "Which businesses to keep",
            "enum": [
              "shopify-instagram",
              "instagram",
              "shopify",
              "all"
            ],
            "type": "string",
            "description": "What a business must have to become a lead. The default keeps only verified Shopify stores with a matched Instagram account. Looser options return more leads; every row always reports both sides (<code>isShopify</code>, <code>instagramUrl</code>), so you can also keep everything and filter the dataset afterwards.",
            "default": "shopify-instagram"
          },
          "onlyActiveProfiles": {
            "title": "Only active profiles",
            "type": "boolean",
            "description": "Only keep leads whose Instagram profile posted within the last 30 days.",
            "default": false
          },
          "requireEmail": {
            "title": "Require public email",
            "type": "boolean",
            "description": "Only keep leads that expose a public business email address.",
            "default": false
          },
          "skipPreviousLeads": {
            "title": "Only new leads",
            "type": "boolean",
            "description": "Skip businesses already exported by any previous run of this Actor on your account. Perfect for weekly prospecting runs that should only return fresh leads.",
            "default": false
          },
          "resetLeadsHistory": {
            "title": "Reset lead memory",
            "type": "boolean",
            "description": "Forget every previously exported business before this run starts. Use this to rebuild a full list from scratch after using \"Only new leads\".",
            "default": false
          },
          "excludedUsernames": {
            "title": "Excluded usernames",
            "type": "array",
            "description": "Instagram usernames to skip (e.g. your own accounts or existing customers).",
            "items": {
              "type": "string"
            }
          },
          "excludedDomains": {
            "title": "Excluded website domains",
            "type": "array",
            "description": "Website domains to skip, e.g. <b>examplebrand.com</b>.",
            "items": {
              "type": "string"
            }
          },
          "discoveryMode": {
            "title": "Discovery engine",
            "enum": [
              "auto",
              "shopify-first",
              "instagram-first",
              "both"
            ],
            "type": "string",
            "description": "How search terms discover leads. <b>Auto</b> runs both pipelines. Shopify-first finds storefronts on the web and verifies them before touching Instagram (sidesteps Instagram rate limits; strongly favors small independent brands); Instagram-first finds profiles and then checks their websites.",
            "default": "auto"
          },
          "googleApiKey": {
            "title": "Google API key (optional)",
            "type": "string",
            "description": "Optional Google Custom Search API key for deeper, more stable discovery (100 free queries per day per key). Create one at <a href='https://developers.google.com/custom-search/v1/introduction' target='_blank'>developers.google.com</a>. Requires the search engine ID below."
          },
          "googleCseId": {
            "title": "Google search engine ID (optional)",
            "type": "string",
            "description": "The Programmable Search Engine ID (cx) paired with your API key. Create a search engine that searches the entire web at <a href='https://programmablesearchengine.google.com' target='_blank'>programmablesearchengine.google.com</a>."
          },
          "instagramSessionCookies": {
            "title": "Instagram session cookies (optional)",
            "type": "string",
            "description": "Optional <code>Cookie</code> header value from a logged-in Instagram browser session (e.g. <code>sessionid=...; csrftoken=...</code>). NOT required. It only improves hashtag discovery coverage and reduces login walls. Use a throwaway account, never your personal one."
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Instagram blocks its profile API for most datacenter IPs (HTTP 401), so <b>residential</b> proxies are the default and strongly recommended. Switching to datacenter proxies is cheaper but the Actor will fall back to limited HTML profile data.",
            "default": {
              "useApifyProxy": true,
              "apifyProxyGroups": [
                "RESIDENTIAL"
              ]
            }
          }
        }
      },
      "runsResponseSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "actId": {
                "type": "string"
              },
              "userId": {
                "type": "string"
              },
              "startedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "finishedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "status": {
                "type": "string",
                "example": "READY"
              },
              "meta": {
                "type": "object",
                "properties": {
                  "origin": {
                    "type": "string",
                    "example": "API"
                  },
                  "userAgent": {
                    "type": "string"
                  }
                }
              },
              "stats": {
                "type": "object",
                "properties": {
                  "inputBodyLen": {
                    "type": "integer",
                    "example": 2000
                  },
                  "rebootCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "restartCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "resurrectCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "computeUnits": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "options": {
                "type": "object",
                "properties": {
                  "build": {
                    "type": "string",
                    "example": "latest"
                  },
                  "timeoutSecs": {
                    "type": "integer",
                    "example": 300
                  },
                  "memoryMbytes": {
                    "type": "integer",
                    "example": 1024
                  },
                  "diskMbytes": {
                    "type": "integer",
                    "example": 2048
                  }
                }
              },
              "buildId": {
                "type": "string"
              },
              "defaultKeyValueStoreId": {
                "type": "string"
              },
              "defaultDatasetId": {
                "type": "string"
              },
              "defaultRequestQueueId": {
                "type": "string"
              },
              "buildNumber": {
                "type": "string",
                "example": "1.0.0"
              },
              "containerUrl": {
                "type": "string"
              },
              "usage": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "integer",
                    "example": 1
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "usageTotalUsd": {
                "type": "number",
                "example": 0.00005
              },
              "usageUsd": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "number",
                    "example": 0.00005
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}