{
  "openapi": "3.0.1",
  "info": {
    "title": "Twitch Contacts Scraper | Emails and Social Links",
    "description": "Twitch contacts scraper for influencer outreach: get streamer business emails from bios, panels and their Linktree or website, plus X, Instagram, YouTube, TikTok and Discord links, followers and language. Search by channel, game or keyword. 22 streamers in 3 seconds, 30 fields each, no login.",
    "version": "1.0",
    "x-build-id": "0873vaaLzrYpLufUk"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/silentflow~twitch-contacts-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-silentflow-twitch-contacts-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/silentflow~twitch-contacts-scraper/runs": {
      "post": {
        "operationId": "runs-sync-silentflow-twitch-contacts-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/silentflow~twitch-contacts-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-silentflow-twitch-contacts-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": {
          "channels": {
            "title": "📺 Channels",
            "type": "array",
            "description": "Twitch usernames (<code>pokimane</code>, <code>@shroud</code>) or channel links (<code>https://www.twitch.tv/valkyrae</code>). A clip or video link of a channel works too. Each channel gives one row with its contacts, whatever the filters below.",
            "items": {
              "type": "string"
            }
          },
          "categories": {
            "title": "🎮 Games and categories",
            "type": "array",
            "description": "Streamers live right now in a game or category, most watched first, as Twitch names it (<code>Just Chatting</code>, <code>VALORANT</code>, <code>Fortnite</code>) or as a link (<code>https://www.twitch.tv/directory/category/valorant</code>). Add several to cover a genre in one run. About one live streamer in four writes a business email on Twitch.",
            "items": {
              "type": "string"
            }
          },
          "searchQueries": {
            "title": "🔎 Search channels",
            "type": "array",
            "description": "Channels whose name matches a keyword, as Twitch's search ranks them, live or not: <code>chess</code>, <code>asmr</code>, <code>cooking</code>. Each match gets the same contact row as a named channel.",
            "items": {
              "type": "string"
            }
          },
          "maxItems": {
            "title": "🔢 Max streamers per category or search",
            "minimum": 1,
            "type": "integer",
            "description": "Stop each category and each search after this many rows. Named channels always give one row each. Two categories at 200 give up to 400 streamers. With <b>Only streamers with an email</b> on, it counts streamers with an email, so the run reads further down the list to fill it.",
            "default": 100
          },
          "onlyWithEmail": {
            "title": "📧 Only streamers with an email",
            "type": "boolean",
            "description": "Keep only the streamers who publish an email, on Twitch or on their own page, for a clean outreach list. Streamers without one are left out of the dataset.",
            "default": false
          },
          "language": {
            "title": "🌐 Stream language",
            "type": "string",
            "description": "Keep streamers who stream in this language, to run one campaign per market. Pick one, or type a code (<code>fr</code>, <code>fra</code>) or an English name (<code>French</code>). Empty keeps every language."
          },
          "minFollowers": {
            "title": "👥 Minimum followers",
            "minimum": 0,
            "type": "integer",
            "description": "Skip streamers with fewer followers than this, for example <code>10000</code> for established creators. 0 keeps every size.",
            "default": 0
          },
          "maxFollowers": {
            "title": "👥 Maximum followers",
            "minimum": 0,
            "type": "integer",
            "description": "Skip streamers with more followers than this, for example <code>50000</code> to find micro and mid-size creators who answer sponsorship emails. 0 means no ceiling.",
            "default": 0
          },
          "checkLinkedPages": {
            "title": "🔗 Look for emails on their own pages",
            "type": "boolean",
            "description": "When a streamer writes no email on Twitch, read the Linktree, link.me or Carrd page or the personal website linked from their channel and take the email written there. The row says where each email was found. A page that does not open leaves the row as Twitch shows it.",
            "default": true
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}