# Poland MSiG Court Gazette Scraper (`automation-lab/poland-msig-court-gazette-scraper`) Actor

Search public Polish MSiG court and economic gazette notices for credit-risk, restructuring, creditor-call, and compliance watchlists.

- **URL**: https://apify.com/automation-lab/poland-msig-court-gazette-scraper.md
- **Developed by:** [Stas Persiianenko](https://apify.com/automation-lab) (community)
- **Categories:** Other
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

Pay per event

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

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — 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 MSiG Court Gazette Scraper

Search the public **Monitor Sądowy i Gospodarczy (MSiG)** archive from Poland’s Ministry of Justice.

Turn company names, KRS numbers, NIP numbers, court references, dates, and legal-notice wording into structured, auditable records.

### What does it do?

This actor searches public MSiG Court and Economic Gazette notices and enriches every result from the official notice-detail endpoint.

It is designed for repeatable watchlists, rather than manual browsing through individual gazette issues.

### Who is it for?

- ⚖️ Legal and restructuring teams tracking court notices
- 💳 Credit-risk teams monitoring counterparties
- 🧾 Debt collection teams finding creditor calls
- 🛡️ Compliance teams maintaining company evidence trails
- 📊 Data teams building Polish company watchlists

### Why use it?

MSiG is an official publication source, but searches can produce many notices.

This actor gives each result a consistent JSON record with identifiers, official text, and official download links.

### Official source

Data comes from the public MSiG archive operated by the Polish Ministry of Justice.

The actor does not require login credentials, an API key, or browser automation.

### Typical workflows

- Monitor a KRS number for new notices
- Search a company name before credit approval
- Find notices mentioning liquidation or restructuring
- Export public evidence into a case-management system
- Build a scheduled counterparty watchlist

### Quick start

1. Enter a company name, KRS, NIP, or notice wording.
2. Select a publication date range.
3. Choose a small maximum notice count for the first run.
4. Run the actor.
5. Export the dataset as JSON, CSV, Excel, or through the Apify API.

### Company-name searches

Use `entityName` for the public entity-name search field.

Partial names are useful when the legal entity suffix or exact punctuation is unknown.

### KRS searches

Use `krs` for a National Court Register number.

Leading zeroes are accepted by the source archive and are recommended when known.

Example: `0000143973`.

### NIP searches

Use `nip` for a Polish tax identification number.

Use this filter when a name is common or has changed over time.

### Notice-text searches

`textInPosition` searches the formal notice heading.

`textInBody` searches the public full-text body returned by MSiG.

Use these fields for targeted concepts such as a creditor call or liquidation terminology.

### Case and court filters

Use `signatureOfCase`, `signatureKRS`, and `court` when an internal case reference or issuing court is known.

Leave them blank for a broader company watchlist.

### Date range

`dateFrom` and `dateTo` use `YYYY-MM-DD` format.

The prefill is deliberately small to make an inexpensive first run.

For ongoing monitoring, schedule the actor with a rolling date range in your own workflow.

### Maximum notices

`maxItems` limits saved records and all corresponding detail requests.

Start with 10 records to validate filters, then increase it for an established watchlist.

The maximum is 1,000 records per run.

### Output fields

| Field | Meaning |
| --- | --- |
| `noticeId` | Stable official MSiG notice identifier |
| `noticeNumber` | Number within the notice publication |
| `monitorNumber` | Gazette issue number |
| `publicationDate` | Official publication date |
| `entityName` | Published entity or person name |
| `krs` | Public National Court Register number |
| `nip` | Public tax identifier when present |
| `caseSignature` | Public court case reference |
| `chapterName` | MSiG chapter/category |
| `textInPosition` | Official notice heading text |
| `textInBody` | Official full notice text |
| `detailUrl` | Official public detail API URL |
| `downloadUrl` | Official public download URL |
| `scrapedAt` | UTC time this actor retrieved the record |

### Output quality

A search result is enriched one notice at a time from the official detail endpoint.

If an individual detail record is temporarily unavailable, it is logged and skipped without failing the full search.

No legal classification is inferred from a notice.

### Pricing

### How much does it cost to scrape Poland MSiG notices?

Pricing uses Apify pay-per-event billing: a small start fee and a charge for each saved notice.

Your exact price depends on your Apify subscription tier and is shown before a run starts.

Use a low `maxItems` value to control scope.

### Export formats

Use the dataset tab to export JSON, JSONL, CSV, Excel, XML, or RSS formats supported by Apify.

Each output row is a single enriched MSiG notice.

### API usage: Node.js

```js
import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('automation-lab/poland-msig-court-gazette-scraper').call({
  krs: '0000143973', dateFrom: '2026-01-01', dateTo: '2026-01-31', maxItems: 10,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);
```

### API usage: Python

```python
from apify_client import ApifyClient
client = ApifyClient('YOUR_APIFY_TOKEN')
run = client.actor('automation-lab/poland-msig-court-gazette-scraper').call(run_input={
    'entityName': 'Haberbusch', 'dateFrom': '2026-01-01', 'dateTo': '2026-01-31', 'maxItems': 10,
})
for item in client.dataset(run['defaultDatasetId']).iterate_items():
    print(item['entityName'], item['downloadUrl'])
```

### API usage: cURL

```bash
curl -X POST 'https://api.apify.com/v2/acts/automation-lab~poland-msig-court-gazette-scraper/runs?token=YOUR_APIFY_TOKEN' \
  -H 'content-type: application/json' \
  -d '{"krs":"0000143973","dateFrom":"2026-01-01","dateTo":"2026-01-31","maxItems":10}'
```

### Integrations

- 🔔 Send new KRS matches to Slack or Microsoft Teams
- 🗃️ Store notice IDs in an internal compliance database
- 📈 Join MSiG notices to a CRM account list
- 📬 Create a case ticket when a watchlisted company appears
- 🧑‍⚖️ Attach the official download URL to a legal-review record

### Scheduled monitoring

Use an Apify schedule with a short date window and a KRS or company-name filter.

Deduplicate downstream on `noticeId`, which is the stable public identifier.

### MCP

Use this actor through Apify MCP in Claude Desktop or Claude Code.

Connect with `https://mcp.apify.com?tools=automation-lab/poland-msig-court-gazette-scraper`.

Claude Code setup:

```bash
claude mcp add apify --transport http https://mcp.apify.com?tools=automation-lab/poland-msig-court-gazette-scraper
```

Claude Desktop configuration:

```json
{"mcpServers":{"apify":{"url":"https://mcp.apify.com?tools=automation-lab/poland-msig-court-gazette-scraper"}}}
```

Example prompt: “Search MSiG notices for KRS 0000143973 published this month and summarize creditor-related items.”

### Tips

- ✅ Prefer KRS for the most specific company watch
- ✅ Keep date windows short for scheduled runs
- ✅ Retain `noticeId` and `downloadUrl` in your audit trail
- ✅ Use `textInBody` for a specific legal phrase
- ⚠️ Treat source text as public notice content, not legal advice

### Troubleshooting: no results

Try a wider date range, a partial entity name, or remove optional court and signature filters.

The archive can legitimately have no notices for a particular entity and period.

### Troubleshooting: a notice is missing text

The actor returns the public detail response supplied by MSiG.

Use `detailUrl` or `downloadUrl` to inspect the official source directly.

### Data freshness

The actor queries the source at run time.

`scrapedAt` tells you when this actor retrieved the record; `publicationDate` is the official MSiG publication date.

### Legality and responsible use

Use public MSiG data lawfully and in accordance with your organization’s compliance policies.

Do not use output as the sole basis for legal, credit, or employment decisions.

### FAQ

#### Does this actor bypass access controls?

No. It calls public archive endpoints available without a login.

#### Does it download documents automatically?

It returns the official download URL for every saved notice.

#### Can I monitor multiple companies?

Run separate scheduled inputs per company or combine downstream datasets using `noticeId`.

#### Is browser automation required?

No. The first release uses the public HTTP API for reliable, efficient retrieval.

### Related scrapers

For related public-registry workflows, see [KRS Full Names Scraper](https://apify.com/automation-lab/krs-fullnames-scraper).

For broader compliance pipelines, export this actor’s dataset and join it to your internal company records.

### Limitations

Availability and searchable fields are controlled by the public MSiG archive.

The actor does not interpret notices, guarantee legal completeness, or replace professional advice.

### Support

Include your input filters, run ID, and one `noticeId` when reporting an issue.

This helps reproduce public-source behavior without sharing unnecessary data.

### Version

Initial release: public MSiG search, detail enrichment, official source URLs, bounded pagination, and retry handling.

# Actor input Schema

## `entityName` (type: `string`):

Full or partial entity name in the MSiG archive.

## `krs` (type: `string`):

Polish National Court Register number, with or without leading zeros.

## `nip` (type: `string`):

Polish tax identification number.

## `textInPosition` (type: `string`):

Search wording in the formal notice heading.

## `textInBody` (type: `string`):

Search wording in full public notice text.

## `signatureType` (type: `string`):

Archive case-signature category. Leave A for the standard search.

## `signatureOfCase` (type: `string`):

Court case reference, if known.

## `signatureKRS` (type: `string`):

KRS-related signature used by the archive.

## `court` (type: `string`):

Court name or identifier, if known.

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

First publication date (YYYY-MM-DD).

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

Last publication date (YYYY-MM-DD).

## `maxItems` (type: `integer`):

Maximum public notice records to save. Start small while validating a watchlist.

## Actor input object example

```json
{
  "krs": "0000143973",
  "signatureType": "A",
  "dateFrom": "2026-01-01",
  "dateTo": "2026-01-31",
  "maxItems": 10
}
```

# Actor output Schema

## `overview` (type: `string`):

No description

# 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 = {
    "entityName": "",
    "krs": "0000143973",
    "nip": "",
    "textInPosition": "",
    "textInBody": "",
    "signatureType": "A",
    "signatureOfCase": "",
    "signatureKRS": "",
    "court": "",
    "dateFrom": "2026-01-01",
    "dateTo": "2026-01-31",
    "maxItems": 10
};

// Run the Actor and wait for it to finish
const run = await client.actor("automation-lab/poland-msig-court-gazette-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 = {
    "entityName": "",
    "krs": "0000143973",
    "nip": "",
    "textInPosition": "",
    "textInBody": "",
    "signatureType": "A",
    "signatureOfCase": "",
    "signatureKRS": "",
    "court": "",
    "dateFrom": "2026-01-01",
    "dateTo": "2026-01-31",
    "maxItems": 10,
}

# Run the Actor and wait for it to finish
run = client.actor("automation-lab/poland-msig-court-gazette-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 '{
  "entityName": "",
  "krs": "0000143973",
  "nip": "",
  "textInPosition": "",
  "textInBody": "",
  "signatureType": "A",
  "signatureOfCase": "",
  "signatureKRS": "",
  "court": "",
  "dateFrom": "2026-01-01",
  "dateTo": "2026-01-31",
  "maxItems": 10
}' |
apify call automation-lab/poland-msig-court-gazette-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=automation-lab/poland-msig-court-gazette-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/acts/lxZGoDIa6Un1lW9V1/builds/I8skBqY0jKWrKfe6m/openapi.json
