Portugal Company Filings API and MCP — Registry Acts, Accounts and Notices
Send a NIF/NIPC and get that company's publications from the Registo Comercial portal, newest first. Each row has a date, the act type (registry acts, accounts deposits, notices, convocations), the municipality, and flags for whether text and an attachment exist.
- You send
- a Portuguese NIF/NIPC or record link, plus optional max_items and start_page
- You get back
- Publications newest first: date, act type, municipality and whether text or an attachment exists
- Coverage
- Portugal — entities on Registo Comercial publications portal.
- Price
- 2 points per returned record — $2 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 |
|---|---|---|---|
| Registo Comercial publications portal directly | Open the company on Registo Comercial publications portal 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 | $2 per 1,000, misses not billed | Covers Portugal — 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 publications returned, newest first. |
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[].id | string | Publication id: the NIPC and its position in the list. |
items[].company_registration_number | string | NIPC of the company. |
items[].name | string | Company name. |
items[].date | string | Publication date. |
items[].type | string | Act type, e.g. Fusão(online). |
items[].description | string | Description of the act; the same as type in the sample. |
items[].address | string | Municipality. |
items[].has_content | boolean | Whether published text exists. |
items[].has_document | boolean | Whether an attached document exists. |
items[].url | string | Link to the publication on the portal. |
items[].registration_number, status, company_type, incorporation_date | string / null | Shared record fields. Empty or null on publication 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": "pt_company_filings",
"company": "500697256",
"company_id": "500697256",
"max_items": 2,
"start_page": 1,
"partial": false,
"human": "# Portugal — Registo Comercial — company publications\n\n- **Company:** 500697256\n- **Results:** 2 of 180 found\n- **Proxy traffic:** 489.8 KB",
"machine": {
"total_items": 2,
"first_item": {
"registration_number": "",
"name": "EDP, S.A.",
"status": null,
"address": "Lisboa",
"company_type": null,
"incorporation_date": null,
"id": "500697256-1",
"date": "2026-08-11",
"type": "Fusão(online)",
"description": "Fusão(online)",
"has_content": true,
"has_document": false,
"company_registration_number": "500697256",
"url": "https://publicacoes.mj.pt/Pesquisa.aspx#nipc=500697256&n=1"
},
"items": [
{
"registration_number": "",
"name": "EDP, S.A.",
"status": null,
"address": "Lisboa",
"company_type": null,
"incorporation_date": null,
"id": "500697256-1",
"date": "2026-08-11",
"type": "Fusão(online)",
"description": "Fusão(online)",
"has_content": true,
"has_document": false,
"company_registration_number": "500697256",
"url": "https://publicacoes.mj.pt/Pesquisa.aspx#nipc=500697256&n=1"
},
{
"registration_number": "",
"name": "EDP, S.A.",
"status": null,
"address": "Lisboa",
"company_type": null,
"incorporation_date": null,
"id": "500697256-2",
"date": "2026-07-21",
"type": "PRESTAÇÃO DE CONTAS CONSOLIDADAS",
"description": "PRESTAÇÃO DE CONTAS CONSOLIDADAS",
"has_content": true,
"has_document": false,
"company_registration_number": "500697256",
"url": "https://publicacoes.mj.pt/Pesquisa.aspx#nipc=500697256&n=2"
}
],
"total_found": 180,
"page_count": 1,
"blocked": false,
"proxy_traffic_bytes": 501534
},
"total_points": 4
}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-pt-company-filings \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"company":"500697256","max_items":2}'What teams use it for
Where this field shows up in an actual workflow.
Check a Portuguese company for new mergers, capital changes or accounts deposits.
See when annual and consolidated accounts were last deposited.
Review the registry acts on a company before signing, newest first.
Coverage, freshness and limits
What this source covers, how fresh it is, and where it stops.
Portugal — entities on Registo Comercial publications portal.
Read at request time, so the answer reflects the register as it stands when you ask.
Registo Comercial publications portal is a public register. Every response carries the source URL it was read from and a session id you can trace.
- —Rows describe each publication and link to it; the text of the act is not returned here.
- —total_found can be large for big companies, so use max_items and start_page.
- —You need the NIPC first. Portugal company search finds it from a name.
Questions, answered
Registry acts, accounts deposits, notices and convocations, each with its act type.
Related sources
Try portugal company filings on your own data
One request format across every source in the catalog.