Bulgarian Public Procurement Monitor
Pricing
Pay per usage
Bulgarian Public Procurement Monitor
Search and filter official Bulgarian public procurement tenders by keywords, CPV codes, buyer, value, category, status, and deadlines via API.
Pricing
Pay per usage
Rating
0.0
(0)
Developer
Renegade
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
4 days ago
Last modified
Categories
Share
Find relevant Bulgarian public tenders without manually downloading and parsing daily government data files.
This Actor reads the official CAIS EOP / ЦАИС ЕОП Open Contracting Data Standard (OCDS) releases and returns clean, filterable tender records for monitoring, lead generation, research, and workflow automation.
What you can do
- Search tender titles, descriptions, buyers, and lots using Bulgarian or English keywords
- Filter by CPV code prefix, buyer, procurement category, value, status, and deadline
- Receive normalized tender and lot data with direct register links
- Process one day or a date range of up to 32 days
- Schedule daily monitoring and connect results to APIs, webhooks, Sheets, Slack, email, n8n, or a CRM
- Optionally include the original OCDS release in each result
Quick start
To retrieve up to 100 active notices from the latest available default date, run with:
{"onlyActive": true,"maxItems": 100}
To find computer-equipment opportunities:
{"startDate": "2026-06-30","endDate": "2026-06-30","keywords": ["компютър", "лаптоп"],"keywordMode": "any","cpvPrefixes": ["302"],"onlyActive": true,"maxItems": 100}
If dates are omitted, the Actor reads yesterday's UTC publication bundle. The official file can appear later in the day, so scheduled monitoring should run after the source is published.
Input
| Field | Type | Purpose |
|---|---|---|
startDate | string | First source publication date in YYYY-MM-DD format |
endDate | string | Last source publication date; maximum range is 32 days |
keywords | string[] | Text matched against title, description, buyer name, and lot titles |
keywordMode | any or all | Whether any or all keywords must match |
cpvPrefixes | string[] | CPV prefixes such as 302 or full codes such as 30213100 |
buyerKeywords | string[] | Text matched against the contracting authority name |
categories | string[] | Any of goods, services, or works |
minValue | number | Minimum published tender value in the record's original currency |
maxValue | number | Maximum published tender value in the record's original currency |
deadlineFrom | string | Earliest accepted deadline date in YYYY-MM-DD format |
deadlineTo | string | Latest accepted deadline date in YYYY-MM-DD format |
onlyActive | boolean | Exclude tenders not marked active; defaults to true |
maxItems | integer | Maximum dataset records; defaults to 100 |
includeRaw | boolean | Attach the complete source OCDS release; defaults to false |
Filters are combined with AND. Within keywords, keywordMode controls whether any or all values must occur. CPV and buyer lists match when any supplied value matches.
Output
Each default-dataset item is a normalized tender record:
{"ocid": "ocds-e82gsb-583926","releaseId": "ocds-e82gsb-583926-852220/2026-06-30-tender","publishedAt": "2026-06-30T02:21:35+00:00","tenderId": "583926","title": "Tender title","status": "active","procurementMethod": "open","category": "goods","buyerName": "Contracting authority","valueAmount": 107666.99,"valueCurrency": "EUR","deadline": "2026-07-30T20:59:59+00:00","cpvCodes": ["33112200", "33123200"],"lotCount": 6,"lots": [],"registerUrl": "https://app.eop.bg/today/583926","sourceBundleUrl": "https://storage.eop.bg/open-data-2026-06-30/..."}
The RUN_SUMMARY record in the default key-value store reports requested dates, loaded source bundles, emitted records, and source failures.
API example
curl "https://api.apify.com/v2/acts/susurrant_cowl~bulgarian-public-procurement-monitor/runs?token=YOUR_APIFY_TOKEN" \-X POST \-H "Content-Type: application/json" \-d '{"keywords":["строителство"],"onlyActive":true,"maxItems":100}'
Use your own Apify token and keep it private. The same Actor can be called from Apify clients, integrations, schedules, and MCP-compatible workflows.
Official data source
- Open-data portal: https://app.eop.bg/today/reporting/open-data
- Daily public files:
https://storage.eop.bg/open-data-YYYY-MM-DD/ - Format: Open Contracting Data Standard (OCDS) JSON
The Actor accesses public open-data files without logging in, bypassing access controls, or collecting private account data. It is an independent tool and is not affiliated with or endorsed by the Bulgarian Public Procurement Agency or CAIS EOP.
Privacy and data handling
- No cookies, credentials, private profiles, or personal account data are collected.
- Input and output are stored using the retention and access settings of the Apify account running the Actor.
includeRawmay increase dataset size because it preserves the complete public OCDS release.
Limitations
- Daily source files may be published after the corresponding calendar day ends.
- A missing day is reported in
RUN_SUMMARY; if every requested source fails, the run fails instead of silently returning an empty dataset. - Source fields differ by notice type, so unavailable normalized fields are
null. - Value filters compare the published numeric amount without currency conversion.
- The earliest lot deadline is used as the tender-level deadline.
- Results depend on the completeness and accuracy of the official source.
Support
For a reproducible issue, open the Actor's Issues tab and include the run URL, sanitized input, requested source dates, and the unexpected behavior. Never include Apify tokens or other credentials.