Skip to main content
TrackJud TrackJud
· Updated on · 14 min read

ESAJ vs PJE: differences, state coverage and how to query both

By TrackJud

How ESAJ and PJE differ, which Brazilian states use each, how to access them, and the only way to query all 24 courts with a single API call. Updated April 2026.

TL;DR: ESAJ and PJe are Brazil’s two largest lawsuit consultation systems, together covering most state and federal courts. ESAJ is private (Softplan), used in 7 large states including São Paulo. PJe is run by the CNJ, the official standard, used in 13 state courts plus the Federal and Labor Justice. Neither has an official public API — the only way to query both (and the other 5 parallel systems) in a single call is via an aggregator API. This guide has state-by-state coverage, a 12-criteria comparison table, a visual map, and the day-to-day practical problems.

Brazil has one of the most complex judicial structures in the world. More than 90 courts span the State, Federal, Labor, Electoral, and Military Justice branches. For anyone who needs to search lawsuits — lawyers serving clients across multiple states, compliance teams, fintechs with credit engines, supplier audit teams — this fragmentation is the single biggest day-to-day obstacle.

Each court runs its own system, its own interface, its own response format. There is no “Google for Brazilian lawsuits.” The two largest systems — ESAJ and PJe — together cover most state and federal courts, but they operate in completely different ways.

This guide explains how each works, which one to use in each situation, and how to work around fragmentation in practice.

What is ESAJ

The e-SAJ (Sistema de Automação da Justiça, “Justice Automation System”) is a platform developed by Softplan, a private Brazilian software company from Santa Catarina, hired by state courts to digitize lawsuit consultation and electronic filing. It was one of the first systems to offer public online lawsuit lookup in Brazil and has since become the de facto standard in several states.

Who maintains it and since when

Softplan has maintained ESAJ since the early 2000s. Each court contracts the company and hosts its own instance — which means the interface can vary slightly between TJSP, TJBA, TJCE, etc, even though they’re all “ESAJ”. The engine is the same, but theme, flow, and sometimes specific features differ.

Courts that use ESAJ

CourtStateTrialAppeals
TJSPSão Paulo
TJBABahia
TJCECeará
TJACAcre
TJALAlagoas
TJAMAmazonas
TJMSMato Grosso do Sul

TJSP is by far the largest court in Brazil by volume — São Paulo alone holds about 25% of all Brazilian lawsuits. Anyone working with Brazilian court data who ignores ESAJ is leaving 1 in every 4 lawsuits out of scope.

How to access — step by step

  1. Open the e-SAJ portal of the specific court (each state has its own — esaj.tjsp.jus.br, esaj.tjba.jus.br, etc)
  2. Click “Consulta Processual” (Lawsuit Lookup) → “1º Grau” (Trial) or “2º Grau” (Appeals)
  3. Choose the criterion: case number, party name, or CPF/CNPJ
  4. Solve the captcha (every ESAJ has one)
  5. See the list of cases returned, click each to view movements

No registration needed for public lookup. To file motions or see sealed data, you need an ICP-Brasil digital certificate.

Known ESAJ limitations

  • Captcha on every search — not just once, but on every query, which makes manual automation impossible
  • IP blocking on bulk queries — making 10+ searches in sequence from the same IP frequently triggers temporary blocking
  • Inconsistent interface across courts — even being all “ESAJ”, TJSP and TJBA aren’t identical, and scraper code for one doesn’t work on the other without adjustments
  • Legacy Java/browser dependency — some old features still depend on the Java browser plugin (deprecated in 2017) or legacy Internet Explorer/Edge
  • No public API — Softplan does not expose an API for third parties, only for negotiated case-by-case integrations with corporate clients

What is PJe

The PJe (Processo Judicial Eletrônico, “Electronic Judicial Process”) is the official CNJ (National Justice Council) system for digital lawsuit processing and consultation. It was created to unify Brazilian judicial systems on a single platform — a direct response to the fragmentation that ESAJ and other private systems created.

Who maintains it and the role of CNJ Resolution 185/2013

CNJ Resolution 185/2013 instituted PJe as the official system for processing information and judicial acts, to be mandatorily used by all courts, except those with pre-existing systems already in production. That exception clause is exactly what allowed ESAJ to keep running — TJSP never migrated and probably won’t anytime soon.

The CNJ is responsible for development and maintenance, and each court hosts its instance. The difference from ESAJ: PJe is free for the courts (no licensing), and the CNJ defines the roadmap.

Courts that use PJe

