Finnish Public Tenders Scraper (Hilma)
Pricing
Pay per event
Finnish Public Tenders Scraper (Hilma)
Scrape Finnish public procurement notices from Hilma: titles, CPV codes, buyers, deadlines, estimated and awarded values, winners.
Pricing
Pay per event
Rating
0.0
(0)
Developer
Pohja Studio
Maintained by CommunityActor stats
0
Bookmarked
3
Total users
2
Monthly active users
9 days ago
Last modified
Categories
Share
Scrape Finnish public procurement notices from Hilma (hankintailmoitukset.fi), the official notification channel for Finnish public sector tenders. Every Finnish contracting authority — municipalities, hospital districts, parishes, state agencies, universities — is legally required to publish here, which makes it the single complete source of Finnish public demand.
No API key, no account, no login. Point the Actor at a sector and get structured notices.
What you get
Each notice comes back as a flat record:
| Field | Description |
|---|---|
title, description | Notice title and full description |
buyerName, buyerBusinessId, buyerAddress, buyerType | The contracting authority |
cpvCodes | CPV classification (45 = construction, 71 = engineering, 33 = medical, …) |
nutsCodes | NUTS region (FI1B1 = Helsinki-Uusimaa, …) |
procurementType | works, services or supplies |
datePublished, deadline | Publication date and tender deadline |
estimatedValue | Estimated contract value, when the buyer discloses it |
awardedValue, currency, winners | On award notices: what the contract closed at and who won it |
isEuProcurement, isFrameworkAgreement, isCancelled, isCorrigendum | Notice flags |
url | Direct link to the notice on Hilma |
lots | Per-lot breakdown (optional) |
raw | Untouched source record (optional) |
Use cases
- Construction and trade companies — find tenders in your discipline and region before the deadline, filtered by CPV instead of reading everything.
- Competitive intelligence — award notices carry the winner and the contract value, so you can see who is winning what, at what price.
- Suppliers and manufacturers — track which authorities are buying your product category.
- Sales teams selling to the public sector — a live feed of buying intent with the buyer's business ID attached.
- Market research and analytics — historical volumes and values by sector, region and buyer.
Input
| Option | Description |
|---|---|
searchTerms | Finnish keywords. Each term is a separate query returning up to 50 notices, so several terms give wider coverage. Leave as * to take everything matching the filters. |
cpvPrefix | Keep only notices whose CPV starts with this, e.g. 45 for construction work. |
nutsPrefix | Keep only notices in a region, e.g. FI1B for Helsinki-Uusimaa. |
procurementType | works, services, supplies, or any. |
publishedAfter / publishedBefore | Publication date window. |
deadlineAfter | Only notices whose deadline falls on or after this date. |
onlyOpenForBids | Drop cancelled notices and anything past its deadline. |
maxItems | Stop after this many notices. |
includeLots, includeRawFields | Attach the lot breakdown / the raw source record. |
Example: open construction tenders in Helsinki-Uusimaa
{"searchTerms": ["julkisivu", "vesikatto", "maalaus", "peruskorjaus", "saneeraus"],"cpvPrefix": "45","nutsPrefix": "FI1B","procurementType": "works","onlyOpenForBids": true,"maxItems": 200}
Example: who won Finnish construction contracts this year
{"searchTerms": ["urakka"],"cpvPrefix": "45","publishedAfter": "2026-01-01T00:00:00Z"}
How coverage works
Hilma's search backend returns at most 50 records per query and does not support paging. This Actor therefore widens coverage by running one query per search term and merging the results, dropping duplicates.
If a run returns fewer notices than you expect, add more specific Finnish keywords rather than raising maxItems. Terms that work well for construction: julkisivu, vesikatto, maalaus, peruskorjaus, saneeraus, urakka, korjaus, rakentaminen, purku, piha.
The backend also caches responses per search term, so the same term asked twice in quick succession can return the earlier response even if you changed the filters. Every record is re-checked locally against your criteria before it is written, so the output never contains records that do not match what you asked for — a cached response simply yields fewer rows.
Pricing
This Actor is billed per notice delivered. Records that are filtered out or that duplicate an earlier record are not charged.
Notes
Hilma notices are official public documents published under Finnish procurement law, and the data is used here as published. Some fields are only present on certain notice types — awardedValue and winners exist on contract award notices, deadline and estimatedValue on calls for tenders — so nulls in those columns are expected rather than a scraping failure.