CEIDG Scraper for the Polish Sole Trader Register

CEIDG holds every sole trader in Poland behind an opaque GUID and hands a browser ninety of them per search. We take the slice you actually need and deliver it as a table.

CEIDG Scraper
Solutions

Scoping a CEIDG data feed: pick the slice, then the cadence

A CEIDG scraping project is two decisions. Which slice - a PKD family, one or more voivodeships, a powiat or gmina list, active only or struck-off included, or a window of start dates - and how often it should come back: a one-off extract, a monthly refresh, or a nightly sweep for new, suspended, resumed and removed entries. We price a CEIDG feed on that pair rather than on the row count.

The register is served behind an edge that turns plain automated clients away, the search keeps its state on the server instead of in the URL, and a CAPTCHA guards the certificate download, so anti-bot handling, proxy rotation and CAPTCHA solving are part of the service rather than a surcharge. We extract CEIDG data only from pages open to any visitor, at polite rates, and nothing behind a login is touched. Delivery is CSV, XLSX, JSON, a database drop or a CEIDG API of your own.

What a CEIDG entry carries: NIP, REGON, PKD codes and two addresses

An entry is built from four blocks. Dane podstawowe holds imie, nazwisko, firma przedsiebiorcy, NIP and REGON; the trading name is free text, sometimes two or three numbered businesses in one string, and often just a dash when the trader never registered one. Dane kontaktowe holds e-mail, website, phone, fax, an other-contact line and an address for electronic delivery - all optional, so contact coverage is the first thing to measure in a CEIDG lead file.

  • Two addresses that need not match: the fixed place of business and the adres do doreczen, each split into wojewodztwo, powiat, gmina, miejscowosc, ulica, building number, unit number and postcode, plus any number of additional fixed places.
  • Statistical address keys in the API - TERC for the commune, SIMC for the locality, ULIC for the street - which join a record to GUS territorial data without string matching.
  • Five dates: start of activity, suspension, resumption, cessation and removal from the register.
  • PKD activity codes as one przewazajaca code and an unlimited list of others, written 62.02.Z on the page and 6202Z in the API, each with its full wording. A KRS company may declare at most ten; a CEIDG trader has no cap.
  • PKD 2025 replaced PKD 2007 on 1 January 2025, yet an entry keeps its old codes until the trader files any change, suspension or resumption, so a scraped set mixes both vintages and needs the GUS conversion key.
  • Spolki cywilne the person is a partner in, each with its own NIP, REGON and suspension date.
  • Marital joint property with the date it ended, trading bans, bankruptcy and restructuring entries with the receiver named, and a zarzadca sukcesyjny with a start date.
  • Pelnomocnicy and prokurenci: a publication timestamp and a tick list of what the proxy may do - change the entry, suspend it, resume it, apply for removal, act through the contact point.
  • Professional qualifications, and regulated-activity permits and restrictions, each with a date range and the authority behind it.

What the register withholds matters as much. The CEIDG-1 application collects PESEL, date of birth, residence address, bank accounts, the chosen form of taxation and headcount - none of which reaches the public entry, so anyone offering tax regime or bank details out of CEIDG is quoting a different source.

What a CEIDG entry carries: NIP, REGON, PKD codes and two addresses
Statuses, suspensions and the change history behind every CEIDG entry

Statuses, suspensions and the change history behind every CEIDG entry

Status is a short vocabulary, and it is carried both as a word and as a numeric id: Aktywny, Zawieszony, Wykreslony, Oczekuje na rozpoczecie dzialalnosci, and Wylacznie w formie spolki cywilnej for a person whose only trading runs through a civil partnership. Struck-off entries are not deleted - they stay searchable behind an include-archived switch, and a second switch surfaces entries flagged as requiring verification.

Suspension is the status that misleads foreign buyers. It does not mean insolvency or a failed business. A trader with no employees may suspend at any time for at least thirty days, either open-ended or with a resumption date that fires by itself without a second application; a civil partnership is only suspended once every partner has suspended. Read the dates rather than the label: once activity resumes the suspension date clears and only the resumption date remains, so a record showing a resumption date and an active status has a dormant spell in its past that the current fields no longer spell out.

Every entry keeps a public change history. Each line gives the timestamp, the operation - transfer from the old municipal register, change of entry data, suspension, resumption, status change - the application number, the author, whether a gmina office, the ministry or the trader in person, the effective date, and a preview of the entry as it stood after that change. Entries migrated in 2011 open with that transfer line, which is how far back the audit trail reaches.

