Brazil Government Contracts Check - CNPJ Contract Scraper
Pricing
$10.00 / 1,000 per contract founds
Brazil Government Contracts Check - CNPJ Contract Scraper
Check Brazilian companies by CNPJ for active and historical federal government contracts. Get contract values, dates, status, procurement method, contracting agencies and supplier details for KYB, compliance, due diligence and supplier screening via Batch or Standby API.
Pricing
$10.00 / 1,000 per contract founds
Rating
0.0
(0)
Developer
BrasilDados.org - Hub de APIs de Dados do Brasil
Maintained by CommunityActor stats
1
Bookmarked
6
Total users
1
Monthly active users
6 days ago
Last modified
Categories
Share
Check whether Brazilian companies have active or historical federal government contracts. Submit one CNPJ or a list and receive company identification, contract values, dates, status, procurement method, legal basis and complete contracting-agency details.
This Brazil government contracts API and CNPJ contract scraper is built for supplier screening, KYB, compliance, due diligence, procurement intelligence and B2B risk analysis. Data comes from auditable Brazilian public records.
🔎 What this Actor does
- Searches federal government contracts by CNPJ
- Accepts one or many CNPJs in the same
cnpjsfield - Accepts formatted and unformatted CNPJs
- Removes duplicate CNPJs automatically
- Returns active and historical contracts
- Calculates totals, active-contract counts and date ranges
- Exports results as JSON, CSV, Excel, XML and other Apify Dataset formats
Each Dataset row represents one unique CNPJ with at least one contract found. Because a company can have many contracts, its records are returned in
contracts[].
💼 Common use cases
- Supplier due diligence: identify prior relationships with Brazil's federal government
- KYB and compliance: add public-contract history to company screening
- Procurement intelligence: analyze agencies, values, dates and contract objects
- B2B qualification: identify companies that already sell to government entities
- Risk analysis: compare active and historical contractual exposure
- Market research: map federal suppliers and procurement activity
📥 Input
Only cnpjs is required. The second parameter controls how deeply the Actor searches each company.
| Field | Required | Default | Description |
|---|---|---|---|
cnpjs | Yes | One sample CNPJ | One or many Brazilian CNPJs, with or without punctuation. Maximum 1,000 entries. |
maxContractsPerCnpj | No | 5 | Maximum contracts returned for each unique CNPJ. Range: 1-500. |
{"cnpjs": ["33.000.167/0001-01", "02341470000144"],"maxContractsPerCnpj": 50}
Both formats below are accepted and normalized internally:
| Input | Normalized CNPJ |
|---|---|
33.000.167/0001-01 | 33000167000101 |
02341470000144 | 02341470000144 |
📤 Output
The Actor creates one row per unique CNPJ with at least one contract found. contracts[] contains every contract found for that company (up to maxContractsPerCnpj).
| Section | Main fields |
|---|---|
| Company | cnpj, formattedCnpj, supplier record ID, legal/trade names, classification, supplier CNPJ, masked CPF and social registration |
| Summary | contractCount, activeContractCount, total initial/current values, earliest/latest signature dates |
| Contract | public record ID, number, description, status, procurement method, legal basis and process number |
| Procurement | procurement number, process, object and partially masked responsible contact |
| Dates | signature, publication and validity period |
| Values | initial and current contract values |
| Government entities | complete contracting and purchasing unit structures: ministry, linked entity, management unit, acronyms, codes, CNPJ and branch |
| Control | validation, pages fetched, truncation and query error |
Complete output example
The example below contains every public field and matches the real response structure. Values are illustrative.
{"cnpj": "33000167000101","formattedCnpj": "33.000.167/0001-01","validCnpj": true,"found": true,"company": {"supplierRecordId": 5120293,"legalName": "EMPRESA BRASILEIRA DE ENERGIA S.A.","tradeName": "ENERGIA BRASIL","classification": "LEGAL ENTITY","supplierCnpj": "33.000.167/0001-01","maskedSupplierCpf": null,"socialRegistrationNumber": null},"statistics": {"contractCount": 1,"activeContractCount": 1,"totalInitialValue": 1250000,"totalCurrentValue": 1375000,"earliestSignedAt": "2025-01-15","latestSignedAt": "2025-01-15"},"contracts": [{"contractRecordId": 4759147,"reference": "bd-a1b2c3d4e5f6","contractNumber": "000012025","description": "Supply of equipment and specialized technical services","status": "Published","procurementMethod": "Electronic auction","legalBasis": "Law 14,133/2021","processNumber": "00000.000001/2025-10","signedAt": "2025-01-15","publishedAt": "2025-01-20","validityStartsAt": "2025-01-15","validityEndsAt": "2027-01-14","active": true,"initialValue": 1250000,"currentValue": 1375000,"procurement": {"number": "000012025","processNumber": "00000.000001/2025-10","description": "Procurement of equipment and specialized technical services","responsibleContact": "MARIA ******"},"contractingEntity": {"ministry": "MINISTRY OF MANAGEMENT AND INNOVATION","ministryAcronym": "MGI","ministryCode": "00000","entity": "FEDERAL PUBLIC AGENCY","entityAcronym": "FPA","entityCode": "000000","entityCnpj": "00000000000100","managementUnit": "PROCUREMENT MANAGEMENT UNIT","managementUnitCode": "000001","governmentBranch": "Executive"},"purchasingEntity": {"ministry": "MINISTRY OF MANAGEMENT AND INNOVATION","ministryAcronym": "MGI","ministryCode": "00000","entity": "FEDERAL PUBLIC AGENCY","entityAcronym": "FPA","entityCode": "000000","entityCnpj": "00000000000100","managementUnit": "PROCUREMENT MANAGEMENT UNIT","managementUnitCode": "000001","governmentBranch": "Executive"}}],"pagesFetched": 1,"truncated": false,"error": null}
If the CNPJ is valid but no contract is found, or the CNPJ is invalid, no row is delivered and nothing is charged for it. Check the run log for how many CNPJs had no contracts or failed.
💰 Pricing
One charge per CNPJ delivered (a row in the Dataset — meaning at least one government contract was found for that company). CNPJs with no contracts, invalid CNPJs and failed queries are not delivered and are not charged.
The current price per result is shown in the Actor's Pricing tab.
⚡ API access
curl -X POST "https://api.apify.com/v2/acts/brasildados~government-contracts-check/run-sync-get-dataset-items?format=json" \-H "Authorization: Bearer YOUR_APIFY_TOKEN" \-H "Content-Type: application/json" \-d '{"cnpjs":["33.000.167/0001-01","02341470000144"],"maxContractsPerCnpj":50}'
🧭 Understanding the fields
activeis derived fromvalidityEndsAtcompared with the execution date.truncated: truemeans the configured maximum was reached; increasemaxContractsPerCnpjfor more history.referenceis an opaque stable identifier created for convenient downstream matching.- Contract values are returned as BRL numeric values as recorded in the public source.
- Empty public-source fields are returned as empty strings or
null, according to the schema.
Related BrasilDados Actors
FAQ
Does it accept CPF?
No. This Actor is intentionally CNPJ-only to keep the company-contract workflow simple and predictable.
Are the contracts active only?
No. The Actor returns active and historical records. Use contracts[].active to filter active contracts.
Can I send one CNPJ?
Yes. Use the same cnpjs array with one item: {"cnpjs":["33000167000101"]}.
Why can one result contain many contracts?
The Dataset is organized by company. A company can have many federal contracts, so they are preserved in contracts[] instead of duplicating company information across many rows.
How fresh are the results?
Queries are performed at execution time against current auditable public records. Availability and update timing depend on the public source.
Can I export to Excel?
Yes. Open the Dataset and choose XLSX, CSV, JSON, XML or another format supported by Apify.
Is this legal to use?
The Actor processes public company and procurement records. You remain responsible for using the results for a lawful purpose and complying with applicable rules.