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
| Methode | Pad | Scope | Wat |
|---|---|---|---|
| GET | /me | read | Gebruiker, werkruimte, plan en scopes |
| GET | /opportunities | read | Open opdrachten zoeken, met score |
| GET | /opportunities/{table}/{id} | read | Details van een publicatie, bericht of besluit |
| GET | /signals | read | Signalen uit besluiten vóór de publicatie |
| GET | /awards | read | Gunningen (Pro-functie) |
| GET | /matches | read | Matches van het bedrijfsprofiel |
| GET | /profile | read | Bedrijfsprofiel |
| PUT | /profile | write | Bedrijfsprofiel bijwerken (eigenaar of beheerder) |
| GET | /pipeline | read | Pipeline van de werkruimte |
| PUT | /pipeline/{table}/{id} | write | Status zetten: { "status": "go" } |
| PATCH | /pipeline/{table}/{id} | write | Notitie bewaren: { "note": "..." } |
| DELETE | /pipeline/{table}/{id} | write | Uit de pipeline halen |
| GET | /follows | read | Gevolgde aanbesteders en concurrenten |
| POST | /follows | write | Volgen: { "type": "buyer", "key": "5563" } |
| DELETE | /follows?type=...&key=... | write | Niet 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.