# Netherlands Public Tender Alerts - TenderNed API (`orange_briefcase_hrj/netherlands-tender-alerts`) Actor

$1.50 per 1,000 notices. Daily Dutch government tender alerts (aanbestedingen, overheidsopdrachten) from TenderNed via its public CC0 web service. Filter by keyword, CPV code, province, contract type and deadline; only new notices are returned.

- **URL**: https://apify.com/orange_briefcase_hrj/netherlands-tender-alerts.md
- **Developed by:** [Fast Agent](https://apify.com/orange_briefcase_hrj) (community)
- **Categories:** Lead generation, Automation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.20 / 1,000 new tender notices

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

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

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
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.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## 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.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

**Price: $1.50 per 1,000 tender notices** ($1.35 on Apify Scale, $1.20 on Business and above) · no API key, login or proxy · official TenderNed open data (CC0)

### In het Nederlands

**Dagelijkse alerts voor overheidsaanbestedingen van TenderNed.** Deze Actor haalt aankondigingen op via de openbare webservice van TenderNed en levert ze als JSON, CSV of Excel.
De gegevens zijn open data onder CC0; elk record vermeldt toch de bron en de ophaaldatum.
Filter op trefwoord, CPV-code, provincie, soort opdracht, Europese of nationale procedure, aanbestedende dienst en sluitingsdatum. Met *Only new since last run* krijgt u bij een dagelijkse planning alleen nieuwe aankondigingen.
Voorbeeld: `"keywords": ["software"], "regions": ["Utrecht", "Noord-Holland"]` geeft ICT-aanbestedingen in Utrecht en Noord-Holland.
Prijs: $ 1,50 per 1.000 aankondigingen plus $ 0,00005 per run.
**Met AI-assistenten:** Werkt ook in ChatGPT, Claude en Cursor via de MCP-server van Apify – zie *Use it from ChatGPT, Claude or Cursor* hieronder.

Get **daily Dutch government tender alerts** (*aanbestedingen*) from **TenderNed**, the Netherlands' official procurement platform, as clean JSON, CSV or Excel. You can filter by keyword, CPV code, province, contract type, EU or national procedure, buyer and deadline. In **"only new since last run"** mode, a scheduled run works as a tender alert service: you only get notices you haven't seen.

Bid teams, SMEs, consultancies and international suppliers can use it to follow Dutch public sector opportunities without checking TenderNed by hand, and send them to email, Slack, Google Sheets or a CRM.

### What does Netherlands Public Tender Alerts do?

- Reads TenderNed's public **TNS publication web service**, listed on data.overheid.nl as open data under **CC0 1.0**. It needs no API key, login or proxy.
- Returns **contract notices** (aankondiging opdracht) by default, plus prior information notices, market consultations, corrections, contract award notices, modifications and early terminations if you want them.
- **Filters** by keywords (any or all, title or full text, accents ignored), excluded words, **CPV prefixes**, **provinces or NUTS codes**, contract type (services, supplies, works), European or national procedure, buyer name and closing date.
- Adds each notice's **CPV codes, NUTS regions, contract start and end, buyer reference, TED number and tender-platform link** (for example Mercell or Negometrix) from its detail record.
- **"Only new since last run" mode** remembers what each alert has already delivered.
- Saves an optional **summary digest** with counts by type, contract type and region, top buyers and the notices closing soonest.
- Paces its requests (0.3 s apart by default) and retries automatically with back-off.

### Why use it?

- **See Dutch tenders on the day they're published**, including national (below EU threshold) procedures that never reach TED.
- **English field names and normalised codes** (`tender`, `services`, `open`) next to the original Dutch labels, so non-Dutch teams can filter easily.
- **Cheap and fast:** official data with no browser, so a daily run takes seconds.

### Use it from ChatGPT, Claude or Cursor

Ask your AI assistant about Dutch government tenders (aanbestedingen) and get live answers from TenderNed, in English, with buyer, deadline and link.

This Actor works as a tool in any AI assistant that supports the [Model Context Protocol (MCP)](https://modelcontextprotocol.io), through the official [Apify MCP server](https://docs.apify.com/platform/integrations/mcp). You ask in plain language; the assistant fills in the filters, runs the Actor and answers from the results.

**MCP server URL (this Actor only):**

```text
https://mcp.apify.com?tools=orange_briefcase_hrj/netherlands-tender-alerts
```

**Set it up once (you need a free Apify account):**

- **Claude (claude.ai and Claude Desktop):** open **Settings → Connectors → Add → Add custom connector**. Enter a name (for example `Dutch tenders`), paste the URL above as the **Remote MCP server URL**, select **Continue**, keep the detected settings and select **Add**. Sign in to Apify when your browser opens. On Team and Enterprise plans, an Owner adds the connector for the organisation.
- **ChatGPT:** custom connectors need ChatGPT **Developer mode** (beta). Go to **Settings → Apps & Connectors → Create**, paste the URL above as the **MCP Server URL**, choose **OAuth** authentication and select **Create**, then sign in to Apify. In a new chat, select **+ → More** and pick the connector.
- **Cursor:** add this to `~/.cursor/mcp.json` (or `.cursor/mcp.json` in a project). Cursor opens your browser to sign in to Apify:

```json
{
  "mcpServers": {
    "netherlands-tender-alerts": {
      "url": "https://mcp.apify.com?tools=orange_briefcase_hrj/netherlands-tender-alerts"
    }
  }
}
```

- **VS Code, Windsurf and other MCP clients:** add the same URL as a remote (Streamable HTTP) MCP server. If a client can't do OAuth, send the header `Authorization: Bearer <YOUR_APIFY_TOKEN>` instead (token from **Apify Console → Settings → API & Integrations**).

Already connected to the full Apify server (`https://mcp.apify.com`) or the Apify plugin for Cursor, Claude Code or VS Code? Just mention `orange_briefcase_hrj/netherlands-tender-alerts` in your request.

**Try asking:**

> "Find Dutch government tenders for software or IT services in Noord-Holland or Utrecht published in the last 7 days, with buyer and deadline."
>
> "List open TenderNed tenders for cleaning services (CPV 90910000) and translate the titles into English."
>
> "Which Rijkswaterstaat tenders were published this week, and when do they close?"

**Cost:** a run started by your assistant is a normal run of this Actor, billed to your Apify account at the usual pay-per-event price ($1.50 per 1,000 notices, see the pricing section below). This Actor charges nothing extra for runs that come through an assistant. Asking for a small number of results (for example "the top 20") keeps runs cheap, and the Apify Free plan's monthly credit covers plenty of tests.

### Screenshots

Real output from the saved example tasks (test runs on 26 October 2026):

![Dutch ICT and software tenders: title, buyer, contract type, published, deadline, main CPV, regions and EU or national scope](https://api.apify.com/v2/key-value-stores/NpvgdYoKm28QhbrG7/records/netherlands-tenders-output.png)

![Dutch government contract award notices: buyer, contract type, procedure, main CPV and TED number](https://api.apify.com/v2/key-value-stores/NpvgdYoKm28QhbrG7/records/netherlands-tenders-awards.png)

#### Ready-made example tasks

- **Dutch ICT & software tenders, daily alert**: CPV `72000000` + `48000000`, open contract notices, only new.
- **Construction tenders in Noord-Holland**: CPV `45000000`, province `Noord-Holland` (nationwide-only notices excluded), only new.
- **Dutch government contract awards**: award notices from the last 30 days, for market intelligence.

### How to use it

1. Enter **keywords** (Dutch terms find the most: `schoonmaak`, `onderhoud`, `software`, `advies`) and/or **CPV codes** (for example `72000000` for IT services).
2. Optionally pick **provinces**, **contract types**, **EU or national** procedures and the **notice types** you want (contract notices by default).
3. Switch on **Only new since last run** (it is off by default, and the example tasks already have it on) and add a **daily schedule** in Apify Console.
4. Connect the output to email, Slack, Google Sheets, Zapier or Make, or download it as CSV, Excel or JSON.

#### Input example

```json
{
  "keywords": ["software", "cloud"],
  "cpvCodes": ["72000000", "48000000"],
  "regions": ["Utrecht", "Noord-Holland"],
  "contractTypes": ["services"],
  "noticeTypes": ["tender"],
  "lookbackDays": 7,
  "onlyNew": true
}
```

#### Output example

```json
{
  "publicationId": "445985",
  "title": "Crisis Communicatie Platform en Bedrijfs Bedienings Platform – Bedrijfsvoerings Centrum (CCP BBP)",
  "buyerName": "Stedin",
  "noticeType": "tender",
  "noticeTypeNl": "Aankondiging opdracht",
  "procedure": "restricted",
  "procedureNl": "Niet-openbaar",
  "contractType": "services",
  "european": true,
  "publishedAt": "2026-10-25T10:07:35Z",
  "deadline": "2026-11-30T09:00:00Z",
  "daysUntilDeadline": 35,
  "noticeUrl": "https://www.tenderned.nl/aankondigingen/overzicht/445985",
  "tenderPlatform": "Mercell",
  "tenderPlatformUrl": "https://s2c.mercell.com/today/240874",
  "cpvCodes": ["32570000-9", "35711000-1", "72000000-5", "48219700-3"],
  "mainCpvCode": "72000000-5",
  "nutsCodes": ["NL"],
  "regions": ["NEDERLAND"],
  "legalFramework": "Aanbestedingswet 2012",
  "tedNoticeNumber": "738652-2026",
  "matchedKeywords": [],
  "firstSeenAt": "2026-10-26T12:43:23Z",
  "dataLicence": "Source: TenderNed (PIANOo, Dutch Ministry of Economic Affairs), public procurement notices, open data under CC0 1.0. Retrieved 2026-10-26."
}
```

The dataset has an **overview table view** (title, buyer, type, contract type, published, deadline, regions, main CPV, EU flag, link). The **SUMMARY** record in the run's key-value store holds the digest.

#### Output fields

| Field | Description |
|---|---|
| `publicationId`, `tenderNedId`, `noticeUrl` | TenderNed publication id, procurement id (shared by all notices of one procurement) and link |
| `title`, `description`, `buyerName`, `buyerReference` | Notice title and description, contracting authority and its reference |
| `noticeType`, `procedure`, `contractType`, `european` | Normalised English values, with the original Dutch in `noticeTypeNl`, `procedureNl`, `formDescriptionNl` |
| `publishedAt`, `deadline`, `deadlineType`, `daysUntilDeadline` | Publication and closing date, in UTC |
| `cpvCodes`, `cpvDescriptionsNl`, `mainCpvCode`, `nutsCodes`, `regions` | Classification and place of performance |
| `contractStart`, `contractEnd`, `legalFramework`, `tedNoticeNumber`, `isAwarded` | Contract details where the buyer provides them |
| `tenderPlatform`, `tenderPlatformUrl`, `pdfUrl` | Where to get the tender documents and submit |
| `matchedKeywords`, `firstSeenAt`, `dataLicence` | Alert metadata and attribution |

### Tips

- **CPV prefixes:** `72000000` matches every code starting with `72`, and `45000000` matches all construction work. The check digit (`-5`) is optional.
- **Provinces:** places of performance use NUTS codes. Many notices only say *Nederland* (`NL`); keep **Include nationwide notices** on so you don't miss them, or switch it off for strictly regional results.
- **Award notices** tell you who bought what and when, with CPV codes. The TenderNed web service doesn't include winners or awarded values, so for those open the notice link or its TED number.
- **Several alerts:** give each one its own **Alert name (state key)**, or use different filters. Each filter set keeps its own memory.

### How much does it cost?

This Actor uses pay-per-event pricing. You pay only for what it delivers, and Apify platform costs are included.

| Apify plan (Store discount tier) | Price per notice | Per 1,000 |
|---|---|---|
| Free, Starter (Bronze) | $0.0015 | $1.50 |
| Scale (Silver) | $0.00135 | $1.35 |
| Business (Gold) and above | $0.0012 | $1.20 |

Each run also has an **Actor start** charge of $0.00005, and a **run summary** charge of $0.002 when *Save a summary* is on (the default). With *Only new since last run* switched on (as in the example alert tasks) you never pay twice for the same notice.

**Worked examples (Free/Starter prices):**

- **Daily ICT alert, about 4 new notices a day:** 30 runs × ($0.00005 + $0.002) + 120 notices × $0.0015 = **about $0.24 a month**.
- **Every new Dutch contract notice (about 25 a working day), daily:** 30 × $0.00205 + 550 × $0.0015 = **about $0.89 a month**.
- **One-off 90-day export of 3,000 notices:** $0.00205 + 3,000 × $0.0015 = **about $4.50**.

The **Apify Free plan includes $5 of platform usage every month** (see [apify.com/pricing](https://apify.com/pricing)), and pay-per-event charges are paid from that credit. That covers the daily ICT alert above about 20 times over. Use **Max notices per run** and Apify's maximum cost per run to cap spend.

### Use via API (Python, JavaScript, cURL)

You can start the Actor from your own code with the official [Apify API clients](https://docs.apify.com/api/client). Get your API token from **Apify Console → Settings → API & Integrations**.

#### Python

```python
from apify_client import ApifyClient

client = ApifyClient("<YOUR_APIFY_TOKEN>")
run = client.actor("orange_briefcase_hrj/netherlands-tender-alerts").call(run_input={
    "keywords": ["software"],
    "cpvCodes": ["72000000"],
    "noticeTypes": ["tender"],
    "lookbackDays": 7,
    "onlyNew": False,
})

for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)
```

Install with `pip install apify-client`.

#### JavaScript / Node.js

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

const client = new ApifyClient({ token: '<YOUR_APIFY_TOKEN>' });
const run = await client.actor('orange_briefcase_hrj/netherlands-tender-alerts').call({
    keywords: ['software'],
    cpvCodes: ['72000000'],
    noticeTypes: ['tender'],
    lookbackDays: 7,
    onlyNew: false,
});

const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);
```

Install with `npm install apify-client`.

#### cURL

This runs the Actor and returns the dataset items in the same request (best for short runs):

```bash
curl -X POST "https://api.apify.com/v2/acts/orange_briefcase_hrj~netherlands-tender-alerts/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"keywords": ["software"], "cpvCodes": ["72000000"], "noticeTypes": ["tender"], "lookbackDays": 7, "onlyNew": false}'
```

For longer runs, call `POST /v2/acts/orange_briefcase_hrj~netherlands-tender-alerts/runs` and read the dataset when the run finishes. You can also add the Actor to Zapier, Make, n8n or a webhook from the **Integrations** tab.

### Data source, licence and attribution

All data comes from **TenderNed** (https://www.tenderned.nl), the Dutch government's procurement platform run by PIANOo for the Ministry of Economic Affairs. Its notice data is published as open data under **CC0 1.0** (dataset *Aankondigingen van overheidsopdrachten - TenderNed* on [data.overheid.nl](https://data.overheid.nl/dataset/aankondigingen-van-overheidsopdrachten---tenderned)), which allows any use, including commercial use. Every record still includes a `dataLicence` field with the source and retrieval date.

This Actor is an **independent tool**. It isn't affiliated with or endorsed by TenderNed, PIANOo or the Dutch government. TenderNed notes that the web service may change without notice; if it does, we fix the Actor quickly. Always check the official notice before you bid.

**Personal data:** the Actor outputs notice data only. It doesn't add buyer contact persons. Descriptions can occasionally name a person; handle those in line with the GDPR.

### Related tools

Other tools from the same publisher, all built on official open-data APIs:

| Tool | What it does |
|---|---|
| [UK Public Tender Alerts](https://apify.com/orange_briefcase_hrj/uk-tender-alerts) | Daily alerts for new UK government tenders and contract awards from Find a Tender and Contracts Finder. |
| [UK Company Check & Change Monitor](https://apify.com/orange_briefcase_hrj/uk-company-check) | Bulk Companies House checks with a RED/AMBER/GREEN risk flag, plus a monitor mode that outputs only changes. |
| [German Case Law Search & Ruling Alerts](https://apify.com/orange_briefcase_hrj/german-case-law-search) | Search BGH, BVerfG, BAG, BFH and other German federal court decisions, with full text and new-ruling alerts. |
| [Sweden Job Ads API (Platsbanken)](https://apify.com/orange_briefcase_hrj/sweden-job-ads-platsbanken) | Swedish job ads from Arbetsförmedlingen's official JobTech API, with English labels and daily alerts. |

**Tip:** EU-level Dutch tenders are also on TED. To follow UK opportunities as well, use **UK Public Tender Alerts** with the same keywords.

### FAQ

**Do I need a TenderNed account or API key?** No. The publication web service is public. (TenderNed's separate XML API needs credentials; this Actor doesn't use it.)

**Is it legal to reuse TenderNed data commercially?** Yes. TenderNed publishes it under CC0 1.0 (public domain dedication).

**Can I search in English?** Notices are mostly in Dutch, but some EU notices and IT tenders use English terms. CPV codes work in any language.

**How often should I run it?** Once a day. TenderNed publishes roughly 60–90 notices of all types per working day.

**Something is missing or wrong?** Open an issue on the Actor's Issues tab and include your input. We usually reply within a few days.

**Where can I see what changed?** See the Changelog tab.

# Changelog

This Actor's version history is a separate document: https://apify.com/orange_briefcase_hrj/netherlands-tender-alerts/changelog.md

# Actor input Schema

## `keywords` (type: `array`):

Words or phrases to look for in the notice title and description (case-insensitive, whole words, accents ignored). Leave empty for every notice that matches the other filters.

## `keywordMatch` (type: `string`):

Match notices containing ANY of the keywords, or ALL of them.

## `searchIn` (type: `string`):

Look for keywords in the title and description, or in the title only (fewer, more precise matches).

## `excludeKeywords` (type: `array`):

Skip notices whose title or description contains any of these words.

## `cpvCodes` (type: `array`):

Common Procurement Vocabulary codes, with or without the check digit. Prefix matching: 72000000 matches every IT service code starting with 72; 45000000 matches all construction work. Leave empty for all.

## `regions` (type: `array`):

Limit to places of performance. Use province names (Groningen, Friesland, Drenthe, Overijssel, Gelderland, Flevoland, Utrecht, Noord-Holland, Zuid-Holland, Zeeland, Noord-Brabant, Limburg) or NUTS codes such as NL32 or NL329 (prefix match). Leave empty for the whole country.

## `includeNationwide` (type: `boolean`):

When provinces are set, also keep notices whose place of performance is only given as 'Nederland' (NL).

## `contractTypes` (type: `array`):

Services, supplies (goods) or works. Leave empty for all.

## `scope` (type: `string`):

European (above EU threshold, also published on TED) or national procedures only, or both.

## `buyerContains` (type: `array`):

Only keep notices whose contracting authority name contains one of these strings (e.g. 'Gemeente Amsterdam', 'Rijkswaterstaat', 'Ministerie').

## `noticeTypes` (type: `array`):

Which kinds of TenderNed publication to return. 'tender' = open contract notices (aankondiging opdracht).

## `excludeExpired` (type: `boolean`):

Drop tenders, corrections and market consultations whose closing date is already in the past.

## `deadlineFrom` (type: `string`):

Only keep notices whose closing date is on or after this date (YYYY-MM-DD). Notices without a closing date are kept.

## `lookbackDays` (type: `integer`):

How many days of publications to fetch on a normal run, or on the first run in 'only new' mode (1-365).

## `onlyNew` (type: `boolean`):

Remember notices already delivered (per filter set) and only output new ones. Ideal for a daily schedule. Switch it on for scheduled alerts (off by default so one-off searches always return results).

## `stateKey` (type: `string`):

Optional name for this alert's memory. By default it is derived from your filters, so changing filters starts a fresh alert.

## `includeDetails` (type: `boolean`):

Fetch each matching notice's detail record (one extra API request per notice) for CPV codes, NUTS regions, contract start/end, buyer reference, TED number and PDF link.

## `includeSummary` (type: `boolean`):

Save a digest (counts, top buyers, closing-soonest notices) as SUMMARY in the run's key-value store.

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

Stop after this many notices. In 'only new' mode anything left over is picked up on the next run.

## `requestIntervalSecs` (type: `number`):

Pause between requests to TenderNed. Keep the default to be polite to the public service.

## Actor input object example

```json
{
  "keywords": [
    "software",
    "ICT"
  ],
  "keywordMatch": "any",
  "searchIn": "titleAndDescription",
  "excludeKeywords": [],
  "cpvCodes": [],
  "regions": [],
  "includeNationwide": true,
  "contractTypes": [],
  "scope": "all",
  "buyerContains": [],
  "noticeTypes": [
    "tender"
  ],
  "excludeExpired": true,
  "lookbackDays": 14,
  "onlyNew": false,
  "includeDetails": true,
  "includeSummary": true,
  "maxResults": 20,
  "requestIntervalSecs": 0.3
}
```

# Actor output Schema

## `results` (type: `string`):

No description

## `summary` (type: `string`):

No description

# 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 = {
    "keywords": [
        "software",
        "ICT"
    ],
    "lookbackDays": 14,
    "maxResults": 20
};

// Run the Actor and wait for it to finish
const run = await client.actor("orange_briefcase_hrj/netherlands-tender-alerts").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 = {
    "keywords": [
        "software",
        "ICT",
    ],
    "lookbackDays": 14,
    "maxResults": 20,
}

# Run the Actor and wait for it to finish
run = client.actor("orange_briefcase_hrj/netherlands-tender-alerts").call(run_input=run_input)

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

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

```

## CLI example

```bash
echo '{
  "keywords": [
    "software",
    "ICT"
  ],
  "lookbackDays": 14,
  "maxResults": 20
}' |
apify call orange_briefcase_hrj/netherlands-tender-alerts --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,orange_briefcase_hrj/netherlands-tender-alerts"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/WR16ZY5IiYOojDbOx/builds/EnqVXk9F5dH0ViAOB/openapi.json