CEIDG vs KRS: which Polish register holds which business

CEIDG is the Centralna Ewidencja i Informacja o Dzialalnosci Gospodarczej, the Polish register of sole traders, kept by the Ministry of Development and Technology under the act of 6 March 2018. It lists natural persons running a jednoosobowa dzialalnosc gospodarcza, plus people whose only trading is a share in a spolka cywilna. Companies are not here: limited companies, partnerships, foundations and associations belong to KRS, the court register, and the boundary is enforced in the interface. Type a KRS number into the CEIDG search and it answers that the entity is not in CEIDG and sends you to the court search instead. Filing an entry is free, online or at any gmina office, and changes must be reported within seven days.

The public register lives on two pages at aplikacja.ceidg.gov.pl. Search.aspx is a server-side form with sixteen search fields and no query string; SearchDetails.aspx carries one entry behind an opaque GUID. There is no sitemap, no slug and no numeric key in the address, so entry URLs cannot be guessed or walked - a GUID only falls out of a search. The browse view states its ceiling: it prints the total match count, renders the first 90 records with no pager, and asks for narrower criteria. Anything wider has to be cut by PKD code, wojewodztwo, powiat, gmina, street or start date and stitched back together.

The interface flips between Polish and English on the same URL through a cookie, so an English reader sees Address of the principal place where economic activity is carried out where the Polish page says Stale miejsce wykonywania dzialalnosci gospodarczej. The payload does not translate: business names, PKD wordings and addresses stay Polish, and a CEIDG scraper carries that through rather than inventing English for it.

Get a Quote
dev_w
25

Developers

customers
500+

Customers worldwide

pages
1 500 000 000+

Pages extracted

stime
15000+

Hours saved for our clients

Plans

Airplane

€199 / one-time

setup fee - included

Data limits100,000
Frequencyone-time
Run timeup to 5 days
Data storing7 days

Helicopter

€169 / mo

setup fee €499

Data limits250,000
Frequencymonthly
Run timeup to 5 days
Data storing14 days

Glasses

€229 / mo

setup fee €499

Data limits1,000,000
Frequencyweekly
Run timeup to 5 days
Data storing30 days

DNA

€549 / mo

setup fee €799

Data limits3,000,000
Frequency3 times daily
Run timesame day
Data storing90 days

Counterparty checks, PKD lead lists and open-and-close monitoring

Counterparty checks. A NIP returns exactly one entry, so verification is a single lookup: active, suspended or struck off, when the activity started, whether the declared PKD covers the invoice, whether the address for service matches the paperwork. The register itself points at its neighbours - the VAT white list on podatki.gov.pl and the REGON search at GUS - and all three are keyed on the same NIP and REGON, which is what makes the triangle automatable.

Lead lists by trade and territory. PKD plus gmina is the entire targeting language here. One query for software consultancy in a single city already runs to thousands of matches, and the browse view shows 90, so a usable list is built by cutting the country into code and commune pairs. Because the register publishes a start date, you can also cut by cohort and reach traders in their first months, when they are still choosing an accountant, a bank and a payment provider.

Open-and-close monitoring. Suspension, resumption, cessation and removal each land as a dated event, and the status flip is a separate machine action that fires just after midnight on the effective date, so a nightly pass catches it within hours. The churn is the point: a single voivodeship shows the scale, since in September 2026 a Mazowieckie query returned roughly 504,000 live entries and about 884,000 once struck-off records were included.

Our Blog

Reads Our Latest News & Blog

Learn how to use web scraping to solve data problems for your organization

How Artificial Intelligence Is Used In Web Scraping

How Artificial Intelligence Is Used In Web Scraping

Leveraging advances in technology, the AI-powered web scraper has skyrocketed in demand and is helping to expand capabilities by automating tedious daily tasks and speeding up data collection from thousands of websites several times over.

What is Web Scraping and What is it Used For?

What is Web Scraping and What is it Used For?

Web scraping is a method of obtaining web data by extracting it from pages of web resources with the help of a program, that is, in automatic mode. It is used to syntactically convert web pages into more usable forms.

Web Scraping for Machine Learning

Web Scraping for Machine Learning

