Poland Court & Business Gazette API – MSiG Announcements avatar

Poland Court & Business Gazette API – MSiG Announcements

Pricing

from $2.40 / 1,000 announcements

Go to Apify Store
Poland Court & Business Gazette API – MSiG Announcements

Poland Court & Business Gazette API – MSiG Announcements

Daily Monitor Sądowy i Gospodarczy (Polish Court and Business Gazette) notices about companies and other legal entities: bankruptcy, restructuring, liquidation, mergers, transformations, creditor calls, with KRS and court. Natural persons excluded. JSON, CSV, Excel.

Pricing

from $2.40 / 1,000 announcements

Rating

0.0

(0)

Developer

Kamil Kaczmarek

Kamil Kaczmarek

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Security

Limited permissions

Share

Poland MSiG API – Company Bankruptcy & Liquidation Notices

Daily Monitor Sądowy i Gospodarczy notices about legal entities (companies, foundations, associations, cooperatives and other registered forms): bankruptcy, liquidation, mergers, demergers, transformations, KRS dissolution and creditor calls. Each row has the issue date and number, Poz. position, chapter, kind, entity name, legal form, KRS when present, court and case signature when present, a link to the official PDF, and a short description.

Natural-person notices (consumer bankruptcy, sole traders, surname-and-forename TOC lines) are dropped. Full notice text is off by default because it often names liquidators and shareholders.

Data is read from the official daily PDFs listed at wyszukiwarka-msig.ms.gov.pl. The actor does not mass-query the Ministry search API.

Who it is for

Lead generation

A buyer who sells services to companies in bankruptcy, liquidation, or a merger gets the entity name, the legal form, the KRS when the header has it, the court, the case signature, and pdfUrl. The actor does not return a phone number, an email, an address, or a lead score. A row is a court notice. It is not a qualified lead.

Compliance watch

A buyer who monitors a portfolio filters with krsNumbers or announcementKinds. The kinds for this job are bankruptcy, liquidation, merger, and creditor_call. The actor infers announcementKind from the table of contents and the opening of the notice. A miss lands in other. A demerger is the separate kind demerger, and it does not come back as merger. Not every sentence about creditors is creditor_call. keywords matches the entity name, the legal form, the chapter, the subsection, the kind, and the KRS. It does not search the notice body.

Use with AI agents (MCP)

{
"mcpServers": {
"apify": {
"url": "https://mcp.apify.com?tools=enterprising_hamster/polish-company-announcements-msig"
}
}
}
  • "Liquidation notices for Polish companies from today's MSiG" → {"lastDays": 1, "announcementKinds": ["liquidation"], "maxItems": 50}
  • "Bankruptcy and restructuring of companies in the last three issues" → {"lastDays": 3, "announcementKinds": ["bankruptcy", "restructuring"], "maxItems": 200}
  • "Anything for this KRS this week" → {"lastDays": 7, "krsNumbers": ["0000577818"]}
  • "Merger notices from today's MSiG" → {"lastDays": 1, "announcementKinds": ["merger"], "maxItems": 50}
  • "Creditor calls from today's MSiG" → {"lastDays": 1, "announcementKinds": ["creditor_call"], "maxItems": 50}

What data can you get

FieldMeaning
id{monitorNumber}-{position}, for example 215/2026-50873
monitorDate, monitorNumberCover date and issue number
positionPoz. number in that issue
chapter, subsectionTable-of-contents headings
announcementKindliquidation, merger, demerger, transformation, bankruptcy, restructuring, dissolution, creditor_call, or other
entityName, legalFormName and detected form (spółka z o.o., fundacja, …)
krs10-digit KRS from the notice header, or null
court, caseSignatureRegistry court and sygn. akt when the header has them
pdfUrlOfficial PDF for the whole issue
descriptionSubsection title plus entity name from the table of contents. Never the notice body
fullTextnull unless fullText is true

Example row (2026-11-02, issue 213/2026):

{
"id": "213/2026-50354",
"monitorDate": "2026-11-02",
"monitorNumber": "213/2026",
"position": 50354,
"announcementKind": "liquidation",
"entityName": "DEA CAPITAL REAL ESTATE POLAND SPÓŁKA Z OGRANICZONĄ ODPOWIEDZIALNOŚCIĄ W LIKWIDACJI w Warszawie",
"legalForm": "spółka z o.o.",
"krs": "0000786172",
"court": "SĄD REJONOWY DLA M.ST. WARSZAWY W WARSZAWIE, XII WYDZIAŁ GOSPODARCZY KRAJOWEGO REJESTRU SĄDOWEGO",
"pdfUrl": "https://wyszukiwarka-msig.ms.gov.pl/api/Monitor/Download?id=9008&fileId=true",
"fullText": null
}

Input

