get_fornecedor_contratos
Retrieve public contracts from the last year where a supplier CNPJ is listed. Analyze competitors or potential partners by viewing their contract history.
Instructions
List public contracts where a given CNPJ appears as the supplier (fornecedor). Useful for analyzing a competitor or a potential partner. Defaults to the last 365 days.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| cnpj | Yes | Supplier CNPJ (14 digits) | |
| diasAtras | No | How many days back to search. | |
| pagina | No | ||
| tamanhoPagina | No |
Implementation Reference
- src/adapters/pncp.ts:282-310 (helper)listContratos adapter function: builds query params (including cnpjFornecedor), checks cache, calls PNCP API /contratos endpoint, parses response with ContratosPageSchema, and caches for 5 min.
export interface ListContratosParams { dataInicial?: string; dataFinal?: string; cnpjOrgao?: string; cnpjFornecedor?: string; pagina?: number; tamanhoPagina?: number; } export async function listContratos(params: ListContratosParams): Promise<ContratosPage> { const tamanhoPagina = clampPageSize(params.tamanhoPagina); const pagina = Math.max(params.pagina ?? 1, 1); const query: Record<string, unknown> = { pagina, tamanhoPagina }; if (params.dataInicial) query.dataInicial = params.dataInicial; if (params.dataFinal) query.dataFinal = params.dataFinal; if (params.cnpjOrgao) query.cnpjOrgao = params.cnpjOrgao; if (params.cnpjFornecedor) query.cnpjFornecedor = params.cnpjFornecedor; const cacheKey = `list:contratos:${JSON.stringify(query)}`; const cached = cache.get<ContratosPage>(cacheKey); if (cached) return cached; try { const { data } = await withRetry(() => consultaClient.get('/contratos', { params: query })); const parsed = ContratosPageSchema.parse(data); cache.set(cacheKey, parsed, TTL_5_MIN); return parsed; } catch (err) { if (err instanceof AxiosError) {