If you specialize in machine learning, you need to feed large amounts of data to the algorithms. Web scraping is the easiest and the most efficient method of collecting the data from all over the Internet.

scrapeit logo

Who builds and runs your CEIDG data feed

ScrapeIt runs the whole job as a managed service. We design the collectors, schedule them, watch the runs and repair them when a label, a form control or a status wording changes. Your side receives files or an endpoint and keeps no scraping engineers of its own.

We are not affiliated with the Ministry of Development and Technology or with CEIDG. A sole trader is a natural person and the law publishes the name, so we treat an entry as the identity of a business rather than a file on a human being: no dossiers, no name-keyed lists. Places of business in this register are frequently home addresses, which is the second reason we keep the output to what a business check needs.

FAQ

Does CEIDG have a public API, and what does it take to use it?

Yes. The official CEIDG API is the data warehouse service at dane.biznes.gov.pl, version three, with a firmy method for filtered lists, a firma method for the full record by NIP, REGON or entry id, a zmiana method returning the ids changed inside a date range, raporty and raport for ready-made CSV reports, and getRdrInfo for regulated-activity data. Calls carry a JWT bearer token. The key is issued only after you hold a Biznes.gov.pl account, register on the warehouse and sign in with a Polish Profil Zaufany, and the ceiling is one thousand calls per rolling hour. The list method returns a short record, and proxies, bank accounts and the form of taxation are absent from the API.

What fields come out of a CEIDG scraper run?

Entry id, business name, first and last name, NIP and REGON; the fixed place of business, the address for service and any additional places, each down to wojewodztwo, powiat, gmina, locality, street, building, unit and postcode; e-mail, website, phone and the electronic delivery address where the trader supplied them; start, suspension, resumption, cessation and removal dates; status; the predominant PKD code and the full list of others with their wordings; civil partnerships by NIP and REGON; bans, bankruptcy and restructuring notes; succession manager; proxies and their scope; qualifications, permits and restrictions.

The search only shows 90 records. How do you cover a whole region?

By slicing until every slice fits under the ceiling, then merging. The criteria that partition cleanly are PKD code, wojewodztwo, powiat, gmina, locality, street and start date, and the address type selector lets the same territory be cut by place of business or by address for service. We size the grid from the match counts the register reports before it renders anything, so a dense city gets a finer cut than a rural gmina, and we deduplicate on the entry id and NIP afterwards. Nothing is estimated: the count the register prints is the number of rows we reconcile against.

How fresh is the data, and how often can a CEIDG feed refresh?

The register is transactional. An application filed online reaches the entry the same day, one lodged at a gmina office is keyed in by the next working day, and scheduled events such as a suspension or a resumption flip the status in an overnight run on the effective date. The dataset is registered on the national open data portal as a daily-update, high-value resource. In practice we run a full slice monthly or quarterly and a delta pass nightly or weekly; the change method on the official API is documented for date windows of about five days at a time, which sets the natural rhythm for a delta.

Is it legal to scrape CEIDG, and what happens to the entrepreneur's name?

CEIDG is a public register created by statute; its entries are open to everyone, free of charge, and the dataset is published on the national open data portal under a Creative Commons attribution licence with daily updates. We collect only what any visitor sees, at polite rates, and never anything behind a login. A sole trader is a natural person, so the register publishes the name by law - we treat that as the identity of a business, keep the output to business fields, and do not build dossiers or supply name-keyed lists of individuals. Places of business are often home addresses, and we handle them with that in mind.

How does it Work?

Step 1 - Make a Request

You share your needs, expectations, and desired timeframe. We’ll suggest the best solution based on your request and budget.

Step 2 - Configuring Custom Web Crawlers

Our specialists configure the crawlers and extract a sample dataset for your review before proceeding with the full-scale extraction.

Step 3 - Collect and Deliver

Once you approve the sample, we launch the project and start full data collection. We gather, filter, and structure the data for easy use, delivering it on time in your preferred format.

Step 4 - Maintain and Support

Our team manages ongoing processes, monitors website changes, and supports all data extraction cycles. We can also help integrate data into your systems or create dashboards to simplify analysis.

Request a Quote

Tell us more about you and your project information.
Which sites, which fields, how often. A couple of lines is enough.

We reply within 1 business day. No obligation.

scrapiet

Scrapeit Sp. z o.o.
10/208 Legionowa str., 15-099, Bialystok, Poland
NIP: 5423457175
REGON: 523384582