{
  "openapi": "3.0.1",
  "info": {
    "title": "Totaljobs Scraper - UK Jobs, Salaries & Hiring Companies",
    "description": "Scrape UK jobs from Totaljobs, CWJobs, Jobsite, Caterer and Milkround. Every row carries the salary the employer advertised, not an estimate, plus their sector, size, employee rating and open roles, and the skills named in the advert. Filter to direct employers and leave the agencies out.",
    "version": "0.0",
    "x-build-id": "hX5gk3A2O2JKIkg3v"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/clearpath~totaljobs-uk-job-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-clearpath-totaljobs-uk-job-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/clearpath~totaljobs-uk-job-scraper/runs": {
      "post": {
        "operationId": "runs-sync-clearpath-totaljobs-uk-job-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/clearpath~totaljobs-uk-job-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-clearpath-totaljobs-uk-job-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": {
          "keyword": {
            "title": "Job keyword",
            "type": "string",
            "description": "What to search for, for example <b>python developer</b>, <b>registered nurse</b> or <b>management accountant</b>. Leave empty to get every job in the location."
          },
          "location": {
            "title": "Location",
            "type": "string",
            "description": "Town, city or region to search in, for example <b>London</b>, <b>Manchester</b> or <b>West Midlands</b>. Leave empty to search the whole UK."
          },
          "site": {
            "title": "Job board",
            "enum": [
              "totaljobs",
              "cwjobs",
              "jobsite",
              "caterer",
              "milkround"
            ],
            "type": "string",
            "description": "Which board to search. Totaljobs is used when nothing is selected. All five carry UK jobs; CWJobs is tech only, Caterer is hospitality, Milkround is graduate roles."
          },
          "radius": {
            "title": "Search radius (miles)",
            "minimum": 0,
            "maximum": 100,
            "type": "integer",
            "description": "How far around the location to include jobs. Only applies when a location is set."
          },
          "jobType": {
            "title": "Job type",
            "enum": [
              "permanent",
              "contract",
              "part-time",
              "temporary",
              "work-from-home"
            ],
            "type": "string",
            "description": "Leave empty to get every type of contract."
          },
          "postedBy": {
            "title": "Advertised by",
            "enum": [
              "employer",
              "agency"
            ],
            "type": "string",
            "description": "<b>Off by default, so nothing is dropped unless you ask.</b> Most UK listings are placed by recruitment agencies. Pick <b>Direct employers only</b> to keep just the companies hiring for themselves, which is what you want for lead generation. This is a filter: it returns fewer jobs than the same search without it, and you are not charged for what it removes."
          },
          "publishedSince": {
            "title": "Published within",
            "enum": [
              "24h",
              "3d",
              "7d",
              "14d"
            ],
            "type": "string",
            "description": "Only return recently published jobs. Useful for a daily or weekly run that should pick up new postings only."
          },
          "minSalary": {
            "title": "Minimum salary",
            "minimum": 0,
            "type": "integer",
            "description": "Only return jobs advertised at or above this figure, in pounds. Set the period below to match, for example <b>45000</b> per year or <b>450</b> per day."
          },
          "salaryPeriod": {
            "title": "Salary period",
            "enum": [
              "year",
              "day",
              "hour"
            ],
            "type": "string",
            "description": "What the minimum salary above is measured in. Per year is used when nothing is selected."
          },
          "exactMatchesOnly": {
            "title": "Exact matches only",
            "type": "boolean",
            "description": "<b>Off by default, so you get everything the board returns.</b> The board pads a result list with jobs that carry a different title or sit outside the town you asked for. Tick this to keep only the jobs that match your search. It returns fewer jobs, and the ones it removes are never fetched or charged. Every row tells you which it is in <b>matchType</b> either way, so you can leave this off and filter afterwards without losing anything.",
            "default": false
          },
          "startUrls": {
            "title": "Job board URLs",
            "type": "array",
            "description": "Paste result pages or single job pages from any of the five boards. <b>These replace the keyword search above</b>, including the filters. Each result page is walked from its first page, so a <code>page=</code> in the address you paste is ignored. The maximum below is split evenly across the result pages you add.",
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          },
          "maxItems": {
            "title": "Maximum jobs",
            "minimum": 0,
            "type": "integer",
            "description": "How many jobs to return in total across the whole run. Set to <b>0</b> to keep going until the search runs out, up to 10,000 jobs per run.",
            "default": 100
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}