BASE.gov.pt Scraper — Portuguese Public Procurement Contracts avatar

BASE.gov.pt Scraper — Portuguese Public Procurement Contracts

Pricing

from $1.20 / 1,000 result scrapeds

Go to Apify Store
BASE.gov.pt Scraper — Portuguese Public Procurement Contracts

BASE.gov.pt Scraper — Portuguese Public Procurement Contracts

Search and extract Portuguese public procurement contracts from base.gov.pt, Portugal's official public contracts database. Filter by keyword, contract type, CPV, price, or date. Returns buyer, supplier, price, CPV codes, and execution place. No API key, no login required.

Pricing

from $1.20 / 1,000 result scrapeds

Rating

0.0

(0)

Developer

Studio Amba

Studio Amba

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

14 hours ago

Last modified

Share

Search and extract Portuguese public procurement contracts from base.gov.pt (Portal BASE — Contratos Públicos Online), Portugal's official public contracts database, run by IMPIC. Filter by keyword, contract type, CPV code, price range, or publication date. Returns buyer, supplier, contract price, CPV classification codes, execution place, and legal regime. No API key, no cookies, no login required.

How to scrape Base.gov.pt data

This actor reads contract data straight from base.gov.pt's own search API — the same JSON endpoint the site's search page calls in the browser. Every public entity in Portugal (mainland and the Açores/Madeira autonomous regions) is legally required to disclose awarded contracts here, making it the single most complete source for Portuguese government spending data.

Enter your search keywords, pick optional filters, and run. The actor fetches the search results list, then calls each contract's detail endpoint to pull CPV classification codes, execution place, full description, and legal regime that aren't returned in the list view.

Who benefits from this data?

  • Government contractors — Monitor who is winning contracts in your industry across Portuguese ministries, municipalities, hospitals, and state agencies.
  • Market researchers — Analyze Portuguese public spending patterns, contract volumes, and award trends across sectors and regions.
  • B2B sales teams — Identify which Portuguese public bodies buy what you sell, and which suppliers already serve them. Build targeted prospect lists across the Portuguese public sector.
  • Consultancies and advisory firms — Track contract activity by CPV category, district, or buyer to advise clients on Portuguese market entry and bidding strategy.
  • Compliance and legal teams — Monitor competitor contract awards, verify supplier NIF (tax ID) details, and check procedural transparency.
  • Journalists and researchers — Investigate public spending on a topic, ministry, or municipality.

Search by keyword

Enter any keyword to find relevant contracts. The search matches against "Objeto do contrato" (the contract subject). Examples: "informática", "construção", "limpeza", "consultoria", "software".

Filter by contract type

Portugal's law classifies public contracts into eight types: Aquisição de bens móveis (movable goods), Aquisição de serviços (services), Concessão de obras públicas (public works concession), Concessão de serviços públicos (public services concession), Empreitadas de obras públicas (public works), Locação de bens móveis (movable goods lease), Sociedade (company formation), and Outros (other).

Filter by CPV code

CPV (Common Procurement Vocabulary) is the EU-wide classification used on every contract. Examples: 72000000 (IT services), 45000000 (construction), 79000000 (business services).

Filter by date and price

Use publishedAfter/publishedBefore to monitor new disclosures within a date window, and priceMin/priceMax to filter by contract value.

Input parameters

ParameterTypeDefaultDescription
searchQueryStringinformáticaKeyword matched against the contract subject
contractTypeEnumallall, movableGoods, services, publicWorksConcession, publicServicesConcession, publicWorks, movableGoodsLease, society, other
cpvStringCPV code or description (e.g. 72000000)
publishedAfter / publishedBeforeStringPublication date range, YYYY-MM-DD
priceMin / priceMaxIntegerContract price range, EUR
maxResultsInteger50Maximum number of contracts to return (1–5,000)
proxyConfigurationObjectApify proxyApify proxy settings

What data does this scraper extract?

FieldTypeDescription
itemTitleStringContract subject ("Objeto do contrato")
referenceNumberStringbase.gov.pt internal contract ID
organizationStringContracting entity / buyer ("Adjudicante")
statusStringContrato celebrado (signed) unless flagged under revision
publicationDateStringDate the contract was disclosed on the portal
deadlineStringExecution deadline ("Prazo de execução", e.g. "365 dias")
estimatedValueStringContractual price
currencyStringAlways EUR
categoryStringContract type (e.g. "Aquisição de serviços")
cpvCodesArrayCPV classification code(s) with descriptions
regionStringExecution place ("Portugal, District, Municipality")
itemDescriptionStringFull contract description
contactInfoObjectBuyer and supplier names
urlStringDirect link to the contract on base.gov.pt
scrapedAtStringISO timestamp of when the data was scraped
procedureStringProcurement procedure (e.g. "Concurso público", "Ajuste Direto Regime Geral")
signingDateStringDate the contract was signed
contractingNifStringBuyer's Portuguese tax ID (NIF)
contractedNifStringSupplier's Portuguese tax ID (NIF)
regimeStringLegal regime / basis for the contract
centralizedProcedureBooleanWhether this was a centralized procurement procedure

