Cyprus Company Filings API and MCP — Documents, Charges and Annual Returns
Send a Cyprus registration number and get the list of filings on that file from the Registrar of Companies (DRCOR). You choose which list to read: documents, charges and mortgages, translations, annual returns (HE32) or pending services. Each row has a name, the service it was filed under, form number and description, a date and a page number.
- You send
- a Cyprus registration number or record link, plus an optional list type and max_items
- You get back
- Filed documents, charges and mortgages, translations, annual returns or pending services, with form, date and page number
- Coverage
- Cyprus — entities on Registrar of Companies (DRCOR).
- Price
- 1 point per returned record — $1 per 1,000
- Billed per record actually returned, capped by max_items. A request that returns nothing costs nothing.
Ways to get this data
Three approaches teams use today, and where each one runs into trouble.
| Approach | What it takes | Cost | Trade-off |
|---|---|---|---|
| Registrar of Companies (DRCOR) directly | Open the company on Registrar of Companies (DRCOR) and page through the list | Usually free, sometimes per-document | A different interface, language and data shape for every country you add |
| Collecting it yourself | Build and host a crawler per register, then keep each one alive | Infrastructure and maintenance | Registers change their pages without warning, and nobody is on the hook when yours breaks |
| NeuralVerge | One request, the same shape as every other source in the catalog | $1 per 1,000, misses not billed | Covers Cyprus — other countries are separate sources with the same request format |
What you get back
Every field in the example response below.
| Field | Type | Description |
|---|---|---|
total_items | number | How many records are in this response. |
first_item | object | The first record, repeated from items for quick access. |
items | array | The filings returned. |
total_found | number | How many matches the register reported for the query. |
page_count | number | How many result pages were read for this request. |
blocked | boolean | True if the register could not be read; false on a normal run. |
items[].company_registration_number | string | Registration number of the organisation the filing belongs to. |
items[].list | string | Which list the row comes from, e.g. documents. |
items[].name | string | Name of the filing. |
items[].service | string | The service the filing was made under. |
items[].form_number | string | Form number, e.g. HE4. |
items[].form_description | string | Description of the form. |
items[].date | string | Date of the filing. |
items[].order_date | string | Date the filing was ordered on the register. |
items[].page_number | number | Page number of the filing on the file. |
items[].scanned | boolean | Whether the filing exists as a scanned document. |
items[].url | string | Link to the filing section on the register. |
items[].registration_number, status, address, company_type, incorporation_date | string / null | Shared record fields. Empty or null on filing rows. |
proxy_traffic_bytes | number | Traffic used by the run, in bytes. |
session_id | string | Id of this run, for tracing. |
kind | string | The source that produced the response. |
human | string | A short readable summary of the result. |
total_points | number | Points charged for this run. |
Example response
A real response, as returned.
{
"session_id": "11111111-1111-1111-1111-111111111111",
"kind": "cy_company_filings",
"company": "HE 165",
"company_id": "HE165|documents",
"max_items": 2,
"start_page": 1,
"partial": false,
"human": "# Cyprus — Registrar of Companies (DRCOR) — company filings\n\n- **Company:** HE165|documents\n- **Results:** 2 of 20 found\n- **Proxy traffic:** 2.5 KB",
"machine": {
"total_items": 2,
"first_item": {
"registration_number": "",
"status": null,
"address": null,
"company_type": null,
"incorporation_date": null,
"company_registration_number": "HE 165",
"list": "documents",
"name": "Letter",
"url": "https://efiling.drcor.mcit.gov.cy/DrcorPublic/SearchResults.aspx?name=%25&number=165&searchtype=optStartMatch&index=1&tname=%25&sc=0&type=HE#documents-1",
"date": "2026-09-11",
"service": "Alteration of officers and of their particulars",
"form_number": "XL00",
"form_description": "Letter",
"order_date": "2026-09-11",
"page_number": 817,
"scanned": true
},
"items": [
{
"registration_number": "",
"status": null,
"address": null,
"company_type": null,
"incorporation_date": null,
"company_registration_number": "HE 165",
"list": "documents",
"name": "Letter",
"url": "https://efiling.drcor.mcit.gov.cy/DrcorPublic/SearchResults.aspx?name=%25&number=165&searchtype=optStartMatch&index=1&tname=%25&sc=0&type=HE#documents-1",
"date": "2026-09-11",
"service": "Alteration of officers and of their particulars",
"form_number": "XL00",
"form_description": "Letter",
"order_date": "2026-09-11",
"page_number": 817,
"scanned": true
},
{
"registration_number": "",
"status": null,
"address": null,
"company_type": null,
"incorporation_date": null,
"company_registration_number": "HE 165",
"list": "documents",
"name": "HE4-Notification of change of Officers and of their particulars",
"url": "https://efiling.drcor.mcit.gov.cy/DrcorPublic/SearchResults.aspx?name=%25&number=165&searchtype=optStartMatch&index=1&tname=%25&sc=0&type=HE#documents-2",
"date": "2026-09-11",
"service": "Alteration of officers and of their particulars",
"form_number": "HE4",
"form_description": "HE4-Notification of change of Officers and of their particulars",
"order_date": "2026-09-11",
"page_number": 816,
"scanned": true
}
],
"total_found": 20,
"page_count": 1,
"blocked": false,
"proxy_traffic_bytes": 2510
},
"total_points": 2
}How to run it
The same lookup works from the app, the API, or as a tool an agent can call mid-task.
Results come back in the same envelope as every other source: a session id, a readable summary, the structured result and the points charged.
curl -X POST https://api.neuralverge.ai/functions/v1/run-cy-company-filings \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"company":"HE 165","max_items":2}'What teams use it for
Where this field shows up in an actual workflow.
Read the HE4 notifications to see when directors or secretaries last changed.
List registered charges before you lend to or buy from a company.
Poll a company's file for new documents and annual returns.
Coverage, freshness and limits
What this source covers, how fresh it is, and where it stops.
Cyprus — entities on Registrar of Companies (DRCOR).
Read at request time, so the answer reflects the register as it stands when you ask.
Registrar of Companies (DRCOR) is a public register. Every response carries the source URL it was read from and a session id you can trace.
- —The rows describe each filing and link to it; the content of the scanned documents is not extracted.
- —Which filing types exist depends on the organisation; a small business name may have little to list.
- —You need the registration number first. Cyprus company search finds it from a name.
Questions, answered
Documents, charges and mortgages, translations, annual returns (HE32) and pending services. Pick one with the list parameter.
Related sources
Try cyprus company filings on your own data
One request format across every source in the catalog.