OrbTop

Brazil JUCESP Junta Comercial State Registry Scraper

BUSINESSDEVELOPER TOOLSOTHER

Independent tool. Trademarks referenced on this page are the property of their respective owners and are used only to identify the public website this tool reads. No affiliation or endorsement.

Brazil JUCESP Junta Comercial State Registry Scraper

Search the São Paulo Junta Comercial (JUCESP) state company registry by company name (razão social), CNPJ, or NIRE number.

JUCESP is the official Brazilian state registry for São Paulo — the largest economy in Brazil, representing roughly 35% of national GDP. It holds registration records for all companies legally incorporated in the state.

What You Get

Each scraped record includes:

Field Description
found true when JUCESP holds a company for this lookup, false when it confirmed there is no such registration in São Paulo
lookup_term The value from your searchTerms that produced this row — join key back to your input list
nire NIRE state registration number
cnpj CNPJ federal tax registration
razao_social Legal company name
company_type Company type (Ltda, S.A., etc.)
constitution_date Date of constitution (DD/MM/YYYY)
activity_start_date Activity start date (DD/MM/YYYY)
share_capital Share capital (capital social) in BRL
business_object Corporate purpose (objeto social)
address_street Street address (logradouro)
address_number Street number
address_complement Address complement
address_neighborhood Neighborhood (bairro)
city Municipality
state State (UF)
zip_code ZIP code (CEP)
source_url Source JUCESP detail URL

Search Modes

Lookup Mode Description
razao_social Substring search by company name — finds all matching São Paulo companies
cnpj Exact lookup by federal tax ID
nire Exact lookup by state registration number

"Not Found" Is a Result — and It Is Billed as One

Every term you submit produces exactly one row per answer, whether or not the company exists.

If you look up 1,000 CNPJs and only 40 are registered in São Paulo, you get 1,000 rows: 40 with found: true and full registry data, and 960 with found: false confirming that JUCESP holds no such registration. All 1,000 are billed at the same per-record rate.

This is deliberate, and it is what you are buying. For KYC, AML and supplier screening, "this CNPJ is not registered in São Paulo" is the answer you ran the check to get — it costs exactly as much work to establish as a hit does, and it is the finding you act on. A row you can cite beats a silent gap in your output that you cannot tell apart from a scraper that missed it.

Two things are never billed, because in neither case did we obtain an answer:

  • Terms the registry's captcha gate stopped us from searching
  • Terms whose request failed in transport

Those produce no rows and no charges. If they dominate a run, the run stops early and fails with the reason rather than quietly returning a short dataset.

To keep only the hits, filter the dataset on found: true — the not-found rows are already separated for you, and lookup_term joins any row back to your input list.

maxItems caps total rows, found and not-found together. Set it to bound what a bulk lookup can cost you.

Input Configuration

{
    "lookupMode": "razao_social",
    "searchTerms": ["PETROBRAS", "VALE"],
    "maxItems": 50
}
  • lookupMode — razao_social (default), cnpj, or nire
  • searchTerms — Array of search values. One search per term; results are merged.
  • maxItems — Maximum total rows to return, counting both found and not-found results (0 = unlimited, default 10)

Company Documents (optional)

On a nire lookup the actor can also return JUCESP's two free company documents alongside each record:

Document Contents
ficha_completa Ficha Cadastral Completa — registry summary, data from 1992 on
copia_digitalizada Cópia Digitalizada — scanned copies of archived filings

JUCESP charges nothing for either, but it releases them only to a signed-in account, so you supply your own:

{
    "lookupMode": "nire",
    "searchTerms": ["35231655281"],
    "documents": ["ficha_completa"],
    "jucespCpf": "your CPF",
    "jucespPassword": "your password"
}

Each record gains a documents object with a download link per document requested, or null where JUCESP holds none. Credentials are stored encrypted, are never written to the output, and are used only to sign in at run time. Leave documents empty and none of this applies — the actor returns registry records exactly as before.

Certidões are not offered: those are JUCESP's paid documents and stay outside this actor's scope.

Use Cases

  • KYC / AML screening — Verify São Paulo company registration, constitution date, and share capital against customer declarations
  • M&A due diligence — Pull registered address, business object, and company type for target companies
  • Supplier verification — Confirm CNPJ and state registration for São Paulo vendors
  • Lead enrichment — Add corporate registry data to company lists
  • Competitive intelligence — Research competitors incorporated in São Paulo

How It Works

The scraper maintains a stateful browser-like session against the JUCESP ASP.NET portal:

  1. Initializes a session (ASP.NET ViewState + SessionId cookie)
  2. Submits a search POST for each input term
  3. Follows the 302 redirect to the results page
  4. Parses NIRE numbers from the results table (handles pagination)
  5. Fetches detail pages for each NIRE to extract full company data

Output Example

{
    "nire": "35300000892",
    "cnpj": "33.000.167/0001-01",
    "razao_social": "PETROLEO BRASILEIRO S A PETROBRAS",
    "company_type": "SOCIEDADE ANONIMA",
    "constitution_date": "29/09/1954",
    "share_capital": "R$ 205.431.960.490,52",
    "business_object": "Pesquisa, lavra, refinação, processamento...",
    "city": "RIO DE JANEIRO",
    "state": "RJ",
    "source_url": "https://www.jucesponline.sp.gov.br/Pre_Visualiza.aspx?nire=35300000892"
}

Data Source