bacontest/ted-portal-licitaciones.md

5.4 KiB

Portal de Licitaciones de la Unión Europea — TED (Tenders Electronic Daily)

Informe técnico — 2026-07-20


¿Qué es TED?

Tenders Electronic Daily (TED) es el portal oficial de contratación pública de la Unión Europea. Contiene todas las licitaciones y contratos publicados en el Suplemento del Diario Oficial de la UE.

  • URL: https://ted.europa.eu
  • Cobertura: 27 países miembros + Islandia, Liechtenstein y Noruega (EEE)
  • Volumen: ~700.000 licitaciones/año
  • Coste: Gratuito

API de TED (Sin Autenticación)

La API de TED no requiere cuenta ni API key. Es completamente abierta.

Endpoints

Servidor URL
Producción https://api.ted.europa.eu/
Alternativo https://tedweb.api.ted.europa.eu/

Búsqueda de Avisos

POST https://api.ted.europa.eu/v3/notices/search
Content-Type: application/json

Ejemplo — Avisos de hoy:

{
  "query": "publication-date >= 20260720",
  "fields": ["BT-21-Procedure", "publication-date"],
  "limit": 10
}

Formato de fecha: YYYYMMDD (ej: 20260720)

Formato de consulta: Expert search query

  • publication-date >= 20260720
  • publication-date = today(0) (hoy)
  • publication-date = today(-7) (última semana)

Campos Disponibles (ejemplos)

Campo Descripción
BT-21-Procedure Nombre del procedimiento
publication-date Fecha de publicación
notice-type Tipo de aviso
country País
cpv-code Código CPV

Respuesta

{
  "notices": [
    {
      "publication-number": "497792-2026",
      "publication-date": "2026-07-20+02:00",
      "links": {
        "xml": {"MUL": "https://ted.europa.eu/en/notice/497792-2026/xml"},
        "html": {"ENG": "https://ted.europa.eu/en/notice/-/detail/497792-2026"}
      }
    }
  ],
  "total": 1234
}

Prueba Rápida

curl -X POST "https://api.ted.europa.eu/v3/notices/search" \
  -H "Content-Type: application/json" \
  -d '{"query":"publication-date >= 20260720","fields":["BT-21-Procedure"],"limit":2}'

Documentación Swagger: https://ted.europa.eu/api/documentation/index.html


RSS Feeds (Requiere Cuenta)

Característica Detalle
Página https://ted.europa.eu/en/simap/rss-feed
Requisito Cuenta TED (gratuita)
Funcionamiento Guardar búsqueda → activar RSS → URL generada

Descarga Masiva XML

Tipo URL
Diario https://ted.europa.eu/packages/daily/{YYYYMMDD}
Mensual https://ted.europa.eu/packages/monthly/{YYYY-MM}
Datos abiertos https://data.europa.eu

Opciones de Monitorización Diaria

Opción 1: Script Python + crontab

# Script que consulta la API TED y guarda en SQLite
ted_monitor.py --cpv 72000000 --country ES --days 1

# crontab: ejecutar todos los días a las 8:00
0 8 * * * /usr/bin/python3 /home/user/ted_monitor.py
Aspecto Detalle
Dependencias Python 3, requests, SQLite
Control Total — tú defines filtros, formato, destino
Notificación Email, Telegram bot, ntfy, archivo
IA para resumir Opcional (llamar a LLM tras obtener resultados)
Mantenimiento Tú lo mantienes
Ideal para Control total, sin infraestructura adicional

Opción 2: Bot Hermes (cron job)

# Hermes cron ejecuta un prompt diariamente
hermes cron create "0 8 * * *" "Consulta API TED, filtra por CPV 72000000, resume licitaciones relevantes, envía por Telegram"
Aspecto Detalle
Dependencias Hermes activo
Control Medio — configuras vía cron job
Notificación Telegram, XMPP, Discord (ya configurados)
IA para resumir Incluido — LLM resume y destaca
Mantenimiento Hermes lo gestiona
Ideal para Si ya usas Hermes, resumen inteligente

Opción 3: n8n / Node-RED (self-hosted)

Trigger diario → HTTP Request API TED → filtra → envía
Aspecto Detalle
Dependencias Docker (n8n o Node-RED)
Control Visual, sin código
Ideal para Flujos complejos, múltiples destinos

Opción 4: PWA + Service Worker

Navegador → fetch API TED → notificaciones push
Aspecto Detalle
Dependencias Solo navegador
Control Limitado
Ideal para Sin servidor, uso personal

Opción 5: RSS → IFTTT / Zapier

RSS TED → filtro → email/Telegram
Aspecto Detalle
Dependencias Cuenta TED + cuenta IFTTT/Zapier
Control Limitado por la plataforma
Ideal para Sin código, uso casual

Conclusión

Método Autenticación Ideal para
API de búsqueda No necesaria Integración programática, monitorización
RSS Feeds Cuenta TED Notificaciones automáticas
Descarga XML No necesaria Análisis de datos completos

La API de búsqueda es la opción más práctica: no requiere cuenta, es RESTful, y devuelve resultados en JSON listos para procesar.

Para monitorización diaria: Script Python + crontab (control total) o Hermes cron (resumen inteligente con IA).


Informe generado por Hermes Agent — 2026-07-20