Descargar fichas públicas en JSON o CSV · licencia y procedencia
API pública SDRX
Contrato v1.0.0 · consultas GET sin cuenta ni token
Contrato y compatibilidad
Descargar OpenAPI 3.1 · v1SHA-256: 6a857841dea5eed5d262ca045e1619e8fba0ca2e44b93e8ee7b871bf42793f07
El contrato describe las rutas existentes. Su versión es independiente de la versión del portal. Los clientes deben tolerar campos nuevos y conservar la atribución shared_by y las condiciones declaradas por el operador. Cambios incompatibles necesitarán otro contrato mayor.
El contrato cubre consultas GET. No promete CORS abierto: consulta desde tu servidor o desde el mismo origen. No envíes credenciales de Cloudflare, SMTP ni claves de estación para leer estos datos.
Consultas disponibles
| RUTA | CONTENIDO | LÍMITES |
|---|---|---|
GET /api/stations.json | Solo estaciones actualmente publicadas, con atribución, pasaporte, bandas, horarios, mantenimiento y estado HTTP. | page_size 1–100, predeterminado 100; cursor firmado, orden UUID. |
GET /api/locations/?country=mx | Estados del país; añade state=hgo para divisiones locales. | Catálogo local revisado; cache público de una hora. Los nombres y tipos administrativos dependen del país y de la edición de la fuente. |
GET /api/health/ | Salud del portal SDRX. | No informa de la operatividad RF de ningún receptor. |
GET /api/station/UUID/health-history/?days=7 | Agregados horarios de comprobaciones HTTP de una estación publicada. | 7, 30 o 90 días; horas sin muestras con valores desconocidos. |
Consultar y recorrer el directorio
curl 'https://sdr.j8.cl/api/stations.json?page_size=100'
curl 'https://sdr.j8.cl/api/stations.json?country=mx&mhz=14.2'
curl 'https://sdr.j8.cl/api/locations/?country=mx&state=hgo'Usa el valor relativo de pagination.next con el mismo origen, sin modificarlo. No se recorren páginas con page=. Los enlaces caducan a los 30 minutos y están ligados a los filtros y tamaño; un cursor alterado, vencido o usado con otros filtros devuelve 400. Reinicia la consulta desde la primera página si vence.
La instantánea excluye altas y publicaciones posteriores. La privacidad, publicación y filtros de salud se vuelven a evaluar en cada consulta: el total puede cambiar y una estación retirada puede desaparecer durante el recorrido.
Filtros: q, country, state, city, kind, band, available=1 y mhz. Para OpenWebRX+ codifica el signo como kind=openwebrx%2B. Una frecuencia debe caer dentro de una banda habilitada; entradas no numéricas, no finitas o fuera de rango se ignoran. Los textos que exceden los límites del contrato se truncan.
Interpretar estados y disponibilidad
El mapa mixto usa /api/receivers.json, con continuación firmada igual que el directorio. Las referencias externas incluyen country estimado mediante sus coordenadas y Natural Earth, health_scope: http, checked_at y http_status. Su observación caduca a los 30 minutos. Un resultado up confirma acceso HTTP desde el VPS; no acredita audio, antena ni ausencia de malware. Las referencias sin coordenadas siguen en el listado. Los reportes públicos nunca cambian el estado automáticamente.
health_scope: http mide acceso web. health es up, down o unknown; observed_health conserva la observación registrada. health_fresh exige una comprobación de antigüedad menor de 15 minutos y sin fecha futura. Los errores HTTP y de conexión se registran como Down desde la primera observación fallida. Ni una página correcta ni el pasaporte acreditan recepción RF o audio.
Las bandas usan Hz enteros. available es booleano o null: null significa que no se puede confirmar, no equivale a false. La telemetría caduca a los 300 segundos; observed_at, expires_at, fresh, expires_in_seconds y state explican su vigencia. Una banda deshabilitada devuelve false y state disabled. Un receptor sin salud vigente impide presentar su banda como disponible.
schedule es un plan del operador, separado de la medición. Sus días siguen ISO: 1 lunes–7 domingo. Ventanas nocturnas pertenecen al día de inicio; horas iguales indican 24 horas desde el inicio. La zona IANA conserva reglas locales. planned_now nunca sustituye available.
maintenance contiene avisos futuros o en su intervalo previsto; no prueba que el trabajo ocurra realmente ni pausa monitoreo o plazos de retirada. endpoint.url solo se publica cuando la ruta HTTPS está comprobada y vigente; los alias mostrados también requieren control, ruta y TLS.
Modos, equipo, antena, versión y condiciones tienen origen operator_declared. shared_by identifica al usuario y UID que comparte la estación. Solo se incluyen las coordenadas que el operador publicó.
Historial y errores
El historial conserva aproximadamente 90 días de agregados horarios desde que empezó la recogida. is_time_weighted_uptime: false: el porcentaje es la fracción de comprobaciones correctas, no tiempo continuo disponible. Puede mezclar comprobaciones manuales y periódicas. Horas sin muestras usan null para proporciones y latencia; el intervalo actual está incompleto. Una revisión distinta de estación se marca sin exponer URLs o credenciales.
Directorio e historial usan Cache-Control: no-store. Comprueba el estado HTTP y Content-Type antes de leer JSON. Los parámetros inválidos devuelven 400 con error; un historial inexistente o no publicado puede devolver 404 HTML, y un método no admitido 405 HTML. El UUID de un historial debe proceder del directorio público.
Las escrituras con clave de estación pertenecen al SDK y contrato de telemetría, con límites y errores propios. Esta API pública no crea estaciones, usuarios, DNS, sesiones de audio ni visitas al receptor.