{
  "openapi": "3.0.1",
  "info": {
    "title": "Reed Scraper — UK Jobs, Salaries & Recruiters",
    "description": "Reed.co.uk jobs scraper: export UK job ads with salary as shown plus numbers, full description, location and county, posted and expiry dates, contract type, remote or hybrid, agency or employer and skills. Search by keyword, location and Reed's filters, paste URLs or export every job. No login.",
    "version": "1.0",
    "x-build-id": "L5UxRIZPXrOuFnCxf"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/logiover~reed-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-logiover-reed-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/logiover~reed-scraper/runs": {
      "post": {
        "operationId": "runs-sync-logiover-reed-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/logiover~reed-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-logiover-reed-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": {
          "keywords": {
            "title": "Keywords or job titles",
            "type": "array",
            "description": "Job titles, skills or keywords, e.g. \"software engineer\", \"nurse\", \"HGV driver\", \"teaching assistant\", \"accountant\". Each keyword is one Reed search (combined with every location below). Leave keywords and locations empty to export every job on Reed (about 99,000).",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "locations": {
            "title": "Locations",
            "type": "array",
            "description": "UK towns, cities, counties or postcodes as Reed knows them, e.g. \"London\", \"Manchester\", \"Kent\", \"West Yorkshire\", \"Bristol\", \"SW1A\", \"M1\". Empty = the whole UK.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "distanceMiles": {
            "title": "Distance from the location",
            "enum": [
              "0",
              "1",
              "3",
              "5",
              "10",
              "15",
              "20",
              "30",
              "50"
            ],
            "type": "string",
            "description": "Reed's radius around each location (Reed's default is 10 miles). Ignored without a location.",
            "default": "10"
          },
          "jobTypes": {
            "title": "Job type",
            "uniqueItems": true,
            "type": "array",
            "description": "Any of these contract types (empty = all).",
            "items": {
              "type": "string",
              "enum": [
                "permanent",
                "temporary",
                "contract"
              ],
              "enumTitles": [
                "Permanent",
                "Temporary",
                "Contract"
              ]
            },
            "default": []
          },
          "hours": {
            "title": "Full-time / part-time",
            "enum": [
              "any",
              "full",
              "part"
            ],
            "type": "string",
            "description": "Only full-time or only part-time jobs.",
            "default": "any"
          },
          "workingOption": {
            "title": "Remote / hybrid / on-site",
            "enum": [
              "any",
              "onSite",
              "hybrid",
              "remote"
            ],
            "type": "string",
            "description": "Reed's working-location filter.",
            "default": "any"
          },
          "salaryMin": {
            "title": "Salary from (£ per year)",
            "minimum": 0,
            "maximum": 1000000,
            "type": "integer",
            "description": "Reed's \"Salary range — From\" filter in pounds per year (Reed's steps: 10,000, 12,000 … 50,000, 55,000 … 100,000). 0 = any.",
            "default": 0
          },
          "salaryMax": {
            "title": "Salary to (£ per year)",
            "minimum": 0,
            "maximum": 1000000,
            "type": "integer",
            "description": "Reed's \"Salary range — To\" filter in pounds per year. 0 = any.",
            "default": 0
          },
          "datePosted": {
            "title": "Date posted",
            "enum": [
              "anytime",
              "today",
              "lastthreedays",
              "lastweek",
              "lasttwoweeks"
            ],
            "type": "string",
            "description": "Only jobs posted (or refreshed) within this period — Reed's own filter.",
            "default": "anytime"
          },
          "postedBy": {
            "title": "Posted by",
            "uniqueItems": true,
            "type": "array",
            "description": "Recruitment agencies, direct employers and/or Reed itself (empty = all).",
            "items": {
              "type": "string",
              "enum": [
                "agency",
                "employer",
                "reed"
              ],
              "enumTitles": [
                "Agency",
                "Employer (direct)",
                "Reed"
              ]
            },
            "default": []
          },
          "specialisms": {
            "title": "Specialisms",
            "uniqueItems": true,
            "type": "array",
            "description": "Any of Reed's 37 specialisms (empty = all).",
            "items": {
              "type": "string",
              "enum": [
                "Accountancy",
                "Accountancy (Qualified)",
                "Admin, Secretarial & PA",
                "Apprenticeships",
                "Banking",
                "Charity & Voluntary",
                "Construction & Property",
                "Customer Service",
                "Education",
                "Energy",
                "Engineering",
                "Estate Agency",
                "Financial Services",
                "FMCG",
                "General Insurance",
                "Graduate Training & Internships",
                "Health & Medicine",
                "Hospitality & Catering",
                "Human Resources",
                "IT & Telecoms",
                "Legal",
                "Leisure & Tourism",
                "Manufacturing",
                "Marketing & PR",
                "Media, Digital & Creative",
                "Motoring & Automotive",
                "Other",
                "Purchasing",
                "Recruitment Consultancy",
                "Retail",
                "Sales",
                "Scientific",
                "Security & Safety",
                "Social Care",
                "Strategy & Consultancy",
                "Training",
                "Transport & Logistics"
              ]
            },
            "default": []
          },
          "graduateJobsOnly": {
            "title": "Graduate jobs only",
            "type": "boolean",
            "description": "Reed's \"Graduate\" experience filter.",
            "default": false
          },
          "easyApplyOnly": {
            "title": "Easy Apply only",
            "type": "boolean",
            "description": "Only jobs you can apply to on Reed in one click with a Reed profile.",
            "default": false
          },
          "visaSponsorshipOnly": {
            "title": "Visa sponsorship only",
            "type": "boolean",
            "description": "Only jobs whose advertiser offers visa sponsorship (Reed's filter; few jobs).",
            "default": false
          },
          "earlyBirdOnly": {
            "title": "Early bird only",
            "type": "boolean",
            "description": "Reed's \"Early bird\" filter.",
            "default": false
          },
          "hideTrainingCourses": {
            "title": "Hide training courses",
            "type": "boolean",
            "description": "Leave out training-course adverts (they show \"Training Course\" instead of a salary — about 3.5 % of Reed's listings).",
            "default": false
          },
          "hideJobsWithoutSalary": {
            "title": "Hide jobs without a salary",
            "type": "boolean",
            "description": "Reed's \"Jobs without salary displayed\" filter: leaves out \"Competitive salary\", \"Salary negotiable\" and \"Commission only\" adverts.",
            "default": false
          },
          "startUrls": {
            "title": "Reed URLs",
            "type": "array",
            "description": "Optional. Paste Reed search pages with any filters (https://www.reed.co.uk/jobs/nurse-jobs-in-leeds?…), recruiter or employer job pages (https://www.reed.co.uk/jobs/<name>/p12345) or single job pages (https://www.reed.co.uk/jobs/<title>/57412315). If you give only URLs, only the URLs are scraped.",
            "default": [],
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          },
          "recruiters": {
            "title": "Recruiters / employers",
            "type": "array",
            "description": "Optional. Every job of these advertisers: a Reed recruiter page URL, a profile number (p12120) or a name as it appears on Reed (\"Hays\", \"Reed Education\", \"NHS Professionals\"). Names are looked up among Reed's jobs; the filters above still apply.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "maxItems": {
            "title": "Max results",
            "minimum": 0,
            "maximum": 1000000,
            "type": "integer",
            "description": "Stop after this many unique jobs across all searches. 0 = no limit (every matching job — all of Reed is about 99,000).",
            "default": 1000
          },
          "includeDetails": {
            "title": "Include full job details",
            "type": "boolean",
            "description": "Reads each job's own record: full description, region, country, postcode, specialism and sub-specialism, skills, screening questions, cover-letter rule, advertiser reference and company profile, visa sponsorship, graduate flag and the yearly salary equivalent. Off = search data only (fastest bulk export).",
            "default": true
          },
          "sortBy": {
            "title": "Order",
            "enum": [
              "relevance",
              "newest"
            ],
            "type": "string",
            "description": "Relevance = Reed's own order for keyword searches (used for the first 1,000 results of each search; Reed's relevance order shifts between pages, so bigger reads continue newest-first so that no job is skipped). Newest = newest first everywhere.",
            "default": "relevance"
          },
          "includeDescriptionHtml": {
            "title": "Include description HTML",
            "type": "boolean",
            "description": "Also keep the job description with its original HTML formatting (descriptionHtml). Off keeps rows small.",
            "default": false
          },
          "maxRequestsPerSecond": {
            "title": "Max requests per second",
            "minimum": 1,
            "maximum": 60,
            "type": "integer",
            "description": "Upper limit for the request pace (searches and job details together). The scraper slows down by itself when Reed refuses requests and speeds up again afterwards. Measured on 2026-10-20: 2,000 job details at up to 50 per second without a single refusal. Default 30.",
            "default": 30
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Optional. The scraper reads Reed over a direct connection (no proxy cost). If Reed puts that connection on hold, up to 150 requests automatically go through UK residential IPs so small runs still finish. For long runs through a hold, set Apify RESIDENTIAL (United Kingdom) here — Reed refuses Apify datacenter IPs about half of the time (measured).",
            "default": {
              "useApifyProxy": 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
                  },
                  "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}