CourtState/RegionInstances
TJMGMinas GeraisTrial + Appeals
TJPEPernambucoTrial + Appeals
TJDFTFederal District and TerritoriesTrial + Appeals
TJMAMaranhãoTrial + Appeals
TJAPAmapáTrial + Appeals
TJRNRio Grande do NorteTrial + Appeals
TJRORondôniaTrial + Appeals
TJPBParaíbaTrial + Appeals
TJPIPiauíTrial + Appeals
TRF1Federal Region 1 (14 states)Trial + Appeals
TRF3Federal Region 3 (SP + MS)Trial + Appeals
TRTsLabor Justice (24 regional courts)Trial + Appeals

The TRFs are particularly important because they cover the Federal Justice, which handles cases against the Union and federal agencies — relevant for fintechs (BACEN, Receita), healthcare, social security, and disputes with public banks.

How to access — step by step

  1. Open the PJe portal of the specific court (pje.tjmg.jus.br, pje1g.trf1.jus.br, etc)
  2. Go to “Consulta Pública” (Public Lookup)
  3. Enter the case number OR the party’s CPF/CNPJ
  4. Solve the captcha
  5. To see case details, some courts require digital certificate login — public lookup shows only basic data

To file motions, an ICP-Brasil digital certificate or 2FA login is mandatory.

Known PJe limitations

  • Captcha equally pervasive — even being CNJ, it inherited all the scraping prevention problems
  • Variation across instances — the PJe of TJMG is different from the PJe of TRF1, even being the “same platform”. Each court customizes
  • Java/legacy applet dependency in some features — electronic filing in some TRFs still uses Java applets (which modern browsers don’t support)
  • Variable performance — peak days (e.g., the eve of a procedural deadline) the system frequently crashes
  • No official public API — just like ESAJ, no public endpoint for developers

ESAJ vs PJe — side-by-side comparison

CriterionESAJPJe
MaintainerSoftplan (private)CNJ (public)
Cost to courtsLicensedFree
Courts covered by Vigilant7 state9 state + 2 federal
Case volumeHigh (TJSP alone = 25% of BR)Medium-high (sum of all)
Public access without registration✅ Yes✅ Yes (limited)
CPF-based search
Full case history
Filing support✅ (with digital cert)✅ (with digital cert)
Public official API
Captcha on consultations✅ Always✅ Always
Mobile compatibility⚠️ Limited⚠️ Limited
Interface standardization⚠️ Variable per court⚠️ Variable per court
Future trendMaintain current baseExpansion (CNJ pressures migration)

Practical summary: to choose between the two, the right question isn’t “which is better” — it’s “which court do I need to use”. If it’s TJSP, it’s ESAJ mandatorily. If it’s TRF1, it’s PJe mandatorily. For anyone working with multiple courts, the answer is always both — and the challenge becomes how to query both without spending nights copying data between spreadsheets.

Coverage map — which system is in which state

Fragmentation is more visual when you look at it state by state. This is the current coverage of the 12 courts Vigilant integrates today:

StateState CourtSystem
🟦 SPTJSPESAJ
🟦 BATJBAESAJ
🟦 CETJCEESAJ
🟦 ACTJACESAJ
🟦 ALTJALESAJ
🟦 AMTJAMESAJ
🟦 MSTJMSESAJ
🟩 MGTJMGPJe
🟩 PETJPEPJe
🟩 DFTJDFTPJe
🟩 MATJMAPJe
🟩 APTJAPPJe

Note two patterns:

  1. ESAJ predominates in the North and Northeast, with São Paulo as a massive exception in the Southeast
  2. PJe dominates the courts migrated after 2013, mainly Southeast-South and federal instances

The other 14 states still have their own systems or are in migration, and not all have external coverage via aggregator API today.

Other systems you’ll encounter

Even covering most large courts, ESAJ and PJe aren’t the only systems in production. These are the others you’ll encounter when expanding jurisdictional coverage:

SystemCourtMaintainerNote
ProjudiTJGO, TJPRCNJ (pre-PJe legacy)Old system, being phased out
EPROCTJSC, TRF2, TRF4, JFRJTRF4Well-designed, popular among lawyers, but limited to a few courts
TucujurisTJAP (some services)ProprietaryDeveloped by TJAP, parallel to PJe
ClickJudTJMTProprietaryMato Grosso legacy system
ConsultaUnificadaTJPAProprietaryPará’s proprietary platform
Proprietary systemsTJRJ, TJSE, TJPE (some services)Court’s ownEach with its own API/interface

Anyone needing nationwide coverage will inevitably bump into 5 to 8 different systems — even more when you consider trial and appeals separately, plus Labor Justice.

Day-to-day practical problems

Theory is one thing. Anyone operating with these systems day-to-day faces a series of frictions that rarely show up in the official documentation.

Court system outages don’t automatically suspend deadlines

