UK Public Contract Performance & Change Monitor
Under maintenancePricing
from $20.00 / 1,000 contract signals
UK Public Contract Performance & Change Monitor
Under maintenanceMonitor official UK9 performance, UK10 contract changes, UK11 terminations, and UK12 cancellations from the Find a Tender OCDS API.
Pricing
from $20.00 / 1,000 contract signals
Rating
0.0
(0)
Developer
Nordic Data Forge
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
Monitor official UK public-contract performance, changes, completion or termination, and procurement cancellations without maintaining a scraper.
This Actor reads the UK Cabinet Office's public Find a Tender OCDS API and turns four Procurement Act 2023 transparency notices into consistent, filterable records:
- UK9 — Contract performance notice: published KPI metrics, observations, and source classifications.
- UK10 — Contract change notice: amendment dates, rationales, and classification codes.
- UK11 — Contract termination notice: published completion/termination outcome, end date, and final value.
- UK12 — Procurement termination notice: cancelled procurement reason and date.
It requires no Find a Tender account, API key, browser session, proxy, or CAPTCHA service. The default input works immediately.
What you receive
Every result includes the official notice ID and URL, OCID, buyer and supplier organisation names, CPV codes, contract period and values when available, exact source classifications, and collection metadata. The Actor enriches each signal from the official OCDS record package so a UK9 or UK10 notice can be connected to the wider procurement record.
Persistent monitoring marks each item as new, updated, or unchanged and lists changed fields. Use new-and-updated on a schedule to create a low-noise feed.
Quick start
- Keep the default input.
- Click Start.
- Open the default dataset as JSON, CSV, Excel, RSS, or through the Apify API.
The default scans the last 14 days for all four signal types and returns up to 100 matching signals.
Example input
{"noticeTypes": ["UK9", "UK10", "UK11", "UK12"],"maxResults": 100,"updatedWithinDays": 14,"keywords": ["cloud", "cyber security"],"buyerNames": ["Department for Transport"],"cpvCodes": ["72"],"enableChangeMonitoring": true,"outputMode": "new-and-updated"}
All text filters are case-insensitive and match any supplied value. CPV entries match prefixes, so 72 covers the IT family while 72000000 is exact.
Output example
{"noticeId": "072153-2026","ocid": "ocds-h6vhtk-056b63","noticeType": "UK9","signalType": "contract-performance","title": "715124450 TWE 3","buyerName": "Defence Equipment and Support","supplierNames": ["Rubb Buildings Limited"],"performanceOutcomeCounts": {"met": 3,"approaching": 0,"notMet": 0,"other": 0},"sourceUrl": "https://www.find-tender.service.gov.uk/Notice/072153-2026","sourceLicenceUrl": "https://www.nationalarchives.gov.uk/doc/open-government-licence/version/3/","changeType": "new"}
The complete dataset also contains the individual source-reported KPI metrics and observations. Outcome counts are a direct aggregation of the published classification IDs; the Actor does not calculate a risk score or label a supplier.
Suggested monitoring setup
For a daily alert feed:
- Save an input with the desired buyer, supplier, keyword, or CPV filters.
- Set
outputModetonew-and-updated. - Create an Apify schedule.
- Connect the dataset or webhook to your CRM, BI tool, email automation, Slack, or database.
The history scope is based on the business filters, not the rolling date, so scheduled runs compare correctly as time advances. History is only advanced after all selected records have been delivered; a spending limit cannot silently hide records and then mark them as seen.
Pricing and charging safety
The first 5 delivered signals per run are free. After that, the Store price is charged only when a result is successfully written to the dataset using the contract-signal event. The Actor checks that Apify's automatic dataset-item event is disabled to prevent double charging. Local runs and non-Pay-per-event builds never charge.
If an Apify spending limit is reached, the Actor stops before charging or marking an undelivered record as seen.
Data source, licence, and responsible use
Source: Find a Tender OCDS API, published by the UK Cabinet Office. The API identifies the data licence as the Open Government Licence v3.0. Every record preserves the official notice, release-package, record-package, attribution, licence, and retrieval context.
This is an independent product by Nordic Data Forge. It is not affiliated with, endorsed by, or operated by the UK Government, Cabinet Office, or Find a Tender. No government marks or branding are used.
The output deliberately excludes structured contact-person names, email addresses, telephone numbers, postal addresses, and attachments. Email-like strings in retained narrative fields are redacted. Organisation names and identifiers are retained because they are necessary to understand the published contracting record. Customers remain responsible for their own lawful use, retention, and downstream decisions.
The Actor reports factual source fields. It does not infer misconduct, supplier quality, creditworthiness, legal breach, or risk. A termination classification can also mean normal contract completion. Verify the linked official notice before any legal, procurement, financial, or reputational decision.
Source and operational limitations
- Find a Tender controls publication timing, coverage, classifications, and corrections.
- Older records and legacy notice formats can contain fewer fields than post-2025 notices.
- Narrow filters may require a larger
maxPagesvalue because the official release feed contains all notice types. - If record enrichment is temporarily unavailable, the Actor can deliver release-only data and marks
recordContextAvailableasfalse. - The Actor retries temporary
429and5xxresponses, respectsRetry-After, uses conservative pacing, and never bypasses access controls.
Support
For reproducible support, include the Actor run ID, notice ID, input with secrets removed, and the unexpected field or behavior. This Actor does not require or accept source credentials.