nvNeuralVerge
Corporate registry

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.
Comparison

Ways to get this data

Three approaches teams use today, and where each one runs into trouble.

ApproachWhat it takesCostTrade-off
Registo Comercial publications portal directlyOpen Registo Comercial publications portal and read the recordUsually free, sometimes per-documentA different interface, language and data shape for every country you add
Collecting it yourselfBuild and host a crawler per register, then keep each one aliveInfrastructure and maintenanceRegisters change their pages without warning, and nobody is on the hook when yours breaks
NeuralVergeOne request, the same shape as every other source in the catalog$15 per 1,000, misses not billedCovers Portugal — other countries are separate sources with the same request format
Response

What you get back

Every field in the example response below.

FieldTypeDescription
company.registration_numberstringThe NIF/NIPC.
company.namestringCompany name as published.
company.company_typestringLegal form, e.g. SOCIEDADE ANÓNIMA.
company.addressstringFull seat address on one line.
company.seatstringStreet part of the registered seat.
company.postal_codestringPostal code of the seat.
company.localitystringLocality of the seat.
company.parishstringParish (freguesia).
company.municipalitystringMunicipality (concelho).
company.districtstringDistrict (distrito).
company.publications_totalnumberNumber of publications on file.
company.latest_publication_datestringDate of the newest publication.
company.latest_publication_typestringType of the newest publication, e.g. Fusão(online).
company.latest_registry_act_datestringDate of the newest registry act.
company.urlstringLink to the company on the portal.
company.status, company.incorporation_datenullNull in the sample: the portal does not publish them.
blockedbooleanTrue if the portal could not be read; false on a normal run.
pages_openednumberPages read to build the record.
proxy_traffic_bytesnumberTraffic used by the run, in bytes.
session_idstringId of this run, for tracing.
kindstringThe source that produced the response.
humanstringA short readable summary of the result.
total_pointsnumberPoints charged for this run.
Response

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
}
Integration

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"}'
Use cases

What teams use it for

Where this field shows up in an actual workflow.

Confirming a Portuguese counterparty

Check name, legal form and seat against what a supplier or customer told you.

Activity signal

Use the latest publication date and type to see whether a company has recent filings, such as a merger or an accounts deposit.

Address normalisation

Split seats into street, postal code, parish, municipality and district for clean address data.

KYB onboarding

Store legal form and seat with the NIPC in a due-diligence record.

Coverage & limits

Coverage, freshness and limits

What this source covers, how fresh it is, and where it stops.

Coverage

Portugal — entities on Registo Comercial publications portal.

Freshness

Read at request time, so the answer reflects the register as it stands when you ask.

Handling

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.

What it will not do
  • —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.
FAQ

Questions, answered

No, send the NIF/NIPC or the record link. Portugal company search finds the NIPC from a name.

Related

Related sources

Try portugal company on your own data

One request format across every source in the catalog.

Get started