Example output

{
"itemTitle": "Aquisição de serviços de desenvolvimento aplicacional e de manutenção das aplicações e ferramentas informáticas que suportam os Sistemas de Informação associados à atividade do COMPETE 2030 e dos Sistemas de Incentivos dos Programas do PT2030",
"referenceNumber": "15522492",
"organization": "Secretaria-Geral do Governo",
"status": "Contrato celebrado",
"publicationDate": "2026-08-24",
"deadline": "508 dias",
"estimatedValue": "132158.00",
"currency": "EUR",
"category": "Aquisição de serviços",
"cpvCodes": [
{ "code": "79610000-3", "description": "Serviços de colocação de pessoal" }
],
"region": "Portugal, Lisboa, Lisboa",
"itemDescription": "Aquisição de serviços de desenvolvimento aplicacional e de manutenção das aplicações e ferramentas informáticas que suportam os Sistemas de Informação associados à atividade do COMPETE 2030 e dos Sistemas de Incentivos dos Programas do PT2030",
"contactInfo": {
"Adjudicante (Buyer)": "Secretaria-Geral do Governo",
"Adjudicatário (Supplier)": "AXIANSEU II DIGITAL CONSULTING, S.A"
},
"url": "https://www.base.gov.pt/Base4/pt/detalhe/?type=contratos&id=15522492",
"scrapedAt": "2026-08-31T14:08:58.360Z",
"procedure": "Concurso público",
"signingDate": "2026-08-10",
"contractingNif": "600088103",
"contractedNif": "501774360",
"regime": "Código dos Contratos Públicos (DL111-B/2017) e Lei n.º 30/2021, de 21.05",
"centralizedProcedure": false
}

Tips for best results

  • Daily monitoring: Run on a schedule to catch newly disclosed contracts. Set publishedAfter to yesterday's date for fresh disclosures only.
  • CPV targeting: After an initial broad search, note the CPV codes most relevant to your business and filter precisely with cpv.
  • Competitor intelligence: Search for a supplier's name in searchQuery won't match (search covers the contract subject, not party names) — instead run a category/CPV search and check the contactInfo/contractedNif fields for the suppliers you're tracking.
  • NIF lookups: contractingNif and contractedNif are Portuguese tax IDs — pair with a company registry lookup to enrich buyer/supplier records.

How much does it cost to run?

The base.gov.pt data source is free and requires no login. Your only cost is Apify compute time and proxy usage. Each contract requires one extra request to the detail endpoint for CPV codes, execution place, and full description, so run time scales roughly linearly with maxResults.

Search sizeEstimated timeEstimated cost
20 contracts~1 minute$0.02 ($0.001 per result)
100 contracts~4 minutes$0.08 ($0.001 per result)
500 contracts~18 minutes$0.30 ($0.001 per result)

Actual cost depends on Apify plan and proxy usage; a run's final usage cost only settles after the run reports SUCCEEDED — reading the dataset mid-run will undercount it.

Use as an API

from apify_client import ApifyClient
client = ApifyClient("YOUR_API_TOKEN")
run = client.actor("studio-amba/base-gov-pt-scraper").call(run_input={
"searchQuery": "construção",
"contractType": "publicWorks",
"maxResults": 50,
})
for contract in client.dataset(run["defaultDatasetId"]).iterate_items():
print(f"{contract['itemTitle']} | {contract['organization']} | {contract['estimatedValue']} EUR")

Limitations

  • This covers awarded contracts, not open tenders: base.gov.pt's "Contratos" search discloses contracts after signing, not open calls for bids. Every result already has a buyer, a supplier, and a price.
  • Search matches the contract subject only: the searchQuery field matches "Objeto do contrato", not party names — searching a company name in searchQuery will not find contracts they were awarded.
  • Prices are as disclosed: some contracts (framework agreements, non-priced arrangements) may show no meaningful contractual price.
  • CPV granularity: most contracts carry a single principal CPV code; multi-CPV contracts are supported but rare in practice.

Other European procurement scrapers

Check the Studio AMBA actor catalog for more European public procurement data, including eTenders (Ireland), DOFFIN (Norway), TenderNed (Netherlands), TED (EU-wide), and Belgian public procurement.

Your feedback

Found a bug or want a feature? Open an issue on the Issues tab.