# Poland UOKiK Abusive Clauses Registry Scraper (`minute_contest/uokik-clauses-scraper`) Actor

Rejestr klauzul niedozwolonych UOKiK - 7,500+ zakazanych postanowień umownych. Search court-banned contract clauses by defendant, industry, legal category. No API exists. Legal compliance, consumer protection. JSON.

- **URL**: https://apify.com/minute\_contest/uokik-clauses-scraper.md
- **Developed by:** [minute contest](https://apify.com/minute_contest) (community)
- **Categories:** Business, Lead generation, Automation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.50 / 1,000 clause results

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/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
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.md):

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

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.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/platform/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

## Poland UOKiK Abusive Clauses Registry Scraper | Rejestr Klauzul Niedozwolonych

Screen your contracts against 7,500+ court-ruled prohibited clauses from Poland's consumer protection registry. Using a banned clause is automatically void and can expose your company to fines of up to 10% of annual revenue.

### Quick Start

Click **Try it** and paste this input:

```json
{
  "defendant": "mBank"
}
````

### Sample Output

```json
{
  "lp": 7521,
  "judgmentDate": "2019-10-15",
  "caseSignature": "XVII AmC 1234/19",
  "court": "Sad Okregowy w Warszawie - SOKiK",
  "plaintiff": "Prezes UOKiK",
  "defendant": "mBank S.A.",
  "clauseText": "Bank zastrzega sobie prawo do jednostronnej zmiany Regulaminu...",
  "registrationDate": "2020-01-10",
  "industry": "Uslugi finansowe",
  "sourceUrl": "https://rejestr.uokik.gov.pl/"
}
```

### Pricing

| Volume | Cost |
|--------|------|
| 1 result | $0.003 |
| 100 results | ~$0.31 |
| 1,000 results | ~$3.01 |
| 10,000 results | ~$30.01 |

Start cost per run: **$0.005**. Free Apify credits ($5) = ~1,600 clauses at no cost.

### Features

- **No browser automation** - uses direct HTTP requests to the registry's PHP backend
- **Search by defendant** - find all clauses ruled against a specific company
- **Search by plaintiff** - filter by who brought the case
- **Filter by legal category** - 24 categories of clause violations (excessive penalties, unfair termination, liability limitations, etc.)
- **Bulk export** - download all 7,500+ clauses for database building
- **Rate-limited** - 1-3 second delays between requests to respect the server

### Input Parameters

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| `defendant` | string | No | - | Defendant company name (partial match) |
| `plaintiff` | string | No | - | Plaintiff name (partial match) |
| `category` | string | No | all | Legal category of clause violation (24 categories) |
| `exportAll` | boolean | No | `false` | Export all ~7,500 clauses, ignoring other filters |
| `maxResults` | integer | No | `100` | Max results. Set to `0` for unlimited |

#### Category Codes

| Category | Description |
|----------|-------------|
| Wygorowana kara umowna - pkt 17 | Excessive contractual penalty |
| Ograniczenie odpowiedzialnosci - pkt 2 | Limitation of liability |
| Jednostronna zmiana umowy - pkt 10 | Unilateral contract modification |
| Narzucanie wlasciwosci sadu - pkt 23 | Imposing court jurisdiction |
| Automatyczne przedluzanie umowy - pkt 18 | Automatic contract renewal |
| *...and 19 more categories* | |

### Output Fields

| Field | Description |
|-------|-------------|
| `lp` | Sequential number in the registry |
| `judgmentDate` | Date of court ruling |
| `caseSignature` | Court case signature (e.g., XVII AmC 1234/19) |
| `court` | Court that issued the ruling |
| `plaintiff` | Who brought the case (often Prezes UOKiK) |
| `defendant` | Company whose clause was banned |
| `clauseText` | Full text of the prohibited clause |
| `registrationDate` | Date the clause was added to the registry |
| `industry` | Industry sector of the defendant |
| `sourceUrl` | Source registry URL |

### Use Cases

- **Contract Compliance** - check whether your standard contracts contain clauses that match banned ones
- **E-Commerce Legal Audit** - verify that terms of service and return policies comply with consumer protection law
- **Insurance Policy Review** - screen policy terms against historical SOKiK rulings
- **Banking Compliance** - validate loan agreements and fee schedules against the registry
- **Legal Research** - analyze patterns in court rulings by industry, defendant, or clause type

### Data Source & Compliance

All data comes from the official UOKiK registry of abusive clauses:

- https://rejestr.uokik.gov.pl/

Data is publicly available. UOKiK is the statutory consumer protection authority in Poland. The registry is maintained under the Act on Competition and Consumer Protection (ustawa o ochronie konkurencji i konsumentow).

### Polish Business Data Suite

This actor is part of the **Polish Business Data Suite** - 9 actors covering the full Polish company intelligence stack. No subscriptions, no minimum commitment - pay only for what you use.

| Registry | Actor | What it does |
|----------|-------|-------------|
| **eKRS** | [Financial Statements](https://apify.com/minute_contest/poland-krs-financial-scraper) | Balance sheets, income statements |
| **KRS** | [Board Members](https://apify.com/minute_contest/krs-fullnames-scraper) | Full non-anonymized director names |
| **KRZ** | [Debtor Registry](https://apify.com/minute_contest/krz-debtor-scraper) | Bankruptcy, restructuring, enforcement |
| **KNF** | [Financial Supervision](https://apify.com/minute_contest/knf-registry-scraper) | 75,000+ regulated financial entities |
| **MSiG** | [Court Gazette](https://apify.com/minute_contest/msig-scraper) | Court announcements since 2001 |
| **EKW** | [Land Registry](https://apify.com/minute_contest/ekw-ksiegi-wieczyste-scraper) | Property ownership, mortgages, restrictions |
| **CRBR** | [Beneficial Owners](https://apify.com/minute_contest/crbr-beneficial-owners-scraper) | UBO verification by NIP/KRS |
| **UOKiK** | [Abusive Clauses](https://apify.com/minute_contest/uokik-clauses-scraper) | 7,500+ banned contract clauses |
| **BDO** | [Waste Registry](https://apify.com/minute_contest/bdo-waste-registry-scraper) | 674,000+ waste management entities |

> **Full suite**: [apify.com/minute\_contest](https://apify.com/minute_contest)

### Informacje po polsku

#### Czym jest ten aktor?

Ten aktor umozliwia automatyczne przeszukiwanie **rejestru klauzul niedozwolonych UOKiK** - bazy ponad 7 500 postanowien umownych uznanych przez Sad Ochrony Konkurencji i Konsumentow (SOKiK) za abuzywne. Rejestr nie udostepnia publicznego API. Aktor scrapuje portal `rejestr.uokik.gov.pl` i zwraca ustrukturyzowane dane JSON - daty orzeczen, sygnatury spraw, pelne tresci zakazanych klauzul, nazwy pozwanych firm i branze.

#### Dla kogo?

Narzedzie jest przeznaczone dla **kancelarii prawnych** audytujacych wzorce umow, **firm e-commerce** weryfikujacych regulaminy i polityki zwrotow, **bankow i instytucji finansowych** sprawdzajacych umowy kredytowe, **dzialow compliance** przeprowadzajacych okresowe audyty wzorcow umownych, oraz **organizacji konsumenckich** prowadzacych badania i rzecznictwo.

#### Co mozna sprawdzic?

Wyszukiwanie po nazwie pozwanego (np. "mBank"), po nazwie powoda, lub po kategorii prawnej naruszenia (24 kategorii, np. wygorowana kara umowna, ograniczenie odpowiedzialnosci, jednostronna zmiana umowy). Mozna tez wyeksportowac caly rejestr do wlasnej bazy danych. Kazdy wynik zawiera pelny tekst zakazanej klauzuli, date orzeczenia, sygnature sprawy, nazwe sadu i branze pozwanego.

#### Jak zaczac?

Uruchom aktora na platformie Apify, podajac nazwe firmy lub wybrana kategorie prawna. Dla **audytu umow** mozesz zintegrowac aktora ze swoim systemem przez Apify API i automatycznie sprawdzac nowe wzorce umow. Pay-per-use - okolo 13 zl za 1000 klauzul. Darmowe $5 kredytow Apify = ~1500 klauzul za darmo.

### Limitations

- The registry has ~7,500 entries total - full export takes several minutes due to rate limiting
- Results depend on the HTML structure of `rejestr.uokik.gov.pl` - changes to the portal layout may affect parsing
- Category filter codes correspond to specific provisions of Polish consumer protection law
- No proxy required - the portal does not block datacenter IPs

# Actor input Schema

## `category` (type: `string`):

Filter by legal category of the clause violation. Leave empty for all categories.

## `defendant` (type: `string`):

Filter by defendant company name (partial match).

## `plaintiff` (type: `string`):

Filter by plaintiff name (partial match).

## `exportAll` (type: `boolean`):

Export all clauses from the registry (~7,500 entries). Ignores other filters.

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

Maximum number of results. Default: 100. Set to 0 for unlimited.

## Actor input object example

```json
{
  "category": "",
  "defendant": "mBank",
  "exportAll": false,
  "maxResults": 100
}
```

# Actor output Schema

## `clauses` (type: `string`):

Registry entries with clause text, defendant company, industry sector, court details, and registration date.

# 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 = {
    "defendant": "mBank"
};

// Run the Actor and wait for it to finish
const run = await client.actor("minute_contest/uokik-clauses-scraper").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 = { "defendant": "mBank" }

# Run the Actor and wait for it to finish
run = client.actor("minute_contest/uokik-clauses-scraper").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 '{
  "defendant": "mBank"
}' |
apify call minute_contest/uokik-clauses-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=minute_contest/uokik-clauses-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Poland UOKiK Abusive Clauses Registry Scraper",
        "description": "Rejestr klauzul niedozwolonych UOKiK - 7,500+ zakazanych postanowień umownych. Search court-banned contract clauses by defendant, industry, legal category. No API exists. Legal compliance, consumer protection. JSON.",
        "version": "1.0",
        "x-build-id": "2FsfdxdMeSMrWtFwc"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/minute_contest~uokik-clauses-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-minute_contest-uokik-clauses-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/minute_contest~uokik-clauses-scraper/runs": {
            "post": {
                "operationId": "runs-sync-minute_contest-uokik-clauses-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/minute_contest~uokik-clauses-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-minute_contest-uokik-clauses-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": {
                    "category": {
                        "title": "Category (Zagadnienie)",
                        "enum": [
                            "",
                            "5",
                            "4",
                            "3",
                            "23",
                            "22",
                            "21",
                            "20",
                            "19",
                            "18",
                            "17",
                            "16",
                            "15",
                            "14",
                            "13",
                            "12",
                            "11",
                            "10",
                            "9",
                            "8",
                            "7",
                            "6",
                            "2",
                            "1",
                            "24"
                        ],
                        "type": "string",
                        "description": "Filter by legal category of the clause violation. Leave empty for all categories.",
                        "default": ""
                    },
                    "defendant": {
                        "title": "Defendant Name (Pozwany)",
                        "type": "string",
                        "description": "Filter by defendant company name (partial match)."
                    },
                    "plaintiff": {
                        "title": "Plaintiff Name (Powód)",
                        "type": "string",
                        "description": "Filter by plaintiff name (partial match)."
                    },
                    "exportAll": {
                        "title": "Export All",
                        "type": "boolean",
                        "description": "Export all clauses from the registry (~7,500 entries). Ignores other filters.",
                        "default": false
                    },
                    "maxResults": {
                        "title": "Max Results",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Maximum number of results. Default: 100. Set to 0 for unlimited.",
                        "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
                                    }
                                }
                            },
                            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