FieldDefaultMeaning
lastDays1Issues with cover date on or after today minus N-1 days. Ignored when dateFrom or dateTo is set
dateFrom, dateTononeInclusive ISO dates (YYYY-MM-DD)
announcementKinds[]Optional kind filter
keywords[]Match on name, legal form, chapter, subsection, kind or KRS. The notice body is not searched
krsNumbers[]Optional 6–10 digit KRS list
fullTextfalseStore the full notice. GDPR warning in the input schema. Leave false unless you have a lawful basis
maxItems50Maximum saved rows
onlyNew, stateKeyfalseSkip ids already stored for that key
maxRequestsPerSecond1Spacing of GetFiles and PDF downloads

{} reads today's issue and saves up to 50 legal-entity rows. A local empty-input run on 2026-11-04 finished in 13 s with 50 rows from issue 215/2026 (227 TOC entries in that PDF).

Daily alert of new notices

  1. Save a task with onlyNew: true, lastDays: 1 and your own stateKey.
  2. Schedule it (for example 0 7 * * 1-5).
  3. Send the dataset onward with an integration.
{
"lastDays": 1,
"onlyNew": true,
"stateKey": "pl-msig-daily",
"maxItems": 200,
"maxRequestsPerSecond": 1
}

Run the public example task

  1. Open https://apify.com/enterprising_hamster/polish-company-announcements-msig/examples/daily-poland-liquidations-bankruptcies-alert
  2. Choose Try for free, or open https://console.apify.com/create-task-from-example/SfcwRvaSQJtQolhbT if you already signed in.
  3. Start the copied task. It uses lastDays 1, the kinds bankruptcy, restructuring, and liquidation, maxItems 200, onlyNew true, and maxRequestsPerSecond 1. The task already has a state key. Leave that key in place so each notice comes back once.
  4. Schedule that task on weekdays if a daily list is the goal. Integrations on the task page send the dataset on.

The separate public example daily-poland-mergers-creditor-calls-alert uses kinds merger and creditor_call, lastDays 1, onlyNew true, and maxItems 200. Copy it from https://console.apify.com/create-task-from-example/lEG0PUc9IBZfeeZrO.

For your own task, paste examples/mergers.json or examples/creditor-calls.json.

How long a run takes

Local runs on 2026-11-04, parsing the real PDFs:

InputWall timeTOC rowsDropped as natural personsSaved rows
{} (today, maxItems 50)13 s22712 (stop at maxItems)50
dateFrom/dateTo 2026-11-02..04, maxItems 200040 s753188565

Weekday issues in this sample were 72–90 pages. A longer dateFrom/dateTo window downloads one extra PDF per extra issue.

Pricing (pay per event)

Each saved announcement costs $0.003.

EventPrice (USD)When
announcement0.003Each saved legal-entity row

50 announcements cost $0.15. Higher Apify plans pay less: SILVER $0.0027 and GOLD $0.0024 per announcement (same FREE/BRONZE/SILVER/GOLD/PLATINUM/DIAMOND ratios as our Prozorro tender event: $0.003/$0.003/$0.0027/$0.0024/$0.0024/$0.0024). Rows skipped by onlyNew, by filters, or as natural persons are not charged. Set a maximum charge per run to cap spending.

FAQ

What does one announcement cost? $0.003 for each saved legal-entity row. Rows dropped by filters, onlyNew, or the natural-person check are not charged. 50 saved rows cost $0.15 at that rate.

How do I start the example task? Open https://apify.com/enterprising_hamster/polish-company-announcements-msig/examples/daily-poland-liquidations-bankruptcies-alert and start from Try for free. You get a copy with the input already set.

How do I watch mergers or creditor calls? Set announcementKinds to merger or creditor_call and use examples/mergers.json or examples/creditor-calls.json as pasteable inputs. announcementKind is inferred from the table of contents and the start of the notice, so some rows land in other or in an earlier kind.

Why are natural persons missing? Only table-of-contents lines with a legal form are saved. Consumer bankruptcy and sole traders are dropped. Keep fullText false unless you have a basis to store names of liquidators and shareholders.

Limitations

  • Two-column body text is reconstructed by a mid-page crop. A rare layout change can mangle court or caseSignature while TOC name and kind still work.
  • Section XV (bulk KRS dump, separate Poz. series) is skipped.
  • Kind is inferred from chapter, subsection and wording. Edge cases land in other.
  • The only-new memory keeps 50,000 ids per stateKey.

Disclaimer

Unofficial tool. Not affiliated with or endorsed by the Polish Ministry of Justice. Always read the source PDF before you act on a notice. MSiG is an official journal. Check the current Ministry terms before commercial reuse. Every row carries pdfUrl back to the source PDF.

Development

python3 -m venv .venv
.venv/bin/pip install -r requirements.txt -r requirements-dev.txt
.venv/bin/python -m pytest -q

PDF layout notes: docs/source.md.