# Reed Jobs API - Search UK Job Listings (`nabeelbaghoor/reed-jobs-api`) Actor

Search the reed.co.uk jobs API and export structured UK job listings - title, employer, location, salary range, contract type, posting date and apply link. Filter by keyword, location, distance, salary, full-time, part-time, permanent, contract and more. Pay per result. Bring your own API key.

- **URL**: https://apify.com/nabeelbaghoor/reed-jobs-api.md
- **Developed by:** [Nabeel Hassan](https://apify.com/nabeelbaghoor) (community)
- **Categories:** Jobs, Developer tools, Lead generation
- **Stats:** 2 total users, 1 monthly users, 0.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

$8.00 / 1,000 job results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js/docs.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python/docs.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

## Reed Jobs API - search UK job listings

**Reed Jobs API** turns the reed.co.uk jobs search into a clean, structured dataset. Enter keywords and a location and get back every matching UK listing - job title, employer, location, salary range, contract type, posting date, full description and a direct apply link - ready to export as JSON, CSV or Excel.

Bring your own reed.co.uk API key (free for developers) and pay only for the results you keep.

### Why use this actor?

- **Real UK jobs coverage** - the live listings on reed.co.uk, one of the largest job boards in the United Kingdom, across every sector and region.
- **Structured output** - title, employer, location, minimum and maximum salary, contract type, posting date, expiration date, application count, full description and apply link, parsed into flat columns.
- **Precise filters** - keyword, location, distance in miles, salary band, full-time, part-time, permanent, contract, temporary, graduate, and direct-employer vs agency.
- **Pay per result** - you are charged only for the jobs actually returned.
- **No proxies, no blocks** - data comes through a stable API, so runs are fast and reliable.

### Use cases

- **Job boards and aggregators** - keep UK listings fresh with real reed.co.uk results.
- **Recruiting and sourcing** - see who is hiring for which roles, where, and at what pay.
- **Salary benchmarking** - track pay ranges by role, city or sector across the UK.
- **Lead generation** - a company that is hiring is a company that is buying.
- **Job alert automations** - schedule daily runs and push new matches to Slack, email or your ATS.

### Input

Configure everything from the visual editor - every filter is a proper field, no code needed. Example JSON input:

```json
{
  "keywords": "software engineer",
  "locationName": "London",
  "distanceFromLocation": 15,
  "minimumSalary": 40000,
  "fullTime": true,
  "permanent": true,
  "maxResults": 100,
  "apiKey": "YOUR_API_KEY"
}
````

### Output

One clean JSON object per job:

```json
{
  "job_title": "Senior Software Engineer",
  "employer_name": "Acme Ltd",
  "location": "London",
  "salary": "60000 - 80000",
  "minimum_salary": 60000,
  "maximum_salary": 80000,
  "currency": "GBP",
  "contract_type": "Full-time, Permanent",
  "posted_at": "23/07/2026",
  "expiration_date": "23/08/2026",
  "applications": 12,
  "description": "We are looking for a Senior Software Engineer...",
  "apply_link": "https://www.reed.co.uk/jobs/senior-software-engineer/12345678",
  "job_id": 12345678,
  "employer_id": 987654
}
```

### Do I need an API key?

Yes. This actor calls the reed.co.uk jobs API on your behalf, which requires your own API key. Register for a free developer key at reed.co.uk/developers, paste it into the **API key** field, and run. Your key is stored securely and never logged.

### Pay per result

You pay only for the job listings the actor actually returns - no subscriptions, no minimums. Set **Maximum results** to cap each run's spend exactly.

### FAQ

#### What is the Reed Jobs API?

The Reed Jobs API is the official developer interface to reed.co.uk, a major UK job board. It returns live job listings as structured data - title, employer, location, salary range, contract type, posting date, description and apply link - so you can pull the same jobs shown on reed.co.uk without scraping the website.

#### Where does the data come from?

Directly from reed.co.uk job listings, posted by employers and recruitment agencies across the United Kingdom. The actor queries the official jobs search endpoint and hands you parsed fields for every matching listing.

#### What filters can I use?

Keywords, location and distance in miles, minimum and maximum salary, and toggles for full-time, part-time, permanent, contract, temporary, graduate roles, and direct employers versus recruitment agencies. You can also restrict to a single employer by ID.

#### How many results can I get per run?

As many as your search matches, collected 100 per page. Use **Maximum results** to set an exact cap. For very large pulls, split the search by location, salary band or role.

#### How much does it cost?

Pricing is pay-per-result: a small fixed amount for every job returned, plus standard Apify platform usage, plus your own reed.co.uk API usage (billed by reed against your key). A run that returns nothing costs almost nothing.

#### Is salary always included?

No. Reed shows salary only when the employer publishes it, so the salary fields can be empty for some jobs. All available fields are passed through as-is.

#### Can I run this on a schedule?

Yes. Use Apify Schedules to run it hourly or daily and connect the dataset to Zapier, Make, n8n, webhooks or the API to pipe new jobs anywhere.

#### Is this legal?

The actor returns publicly available UK job listings through reed.co.uk's official API using your own licensed API key. No login-walled or personal data is collected.

### Keyword map

reed jobs api, reed.co.uk api, uk jobs api, uk job search api, reed job listings, uk job postings api, reed api, job vacancies api uk, uk recruitment data api, salary data api uk, job board api, jobs data api.

### Support and feedback

Found an issue or missing a filter? Open an issue in the **Issues** tab - it is monitored daily.

# Actor input Schema

## `keywords` (type: `string`):

Search terms, e.g. `software engineer`, `registered nurse`, `warehouse manager`. Matches job title and description.

## `locationName` (type: `string`):

Town, city or postcode area to search around, e.g. `London`, `Manchester`, `Bristol`. Leave empty to search the whole UK.

## `distanceFromLocation` (type: `integer`):

Search radius in miles around the location. Defaults to 10.

## `minimumSalary` (type: `integer`):

Lowest annual salary to include. Jobs with hidden salaries may still appear.

## `maximumSalary` (type: `integer`):

Highest annual salary to include.

## `fullTime` (type: `boolean`):

Return only full-time roles.

## `partTime` (type: `boolean`):

Return only part-time roles.

## `permanent` (type: `boolean`):

Return only permanent roles.

## `contract` (type: `boolean`):

Return only contract roles.

## `temp` (type: `boolean`):

Return only temporary roles.

## `graduate` (type: `boolean`):

Return only roles flagged as suitable for graduates.

## `postedByDirectEmployer` (type: `boolean`):

Return only jobs posted directly by the hiring employer (not recruitment agencies).

## `postedByRecruitmentAgency` (type: `boolean`):

Return only jobs posted by recruitment agencies.

## `employerId` (type: `integer`):

Restrict results to a single employer by their numeric employer ID.

## `maxResults` (type: `integer`):

Stop after this many jobs. Results are collected 100 per page. You are charged per result returned.

## `apiKey` (type: `string`):

Your own reed.co.uk API key. Required - the actor calls the jobs API on your behalf using this key. Get one free at reed.co.uk/developers. Stored securely and never logged.

## Actor input object example

```json
{
  "keywords": "software engineer",
  "distanceFromLocation": 10,
  "fullTime": false,
  "partTime": false,
  "permanent": false,
  "contract": false,
  "temp": false,
  "graduate": false,
  "postedByDirectEmployer": false,
  "postedByRecruitmentAgency": false,
  "maxResults": 100
}
```

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "keywords": "software engineer",
    "maxResults": 100
};

// Run the Actor and wait for it to finish
const run = await client.actor("nabeelbaghoor/reed-jobs-api").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "keywords": "software engineer",
    "maxResults": 100,
}

# Run the Actor and wait for it to finish
run = client.actor("nabeelbaghoor/reed-jobs-api").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "keywords": "software engineer",
  "maxResults": 100
}' |
apify call nabeelbaghoor/reed-jobs-api --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=nabeelbaghoor/reed-jobs-api",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Reed Jobs API - Search UK Job Listings",
        "description": "Search the reed.co.uk jobs API and export structured UK job listings - title, employer, location, salary range, contract type, posting date and apply link. Filter by keyword, location, distance, salary, full-time, part-time, permanent, contract and more. Pay per result. Bring your own API key.",
        "version": "0.1",
        "x-build-id": "NSiMgLSdEcvaxCm6Q"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/nabeelbaghoor~reed-jobs-api/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-nabeelbaghoor-reed-jobs-api",
                "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/nabeelbaghoor~reed-jobs-api/runs": {
            "post": {
                "operationId": "runs-sync-nabeelbaghoor-reed-jobs-api",
                "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/nabeelbaghoor~reed-jobs-api/run-sync": {
            "post": {
                "operationId": "run-sync-nabeelbaghoor-reed-jobs-api",
                "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",
                        "type": "string",
                        "description": "Search terms, e.g. `software engineer`, `registered nurse`, `warehouse manager`. Matches job title and description."
                    },
                    "locationName": {
                        "title": "Location",
                        "type": "string",
                        "description": "Town, city or postcode area to search around, e.g. `London`, `Manchester`, `Bristol`. Leave empty to search the whole UK."
                    },
                    "distanceFromLocation": {
                        "title": "Distance from location (miles)",
                        "minimum": 0,
                        "maximum": 100,
                        "type": "integer",
                        "description": "Search radius in miles around the location. Defaults to 10.",
                        "default": 10
                    },
                    "minimumSalary": {
                        "title": "Minimum salary (GBP)",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Lowest annual salary to include. Jobs with hidden salaries may still appear."
                    },
                    "maximumSalary": {
                        "title": "Maximum salary (GBP)",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Highest annual salary to include."
                    },
                    "fullTime": {
                        "title": "Full-time only",
                        "type": "boolean",
                        "description": "Return only full-time roles.",
                        "default": false
                    },
                    "partTime": {
                        "title": "Part-time only",
                        "type": "boolean",
                        "description": "Return only part-time roles.",
                        "default": false
                    },
                    "permanent": {
                        "title": "Permanent only",
                        "type": "boolean",
                        "description": "Return only permanent roles.",
                        "default": false
                    },
                    "contract": {
                        "title": "Contract only",
                        "type": "boolean",
                        "description": "Return only contract roles.",
                        "default": false
                    },
                    "temp": {
                        "title": "Temporary only",
                        "type": "boolean",
                        "description": "Return only temporary roles.",
                        "default": false
                    },
                    "graduate": {
                        "title": "Graduate roles only",
                        "type": "boolean",
                        "description": "Return only roles flagged as suitable for graduates.",
                        "default": false
                    },
                    "postedByDirectEmployer": {
                        "title": "Direct employers only",
                        "type": "boolean",
                        "description": "Return only jobs posted directly by the hiring employer (not recruitment agencies).",
                        "default": false
                    },
                    "postedByRecruitmentAgency": {
                        "title": "Recruitment agencies only",
                        "type": "boolean",
                        "description": "Return only jobs posted by recruitment agencies.",
                        "default": false
                    },
                    "employerId": {
                        "title": "Employer ID",
                        "type": "integer",
                        "description": "Restrict results to a single employer by their numeric employer ID."
                    },
                    "maxResults": {
                        "title": "Maximum results",
                        "minimum": 1,
                        "maximum": 5000,
                        "type": "integer",
                        "description": "Stop after this many jobs. Results are collected 100 per page. You are charged per result returned."
                    },
                    "apiKey": {
                        "title": "API key",
                        "type": "string",
                        "description": "Your own reed.co.uk API key. Required - the actor calls the jobs API on your behalf using this key. Get one free at reed.co.uk/developers. Stored securely and never logged."
                    }
                }
            },
            "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
                                    }
                                }
                            },
                            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
