{
  "openapi": "3.0.1",
  "info": {
    "title": "Instagram Keyword Search Scraper",
    "description": "Find public Instagram profiles by niche, brand, profession or local-business keyword. Rows include username, name, profile URL and matched keyword, plus bio, followers, category, verified and business flags, bio links and any email or phone in the bio when search returns them.",
    "version": "1.2",
    "x-build-id": "mp5spskscgVbJBS6H"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/khadinakbar~instagram-keyword-search-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-khadinakbar-instagram-keyword-search-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/khadinakbar~instagram-keyword-search-scraper/runs": {
      "post": {
        "operationId": "runs-sync-khadinakbar-instagram-keyword-search-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/khadinakbar~instagram-keyword-search-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-khadinakbar-instagram-keyword-search-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": {
          "keywords": {
            "title": "Search keywords",
            "type": "array",
            "description": "Use this when you need public Instagram profiles matching a niche, brand, or local business phrase. Enter one or more phrases such as 'fitness coach' or 'vegan bakery london'. The actor searches each phrase independently and deduplicates matching profiles across the run. This is not a list of Instagram usernames, post URLs, or hashtags; use the dedicated profile, post, or hashtag actors for those jobs.",
            "items": {
              "type": "string"
            }
          },
          "maxResultsPerKeyword": {
            "title": "Maximum profiles per keyword",
            "minimum": 1,
            "maximum": 200,
            "type": "integer",
            "description": "Use this when you need a predictable cap for each keyword and its billable profile rows. Enter an integer from 1 to 200; the default is 20. The actor stops after this many unique matching profiles for a keyword, subject to the public results Instagram search returns. This is a per-keyword cap, not the total cap for the whole run.",
            "default": 20
          },
          "minimumFollowers": {
            "title": "Minimum followers",
            "minimum": 0,
            "type": "integer",
            "description": "Use this when only profiles with a minimum public follower count are relevant. Enter a whole number such as 1000; the default is 0 and keeps every returned profile. Profiles below the threshold are filtered before they are written or charged. This is not a verification, engagement-rate, or audience-quality filter.",
            "default": 0
          },
          "maximumFollowers": {
            "title": "Maximum followers",
            "minimum": 0,
            "type": "integer",
            "description": "Use this to cap the audience size, for example 100000 to focus on micro-influencers. Enter a whole number; the default is 0, which means no upper limit. Profiles above the cap, or without a public follower count, are skipped before they are charged.",
            "default": 0
          },
          "verifiedOnly": {
            "title": "Verified accounts only",
            "type": "boolean",
            "description": "Enable this to keep only profiles Instagram marks as verified. The default is off. Unverified profiles are skipped before they are charged.",
            "default": false
          },
          "onlyWithContact": {
            "title": "Only profiles with a public email or phone in the bio",
            "type": "boolean",
            "description": "Enable this to keep only profiles whose public biography contains an email address or phone number. The default is off. Profiles without one are skipped before they are charged. Contact buttons that are not in the bio text are not checked.",
            "default": false
          },
          "accountType": {
            "title": "Account type filter",
            "enum": [
              "all",
              "business",
              "professional"
            ],
            "type": "string",
            "description": "Use this when you want all profiles, only business accounts, or only professional accounts reported in the public search result. Choose all for no type filter; the default is all. A profile can satisfy more than one public account flag depending on Instagram metadata. This does not reveal private account information or guarantee an account's legal business status.",
            "default": "all"
          },
          "includePrivateProfiles": {
            "title": "Include private-profile search matches",
            "type": "boolean",
            "description": "Use this when public search results may include private accounts and a limited identity row is still useful. Enable it to retain those matches or leave it off to exclude them; the default is off. Private profiles expose only the fields returned by public search. This setting does not bypass Instagram privacy controls or collect private posts.",
            "default": false
          },
          "outputMode": {
            "title": "Output mode",
            "enum": [
              "full",
              "compact"
            ],
            "type": "string",
            "description": "Use this when selecting concise agent-friendly records or fuller research records. Choose compact for core identity, bio, contact, count, and matching fields, or full to add links, profile picture and run fields; the default is full. Both modes return one row per discovered public profile. This changes field breadth, not search coverage.",
            "default": "full"
          },
          "maxProviderPages": {
            "title": "Search depth (pages per keyword)",
            "minimum": 1,
            "maximum": 20,
            "type": "integer",
            "description": "Advanced: how many search result pages to read for each keyword. Enter an integer from 1 to 20; the default is 3. Use 1 for quick, cheap checks and higher values to find more matches. This limits search requests, not the number of saved profiles.",
            "default": 3
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}