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.
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
| Alternative | Why 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. |