{
  "openapi": "3.0.1",
  "info": {
    "title": "LinkedIn Profile Scraper",
    "description": "Scrape LinkedIn profiles without login, cookies, or authentication. Extract public profile data including experience, education, skills, and more.",
    "version": "1.0",
    "x-build-id": "eQhz9hnWqfE2LRpoP"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/artificially~linkedin-profile-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-artificially-linkedin-profile-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/artificially~linkedin-profile-scraper/runs": {
      "post": {
        "operationId": "runs-sync-artificially-linkedin-profile-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/artificially~linkedin-profile-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-artificially-linkedin-profile-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": "Profile URLs",
            "type": "array",
            "description": "LinkedIn public profile URLs to scrape, one per line, e.g. \"https://www.linkedin.com/in/williamhgates\". Accepts full /in/ URLs with or without trailing slash or query string. Provide this and/or usernames; at least one profile is required.",
            "items": {
              "type": "string"
            }
          },
          "usernames": {
            "title": "Profile Usernames",
            "type": "array",
            "description": "LinkedIn profile usernames (the vanity slug after /in/), one per line, e.g. \"williamhgates\". Use instead of or together with profileUrls; duplicates are removed.",
            "items": {
              "type": "string"
            }
          },
          "includeExperience": {
            "title": "Include Experience",
            "type": "boolean",
            "description": "If true, include the work history array (title, company, companyUrl, location, dates, description) in each item.",
            "default": true
          },
          "includeEducation": {
            "title": "Include Education",
            "type": "boolean",
            "description": "If true, include the education array (school, degree, field of study, dates) in each item.",
            "default": true
          },
          "includeSkills": {
            "title": "Include Skills",
            "type": "boolean",
            "description": "If true, include the list of skills shown on the public profile.",
            "default": true
          },
          "includeCertifications": {
            "title": "Include Certifications",
            "type": "boolean",
            "description": "If true, include licenses and certifications (name, issuing organization, issue date, credential ID).",
            "default": true
          },
          "includeLanguages": {
            "title": "Include Languages",
            "type": "boolean",
            "description": "If true, include the list of languages shown on the profile.",
            "default": true
          },
          "includeVolunteer": {
            "title": "Include Volunteer Experience",
            "type": "boolean",
            "description": "If true, include volunteer experience entries. Off by default.",
            "default": false
          },
          "maxAttemptsPerProfile": {
            "title": "Max attempts per profile",
            "minimum": 1,
            "maximum": 12,
            "type": "integer",
            "description": "How many times to retry a profile that LinkedIn blocks or serves behind a login wall, each attempt on a fresh proxy IP. Integer 1-12, e.g. 4. Profiles that still fail are skipped and never saved or charged.",
            "default": 4
          },
          "residentialFallback": {
            "title": "Residential proxy fallback",
            "type": "boolean",
            "description": "If true, after half of the attempts fail on the selected proxy, the remaining attempts go through Apify residential proxies, which LinkedIn blocks far less often. Only applies on the Apify platform. Recommended: true.",
            "default": true
          },
          "compactOutput": {
            "title": "Compact output (for AI agents)",
            "type": "boolean",
            "description": "If true, save a slimmer item per profile with only: profileUrl, username, fullName, headline, location, currentCompany, connectionsCount, followersCount, experience (title, company, companyUrl, startDate, endDate), education (school, degree, fieldOfStudy, dates), skills, languages, isRestricted (plus companies for restricted profiles). Drops photos, about text, descriptions, certifications and volunteer data. Recommended for AI agents and LLM pipelines. Default false keeps the full item.",
            "default": false
          },
          "includeRestrictedProfiles": {
            "title": "Include restricted profiles (partial data)",
            "type": "boolean",
            "description": "LinkedIn shows logged-out visitors a restricted version of many ordinary profiles, with the headline, job titles and skills hidden. By default these are skipped and not charged. If true, restricted profiles are saved with the partial public data they still show (name, location, current company, companies worked at, schools, about, follower and connection counts, photo, certifications) and flagged isRestricted: true. They never include headline, job titles, experience entries or skills. They go to a separate \"Restricted profiles\" dataset (see the Output tab) and are charged at the lower restricted-profile price shown on the Pricing tab. Profiles without a real name plus at least a location, company or school are still skipped for free.",
            "default": false
          },
          "proxyConfiguration": {
            "title": "Proxy Configuration",
            "type": "object",
            "description": "Proxy settings. Apify Proxy is strongly recommended because LinkedIn blocks most unproxied traffic. Leave the default {\"useApifyProxy\": true} unless you have your own proxies."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}