TenderRadar

API en MCP

Koppel TenderRadar aan je CRM, je eigen scripts of een AI-assistent. Met een persoonlijke API-sleutel lees en beheer je de gegevens van je eigen werkruimte en doorzoek je alle publieke inhoud.

Meld je aan om API-sleutels aan te maken. API- en MCP-toegang zit in het Team-plan.

Basis

Base URL: https://tenderradar-alpha.vercel.app/api/v1. Alle antwoorden zijn JSON. De volledige specificatie staat in openapi.json (OpenAPI 3.1, bruikbaar in Postman, Insomnia of een codegenerator).

Authenticatie met een persoonlijke sleutel in de header Authorization: Bearer trk_.... De sleutel bepaalt de werkruimte: je ziet en wijzigt enkel de gegevens van je eigen werkruimte. Tenders, besluiten en gunningen zijn publieke inhoud, met dezelfde planlimieten als in de webapp.

  • read: zoeken en lezen (opdrachten, signalen, gunningen, matches, profiel, pipeline, gevolgde items).
  • write: daarnaast de pipeline en gevolgde items beheren. Het bedrijfsprofiel wijzigen kan enkel als je eigenaar of beheerder van de werkruimte bent.

Rate limit: 120 verzoeken per minuut per sleutel. Daarboven krijg je 429 met een Retry-After-header. Fouten hebben de vorm { "error": { "code": "...", "message": "..." } } met status 401 (geen of ongeldige sleutel), 403 (scope, rol of plan), 404, 422 (ongeldige invoer) of 429.

Endpoints

MethodePadScopeWat
GET/mereadGebruiker, werkruimte, plan en scopes
GET/opportunitiesreadOpen opdrachten zoeken, met score
GET/opportunities/{table}/{id}readDetails van een publicatie, bericht of besluit
GET/signalsreadSignalen uit besluiten vóór de publicatie
GET/awardsreadGunningen (Pro-functie)
GET/matchesreadMatches van het bedrijfsprofiel
GET/profilereadBedrijfsprofiel
PUT/profilewriteBedrijfsprofiel bijwerken (eigenaar of beheerder)
GET/pipelinereadPipeline van de werkruimte
PUT/pipeline/{table}/{id}writeStatus zetten: { "status": "go" }
PATCH/pipeline/{table}/{id}writeNotitie bewaren: { "note": "..." }
DELETE/pipeline/{table}/{id}writeUit de pipeline halen
GET/followsreadGevolgde aanbesteders en concurrenten
POST/followswriteVolgen: { "type": "buyer", "key": "5563" }
DELETE/follows?type=...&key=...writeNiet meer volgen

Records duid je aan met table (publications, external_notices of decisions) en id. Lijsten pagineren met page en page_size (maximaal 100).

Voorbeelden

Open opdrachten in de wegenbouw (CPV 4523) in Vlaanderen, hoogste score eerst:

curl -H "Authorization: Bearer $TENDERRADAR_KEY" \
  "https://tenderradar-alpha.vercel.app/api/v1/opportunities?cpv=4523&nuts=BE2&sort=score&page_size=20"

Een opdracht op "go" zetten in de pipeline:

curl -X PUT -H "Authorization: Bearer $TENDERRADAR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"status":"go"}' \
  "https://tenderradar-alpha.vercel.app/api/v1/pipeline/publications/<id>"

Een concurrent volgen op KBO-nummer:

curl -X POST -H "Authorization: Bearer $TENDERRADAR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"type":"competitor","key":"0207.437.468"}' \
  "https://tenderradar-alpha.vercel.app/api/v1/follows"

MCP-server voor AI-assistenten

Met de MCP-server gebruikt een assistent zoals Claude TenderRadar rechtstreeks: opdrachten en signalen zoeken, je matches bekijken en je pipeline bijwerken. URL: https://tenderradar-alpha.vercel.app/api/mcp (Streamable HTTP, stateless). Authenticatie gebeurt enkel met een API-sleutel; met een sleutel zonder write-scope krijgt de assistent enkel de leestools.

Claude Code:

claude mcp add --transport http tenderradar https://tenderradar-alpha.vercel.app/api/mcp --header "Authorization: Bearer trk_..."

Andere clients (JSON-configuratie, bv. Claude Desktop, Cursor of VS Code):

{
  "mcpServers": {
    "tenderradar": {
      "type": "http",
      "url": "https://tenderradar-alpha.vercel.app/api/mcp",
      "headers": {
        "Authorization": "Bearer trk_..."
      }
    }
  }
}

Leestools: whoami, search_opportunities, get_opportunity, search_signals, search_awards, list_matches, get_profile, list_pipeline, list_follows.

Schrijftools (scope write): set_pipeline_status, set_pipeline_note, remove_from_pipeline, follow, unfollow.

Tip: maak voor een assistent een aparte sleutel aan, bij voorkeur met enkel leesrechten en een vervaldatum. Je kan hem op elk moment hierboven intrekken.