---
title: ToolRouter — Tool Detail
description: Detailed documentation for a ToolRouter tool including skills, parameters, and examples.
url: https://toolrouter.com/tools/contract-opportunities
---
# Contract Opportunities

Find live public-sector tenders, recent contract awards, buyer activity, and supplier-fit signals across official procurement sources. Useful for bid teams, consultants, and agencies that need revenue opportunities, incumbent evidence, and buyer watchlists in one place.

- **Version:** 0.01
- **Categories:** data, search, finance
- **Author:** Humanleap (https://toolrouter.com)
- **License:** UNLICENSED
- **Repository:** https://github.com/Humanleap/toolrouter.git
- **Homepage:** https://toolrouter.com/tools/contract-opportunities
- **Workflow:** search_opportunities → opportunity_details → search_awards → buyer_intelligence → match_supplier_profile → watchlist_snapshot

## Skills (6)

### Search Opportunities (`search_opportunities`)

Search live and recent public procurement opportunities across official tender sources with filters for buyer, codes, geography, dates, values, and set-asides.

**Parameters:**

| Name | Type | Required | Description |
|------|------|----------|-------------|
| `query` | string | No | Keyword, service, product, buyer, or sector phrase to search for |
| `source` | string | No | Source to search: all, sam, ted, contracts_finder, public_contracts_scotland, or world_bank (all, sam, ted, contracts_finder, public_contracts_scotland, world_bank) [default: "all"] |
| `country_codes` | array | No | Optional ISO alpha-2 country codes to keep results near target markets |
| `buyer_name` | string | No | Buyer, agency, or authority name to narrow the search |
| `classification_system` | string | No | Classification system to interpret classification_code (any, naics, psc, cpv, unspsc) [default: "any"] |
| `classification_code` | string | No | NAICS, PSC, CPV, or UNSPSC code fragment to match |
| `published_from` | string | No | Only include notices published on or after this date (YYYY-MM-DD) |
| `deadline_before` | string | No | Only include opportunities with response deadlines on or before this date (YYYY-MM-DD) |
| `value_min` | number | No | Minimum contract value to include when a value is available |
| `value_max` | number | No | Maximum contract value to include when a value is available |
| `set_aside` | string | No | Set-aside or small-business term to match when the source exposes it |
| `include_expired` | boolean | No | When true, keep expired opportunities in the results [default: false] |
| `limit` | number | No | Maximum opportunities to return per page (1-20, default 10) [default: 10] |
| `page` | number | No | Page number for pagination (default 1) [default: 1] |

**Returns:** Normalized tender opportunities with buyer, deadline, value, code, and source metadata

**Examples:**

*Find cyber security tenders across public procurement sources:*

```json
{
  "query": "cyber security",
  "source": "all",
  "limit": 6
}
```

*Find UK public opportunities by CPV code before a deadline:*

```json
{
  "source": "contracts_finder",
  "classification_system": "cpv",
  "classification_code": "72000000",
  "deadline_before": "2026-06-30",
  "limit": 5
}
```

### Opportunity Details (`opportunity_details`)

Open the canonical notice details for one procurement opportunity so you can inspect deadlines, buyer data, codes, and source documents.

**Parameters:**

| Name | Type | Required | Description |
|------|------|----------|-------------|
| `source` | string | Yes | Source that owns the notice record (sam, ted, contracts_finder, public_contracts_scotland, world_bank) |
| `record_id` | string | No | Record identifier returned by search_opportunities |
| `notice_id` | string | No | Optional alias for record_id when you already have a notice id |
| `ocid` | string | No | Optional alias for record_id when the source uses an OCDS identifier |

**Returns:** The normalized detail record for one opportunity with source-specific identifiers and metadata

**Examples:**

*Open a TED notice by publication number:*

```json
{
  "source": "ted",
  "record_id": "102534-2016"
}
```

*Open a Contracts Finder opportunity by OCDS record id:*

```json
{
  "source": "contracts_finder",
  "record_id": "ocds-h6vhtk-040f17"
}
```

### Search Awards (`search_awards`)

Search recent contract awards and incumbents across official public spending and procurement award sources.

**Parameters:**

| Name | Type | Required | Description |
|------|------|----------|-------------|
| `query` | string | No | Keyword, service, buyer, or sector phrase to search awards for |
| `source` | string | No | Source to search: all, sam, usaspending, contracts_finder, or public_contracts_scotland (all, sam, usaspending, contracts_finder, public_contracts_scotland) [default: "all"] |
| `country_codes` | array | No | Optional ISO alpha-2 country codes to keep awards near target markets |
| `buyer_name` | string | No | Buyer or agency name to narrow the award search |
| `supplier_name` | string | No | Awarded supplier or incumbent name to match |
| `classification_system` | string | No | Classification system to interpret classification_code (any, naics, psc, cpv, unspsc) [default: "any"] |
| `classification_code` | string | No | NAICS, PSC, CPV, or UNSPSC code fragment to match |
| `awarded_from` | string | No | Only include awards on or after this date (YYYY-MM-DD) |
| `value_min` | number | No | Minimum award value to include when available |
| `value_max` | number | No | Maximum award value to include when available |
| `limit` | number | No | Maximum awards to return per page (1-20, default 10) [default: 10] |
| `page` | number | No | Page number for pagination (default 1) [default: 1] |

**Returns:** Award matches with buyers, incumbents, dates, values, and source metadata

**Examples:**

*Find recent cyber security contract awards:*

```json
{
  "query": "cyber security",
  "source": "all",
  "awarded_from": "2025-01-01",
  "limit": 6
}
```

*Find recent awards to a named supplier:*

```json
{
  "source": "usaspending",
  "supplier_name": "Lockheed Martin",
  "limit": 5
}
```

### Buyer Intelligence (`buyer_intelligence`)

Summarize a buyer or agency by combining open opportunities, recent awards, top suppliers, and value signals from the available sources.

**Parameters:**

| Name | Type | Required | Description |
|------|------|----------|-------------|
| `buyer_name` | string | Yes | Buyer, agency, authority, or contracting body to analyze |
| `source` | string | No | Optional source focus: all or any supported procurement source (all, sam, ted, contracts_finder, public_contracts_scotland, world_bank, usaspending) [default: "all"] |
| `country_codes` | array | No | Optional ISO alpha-2 country codes to keep the buyer analysis geographically tight |
| `published_from` | string | No | Only include opportunities published on or after this date (YYYY-MM-DD) |
| `awarded_from` | string | No | Only include awards on or after this date (YYYY-MM-DD) |
| `limit` | number | No | Number of opportunities and awards to sample for the summary (1-20, default 10) [default: 10] |

**Returns:** A buyer-level procurement summary covering open opportunities, recent awards, and incumbent signals

**Examples:**

*Summarize a buyer across open tenders and recent awards:*

```json
{
  "buyer_name": "Ministry of Defence",
  "source": "all",
  "limit": 8
}
```

### Match Supplier Profile (`match_supplier_profile`)

Score opportunities against a supplier profile using classification codes, geography, value range, set-asides, target buyers, and freshness.

**Parameters:**

| Name | Type | Required | Description |
|------|------|----------|-------------|
| `query` | string | No | Optional search phrase to seed the candidate opportunity set |
| `source` | string | No | Source to score opportunities from: all, sam, ted, contracts_finder, public_contracts_scotland, or world_bank (all, sam, ted, contracts_finder, public_contracts_scotland, world_bank) [default: "all"] |
| `classification_system` | string | No | Classification system used by target_classification_codes (any, naics, psc, cpv, unspsc) [default: "any"] |
| `target_classification_codes` | array | No | Target NAICS, PSC, CPV, or UNSPSC codes that define the supplier fit |
| `target_country_codes` | array | No | Target ISO alpha-2 country codes where the supplier wants to bid |
| `target_regions` | array | No | Target subregions, states, or regions that matter for delivery coverage |
| `preferred_buyers` | array | No | Buyer names that should boost the fit score when matched |
| `set_aside_eligibility` | array | No | Set-aside terms the supplier is eligible for |
| `value_min` | number | No | Preferred minimum deal size for the supplier profile |
| `value_max` | number | No | Preferred maximum deal size for the supplier profile |
| `limit` | number | No | Maximum scored matches to return per page (1-20, default 10) [default: 10] |
| `page` | number | No | Page number for pagination after scoring (default 1) [default: 1] |

**Returns:** Ranked opportunity matches with fit scores and reasons tied to the supplier profile

**Examples:**

*Score technology procurement opportunities against a supplier profile:*

```json
{
  "query": "software development",
  "classification_system": "cpv",
  "target_classification_codes": [
    "72000000"
  ],
  "target_country_codes": [
    "GB",
    "US"
  ],
  "value_min": 50000,
  "value_max": 5000000,
  "limit": 6
}
```

### Watchlist Snapshot (`watchlist_snapshot`)

Return a compact tender watchlist snapshot sorted by deadline, publication recency, or value for alerting and automation use cases.

**Parameters:**

| Name | Type | Required | Description |
|------|------|----------|-------------|
| `query` | string | No | Keyword, service, buyer, or sector phrase to monitor |
| `source` | string | No | Source to monitor: all, sam, ted, contracts_finder, public_contracts_scotland, or world_bank (all, sam, ted, contracts_finder, public_contracts_scotland, world_bank) [default: "all"] |
| `country_codes` | array | No | Optional ISO alpha-2 country codes to keep the watchlist relevant to target markets |
| `buyer_name` | string | No | Buyer or authority name to monitor |
| `classification_system` | string | No | Classification system to interpret classification_code (any, naics, psc, cpv, unspsc) [default: "any"] |
| `classification_code` | string | No | Classification code fragment to filter by |
| `published_from` | string | No | Only include notices published on or after this date (YYYY-MM-DD) |
| `deadline_before` | string | No | Only include notices due on or before this date (YYYY-MM-DD) |
| `set_aside` | string | No | Set-aside term to monitor when available |
| `include_expired` | boolean | No | When true, include expired notices in the snapshot [default: false] |
| `sort_by` | string | No | How to rank the snapshot items (deadline, published, value) [default: "deadline"] |
| `limit` | number | No | Maximum snapshot items to return (1-20, default 10) [default: 10] |

**Returns:** A compact, sortable watchlist snapshot for recurring procurement monitoring

**Examples:**

*Build a deadline-sorted watchlist for cyber security tenders:*

```json
{
  "query": "cyber security",
  "sort_by": "deadline",
  "limit": 6
}
```

## Quick Start

```bash
# Via CLI
TOOLROUTER_API_KEY=tr_live_xxx npx -y toolrouter-mcp call contract-opportunities search_opportunities --query cyber security --source all --limit 6

# Via REST API
curl -H "Authorization: Bearer tr_live_xxx" \
     -d '{"tool":"contract-opportunities","skill":"search_opportunities","input":{"query":"cyber security","source":"all","limit":6}}' \
     https://api.toolrouter.com/v1/tools/call
```

---

## Get Started with ToolRouter

**Already connected?** Call any tool with `use_tool({ tool, skill, input })`. Browse tools with `discover` or visit https://toolrouter.com/llms-full.txt

**New to ToolRouter?** Connect with one command (no API key needed — auto-provisions on first use):

```bash
# MCP (Claude Code, Codex CLI)
claude mcp add toolrouter -- npx -y toolrouter-mcp

# MCP (Cursor, Windsurf, Cline, VS Code, Gemini CLI, Claude Desktop)
{"mcpServers":{"toolrouter":{"command":"npx","args":["-y","toolrouter-mcp"]}}}

# Claude Chat / Claude Cowork / Claude Mobile — add as a connector:
# Settings → Connectors → Add custom connector → URL: https://api.toolrouter.com/mcp

# ChatGPT — add as an app:
# Settings → Apps → Advanced settings → enable Developer mode → Create app → MCP Server URL: https://api.toolrouter.com/mcp

# CLI (works instantly, no restart needed)
npx -y toolrouter-mcp tools                    # browse all tools
npx -y toolrouter-mcp search "seo"             # search by keyword
npx -y toolrouter-mcp call seo analyze_page --url https://example.com
```

Free tools work immediately. For paid tools, visit https://toolrouter.com/claim to add credits.

All platforms: https://toolrouter.com/connect | Full catalog: https://toolrouter.com/llms-full.txt | Docs: https://toolrouter.com/docs