This is problem number one. If ESAJ or PJe is down on the eve of a defense filing deadline, that does not automatically grant the lawyer an extension. Brazilian case law has settled that:

  • The unavailability needs to be publicly acknowledged by the court (official notice)
  • The lawyer must have registered the access attempt (screenshot, log, timestamped email)
  • Even then, the suspension only covers the duration of the incident — you can’t “save” it for the next deadline

Result: serious law firms work with at least 24h of slack on any critical deadline. And many automate the collection of case movements via API precisely to have an auditable log of attempts, ready to present to a judge if the court goes down.

Java, captcha, IP blocking, and browser compatibility

ESAJ and PJe were designed when the Java browser plugin was standard. Although most modern features have migrated to HTML5/JavaScript, some legacy features still require:

  • Internet Explorer 11 or legacy Edge for electronic filing in specific courts
  • Java Web Start or applets to read digital signatures on old cases
  • Manually solved captcha on every query (session cookies don’t bypass it)
  • IP blocking when making more than 10-20 sequential queries from the same address — common in teams trying to automate with simple scripts

For a lawyer opening 5-10 cases per day, it’s tolerable friction. For a compliance team auditing 500 suppliers per week, it’s unfeasible.

Bulk data capture = a Sisyphean task

To run procedural due diligence on a 50-controller M&A target across 8 different courts, the manual work runs to 2-3 weeks of full-time work for a paralegal. For each CPF: open 8 portals, solve 8 captchas, copy data, consolidate. Multiplied by 50 people. That’s why this kind of operation is generally done via aggregator API — there is no economic alternative.

Fragmentation continues

CNJ Resolution 185/2013 is over 12 years old. The promised unification didn’t happen. Brazil still has more than 40 judicial systems in production, according to a recent CJF survey. The trend is slow migration to PJe, but TJSP — the most relevant court in the country — shows no sign of migrating in the next 5 years.

For anyone needing data today, the only sustainable strategy is to abstract the fragmentation behind a single layer.

How to query both (and the others) with a single call

The most efficient way to deal with fragmentation is to use an API layer that abstracts the systems. That’s exactly what Vigilant does: you send a CPF and a list of courts, and you get the data from all of them in a unified JSON format — regardless of whether each court uses ESAJ, PJe, EPROC, or another system.

What Vigilant returns

For each case found:

  • CNJ number in standardized format (NNNNNNN-DD.YYYY.J.TR.OOOO)
  • Case class (e.g., Civil Procedure, Execution of Title, Labor Claim)
  • Status (Active, Archived, Suspended, etc)
  • Parties (plaintiff, defendant, lawyers, with full names)
  • Movements (chronological history with date, description, and code)
  • Subjects (CNJ classification)
  • Jurisdiction (chamber, district)
  • Case value (when available)
  • Instance (trial or appeals)
  • Original case URL in the source portal (for you to open manually when needed)

All already parsed, normalized, and in JSON. No captcha, no scraping, no IP blocking.

Current coverage

12 judicial sources covering 10 Brazilian states, including all 7 ESAJs (TJSP, TJBA, TJCE, TJAC, TJAL, TJAM, TJMS) and the main PJes (TJMG, TJPE, TJDFT, TJMA, TJAP). Trial and appeals on all of them. See the full list of covered courts with individual descriptions of each.

How much it costs

R$ 0.10 per query, per court. No subscription, no minimum, no contract. Automatic 2-day cache — repeated queries are free. Full pricing page.

Example API call

curl -X POST https://vigilant.trackjud.com.br/api/v1/consults \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "document": "529.982.247-25",
    "courts": ["TJSP", "TJMG", "TRF1"]
  }'

Response in ~60 seconds with consolidated cases from the 3 courts (1 ESAJ + 2 PJe), in structured JSON ready to integrate into your system.

The full OpenAPI 3.1 documentation is publicly available.

Glossary

TermDefinition
CPFCadastro de Pessoa Física — Brazilian individual taxpayer ID (11 digits)
CNPJCadastro Nacional da Pessoa Jurídica — Brazilian company ID (14 digits)
CNJNational Justice Council — body that administers the Judiciary
TJTribunal de Justiça — state court (e.g., TJSP, TJBA)
TRFTribunal Regional Federal — Federal Justice court
TRTTribunal Regional do Trabalho — Labor Justice court
Trial instanceFirst-degree court — where the case begins
Appeals instanceSecond-degree court — appellate level
CNJ numberUnique identifier in the format NNNNNNN-DD.YYYY.J.TR.OOOO
Judicial secrecyCases with restricted access (family, child welfare, etc)
ICP-BrasilBrazilian public key infrastructure for digital certificates

Conclusion

