{
  "openapi": "3.0.1",
  "info": {
    "title": "LinkedIn Jobs Scraper",
    "description": "LinkedIn jobs in full detail: title, company, location, salary, description, seniority, contract type, function, industries and applicant count. No account or cookie needed. The city split over 199 countries passes LinkedIn's 1,000-job ceiling. Example: 'developer', United States, past week.",
    "version": "1.0",
    "x-build-id": "8bRxvUZ6HjXJ8k2Iw"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/badr_xba~linkedin-jobs-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-badr_xba-linkedin-jobs-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/badr_xba~linkedin-jobs-scraper/runs": {
      "post": {
        "operationId": "runs-sync-badr_xba-linkedin-jobs-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/badr_xba~linkedin-jobs-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-badr_xba-linkedin-jobs-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": {
          "urls": {
            "title": "LinkedIn job search URLs",
            "type": "array",
            "description": "Open LinkedIn jobs search in a private window, apply your filters, then copy the full address from the bar and paste it here. When this list has anything in it, the search filters below are ignored.",
            "items": {
              "type": "string"
            }
          },
          "keywords": {
            "title": "Keywords",
            "type": "string",
            "description": "What the job is about: \"data analyst\", \"chef de projet\", \"nurse\". Used only when no URL is pasted above."
          },
          "location": {
            "title": "Location",
            "type": "string",
            "description": "A city, region or country as LinkedIn spells it: \"Casablanca, Morocco\", \"Dubai\", \"United Arab Emirates\"."
          },
          "geoId": {
            "title": "LinkedIn geoId",
            "type": "string",
            "description": "The numeric place identifier LinkedIn puts in its own search URL. More precise than a location name when you have it."
          },
          "distance": {
            "title": "Distance (miles)",
            "minimum": 0,
            "maximum": 100,
            "type": "integer",
            "description": "How far around the location to look. LinkedIn counts in miles."
          },
          "datePosted": {
            "title": "Date posted",
            "enum": [
              "",
              "past24h",
              "pastWeek",
              "pastMonth"
            ],
            "type": "string",
            "description": "How recent the job must be. Set this to \"Past 24 hours\" and schedule the Actor daily to collect only new postings.",
            "default": ""
          },
          "companyIds": {
            "title": "Company IDs",
            "type": "array",
            "description": "Numeric LinkedIn company identifiers, to follow named employers. They appear as f_C in a LinkedIn search URL.",
            "items": {
              "type": "string"
            }
          },
          "easyApply": {
            "title": "Easy Apply only",
            "type": "boolean",
            "description": "Keeps only jobs you can apply to without leaving LinkedIn.",
            "default": false
          },
          "under10Applicants": {
            "title": "Under 10 applicants only",
            "type": "boolean",
            "description": "Keeps only jobs with fewer than ten applicants so far — the ones worth applying to first.",
            "default": false
          },
          "experienceLevel": {
            "title": "Experience level",
            "type": "array",
            "description": "Since August 2026 LinkedIn dropped these from its search URLs. With the option below switched on, they are appended to your keywords in plain words instead. That steers the search; it does not guarantee the filter.",
            "items": {
              "type": "string",
              "enum": [
                "internship",
                "entry level",
                "associate",
                "mid-senior level",
                "director",
                "executive"
              ],
              "enumTitles": [
                "Internship",
                "Entry level",
                "Associate",
                "Mid-Senior level",
                "Director",
                "Executive"
              ]
            }
          },
          "jobType": {
            "title": "Job type",
            "type": "array",
            "description": "Same treatment: turned into words inside the search.",
            "items": {
              "type": "string",
              "enum": [
                "full-time",
                "part-time",
                "contract",
                "temporary",
                "internship",
                "volunteer"
              ],
              "enumTitles": [
                "Full-time",
                "Part-time",
                "Contract",
                "Temporary",
                "Internship",
                "Volunteer"
              ]
            }
          },
          "workplaceType": {
            "title": "Workplace",
            "type": "array",
            "description": "On-site, remote or hybrid — also turned into words.",
            "items": {
              "type": "string",
              "enum": [
                "on-site",
                "remote",
                "hybrid"
              ],
              "enumTitles": [
                "On-site",
                "Remote",
                "Hybrid"
              ]
            }
          },
          "autoConvertToAiSearch": {
            "title": "Convert dropped filters into search words",
            "type": "boolean",
            "description": "On, the three filters above — and the same ones found in a pasted URL — are appended to the keywords in plain language. Off, they are ignored and the run says so in the log.",
            "default": true
          },
          "splitByCity": {
            "title": "Split the search by city",
            "type": "boolean",
            "description": "LinkedIn stops serving a search after about 1,000 jobs, however many match. Switch this on and the same search is run city by city across the country you pick, and duplicates are dropped on the job ID.",
            "default": false
          },
          "splitCountry": {
            "title": "Country to split by",
            "enum": [
              "AF",
              "AL",
              "DZ",
              "AD",
              "AO",
              "AG",
              "AR",
              "AM",
              "AU",
              "AT",
              "AZ",
              "BS",
              "BH",
              "BD",
              "BB",
              "BY",
              "BE",
              "BZ",
              "BJ",
              "BT",
              "BO",
              "BA",
              "BW",
              "BR",
              "BN",
              "BG",
              "BF",
              "BI",
              "CV",
              "KH",
              "CM",
              "CA",
              "CF",
              "TD",
              "CL",
              "CN",
              "CO",
              "KM",
              "CG",
              "CR",
              "HR",
              "CU",
              "CY",
              "CZ",
              "CI",
              "CD",
              "DK",
              "DJ",
              "DM",
              "DO",
              "EC",
              "EG",
              "SV",
              "GQ",
              "ER",
              "EE",
              "SZ",
              "ET",
              "FJ",
              "FI",
              "FR",
              "GA",
              "GM",
              "GE",
              "DE",
              "GH",
              "GR",
              "GD",
              "GT",
              "GN",
              "GW",
              "GY",
              "HT",
              "HN",
              "HK",
              "HU",
              "IS",
              "IN",
              "ID",
              "IR",
              "IQ",
              "IE",
              "IL",
              "IT",
              "JM",
              "JP",
              "JO",
              "KZ",
              "KE",
              "KI",
              "XK",
              "KW",
              "KG",
              "LA",
              "LV",
              "LB",
              "LS",
              "LR",
              "LY",
              "LI",
              "LT",
              "LU",
              "MG",
              "MW",
              "MY",
              "MV",
              "ML",
              "MT",
              "MH",
              "MR",
              "MU",
              "MX",
              "FM",
              "MD",
              "MC",
              "MN",
              "ME",
              "MA",
              "MZ",
              "MM",
              "NA",
              "NR",
              "NP",
              "NL",
              "NZ",
              "NI",
              "NE",
              "NG",
              "KP",
              "MK",
              "NO",
              "OM",
              "PK",
              "PW",
              "PS",
              "PA",
              "PG",
              "PY",
              "PE",
              "PH",
              "PL",
              "PT",
              "PR",
              "QA",
              "RO",
              "RU",
              "RW",
              "KN",
              "LC",
              "VC",
              "WS",
              "SM",
              "ST",
              "SA",
              "SN",
              "RS",
              "SC",
              "SL",
              "SG",
              "SK",
              "SI",
              "SB",
              "SO",
              "ZA",
              "KR",
              "SS",
              "ES",
              "LK",
              "SD",
              "SR",
              "SE",
              "CH",
              "SY",
              "TW",
              "TJ",
              "TZ",
              "TH",
              "TL",
              "TG",
              "TO",
              "TT",
              "TN",
              "TR",
              "TM",
              "TV",
              "UG",
              "UA",
              "AE",
              "GB",
              "US",
              "UY",
              "UZ",
              "VU",
              "VA",
              "VE",
              "VN",
              "YE",
              "ZM",
              "ZW"
            ],
            "type": "string",
            "description": "Which country's cities to spread the search over. Only countries with a built-in city list are offered, so the split always happens."
          },
          "maxItems": {
            "title": "Maximum jobs",
            "minimum": 0,
            "type": "integer",
            "description": "A ceiling for the whole run. There is no built-in maximum — set 0 to collect everything your searches return. 1,000 jobs from search cards take about two and a half minutes.",
            "default": 1000
          },
          "maxItemsPerSearch": {
            "title": "Maximum jobs per search",
            "minimum": 10,
            "maximum": 1000,
            "type": "integer",
            "description": "Applied to each pasted URL and to each city. LinkedIn itself will not go past 1,000.",
            "default": 1000
          },
          "scrapeJobDetails": {
            "title": "Open each job for its full details",
            "type": "boolean",
            "description": "Adds the description, seniority level, employment type, job function, industries and applicant count — at the cost of one request per job. Off, a search page gives ten jobs in one request, which is about ten times faster: 1,000 jobs in roughly two and a half minutes instead of twenty.",
            "default": true
          },
          "scrapeCompanyDetails": {
            "title": "Also read each company",
            "type": "boolean",
            "description": "Adds the company description, website and employee count. One extra request per company, read once and reused.",
            "default": false
          },
          "maxConcurrency": {
            "title": "Requests at the same time",
            "minimum": 1,
            "maximum": 32,
            "type": "integer",
            "description": "How many requests run at the same time, across searches, job pages and companies. Connections are kept open and reused, so raising this is what makes a run faster. Lower it if LinkedIn starts refusing requests.",
            "default": 12
          },
          "proxyConfiguration": {
            "title": "Proxy",
            "type": "object",
            "description": "Keep Apify Proxy on. LinkedIn rate-limits an address that asks for too much, and rotating addresses is what keeps a long run alive.",
            "default": {
              "useApifyProxy": 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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}