Cyprus Company Registry Scraper - DRCOR
Pricing
from $5.00 / 1,000 organisation records
Cyprus Company Registry Scraper - DRCOR
Search the official Cyprus company register (DRCOR) by name or registration number. Returns organisation identity and status, directors and secretary, and registered office. No API key.
Pricing
from $5.00 / 1,000 organisation records
Rating
0.0
(0)
Developer
getregdata
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
Look up any Cyprus company in the official register and get back structured JSON: registration number, status, incorporation date, directors and secretary, and the registered office.
Source: DRCOR - the Department of Registrar of Companies and Intellectual Property, the official companies register of the Republic of Cyprus.
No account, no API key, no setup.
What data do I get for a Cyprus company?
| Identity | Current name, registration number (HE6771), organisation type, private/public sub-type |
| Former names | Every earlier name the register still indexes for the company |
| Status | File status (Registered, Dissolved, Struck off, Dissolved due to merger...) and the date it took effect |
| Dates | Incorporation/registration date, last annual return filed, date the file was last updated |
| People | Directors, company secretary and assistant secretary, each with their position |
| Address | Registered office as held by the register |
| Compliance | Pending filings on the file, and the years the annual company levy has been paid |
{"lookupStatus": "found","name": "EUROBANK LIMITED","registrationNumber": "HE6771","registrationNumberRaw": "ΗΕ 6771","organisationType": "Limited Company","subType": "Private","registrationDate": "29/05/1974","organisationStatus": "Reminder letter sent","organisationStatusDate": "09/02/2026","lastAnnualReturnDate": "28/08/2020","registeredOffice": "Λεμεσού & Αθαλάσσας, 200, Στρόβολος, 2025, Λευκωσία, Κύπρος","officers": [{ "name": "MICHAEL STEFAN REDFERNE", "position": "Director" },{ "name": "ΠΕΤΡΟΣ ΑΡΣΑΛΙΔΗΣ", "position": "Secretary" }],"officerCount": 15,"annualFeesPaidYears": ["2023", "2022", "2021"],"jurisdiction": "CY","retrievedAt": "2026-07-18T10:04:11.812Z"}
How do I search?
By company name - the usual starting point:
{ "companyName": "HELLENIC BANK", "maxResults": 25 }
By registration number - exact, one lookup per number:
{ "registrationNumbers": ["HE 6771", "HE217050"] }
Any format works: HE 6771, HE6771, ΗΕ6771 (Greek letters) or plain 6771. A bare number
matches that number across every organisation type - a limited company HE, a business name
EE and an overseas company AE can all share the digits 6771 - so include the letter prefix
when you want just one.
searchType controls name matching: startsWith (default), endsWith, or soundsLike, which
uses the register's own phonetic index and is narrower than a general fuzzy search.
Why does one company match my search several times?
Because the register indexes a company under every name it has ever held. Searching
EUROBANK returns EUROBANK CYPRUS LTD and EUROBANK EFG CYPRUS LTD - both former names of the
same company, which today is called ERB CYPRUS HOLDINGS LTD.
This actor merges them into one record and keeps the former names in matchedNames, so you
get the company once, you are billed once, and the name history - the part that matters for
screening - is not thrown away.
How much does it cost?
Pay per record. You are charged for each organisation record exported, and for nothing else.
Two things are deliberately not billed:
- Records we could not retrieve. If the register is unreachable or a file will not open, that
row is left out of the dataset entirely and listed in
FAILED_INPUTSin the run's key-value store. You do not pay for our breakage. - Duplicate listings of a company under its former names, which are merged before anything is retrieved.
A confirmed "no such company" IS charged: the register was queried and gave a definitive answer, which for compliance work is a result in its own right.
What is a "name application" row?
A reserved company name that has been applied for but has no registered file behind it yet. The
register lists these alongside real companies. They come back as
"lookupStatus": "name_application" with "detailAvailable": false - so an empty officer list is
never mistaken for a company that genuinely has no directors.
Does it tell me who owns the company?
No, and no Cyprus scraper can. DRCOR does not publish shareholders or beneficial owners on its public register - only directors and the secretary, which this actor returns in full. Beneficial ownership sits in a separate, access-controlled register.
Anyone claiming to scrape Cypriot shareholders from the public register is not reading DRCOR.
Is scraping this data legal?
The DRCOR public search is open to everyone, needs no account, and this actor reads only what that public search returns - the same pages a person can open in a browser. It queries on demand for the names you ask about; it does not clone or redistribute the register.
The records are about companies - organisation names, registration numbers, statuses, addresses. Officer names are published by the register itself as a matter of Cyprus company law. Under GDPR that is a public official source, but you remain the controller of what you do with it downstream, so use it for legitimate purposes such as KYB, due diligence and compliance.
If you need certified documents or certificates, buy them from DRCOR directly - this actor does not produce official extracts.
Do I need an API key or an account?
No. There is no public API for this register, no login and no key to configure. Set a company name or a registration number and run it.
How complete are my results?
The register reports its own match count, and this actor reconciles against it. If more matches
exist than were exported - because maxResults was reached - the run says so explicitly in its
status message, with the register's own total. A partial run never presents itself as a complete
one.
The same applies inside a record: pendingServicesCount is the register's total for that file,
and pendingServicesTruncated tells you when more pending filings exist than the rows returned.
How do I use it from code?
apify call YOUR_USERNAME/cyprus-drcor-company-scraper \--input '{"companyName":"HELLENIC BANK","maxResults":25}'
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('YOUR_USERNAME/cyprus-drcor-company-scraper').call({registrationNumbers: ['HE 6771'],});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items[0].officers);
from apify_client import ApifyClientclient = ApifyClient("YOUR_APIFY_TOKEN")run = client.actor("YOUR_USERNAME/cyprus-drcor-company-scraper").call(run_input={"companyName": "HELLENIC BANK", "maxResults": 25})for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(item["name"], item["registrationNumber"], item["officerCount"])
Works with n8n, Make, Zapier and any HTTP client through the standard Apify API, and with AI agents over MCP.
Input reference
| Field | Type | Default | Description |
|---|---|---|---|
companyName | string | - | Company or organisation name to search |
registrationNumbers | array | - | Registration numbers, each looked up separately |
searchType | enum | startsWith | startsWith, endsWith or soundsLike |
maxResults | integer | 100 | Maximum organisation records to export |
language | enum | en | en, el or tr - language of translated labels and statuses |
Set at least one of companyName or registrationNumbers. A run with neither fails immediately
and is not charged.
In what language is the data?
Values the register translates - organisation type, status, officer positions - follow the
language setting and default to English.
Company names and addresses come back exactly as the register holds them, which for older
Cypriot files is Greek. That is the authoritative form, so it is returned rather than a guess at a
transliteration. Registration numbers are the one exception: the register prints them with Greek
letters (ΗΕ 6771), so each record carries both the normalized Latin registrationNumber
(HE6771) and the original in registrationNumberRaw.
Limitations
- No shareholders or beneficial owners - DRCOR does not publish them (see above).
- No document downloads - certificates and filed documents are a paid DRCOR service.
- No officer dates - the register's public officials list gives name and position, not appointment or resignation dates.
- Pending services are paginated - the first page is returned, with the register's full count and a truncation flag.
- Officer names are not deduplicated across companies - there is no person identifier in the
public register, so two
ΑΝΔΡΕΑΣ ΓΕΩΡΓΙΟΥentries cannot be assumed to be the same person.
Related registry actors
Part of a fleet of official-registry actors across 11+ countries - Poland (KRS, CRBR, KRZ, MSiG, EKW, KNF, UOKiK, BDO), Germany (Handelsregister), Spain (Registro Mercantil, BORME), Italy, France, Austria, Belgium, Slovakia (RPVS beneficial owners), Czechia, UAE and California.
For Cyprus specifically, pair this with a sanctions/PEP screen on the officer names it returns.
Data source: DRCOR - Department of Registrar of Companies and Intellectual Property, Republic of Cyprus. This actor is not affiliated with or endorsed by DRCOR.