Data

CADE process search (br_cade_search)

Stateless free-text resolver for CADE (Conselho Administrativo de Defesa Econômica) processes. Input: company name / sector / case-number fragment. Output: list of process references (process_number, parties, type, status, opened_at) the caller can chain into a stateful retrieval. Sub-500ms on cache hit; UA="auxiliar.ai/1.0 (+https://auxiliar.ai/contact)". Scaffold pending CADE endpoint discovery — see source-file docstring.

Verified: 2026-05-01 (scaffold-pending-endpoint-discovery-2026-05-01)

When to use CADE process search (br_cade_search)

Choose if

Your agent has a free-text query (company name, sector, fragment of a process number) and needs to resolve it to a CADE process_number before fetching documents. Pair with br-cade-sei-process for the full "get me the filing for X" journalist-language flow.

Avoid if

You already have the process_number from another source (laranja partner agent, prior CADE filing, news article) — go straight to br-cade-sei-process. This capability is the discovery layer, not the retrieval layer.

Risk Flags

  • MEDIUM operational Endpoint discovery pending — the public CADE search UI uses XHR calls whose parameter shape was not extractable from static HTML. Until the follow-up lands (see module docstring), this capability returns `{"not_implemented_yet": true}` deterministically. Callers should branch on the flag rather than treat the empty result as "no matches".
  • LOW regulatory CADE's public surfaces may add CAPTCHAs or rate limits in response to scraping. The per-host limiter in backend/sources/br/http.py and the UA-identification commitment (auxiliar.ai/1.0) keep the footprint small; the response path is to negotiate a partnership if CADE asks rather than try to evade.

Cost

Type: Free · Free tier: Free public CADE search; rate-limited at the data-plane layer to ≤1 req/3s per the stateful-capability runtime contract.

Hidden costs

  • Sub-500ms target is on cache hit; cold fetches against CADE's public surface can run 1-3s.
  • CADE may rate-limit aggressive callers; the data plane's per-host limiter keeps usage polite.

Dependencies

Minimum runtime: Python 3.11 + httpx

Composes with: CADE SEI: process-file document retrieval, auxiliar-mcp

Alternatives considered

AlternativeWhy pick it
Direct CNJ DataJud API for CADE CNJ DataJud aggregates judicial proceedings, not administrative antitrust filings. CADE's processes are administrative, not judicial, so they don't surface in DataJud. CADE's own search surface is the canonical source.
Manual SEI form scrape sei.cade.gov.br's form action URL isn't exposed in the static HTML and the form requires a session cookie obtained by GET-ing the form page first. Possible to wire later, but the newer pesquisaavancada.cade.gov.br UI is the recommended public surface.
Headless Playwright in stateless tier Playwright belongs in the stateful tier (backend/sources/br/portal/) not the stateless data plane. Search results don't justify the stateful tier's 8-15s cold-start tax — direct XHR or a thin session+POST cascade is the right shape once the endpoint is discovered.