EU & UK Public Tender Amendment & Deadline Diff Monitor
Pricing
$6.00 / 1,000 verified tender amendments
EU & UK Public Tender Amendment & Deadline Diff Monitor
Official TED eForms and Find a Tender OCDS amendment tracking. Verified before/after deadlines, persistent change deduplication and pay only for unique changes.
Pricing
$6.00 / 1,000 verified tender amendments
Rating
0.0
(0)
Developer
AFK Digital
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
NEWAPI18 — EU & UK Public Tender Amendment & Deadline Diff Monitor
Version: 1.0.0 | Actor: newapi18-tender-amendment-deadline-monitor | Product code: NEWAPI18
Detect verified amendments, including before/after submission deadlines, in Find a Tender (United Kingdom) and Tenders Electronic Daily (European Union). A change is emitted only where two independently retrievable official versions show a meaningful difference. No emails, SMS, chat messages, or third-party notifications are sent.
Official sources and provenance
- UK: Find a Tender OCDS release packages and OCDS record packages. The public API is mapped to OCDS 1.1.5 and published under the UK Open Government Licence.
records[].releases[]provides original releases andtenderUpdateversions, with their unique release ID and publication time. Changes are compared only within the tender-stage chain, not between planning and tender. - EU: TED public Search API v3 and official notice XML. TED eForms Change notices reference the previous published notice through BT-758 / ChangedNoticeIdentifier, either OJ S publication number or exact UUID+version. The current and predecessor are fetched separately as published records through TED Search API v3, including lot IDs and timezone-preserving deadline fields. Direct XML is separately validated in regression tests and can be blank from cloud egress, so runtime uses authoritative Search API fields. Non-change notices are not billed. See TED Change Notice schema.
- No private scraping, login credentials for TED/UK, unofficial mirrors, or emails.
Input
| Field | Meaning | Default |
|---|---|---|
noticeIds | Specific IDs: UK:ocds-h6vhtk-0778b4, UK:099899-2026, EU:722708-2026 | [] (discover via filters) |
sources | ["UK", "EU"] | Both |
cpvCodes | Classification prefixes, e.g. ["45","72000000"] | All |
countryCodes | ISO alpha-2 or alpha-3. UK is GB/GBR/UK | All |
daysBack | Days of recent published EU notices or updated UK releases | 2 |
maxResults | Maximum verified change records, not raw notices | 10 |
maxCostUsd | Maximum actor PPE events for this run, $0.006 per change | $0.06 |
maxNoticesScanned | Upper bound of retrieved feed rows per source | 80 |
maxRequests | Maximum official-source HTTP requests including retries | 130 |
timeoutSeconds | Runtime safety cap (maximum 270) | 240 |
monitorId | Persistent isolation namespace for a recurring monitor | default |
Use noticeIds or discovery filters. When exact publication IDs (e.g. UK:099899-2026 or EU:722708-2026) are supplied, only the selected official amendment is eligible regardless of its date; its predecessor is read solely as evidence, not emitted as a newly discovered change. An UK:ocds-... process ID follows the regular daysBack window and skips historical corrections. Discovery is also recent-date bounded. CPV/country filtering applies to discovered rows and EU targeted lookups; UK targeted OCIDs are filtered by CPV too.
The number of scanned notices is deliberately capped. On unusually busy dates, the search may return a subset rather than every eligible notice. Increase maxNoticesScanned and maxRequests for comprehensive daily monitoring. Treat a zero-result run as "no verified change observed within the scan limits," not proof that none exist.
Example:
{"noticeIds": ["EU:722708-2026", "UK:ocds-h6vhtk-0778b4"],"maxResults": 2,"maxCostUsd": 0.012,"monitorId": "sample-verification"}
Output
One dataset row per distinct official predecessor → successor release:
{"source": "EU_TED","notice_id": "722708-2026","authority_name": "...","amendment_date": "2026-10-20+02:00","changed_fields": [{"field": "submission_deadline","lot_id": "LOT-0001","previous": "2026-10-27T11:00:00+01:00","current": "2026-10-30T11:00:00+01:00"}],"previous_deadline": "2026-10-27T11:00:00+01:00","new_deadline": "2026-10-30T11:00:00+01:00","change_summary": "submission_deadline (LOT-0001): ...","official_url": "https://ted.europa.eu/en/notice/-/detail/722708-2026","observed_at": "<UTC observation timestamp>","previous_notice_id": "625808-2026","notice_type": "ContractNotice","deadline_timezone": "+01:00","change_id": "<stable sha256>","source_provenance": "official_change_notice_BT-758"}
Extra fields include previous_notice_id, notice_type, deadline_timezone, change_id and source_provenance. changed_fields preserves per-lot differences. For a single deadline the before/after top-level fields are strings; for multiple lots, they can be objects indexed by lot ID. Input/source date+offset are preserved; equivalent instants expressed in different timezones alone do not create a change.
Both formats are natively exportable from the Apify Dataset:
- JSON:
GET /v2/datasets/{datasetId}/items?format=json - CSV:
GET /v2/datasets/{datasetId}/items?format=csv&bom=true
Billing, state and recovery
Pay-per-event (PPE): $0.006 per unique verified change record, or $6 per 1,000. No charge for baseline observations, unchanged re-runs, or failed source lookups. The Actor uses the single custom event verified-change; do not configure an additional paid dataset-item/start event, as this would double-charge. Platform/compute/storage usage is separate from the publisher's revenue margin; see Apify PPE documentation.
A named Apify Key-Value Store, newapi18-tender-monitor-state-v1, keeps durable observations and event-hash journals under SHA-256-scoped monitorId prefixes. A rerun of the same monitor skips already emitted source-version transitions even if the tender is still in the lookback window. Distinct monitors have separate ledgers within the owning account. Access is managed by Apify account permissions; no credentials or private data are logged.
Interruption policy: before a billable dataset push, the event hash is recorded as reserved; after successful push, it is marked emitted. On restart, both reserved and emitted are suppressed to prevent double billing. For rare ambiguous failures between reservation and dataset write, inspect the referenced run_id and dataset_id in the private journal, reconcile whether the dataset item exists, and only then manually clear a truly unbilled reservation. This prioritizes at-most-once charging over automatic replay of an ambiguous payment. Concurrent executions with the same monitorId should be serialized; Apify KV does not expose compare-and-swap locking.
On 429/5xx errors, the client retries with bounded exponential backoff. Unknown schemas, unavailable predecessors, missing BT-758, cross-schema legacy TED notices, or unverified histories produce no fabricated changes. Request, time, result and cost caps terminate work; repeating a run resumes via idempotent official-source rescanning, not an in-memory-only cursor.
Verified real historical examples (2026-10-22)
- UK:
ocds-h6vhtk-0778b4, releases097692-2026→099899-2026: submission deadline2026-10-23T14:00:00+01:00→2026-10-30T14:00:00Z. Find a Tender public OCDS record package is the source of both versions. - EU: TED
625808-2026→ Change notice722708-2026(LOT-0001): deadline2026-10-27T11:00:00+01:00→2026-10-30T11:00:00+01:00. Both official XMLs were independently fetched in direct-source regression tests, and official Search API records were separately retrieved; the new notice's BT-758 references the previous publication.
Local test and deployment
cd /opt/NEWAPI/NEWAPI18python3 -m venv .venv.venv/bin/pip install -r requirements.txt.venv/bin/python -m unittest discover -s tests -vnpx apify-cli validate-schemanpx apify-cli push
Default input targets <5 minutes with an explicit 240-second app budget plus Apify run timeout. Live tests require public internet and respect rate limits. Do not copy .venv, API tokens, local Apify state or secrets into the Actor image.
Version 1.0 limitations: legacy TED-XML predecessor cross-schema diffs are conservatively skipped unless a reliable common mapping is implemented; certain UK updates that change fields not exposed in the compared OCDS subset may be skipped. This avoids false claims or unsupported fees.