ESAJ and PJe are the two pillars of Brazilian lawsuit consultation. Each has its particularities, history, and limitations. For lawyers, legal managers, or compliance teams that need to deal with multiple states, fragmentation is the problem, not the systems themselves.

The good news is that today, you don’t have to choose between them. Modern tools abstract the complexity and return unified data, leaving the professional’s time for legal analysis — not for solving captchas and copying data between spreadsheets.

If you’re in this situation, it’s worth seeing how Vigilant works with 5 free credits on signup, or talking to our team to understand whether it makes sense for your case.

And if you want to go deeper into the topic of automation, also worth reading How to automate lawsuit search at a law firm — a complementary guide focused on operational workflow.


Want to test? Vigilant offers 5 free credits for new accounts. Get started.

Frequently asked questions

Are ESAJ and PJe free to query?

Yes, both have free public consultation. ESAJ allows CPF-based searches without any registration. PJe requires CPF/CNPJ login and a digital certificate to file motions, but its public lawsuit lookup can also be accessed without registration in most courts. The cost shows up when you need to query many cases per day across multiple courts — at that point your bottleneck is human time, not the system fees.

Can I query ESAJ and PJe at the same time?

Not directly. Each system is a separate platform with its own UI, login screens, and response format. You have to open each court manually, repeat the search, and consolidate the results in a spreadsheet. The only way to query both in a single call is via an aggregator API — which is what Vigilant does, abstracting the fragmentation behind a single REST endpoint.

Which system is more widely used in Brazil?

By case volume, PJe leads — it's the official CNJ system since Resolution 185/2013 and covers most federal and labor courts plus part of the state courts. By weight of large state courts, ESAJ matters more because of TJSP, which alone holds about 25% of all Brazilian lawsuits. Together they cover the majority of State and Federal Justice.

Do I need to register a CPF to access them?

For public lookup, it depends. ESAJ doesn't require registration — open the court portal, click Public Lookup, and search. PJe also accepts public lookup without registration for basic data. To file motions, intervene in cases, or see sealed records, both require an ICP-Brasil digital certificate or a registered login.

Is there an official API for ESAJ or PJe?

No. Neither ESAJ (Softplan) nor PJe (CNJ) offers a public official API for lawsuit consultation. There are internal APIs used by the courts themselves and by law firms with specific bilateral integrations, but nothing available to outside developers. To automate consultations, the only options are scraping or using a tool like Vigilant that abstracts that for you.

How do I know which system court X uses?

There's no official up-to-date list. The rule of thumb: large state courts (TJSP, TJBA, TJCE, TJAL, TJAC, TJAM) tend to use ESAJ. Federal courts (TRFs), labor courts (TRTs), and migrated state courts (TJMG, TJDFT, TJPE, TJMA, TJAP, TJRN, TJPB, TJPI, TJRO) use PJe. For the others, each court may run its own system (Tucujuris in Amapá, Projudi in Goiás, ClickJud in Mato Grosso). Our [court coverage page](/en/courts/) lists the 12 courts currently covered by Vigilant with the corresponding system.

What is the CNJ number and how do I decode it?

The CNJ number is the unique identifier of every Brazilian lawsuit, in the format NNNNNNN-DD.YYYY.J.TR.OOOO. It encodes the year, judicial branch, court, and originating chamber — independently of the system the court uses. You can use our [free CNJ decoder](/en/tools/cnj-decoder) to extract this information from any number, and our [validator](/en/tools/cnj-decoder) to check the verification digits.

Does a court system outage suspend procedural deadlines?

Not automatically. Technical failures in ESAJ or PJe only suspend a deadline if the court publishes an official notice acknowledging the downtime — and even then, the suspension must be documented. A 500-error screenshot alone is not enough. Brazilian case law has settled that the lawyer must register the access attempt (with date, time, and screenshot) and file an extension motion within the next deadline. This is one of the reasons law firms automate procedural verification via API: it provides an auditable log of all attempts.

Can I query sealed cases via ESAJ or PJe?

Not via public lookup. Cases under judicial secrecy (family, child welfare, cases involving minors, certain bankruptcy stages) don't appear in the public search of either system. Vigilant also doesn't access these cases — only publicly available data. To see a sealed case you need to be an authorized party with a digital certificate.

How long does it take to query a CPF in both systems manually?

It depends on how many courts. For one CPF in 5 different courts (3 ESAJ + 2 PJe), the average time runs between 30 minutes and 2 hours — opening each portal, logging in (when required), entering the CPF, navigating results, consolidating into a document. Via API, the same query takes ~60 seconds with a structured JSON response. In a monthly audit routine of 100 suppliers across 5 courts each, you save ~50-100 hours of manual work per month.

Related articles