{
  "openapi": "3.0.1",
  "info": {
    "title": "Instagram Email & Phone Scraper · Keyword, Hashtag & Linktree",
    "description": "Instagram email and phone scraper: type a keyword or #hashtag, or paste handles. It finds the profiles, then reads the contact button, bio and link in bio, expands Linktree pages and scans the sites behind them for email, phone and WhatsApp. No login. $2/1k profiles + $5/1k contacts.",
    "version": "1.0",
    "x-build-id": "Suhm9jFzo6JgNe17y"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/memo23~instagram-email-phone-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-memo23-instagram-email-phone-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/memo23~instagram-email-phone-scraper/runs": {
      "post": {
        "operationId": "runs-sync-memo23-instagram-email-phone-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/memo23~instagram-email-phone-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-memo23-instagram-email-phone-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": {
          "usernames": {
            "title": "Instagram usernames or profile URLs",
            "type": "array",
            "description": "One entry per profile. A bare username, an @handle, or a full profile URL all work — https://www.instagram.com/nasa/, @nasa and nasa are the same input. Optional when searchTerms is set; a run needs at least one of the two.",
            "items": {
              "type": "string"
            }
          },
          "searchTerms": {
            "title": "Find profiles by keyword or #hashtag",
            "type": "array",
            "description": "Optional. Use this when you have no handles yet. A keyword (e.g. bakery london, wedding photographer miami) searches Instagram account names and bios. A term starting with # (e.g. #veganbakery) takes the accounts behind that hashtag's top posts. Every profile found is scanned for contacts exactly like a handle in usernames, and its row names the term that found it in searchTerm. Short keywords find more accounts than long phrases. Combines with usernames; a profile found twice is scanned once.",
            "items": {
              "type": "string"
            }
          },
          "maxProfilesPerSearch": {
            "title": "Profiles per keyword or hashtag",
            "minimum": 1,
            "maximum": 1000,
            "type": "integer",
            "description": "Most profiles each search term may add to the run, from 1 to 1000. Default 50. Instagram search runs out on its own for narrow terms, so a term can return fewer. Each profile scanned is billed as a profile; use onlyWithContact to pay only for profiles with a contact. Ignored when searchTerms is empty.",
            "default": 50
          },
          "scrapeLinkInBio": {
            "title": "Scan the link in bio for contacts",
            "type": "boolean",
            "description": "On by default. Follows the profile's external link, expands link aggregators such as Linktree or Taplink into the sites behind them, and reads those sites' contact pages. This is where most phone numbers and role addresses come from — turn it off for profile fields only, which is faster and cheaper.",
            "default": true
          },
          "maxChildLinks": {
            "title": "Links to follow from an aggregator page",
            "minimum": 1,
            "maximum": 10,
            "type": "integer",
            "description": "How many outbound links to open when the bio link is a Linktree-style page. One site per host, in page order. Higher values find more contacts on profiles that list several businesses, and cost more time per profile.",
            "default": 3
          },
          "includeThirdPartyContacts": {
            "title": "Also scan brands the profile links to",
            "type": "boolean",
            "description": "Off by default. A Linktree page often links affiliate brands, stockists and ticket sellers as well as the business's own site. Left off, only links whose domain matches the profile are scanned. Turned on, the others are scanned too and their contacts are returned in thirdPartyEmails / thirdPartyPhones — never mixed into the main fields, because mailing them reaches the wrong company. Paid Apify plans only.",
            "default": false
          },
          "onlyWithContact": {
            "title": "Only return profiles with a contact",
            "type": "boolean",
            "description": "Off by default. Turned on, a profile where no email, phone or WhatsApp number was found is left out of the dataset and not charged at all. Third-party contacts do not count. Profiles that cannot be read still return an error row, which is never charged.",
            "default": false
          }
        }
      },
      "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
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "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
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}