# UK Employment Tribunal Decisions (`wildorigins/uk-employment-tribunal-decisions`) Actor

🏷️ From $0.60 / 1K | Search published employment tribunal decisions by keyword, jurisdiction and date. Case references, parties, decision dates and links, for England, Wales and Scotland.

- **URL**: https://apify.com/wildorigins/uk-employment-tribunal-decisions.md
- **Developed by:** [Wild Origins](https://apify.com/wildorigins) (community)
- **Categories:** News, Automation
- **Stats:** 3 total users, 0 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.60 / 1,000 decisions

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

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

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
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.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## 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.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## UK Employment Tribunal Decisions

Search and download employment tribunal decisions from the official GOV.UK database: case reference, parties, decision date and a link to the decision itself. Over 128,000 decisions from February 2017 onwards.

### 🔍 What does UK Employment Tribunal Decisions do?

It runs a search against the GOV.UK employment tribunal decisions database and returns every matching decision as a clean row of data, ready for a spreadsheet, a database or your own product.

- Over 128,000 decisions from England, Wales and Scotland
- Search by keyword, which covers company names, issues and outcomes
- Filter by jurisdiction, for example unfair dismissal or discrimination
- Filter by country and by date range
- Updated daily as new decisions are published

### 📊 What data can I extract from the tribunal database?

One row per decision:

| Field | Description |
|---|---|
| `01_caseReference` | Official case reference, for example 3200399/2023 |
| `02_parties` | Claimant and respondent as published |
| `03_decidedDate` | Date the decision was made (YYYY-MM-DD) |
| `04_url` | Link to the full decision on GOV.UK |
| `05_title` | Full listing title, which combines the parties and the case reference |

Column names carry numeric prefixes so exports and previews keep the right order.

### 💡 Why scrape employment tribunal decisions?

**Precedent research.** Find comparable unfair dismissal and discrimination cases to support an argument, without paging through GOV.UK by hand.

**HR risk and benchmarking.** See which claim types are being brought against employers in your sector, and how often.

**Union and advocacy casework.** Track patterns by employer or by claim type to build evidence.

**Due diligence and insurance.** Profile an employer's tribunal history before a hire, a deal or a policy renewal.

### 🚀 How do I use UK Employment Tribunal Decisions?

1. Click **Try for free**.
2. Put a company name, issue or phrase into `keywords`, for example `NHS`.
3. Narrow it with `jurisdiction`, `country` and a `dateFrom` and `dateTo` range.
4. Set `maxResults` to cap the run, up to 1000.
5. Click **Start**, then download the results as JSON, CSV or Excel, or pull them from the API.

### ⬇️ Input

```json
{
  "keywords": "NHS",
  "jurisdiction": "unfair-dismissal",
  "dateFrom": "2024",
  "maxResults": 100
}
```

| Field | Type | Default | What it does |
|---|---|---|---|
| `keywords` | string | | Search for keywords in the case title or description |
| `jurisdiction` | string | all | Restrict to one claim type, such as `unfair-dismissal` or `race-discrimination` |
| `country` | string | all | `england-wales` or `scotland`, leave blank to cover both |
| `dateFrom` | string | | Earliest decision date, a year like `2024` or a full date like `21/11/2024` |
| `dateTo` | string | | Latest decision date, same formats as `dateFrom` |
| `maxResults` | integer | `100` | Maximum number of decisions to return, up to 1000 |

### ⬆️ Output

#### Table view

Results arrive as a Decisions table you can sort and filter in the Console, with the case reference, parties and decision date lined up for scanning.

#### JSON

A typical row:

```json
{
  "02_parties": "Jane Smith",
  "01_caseReference": "6034098/2025",
  "03_decidedDate": "2026-03-23",
  "05_title": "Mr J Owen v Alstom Transport (UK) Ltd: 6034098/2025",
  "04_url": "https://www.gov.uk/employment-tribunal-decisions/mr-j-owen-v-alstom-transport-uk-ltd-6034098-slash-2025"
}
```

Download it from the run as JSON, CSV or Excel, or read it straight from the API.

### Common jurisdictions

- Unfair Dismissal
- Disability Discrimination
- Race Discrimination
- Sex Discrimination
- Age Discrimination
- Harassment
- Equal Pay Act
- Breach of Contract
- Redundancy
- Unlawful Deduction from Wages
- Working Time Regulations
- Victimisation

### Example searches

- `NHS unfair dismissal` with a date range covering the last 12 months
- Jurisdiction: Sex Discrimination, Country: Scotland
- `constructive dismissal` with `dateFrom` set to 2024
- Jurisdiction: Equal Pay Act, Keywords: `gender pay gap`

### Data source

The official GOV.UK Employment Tribunal Decisions database, updated daily. It covers England, Wales and Scotland from February 2017 onwards. Data is Crown Copyright, licensed under the Open Government Licence v3.0.

### ⏱️ How long does a run take?

Measured on real runs, so you know what normal looks like and can tell it apart from a run that has stalled.

| Decisions returned | Typical run time |
|---|---|
| 3 | about 3 seconds |
| 100 | 5 to 8 seconds |
| 500 | about 40 seconds |

The GOV.UK finder serves ten decisions to a page, so the run time is set by how many pages have to be walked rather than by how wide the search is. A broad keyword over a long date range costs no more than a narrow one that returns the same number of decisions. The first few seconds of any run are the container starting rather than the work.

A run is never silently stuck. Each page of results is logged as it is read, and decisions are written to the dataset as they are parsed rather than held back to the end, so a run that hits its time limit still leaves everything it had already collected. A search that matches nothing ends successfully with an empty dataset and the reason in its status message.

**Set the run timeout to suit the size of the ask.** This Actor's default is 3600 seconds, which is comfortably more than the largest run in the table above (200 decisions takes about 30 seconds). You are charged per delivered result rather than per minute, so a generous timeout costs you nothing and a tight one risks losing the run's work. Lower it only if you want a hard ceiling on how long a scheduled run may sit.

### 💰 How much does it cost?

**$0.001 per decision returned**, plus the standard **$0.00005** Apify charges once when a run starts. There is no monthly rental, so you pay only for what a run actually returns.

So a search that returns **50 decisions** costs **$0.05005**. A weekly monitoring run that picks up 12 new decisions costs **$0.01205**, and a full run at the 1000 decision cap costs **$1.00005**. A run that finds nothing costs $0.00005.

Paid Apify plans pay less per decision: **$0.00085** on Bronze, **$0.0007** on Silver, **$0.0006** on Gold, **$0.0005** on Platinum and **$0.0004** on Diamond, which is 40 percent of the list price. That full 1000 decision run is **$0.40005** on Diamond.

Set `maxResults` to cap what a run can cost before it starts, up to 1000 per run. The Apify listing always shows the current rates.

### 🔌 Integrations

Send results straight to Google Sheets, Slack, Airtable, Zapier, Make or your own webhook using [Apify integrations](https://docs.apify.com/platform/integrations). You can also trigger a run whenever something happens in another tool.

### 🔗 Using UK Employment Tribunal Decisions with the Apify API

```bash
curl -X POST "https://api.apify.com/v2/acts/spookyweb~uk-employment-tribunal-decisions/run-sync-get-dataset-items?token=YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"keywords": "NHS", "jurisdiction": "unfair-dismissal", "dateFrom": "2024", "maxResults": 100}'
```

Or with the Apify client:

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

const client = new ApifyClient({ token: 'YOUR_TOKEN' });
const run = await client.actor('spookyweb/uk-employment-tribunal-decisions').call({
  keywords: 'NHS',
  jurisdiction: 'unfair-dismissal',
  dateFrom: '2024',
  maxResults: 100,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
```

Full detail is in the [Apify API reference](https://docs.apify.com/api/v2), and every run is also callable from the [Python](https://docs.apify.com/api/client/python) and [JavaScript](https://docs.apify.com/api/client/js) clients.

### ❓ FAQ

#### Does it cover Scotland as well as England and Wales?

Yes. The GOV.UK database covers England, Wales and Scotland, and so does this Actor. Leave `country` blank to search all three, or set it to `england-wales` or `scotland` to split them.

#### How current is the data?

GOV.UK publishes new decisions daily, and this Actor reads the live database, so a run returns what is published at that moment. There is a lag between a hearing and publication, which is set by the tribunal service rather than by this Actor.

#### Can I search by employer name?

Yes, put the employer into `keywords`. The search matches the case title, and the respondent's name is part of that title, so a search for `Alstom` returns cases where Alstom is the respondent. Combine it with `jurisdiction` to narrow to one claim type.

#### Why do some decisions have no full text?

This Actor returns the index record plus `04_url`, which is the link to the decision on GOV.UK. What sits at that URL varies by case: some decisions are published with full written reasons, others as the judgment alone. That is a decision the tribunal makes at publication, not something the Actor filters out.

#### Can I monitor for new decisions?

Yes. Set a narrow `keywords` and `jurisdiction`, set `dateFrom` to cover only the recent window you care about, keep `maxResults` low, and schedule the run daily or weekly with Apify's scheduler.

#### How far back does it go?

February 2017, which is when the tribunal service started publishing decisions in this database. Anything before that was never published online in this form.

### ⚖️ Is it legal to scrape employment tribunal decisions?

Decisions are published by HM Courts and Tribunals Service on GOV.UK as a public record. The tribunal itself publishes the parties' names as part of open justice. This Actor reads only those public pages, and it never logs in.

Onward use of named individuals is your responsibility under GDPR. Data is Crown Copyright under the Open Government Licence v3.0, so commercial use is permitted with attribution. Apify's [ethical scraping guide](https://blog.apify.com/is-web-scraping-legal/) covers the wider picture.

### 👍 Your feedback

Found a bug, or want a field that is not here yet? Open an issue on the Actor's Issues tab. Requests that make the data more useful get built, and problems get fixed quickly.

### 🔎 You might also like

| Actor | What it does |
|---|---|
| [UK Case Law Search and Monitor](https://apify.com/spookyweb/uk-case-law-search-monitor) | Court judgments and tribunal decisions from Find Case Law, with full text and change monitoring |
| [UK Financial Ombudsman Decisions](https://apify.com/spookyweb/uk-fos-decisions) | Final FOS decisions filterable by business, sector and outcome, with PDF links |
| [UK Insolvency Register Search](https://apify.com/spookyweb/uk-insolvency-register-search) | Individual Insolvency Register search for bankruptcies, IVAs and debt relief orders |

# Actor input Schema

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

Search for keywords in case title or description

## `jurisdiction` (type: `string`):

Restrict to one type of claim, such as unfair-dismissal or race-discrimination. Leave blank to return every jurisdiction, which is what you want when monitoring for new decisions.

## `country` (type: `string`):

Restrict to the tribunal location, england-wales or scotland. Leave blank to cover both. Northern Ireland runs a separate tribunal service and is not published here.

## `dateFrom` (type: `string`):

Earliest decision date to return. Accepts a year such as 2024 or a full date such as 21/11/2024. Leave blank to search from the start of the register.

## `dateTo` (type: `string`):

Latest decision date to return. Same formats as the earliest date, a year such as 2025 or a full date such as 21/11/2025. Leave blank to search up to the most recent publication.

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

Maximum number of decisions to return (default 100, max 1000)

## Actor input object example

```json
{
  "maxResults": 100
}
```

# Actor output Schema

## `results` (type: `string`):

One row per item: published tribunal decisions.

# 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 = {};

// Run the Actor and wait for it to finish
const run = await client.actor("wildorigins/uk-employment-tribunal-decisions").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 = {}

# Run the Actor and wait for it to finish
run = client.actor("wildorigins/uk-employment-tribunal-decisions").call(run_input=run_input)

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

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

```

## CLI example

```bash
echo '{}' |
apify call wildorigins/uk-employment-tribunal-decisions --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,wildorigins/uk-employment-tribunal-decisions"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/nyDeWNdxCsFQwVyjc/builds/zfFYB8PtF8wyEBGZ2/openapi.json
