simap.ch Switzerland Tender Scraper
Pricing
from $1.00 / 1,000 tenders
simap.ch Switzerland Tender Scraper
Extract Swiss public procurement publications from simap.ch: tenders, awards, direct awards, advance notices and competitions from federal, cantonal and communal buyers, with the full publication detail.
Pricing
from $1.00 / 1,000 tenders
Rating
5.0
(1)
Developer
Public Money
Maintained by ApifyActor stats
1
Bookmarked
1
Total users
0
Monthly active users
2 days ago
Last modified
Categories
Share
This Actor reads Swiss public procurement publications from simap.ch, the joint platform of the Confederation, the cantons and the communes. It returns one record per project with that project's newest publication in your window: tenders, awards, direct awards, advance notices, requests for information, competitions, revocations and abandonments, each with the full publication as simap.ch serves it.
What it does
- Reads the same public API the simap.ch search screen calls. No account, no API key.
- Filters at the source: date window, keyword, publication type, order type, procedure, CPV, BKP, canton and the Switzerland-only flag all go to simap.ch.
- Walks simap.ch's cursor pagination (20 per page) to the end of the window, or until Max items.
- With Include publication details on (default), adds the full publication (buyer address and contacts, description, CPV/BKP/NPK codes, deadlines, Q&A dates, terms, criteria, lots, award decision with winning vendors, prices and number of offers) and the project's earlier publications.
Input
| Field | Type | Default | What it controls |
|---|---|---|---|
publishedWithinDays | integer | 7 | Rolling window, in days back from the run |
publishedFrom | string | empty | Newest publication on or after this date (YYYY-MM-DD); overrides the rolling window |
publishedTo | string | empty | Newest publication on or before this date |
search | string | empty | simap.ch full-text search, matched in language |
language | string | de | de, fr, it or en: the keyword's match language, and the language of titleText, procOfficeNameText, cpvLabel and projectUrl |
publicationTypes | array | empty | tender, award_tender, direct_award, advance_notice, request_for_information, competition, award_competition, study_contract, award_study_contract, participant_selection, selective_offering_phase, revocation, abandonment |
projectSubTypes | array | empty | construction, service, supply, project_competition, idea_competition, overall_performance_competition, project_study, idea_study, overall_performance_study, request_for_information |
processTypes | array | empty | open, selective, invitation, direct, no_process |
cpvCodes | array | empty | 8-digit CPV codes; a code also matches the codes beneath it |
bkpCodes | array | empty | Swiss BKP building cost codes |
cantons | array | empty | Canton of the place of performance (ZH, BE, …) |
onlySwitzerland | boolean | false | simap.ch's own "place of performance in Switzerland" filter |
includeDetails | boolean | true | Adds publicationDetails, pastPublications and per-lot detail; two extra requests per record |
maxItems | integer | 1000 | Caps records returned; 0 returns the whole window |
schemaOrg | boolean | false | Appends a schema.org schemaOrg block to each record |
Multiple values in one filter are ORed by simap.ch. An unknown value is refused by simap.ch with 400 Invalid parameter and the run fails with that message.
Output
One record per project, keyed on publicationId:
projectId, projectNumber, publicationId, publicationNumber, publicationDate, pubType, corrected, projectType, projectSubType, processType, lotsType, titleText, title (de/en/fr/it), procOfficeNameText, procOfficeName (de/en/fr/it), orderAddressOnlyDescription, countryId, cantonId, orderAddress, lots, offerDeadline, cpvCode, cpvLabel, projectUrl, publicationDetails, pastPublications, scrapedAt.
publicationDetails is the publication object exactly as simap.ch serves it, under its own key names (project-info, procurement, dates, terms, criteria, lots, decision, base, ted, …); which keys appear depends on the publication type.
Notes
- simap.ch's search starts on 2024-07-01, when the current platform went live. Earlier dates return nothing.
- The search returns each project once, with its newest publication. A project's earlier publications are listed in
pastPublications(per lot, underlots, for lot projects). offerDeadlineis published only on tenders, competitions, requests for information and some advance notices; awards, direct awards, revocations and abandonments carry none. Revocations and abandonments publish no CPV code.- The keyword is matched in the chosen
language:Schuleover 2026-09-01 to 2026-10-03 matched 330 projects withdeand 5 withen. projectUrlishttps://www.simap.ch/<language>/project-detail/<projectId>, the form simap.ch's own help text gives for a project page.