{
  "openapi": "3.0.1",
  "info": {
    "title": "LinkedIn Network Scraper (Open To Work & Hiring Badges)",
    "description": "LinkedIn Network Scraper: Find profiles with Open to Work and Hiring badges, extracting names, job titles, companies, locations, profile URLs, and available professional details. Build targeted datasets for recruitment, hiring research, B2B prospecting, and talent intelligence.",
    "version": "0.1",
    "x-build-id": "U4IvcuOWKGrU4uTf0"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/api-empire~linkedin-network-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-api-empire-linkedin-network-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/api-empire~linkedin-network-scraper/runs": {
      "post": {
        "operationId": "runs-sync-api-empire-linkedin-network-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/api-empire~linkedin-network-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-api-empire-linkedin-network-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",
        "required": [
          "liAtCookie"
        ],
        "properties": {
          "liAtCookie": {
            "title": "🍪 LinkedIn `li_at` Cookie",
            "type": "string",
            "description": "🔐 Your LinkedIn **`li_at`** session cookie — required to fetch your network connections via the authenticated Voyager API.\n\n**🧭 How to get it:**\n1. 🌐 Open [linkedin.com](https://www.linkedin.com) and sign in\n2. 🛠️ Open DevTools (`F12`) → **Application** → **Cookies** → `https://www.linkedin.com`\n3. 📋 Copy the **Value** of the cookie named `li_at`\n4. 📌 Paste it here\n\n🛡️ *The cookie is masked in the UI and never written to logs.*"
          },
          "starting_page": {
            "title": "📄 Starting Page",
            "minimum": 1,
            "type": "integer",
            "description": "Which page of your network to start from. Each page holds 40 connections. Leave at 1 to scan from the very beginning. ⏩",
            "default": 1
          },
          "waiting_time": {
            "title": "⏱️ Waiting Time Between Pages (seconds)",
            "minimum": 0,
            "maximum": 30,
            "type": "number",
            "description": "Polite pause between pages to keep things smooth. We add random jitter (your number → your number × 2) to look natural. 🧘",
            "default": 2
          },
          "date_limit_today": {
            "title": "📅 Today Only",
            "type": "boolean",
            "description": "Turn this on to capture only the connections you added today — perfect for daily network monitoring. ☀️",
            "default": false
          },
          "date_limit_str": {
            "title": "🗓️ Stop At Date (YYYY-MM-DD)",
            "pattern": "^(\\d{4})-(0[1-9]|1[0-2])-(0[1-9]|[12]\\d|3[01])$",
            "type": "string",
            "description": "Stop once connections become older than this date. Leave empty to grab everything. Format: YYYY-MM-DD. ⛳"
          },
          "proxyConfiguration": {
            "title": "🌐 Proxy Configuration",
            "type": "object",
            "description": "The scraper starts with a direct connection and only escalates to a Datacenter, then Residential proxy if LinkedIn pushes back. Configure the residential country / groups here. 🛡️",
            "default": {
              "useApifyProxy": true
            }
          },
          "badgeFilter": {
            "title": "🎯 Which Badge To Keep",
            "enum": [
              "open_to_work_or_hiring",
              "open_to_work",
              "hiring",
              "any_badge",
              "everyone"
            ],
            "type": "string",
            "description": "LinkedIn draws a colored ring around a connection's photo when they flip on \"Open to work\" or \"Hiring\" — read straight out of the same response this actor already fetches, zero extra requests. Choose which rows survive the run. Default keeps the short list: only connections currently flying one of the two badges. ⚠️ A row with no badge is simply not flying a photo-frame right now — it is never proof they are \"not open to work\" (LinkedIn also has a recruiters-only open-to-work setting that never appears as a photo frame and cannot be read here).",
            "default": "open_to_work_or_hiring"
          },
          "includeBadgeEvidence": {
            "title": "🏷️ Include Badge Evidence",
            "type": "boolean",
            "description": "Adds LinkedIn's own caption for the badge (e.g. \"<Name> is open to work\") and the framed version of their photo, so a shortlist can be checked by a human without opening LinkedIn. Off = the two columns are left out of the row entirely, not emitted empty.",
            "default": true
          },
          "includeMemberId": {
            "title": "🆔 Include Stable Member ID",
            "type": "boolean",
            "description": "Adds LinkedIn's permanent internal member id for each connection, so a shortlist stays matched in an ATS or CRM after someone changes their vanity URL (the `vanityName` and `url` fields both change when they do). Off = the column is left out of the row entirely, not emitted empty.",
            "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
                  }
                }
              },
              "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}