# 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:** ```json { "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 ```json { "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 ```bash 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 ```bash # 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) ```bash # 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*