# UK Public Sector Contract & Tender Intelligence (`straightforward_hydra/uk-contracts-finder-intelligence`) Actor

Find open UK government tenders to bid on, or track who wins public-sector contracts. Official Contracts Finder OCDS data. No key.

- **URL**: https://apify.com/straightforward\_hydra/uk-contracts-finder-intelligence.md
- **Developed by:** [Dev D](https://apify.com/straightforward_hydra) (community)
- **Categories:** Developer tools, Automation, Lead generation
- **Stats:** 3 total users, 2 monthly users, 94.1% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $5.00 / 1,000 notices

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

## UK Public Sector Contract & Tender Intelligence 🇬🇧

**Find open UK government tenders to bid on, or track who wins public-sector contracts — straight from Contracts Finder's official OCDS data. No API key, no proxy.**

Two high-value angles on UK public procurement:

- 🎯 **Opportunities** — open tenders you can still bid on: title, buyer, value, **bid deadline**, category (CPV), region and a direct link. Lead generation for any business selling to the public sector.
- 🏆 **Awards** — who won which contracts, for how much, from which buyer. Track a **competitor's wins**, size a market, or map public spending.

Perfect for **bid/tender teams, sales & business development, competitor intelligence, market research**, and public-spending analysis.

> Uses the official **Contracts Finder OCDS API** — public procurement data, no key, very low maintenance.

***

### Modes

- **Opportunities** — open tenders (stage: tender).
- **Awards** — awarded contracts with supplier + value (stage: award).
- **Planning** — early pipeline notices.

### Features

- ✅ **No API key, no proxy** — official OCDS API.
- ✅ **Bid deadlines** — never miss a tender close date.
- ✅ **Competitor tracking** — filter awards by supplier name.
- ✅ **Smart filters** — keyword, buyer, CPV category, value range, date range.
- ✅ **Direct links** — every notice links back to Contracts Finder.

***

### Input

| Field | Description |
|---|---|
| **Mode** | opportunities / awards / planning. |
| **Keyword** | Search notice text (e.g. `software`, `cleaning`, `construction`). |
| **Published from / to** | Date range (YYYY-MM-DD). |
| **Buyer contains** | Filter by public body (e.g. `NHS`, `County Council`). |
| **Supplier contains** | Track a supplier/competitor's wins (awards mode). |
| **CPV code prefix** | Category filter, e.g. `48` (software), `45` (construction), `85` (health). |
| **Min / Max value (GBP)** | Contract value range. |
| **Max results** | Cap on notices. |

#### Example — open software tenders over £50k

```json
{
  "mode": "opportunities",
  "keyword": "software",
  "minValue": 50000
}
```

#### Example — track a competitor's contract wins

```json
{
  "mode": "awards",
  "supplierContains": "Capita",
  "publishedFrom": "2025-01-01"
}
```

#### Example — all NHS awards this quarter

```json
{
  "mode": "awards",
  "buyerContains": "NHS",
  "publishedFrom": "2026-04-01"
}
```

### Output

```json
{
  "ocid": "ocds-b5fd17-…",
  "stage": "tender",
  "title": "Property Services Framework",
  "buyer": "Ongo Homes",
  "value_amount": 8472397.64,
  "value_currency": "GBP",
  "cpv_code": "70330000",
  "cpv_description": "Residential property services",
  "region": "DN15 …",
  "status": "active",
  "published_date": "2026-07-17T…",
  "deadline": "2026-08-17T12:00:00+01:00",
  "suppliers": [],
  "award_amount": null,
  "url": "https://www.contractsfinder.service.gov.uk/Notice/…"
}
```

Awards populate `suppliers`, `award_amount` and `award_date`.

### Run it on a schedule

Run daily with `publishedFrom` = yesterday to get a fresh feed of new tenders (or new awards for a competitor) — pipe to Slack, email, a CRM or a webhook so your bid team never misses one.

### Notes & limitations

- Official **Contracts Finder OCDS** data (England-wide public sector; other UK nations have their own portals).
- Keyword search matches the full notice text (title, description, category), not only the title.
- A single contract (OCID) can have multiple release notices (amendments).
- Data source: Contracts Finder (Crown Commercial Service). Informational, not legal advice.

***

#### Keywords

UK tenders, government contracts, public procurement, Contracts Finder, OCDS, bid opportunities, tender alerts, RFP, RFQ, public sector, competitor intelligence, contract awards, supplier tracking, CPV, NHS contracts, council contracts, government spending, sales intelligence, lead generation, procurement data.

# Actor input Schema

## `mode` (type: `string`):

opportunities = open tenders to bid on (lead gen); awards = who won contracts (competitor/market intel).

## `keyword` (type: `string`):

Search notice text, e.g. "software", "cleaning", "construction", "consultancy".

## `publishedFrom` (type: `string`):

Only notices published on/after this date (YYYY-MM-DD).

## `publishedTo` (type: `string`):

Only notices published on/before this date (YYYY-MM-DD).

## `buyerContains` (type: `string`):

Filter by buyer (public body) name, e.g. "NHS", "County Council", "Ministry of Defence".

## `supplierContains` (type: `string`):

Track a specific supplier/competitor's wins, e.g. "Capita", "Serco". Only meaningful in awards mode.

## `cpvCode` (type: `string`):

Filter by CPV classification code prefix, e.g. "48" (software), "45" (construction), "85" (health).

## `minValue` (type: `integer`):

Minimum contract value.

## `maxValue` (type: `integer`):

Maximum contract value.

## `maxResults` (type: `integer`):

Maximum number of notices to return.

## Actor input object example

```json
{
  "mode": "opportunities",
  "maxResults": 1000
}
```

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {};

// Run the Actor and wait for it to finish
const run = await client.actor("straightforward_hydra/uk-contracts-finder-intelligence").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {}

# Run the Actor and wait for it to finish
run = client.actor("straightforward_hydra/uk-contracts-finder-intelligence").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{}' |
apify call straightforward_hydra/uk-contracts-finder-intelligence --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=straightforward_hydra/uk-contracts-finder-intelligence",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/acts/JlCjVU9ry5vsFL01f/builds/xicLXYDPXr2RSA6Jh/openapi.json
