{
  "openapi": "3.0.1",
  "info": {
    "title": "LinkedIn Jobs Scraper: LinkedIn Jobs Search API",
    "description": "LinkedIn jobs scraper, LinkedIn job scraper and LinkedIn jobs API: search keywords, locations or URLs. Export job descriptions, salary and recruiter fields when shown. Filter titles, companies and job types; choose relevance or newest first. Optional company profiles.",
    "version": "0.3",
    "x-build-id": "hjVLeOBYDMuwCeTuP"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/deepmine~linkedin-jobs-search/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-deepmine-linkedin-jobs-search",
        "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/deepmine~linkedin-jobs-search/runs": {
      "post": {
        "operationId": "runs-sync-deepmine-linkedin-jobs-search",
        "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/deepmine~linkedin-jobs-search/run-sync": {
      "post": {
        "operationId": "run-sync-deepmine-linkedin-jobs-search",
        "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": {
          "keywords": {
            "title": "🔍 Job title or skill",
            "type": "string",
            "description": "As you'd type it in LinkedIn's job search, e.g. software engineer, nurse, Python. Empty = all jobs in the location. More keywords: see Search more below."
          },
          "location": {
            "title": "📍 Location",
            "type": "string",
            "description": "Country, state or city, e.g. United States, Texas, United States or London, England, United Kingdom.",
            "default": "United States"
          },
          "postedWithin": {
            "title": "📅 Posted within",
            "enum": [
              "pastHour",
              "past24Hours",
              "pastWeek",
              "pastMonth",
              "anyTime"
            ],
            "type": "string",
            "description": "With a time period, a search goes past LinkedIn's 1,000-result limit, window by window. Any time stops at 1,000.",
            "default": "past24Hours"
          },
          "maxResults": {
            "title": "📊 Max jobs per search",
            "minimum": 1,
            "maximum": 50000,
            "type": "integer",
            "description": "Each keyword × location (or each pasted URL) is one search. You pay per job.",
            "default": 100
          },
          "includeDetails": {
            "title": "🧾 Include job details ($)",
            "type": "boolean",
            "description": "Opens each job: description, job type, seniority, industries, applicants, Easy Apply, pay range, benefits and the job poster (name, headline, profile) when LinkedIn shows them. A small add-on per job (see Pricing). Off: search-card fields only, faster.",
            "default": true
          },
          "includeCompanyDetails": {
            "title": "🏢 Include company details ($)",
            "type": "boolean",
            "description": "Opens each company page once: website, industry, size, employees on LinkedIn, followers, headquarters and address, specialties, description, locations and newest posts. A small add-on, charged only for jobs whose company page was read (see Pricing).",
            "default": false
          },
          "searchUrls": {
            "title": "🔗 Or paste LinkedIn search URLs",
            "type": "array",
            "description": "Search on linkedin.com/jobs, then copy the address. Each URL is its own search with its own keywords, place and period; the fields above are then not used. A URL's remote / hybrid / on-site filter is applied from each job's page (needs Include job details); its job type and experience filters are left out (LinkedIn's logged-out search ignores them; use the filters below).",
            "items": {
              "type": "string"
            }
          },
          "sortBy": {
            "title": "🔃 Sort by",
            "enum": [
              "relevance",
              "newest"
            ],
            "type": "string",
            "description": "Most relevant: LinkedIn's best matches first, as on linkedin.com. Newest first: matches keywords more loosely. Without keywords, always newest first.",
            "default": "relevance"
          },
          "employmentTypes": {
            "title": "Job type (details)",
            "type": "array",
            "description": "Pick one or more. Read from each job's page, so the run takes longer.",
            "items": {
              "type": "string",
              "enum": [
                "Full-time",
                "Part-time",
                "Contract",
                "Temporary",
                "Internship",
                "Volunteer",
                "Other"
              ]
            }
          },
          "experienceLevels": {
            "title": "Experience level (details)",
            "type": "array",
            "description": "Pick one or more. Read from each job's page.",
            "items": {
              "type": "string",
              "enum": [
                "Internship",
                "Entry level",
                "Associate",
                "Mid-Senior level",
                "Director",
                "Executive",
                "Not Applicable"
              ]
            }
          },
          "workplaceTypes": {
            "title": "Remote / hybrid / on-site (details)",
            "type": "array",
            "description": "Pick one or more. LinkedIn's own Remote label from each job's page, then what the title, location and description say. Remote only or Hybrid only also searches LinkedIn with that word added (its logged-out search ignores the filter), so fewer pages are read for jobs left out.",
            "items": {
              "type": "string",
              "enum": [
                "On-site",
                "Hybrid",
                "Remote"
              ]
            }
          },
          "industries": {
            "title": "Industry (details)",
            "type": "array",
            "description": "Jobs whose page lists an industry containing one of these (any case), e.g. Hospitals and Health Care, Software Development, Financial Services.",
            "items": {
              "type": "string"
            }
          },
          "requireSalary": {
            "title": "Only jobs that show pay (details)",
            "type": "boolean",
            "description": "A pay range in LinkedIn's pay box, the description or the title.",
            "default": false
          },
          "requireJobPoster": {
            "title": "Only jobs that name a job poster (details)",
            "type": "boolean",
            "description": "The recruiter or hiring manager who posted it.",
            "default": false
          },
          "excludeStaffingAgencies": {
            "title": "Leave out staffing agencies (details)",
            "type": "boolean",
            "description": "Jobs whose page lists the industry Staffing and Recruiting.",
            "default": false
          },
          "easyApply": {
            "title": "Easy Apply only",
            "type": "boolean",
            "description": "Only jobs you can apply to with LinkedIn Easy Apply.",
            "default": false
          },
          "under10Applicants": {
            "title": "Under 10 applicants",
            "type": "boolean",
            "description": "Only jobs with fewer than 10 applicants so far.",
            "default": false
          },
          "distance": {
            "title": "Distance",
            "minimum": 1,
            "maximum": 100,
            "type": "integer",
            "description": "Only jobs within this distance of the location (a city works best)."
          },
          "titleIncludes": {
            "title": "Title must include",
            "type": "array",
            "description": "At least one of these words or phrases (whole words, any case), e.g. analyst or \"data scientist\".",
            "items": {
              "type": "string"
            }
          },
          "titleExcludes": {
            "title": "Title must not include",
            "type": "array",
            "description": "Any of these words or phrases, e.g. senior, intern, manager.",
            "items": {
              "type": "string"
            }
          },
          "excludeCompanies": {
            "title": "Leave out companies",
            "type": "array",
            "description": "The name as LinkedIn shows it (any case) or the company's LinkedIn URL name, e.g. randstad-usa.",
            "items": {
              "type": "string"
            }
          },
          "moreKeywords": {
            "title": "More job titles or skills",
            "type": "array",
            "description": "Each one is searched in each location, e.g. data analyst, business analyst. Max jobs applies to each search; a job found twice comes once.",
            "items": {
              "type": "string"
            }
          },
          "moreLocations": {
            "title": "More locations",
            "type": "array",
            "description": "Searched with each keyword, e.g. Austin, Texas, United States or Canada.",
            "items": {
              "type": "string"
            }
          },
          "companies": {
            "title": "Only these companies",
            "type": "array",
            "description": "Searched with your keywords and location: names as LinkedIn spells them (Google, Randstad USA), company ids (f_C in a LinkedIn jobs URL) or company page URLs. A name LinkedIn doesn't know is skipped and named in the run's status.",
            "items": {
              "type": "string"
            }
          },
          "companyUrls": {
            "title": "All jobs of these companies",
            "type": "array",
            "description": "Company page URLs, e.g. https://www.linkedin.com/company/microsoft/: each company's jobs worldwide in the Posted within period (Any time = every open job, up to 1,000), newest first. Keyword and location fields are then not used.",
            "items": {
              "type": "string"
            }
          },
          "jobUrls": {
            "title": "Single jobs (URLs or ids)",
            "type": "array",
            "description": "https://www.linkedin.com/jobs/view/... links or job ids: one row per job, with details. A job no longer on LinkedIn is skipped and not charged. Search fields and filters don't apply.",
            "items": {
              "type": "string"
            }
          },
          "includeHtml": {
            "title": "Add description HTML",
            "type": "boolean",
            "description": "Adds descriptionHtml with LinkedIn's formatting. The plain-text description is always there. Free.",
            "default": false
          },
          "includeSimilarJobs": {
            "title": "Add similar jobs and searches",
            "type": "boolean",
            "description": "Adds similarJobs and peopleAlsoViewed (every other job LinkedIn shows on the job's page: title, company, location, pay when the card shows it, date, link) and relatedSearches (LinkedIn's similar searches with their open-job counts). Needs job details. Free.",
            "default": false
          },
          "matchKeywords": {
            "title": "Match keywords",
            "type": "array",
            "description": "Skills to look for in each job, e.g. Python or React | ReactJS (| separates spellings). Adds matchedKeywords, unmatchedKeywords and keywordMatchScore (% found). Free.",
            "items": {
              "type": "string"
            }
          },
          "skipJobIds": {
            "title": "Skip these jobs",
            "type": "array",
            "description": "Job ids or URLs you already have (an earlier run's jobId column): skipped and not charged. For scheduled runs that should bring only new jobs.",
            "items": {
              "type": "string"
            }
          },
          "geoId": {
            "title": "LinkedIn geoId",
            "type": "string",
            "description": "The numeric geoId from a LinkedIn jobs URL. Overrides Location."
          },
          "proxyConfiguration": {
            "title": "Proxy",
            "type": "object",
            "description": "Leave as is: Apify datacenter proxies, with US residential used only to retry a request LinkedIn refused.",
            "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}