Portugal Company Registry API and MCP — Seat and Latest Publication by NIPC
Send a Portuguese NIF/NIPC, or a link to the record, and get the company as published on the Registo Comercial publications portal: name, legal form, the registered seat split into street, postal code, locality, parish, municipality and district, the number of publications on file, and the newest one.
- You send
- a Portuguese NIF/NIPC or the registry link
- You get back
- Name, legal form, registered seat, number of publications and the newest publication
- Coverage
- Portugal — entities on Registo Comercial publications portal.
- Price
- 15 pts — $15 per 1,000
- Charged only when the record resolves. A lookup that finds nothing is not billed.
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 Registo Comercial publications portal and read the record | 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 | $15 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 |
|---|---|---|
company.registration_number | string | The NIF/NIPC. |
company.name | string | Company name as published. |
company.company_type | string | Legal form, e.g. SOCIEDADE ANÓNIMA. |
company.address | string | Full seat address on one line. |
company.seat | string | Street part of the registered seat. |
company.postal_code | string | Postal code of the seat. |
company.locality | string | Locality of the seat. |
company.parish | string | Parish (freguesia). |
company.municipality | string | Municipality (concelho). |
company.district | string | District (distrito). |
company.publications_total | number | Number of publications on file. |
company.latest_publication_date | string | Date of the newest publication. |
company.latest_publication_type | string | Type of the newest publication, e.g. Fusão(online). |
company.latest_registry_act_date | string | Date of the newest registry act. |
company.url | string | Link to the company on the portal. |
company.status, company.incorporation_date | null | Null in the sample: the portal does not publish them. |
blocked | boolean | True if the portal could not be read; false on a normal run. |
pages_opened | number | Pages read to build the record. |
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",
"company": "500697256",
"company_id": "500697256",
"human": "# Portugal — Registo Comercial — company\n\n- **Number:** 500697256\n- **Pages opened:** 2\n- **Proxy traffic:** 109.9 KB\n- **Name:** EDP, S.A.\n- **Type:** SOCIEDADE ANóNIMA\n- **Address:** Av. 24 de Julho, nº 12, 1249-300 Lisboa\n- **Source:** https://publicacoes.mj.pt/Pesquisa.aspx#nipc=500697256",
"machine": {
"company": {
"registration_number": "500697256",
"name": "EDP, S.A.",
"status": null,
"address": "Av. 24 de Julho, nº 12, 1249-300 Lisboa",
"url": "https://publicacoes.mj.pt/Pesquisa.aspx#nipc=500697256",
"company_type": "SOCIEDADE ANóNIMA",
"incorporation_date": null,
"seat": "Av. 24 de Julho, nº 12",
"postal_code": "1249-300",
"locality": "Lisboa",
"parish": "Misericórdia",
"municipality": "Lisboa",
"district": "Lisboa",
"publications_total": 180,
"latest_publication_date": "2026-08-11",
"latest_publication_type": "Fusão(online)",
"latest_registry_act_date": "2026-08-11"
},
"blocked": false,
"pages_opened": 2,
"proxy_traffic_bytes": 112487
},
"total_points": 15
}How to run it
The same lookup works from the app, the API, or as a tool an agent can call mid-task.
One company per request. Pass the registration number or the link to the record on the register.
curl -X POST https://api.neuralverge.ai/functions/v1/run-pt-companies \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"company":"500697256"}'What teams use it for
Where this field shows up in an actual workflow.
Check name, legal form and seat against what a supplier or customer told you.
Use the latest publication date and type to see whether a company has recent filings, such as a merger or an accounts deposit.
Split seats into street, postal code, parish, municipality and district for clean address data.
Store legal form and seat with the NIPC in a due-diligence record.
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.
- —The portal publishes acts and notices, so status and incorporation date are null on this record.
- —Lookup is by NIF/NIPC or record link. Use Portugal company search to find a NIPC from a name.
- —Beneficial owners and officers are not in this response.
Questions, answered
No, send the NIF/NIPC or the record link. Portugal company search finds the NIPC from a name.
Related sources
Try portugal company on your own data
One request format across every source in the catalog.