{
  "openapi": "3.0.1",
  "info": {
    "title": "W Social Scraper - Profiles, Posts & Followers",
    "description": "Extract W Social profiles, posts with like, repost and reply counts, followers, and media from wsocial.eu. Search users by keyword, scrape by handle, or collect the whole network. Export to JSON, CSV, or Excel.",
    "version": "0.0",
    "x-build-id": "lLrI99SgUWV9SjfXf"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/zen-studio~wsocial-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-zen-studio-wsocial-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/zen-studio~wsocial-scraper/runs": {
      "post": {
        "operationId": "runs-sync-zen-studio-wsocial-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/zen-studio~wsocial-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-zen-studio-wsocial-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": {
          "profileUrls": {
            "title": "Profiles",
            "type": "array",
            "description": "Profile links, handles, or user IDs (see the accepted formats above). Each one becomes a result row.",
            "items": {
              "type": "string"
            }
          },
          "searchTerms": {
            "title": "Search terms",
            "type": "array",
            "description": "Find users by name or keyword. Every matching user is scraped.<br><br>Use <b>Max profiles</b> below to cap how many.",
            "items": {
              "type": "string"
            }
          },
          "scrapeAllAccounts": {
            "title": "Scrape all accounts",
            "type": "boolean",
            "description": "Collect every public account on the network. Combine with <b>Max profiles</b> to control volume and cost.",
            "default": false
          },
          "maxResults": {
            "title": "Max profiles",
            "minimum": 0,
            "type": "integer",
            "description": "Maximum number of users to scrape across all inputs. <b>0 = no limit.</b><br><br>This is the main cost cap on <b>Search terms</b> and <b>Scrape all accounts</b> runs.",
            "default": 0
          },
          "includePosts": {
            "title": "Include posts",
            "type": "boolean",
            "description": "Include each user's posts with engagement counts (likes, reposts, replies, quotes).",
            "default": true
          },
          "maxPostsPerProfile": {
            "title": "Max posts per profile",
            "minimum": 0,
            "type": "integer",
            "description": "Maximum posts to collect per user. <b>0 = all.</b>",
            "default": 0
          },
          "includeFollowers": {
            "title": "Include followers",
            "type": "boolean",
            "description": "Include the list of accounts following each user. Each entry is a full profile.",
            "default": false
          },
          "includeFollowing": {
            "title": "Include following",
            "type": "boolean",
            "description": "Include the list of accounts each user follows. Each entry is a full profile.",
            "default": false
          },
          "maxFollowers": {
            "title": "Max followers per profile",
            "minimum": 0,
            "type": "integer",
            "description": "Cap followers collected per user. <b>0 = all.</b>",
            "default": 0
          },
          "maxFollowing": {
            "title": "Max following per profile",
            "minimum": 0,
            "type": "integer",
            "description": "Cap following collected per user. <b>0 = all.</b>",
            "default": 0
          },
          "includeEngagementRecords": {
            "title": "Include likes, reposts, lists & blocks",
            "type": "boolean",
            "description": "Include each user's own likes, reposts, lists, and blocks (archival detail).",
            "default": false
          },
          "downloadMedia": {
            "title": "Download media files",
            "type": "boolean",
            "description": "Also save image and video files to storage and add their links to each post.<br><br>Leave off to keep the direct media links only.",
            "default": false
          },
          "includeConnectionProfiles": {
            "title": "Full follower & following profiles",
            "type": "boolean",
            "description": "On: each follower and following entry is a complete profile.<br><br><b>Off: keep only handle, display name, and ID per entry</b>, which dramatically shrinks the output for accounts with large audiences.",
            "default": true
          },
          "includePostEmbeds": {
            "title": "Include raw embed data",
            "type": "boolean",
            "description": "Posts always include clean <code>media</code>, <code>links</code>, <code>externalLink</code>, and <code>quotedPost</code> fields.<br><br>Turn this on to <b>also</b> attach the raw, unprocessed embed structure (advanced).",
            "default": false
          },
          "includeRawPostRecord": {
            "title": "Include raw post record",
            "type": "boolean",
            "description": "Post text, timestamps, languages, links, and engagement counts are always included as clean top-level fields.<br><br>Turn this on to <b>also</b> attach the raw underlying record (advanced).",
            "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
                  }
                }
              },
              "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}