🔍 Administración de Scrapers

Gestiona y ejecuta tus scrapers (Power BI, SAG y Syngenta)

Cargando scrapers...

⏰ Ejecución Automática (Scheduler)

Configura la ejecución diaria automática de todos los scrapers

Cargando configuración del scheduler...

🔑 Administración de API Keys

Genera y gestiona API keys para monetizar el acceso a los datos

Cargando API keys...

📚 Documentación de API

Consulta datos directamente desde aplicaciones externas

🌐 Información General

Esta API permite consultar los datos extraídos por los scrapers sin necesidad de almacenarlos en tu propia base de datos. Todos los endpoints soportan filtros y paginación para facilitar la integración con aplicaciones externas.

Base URL: Cargando...

🔌 Conectar desde Aplicaciones Externas

🔐 Autenticación con API Key

Esta API requiere autenticación mediante API key. Todas las consultas de datos deben incluir el header X-API-Key con una API key válida.

✅ Cómo obtener tu API Key:
1. Ve al módulo 🔑 API Keys en el menú lateral
2. Haz clic en + Generar Nueva API Key
3. Ingresa los datos del cliente y genera la key
4. Copia la API key generada (formato: sk_live_...)

📋 Ejemplos de Integración

JavaScript / Node.js
// Consultar registros de SAG Chile con filtros
const response = await fetch('https://sag.xportplan.com/api/records/sag-chile?especie=MANZANO&limit=100', {
    headers: {
        'X-API-Key': 'sk_live_TU_API_KEY_AQUI'
    }
});
const data = await response.json();

console.log(`Total: ${data.total}`);
data.records.forEach(record => {
    console.log(`${record.codigo_sag} - ${record.especie} - ${record.region}`);
});
Python
import requests

# Consultar datos de SAG México con clasificación
url = 'https://sag.xportplan.com/api/records/sagmex'
headers = {
    'X-API-Key': 'sk_live_TU_API_KEY_AQUI'
}
params = {
    'clasificacion': 'A',
    'region': 'METROPOLITANA',
    'limit': 50
}

response = requests.get(url, headers=headers, params=params)
data = response.json()

print(f"Total de registros: {data['total']}")
for record in data['records']:
    print(f"{record['codigo_sag']} - {record['clasificacion']}")
cURL
# Consultar estadísticas de Syngenta
curl -X GET "https://sag.xportplan.com/api/stats/syngenta" \
  -H "X-API-Key: sk_live_TU_API_KEY_AQUI"

# Consultar registros con paginación
curl -X GET "https://sag.xportplan.com/api/records/sag-chile?limit=100&offset=0" \
  -H "X-API-Key: sk_live_TU_API_KEY_AQUI"
Excel / Power BI

Puedes importar los datos directamente en Excel o Power BI usando la función Obtener datos desde la Web y proporcionando la URL del endpoint (ej: https://sag.xportplan.com/api/records/sag-chile).

💡 Recomendaciones

  • Paginación: Usa los parámetros limit y offset para consultas grandes
  • Filtros: Aprovecha los filtros de especie, región y clasificación para optimizar las consultas
  • Caché: Implementa caché local para reducir la cantidad de peticiones
  • Estadísticas primero: Consulta los endpoints /api/stats/* antes de descargar datos masivos

🇨🇱 SAG Chile - Sitios de Producción

GET /api/records/sag-chile

Consulta registros de sitios de producción aprobados por SAG Chile (~4,659 registros, 233 páginas).

Parámetros de consulta (opcionales):
  • codigos - Buscar múltiples SDP separados por coma (ej: 46993,12345,67890). Máx 100 códigos NUEVO
  • run_id - Filtrar por ID de ejecución específica
  • especie - Filtrar por especie (ej: "Arándano")
  • region - Filtrar por región (ej: "Maule")
  • limit - Límite de registros (default: 100)
  • offset - Desplazamiento para paginación (default: 0)

Ejemplo cURL:

curl -X GET "https://sag.xportplan.com/api/records/sag-chile?codigos=46993,12345&limit=10"

Respuesta de ejemplo:

{ "records": [ { "id": 1, "run_id": 5, "codigo_sag": "12345", "nombre_sdp": "Productor Ejemplo", "productor": "Juan Pérez", "autorizado_muestreo": "Si", "especie": "Arándano", "variedad": "Duke", "comuna": "Curicó", "region": "Maule" } ], "total": 150, "limit": 10, "offset": 0 }
GET /api/stats/sag-chile

Obtiene estadísticas agregadas de los datos de SAG Chile.

Ejemplo cURL:

curl -X GET "https://sag.xportplan.com/api/stats/sag-chile"

Respuesta de ejemplo:

{ "total_records": 4659, "unique_species": 45, "top_regions": [ {"region": "O'Higgins", "count": 1250}, {"region": "Maule", "count": 980} ] }

🇲🇽 SAG México - Registro de Exportación

GET /api/records/sagmex

Consulta registros de sitios habilitados para exportación a México con campo CLASIFICACIÓN (~12,625 registros, 632 páginas).

Parámetros de consulta (opcionales):
  • codigos - Buscar múltiples SDP separados por coma (ej: 46993,12345,67890). Máx 100 códigos
  • clasificacion - Filtrar por clasificación: "A", "B", "C*", "Excluido" IMPORTANTE
  • especie - Filtrar por especie
  • region - Filtrar por región
  • run_id - Filtrar por ID de ejecución específica
  • limit - Límite de registros (default: 100)
  • offset - Desplazamiento para paginación (default: 0)

Ejemplo cURL:

curl -X GET "https://sag.xportplan.com/api/records/sagmex?codigos=46993,12345&limit=10"

Respuesta de ejemplo:

{ "records": [ { "id": 1, "run_id": 198, "codigo_sag": "52366", "nombre_sdp": "CECO 21919", "solicita_muestreo": "SI", "especie": "CIRUELA", "variedad": "FLAVOR BLAST", "clasificacion": "C*", "especie_variedad_clasificacion_raw": [ "CIRUELA.FLAVOR BLAST -Clasificación: C*", "CIRUELA.CHERRY PLUM II -Clasificación: A", "CIRUELA.SWEET PIXIES -Clasificación: A" ], "variedades_clasificacion": [ {"especie": "CIRUELA", "variedad": "FLAVOR BLAST", "clasificacion": "C*"}, {"especie": "CIRUELA", "variedad": "CHERRY PLUM II", "clasificacion": "A"}, {"especie": "CIRUELA", "variedad": "SWEET PIXIES", "clasificacion": "A"} ], "comuna": "PICHIDEGUA", "region": "6.0", "fecha_registro": "Dic. 3, 25" } ], "total": 12886, "limit": 10, "offset": 0 }
💡 Nuevo campo variedades_clasificacion: Cada registro ahora incluye un array estructurado con la clasificación individual por cada especie/variedad. Esto permite consultar la clasificación específica de cada variedad sin parsear el campo raw.
GET /api/stats/sagmex

Obtiene estadísticas agregadas incluyendo distribución de clasificaciones.

Ejemplo cURL:

curl -X GET "https://sag.xportplan.com/api/stats/sagmex"

Respuesta de ejemplo:

{ "total_records": 12625, "unique_species": 52, "classifications": { "A": 5230, "B": 3180, "C*": 2450, "Excluido": 1765 }, "top_regions": [...] }

📊 Power BI - Datos de Monitoreo

GET /api/records/powerbi

Consulta datos de monitoreo extraídos de dashboards de Power BI con 8 columnas específicas.

Columnas disponibles:
  • csg - Código CSG del sitio
  • sector - Nombre del sector
  • variedad - Variedad de planta
  • fecha_muestreo - Fecha de muestreo
  • momento_muestra - Momento de toma de muestra
  • deteccion - Detección Cydia pomonella
  • observaciones - Observaciones del monitoreo
  • ar_km - AR C. capitata
Parámetros de consulta (opcionales):
  • run_id - Filtrar por ID de ejecución específica
  • csg - Filtrar por código CSG (búsqueda parcial)
  • sector - Filtrar por sector (búsqueda parcial)
  • variedad - Filtrar por variedad (búsqueda parcial)
  • limit - Límite de registros (default: 100)
  • offset - Desplazamiento para paginación (default: 0)

Ejemplo cURL:

curl -X GET "https://sag.xportplan.com/api/records/powerbi?sector=norte&variedad=gala&limit=10" \ -H "X-API-Key: sk_live_TU_API_KEY_AQUI"

Respuesta de ejemplo:

{ "records": [ { "id": 1, "run_id": 3, "csg": "12345", "sector": "Norte Alto", "variedad": "Gala", "fecha_muestreo": "2024-03-15", "momento_muestra": "Cosecha", "deteccion": "No Detectado", "observaciones": "Muestreo normal", "ar_km": "0.5", "created_at": "2024-03-20T10:30:00" } ], "total": 450 }
GET /api/stats/powerbi

Obtiene estadísticas agregadas de los datos de Power BI.

Ejemplo cURL:

curl -X GET "https://sag.xportplan.com/api/stats/powerbi" \ -H "X-API-Key: sk_live_TU_API_KEY_AQUI"

Respuesta de ejemplo:

{ "total_records": 2340, "unique_varieties": 24, "unique_sectors": 15, "top_sectors": [ {"sector": "Norte Alto", "count": 320}, {"sector": "Sur Bajo", "count": 280} ], "records_by_run": [ {"run_id": 3, "count": 2340} ] }

🌱 Syngenta - Red de Monitoreo (PDF)

GET /api/records/syngenta

Consulta registros extraídos de PDFs del portal SAG para la Red de Monitoreo Syngenta.

Parámetros de consulta (opcionales):
  • run_id - Filtrar por ID de ejecución específica
  • especie - Filtrar por especie
  • region - Filtrar por región
  • limit - Límite de registros (default: 100)
  • offset - Desplazamiento para paginación (default: 0)

Ejemplo cURL:

curl -X GET "https://sag.xportplan.com/api/records/syngenta?especie=Uva&limit=10"

Respuesta de ejemplo:

{ "records": [ { "id": 1, "run_id": 12, "nombre_exportadora": "Syngenta Chile S.A.", "sdp_mexico": "SGMX001", "codigo_sag": "54321", "nombre_productor": "Agrícola del Sur", "especie": "Uva de mesa", "region": "Valparaíso", "comuna": "Quillota" } ], "total": 320 }
GET /api/stats/syngenta

Obtiene estadísticas agregadas de los datos de Syngenta.

Respuesta de ejemplo:

{ "total_records": 320, "unique_species": 12, "top_regions": [...] }

🇨🇳 China - Registros Multi-especie

GET /api/records/china

Consulta registros de exportación a China extraídos de archivos Excel del portal SAG. Incluye tanto CSG (Orchard) como CSP (Facilities) de múltiples especies. Soporta consulta por múltiples CSG en una sola llamada.

Parámetros de consulta (opcionales):
  • codigos - Lista de códigos CSG separados por coma (máx 100). Ej: codigos=89147,89148,113231
  • csg - Buscar por código CSG individual (búsqueda parcial)
  • run_id - Filtrar por ID de ejecución específica
  • especie - Filtrar por especie (ej: CHERRY, TABLE GRAPE, APRICOT)
  • region - Filtrar por región
  • tipo_registro - Filtrar por tipo: CSG o CSP
  • limit - Límite de registros (default: 100)
  • offset - Desplazamiento para paginación (default: 0)

Ejemplo cURL - Consulta múltiples CSG:

curl -X GET "https://sag.xportplan.com/api/records/china?codigos=89147,89148,113231&limit=100" \ -H "X-API-Key: sk_live_TU_API_KEY_AQUI"

Ejemplo cURL - Filtro por especie:

curl -X GET "https://sag.xportplan.com/api/records/china?especie=CHERRY&tipo_registro=CSG&limit=10" \ -H "X-API-Key: sk_live_TU_API_KEY_AQUI"

Respuesta de ejemplo:

{ "total": 3, "offset": 0, "limit": 100, "codigos_consultados": ["89147", "89148", "113231"], "records": [ { "id": 1, "run_id": 15, "codigo": "113231", "tipo_registro": "CSG", "especie": "CHERRY", "grower_name": "AGRICOLA SANTA MARTA LTDA.", "orchard_facility_name": "SAN VICENTE", "cod_region": "RM", "region": "METROPOLITANA DE SANTIAGO", "district": "BUIN", "address": "CAMINO LOS AROMOS S/N", "note": "-", "fecha_actualizacion": "2025-10-27" } ], "filters": { "csg": null, "especie": null, "region": null, "tipo_registro": null } }
GET /api/stats/china

Obtiene estadísticas agregadas de los datos de exportación a China. Incluye distribución por especie, tipo de registro (CSG/CSP) y regiones.

Ejemplo cURL:

curl -X GET "https://sag.xportplan.com/api/stats/china" \ -H "X-API-Key: sk_live_TU_API_KEY_AQUI"

Respuesta de ejemplo:

{ "total_records": 8199, "unique_species": 13, "tipo_distribution": [ {"tipo": "CSG", "count": 7485}, {"tipo": "CSP", "count": 714} ], "top_species": [ {"especie": "CHERRY", "count": 5200}, {"especie": "TABLE GRAPE", "count": 2100} ], "top_regions": [ {"region": "O'HIGGINS", "count": 2800} ] }

🦋 Lobesia - Prospección Lobesia botrana

GET /api/records/lobesia

Consulta registros de prospección de Lobesia botrana extraídos de archivos Excel del portal SAG Chile. Incluye datos de huertos monitoreados, especies, resultados de análisis y coordenadas geográficas.

Parámetros de consulta (opcionales):
  • run_id - Filtrar por ID de ejecución específica
  • especie - Filtrar por especie (ej: CEREZA, ARÁNDANO)
  • region - Filtrar por región
  • resultado - Filtrar por resultado (SIN DETECCIÓN, POSITIVA)
  • limit - Límite de registros (default: 100)
  • offset - Desplazamiento para paginación (default: 0)

Ejemplo cURL:

curl -X GET "https://sag.xportplan.com/api/records/lobesia?especie=CEREZA&resultado=SIN DETECCIÓN&limit=10" \ -H "X-API-Key: sk_live_TU_API_KEY_AQUI"

Respuesta de ejemplo:

{ "records": [ { "id": 1, "run_id": 26, "codigo_huerto": "122886", "region": "VALPARAISO", "comuna": "QUILLOTA", "especie": "ARÁNDANO", "variedades": "CORONA, ROCIO, INITIO", "resultado": "SIN DETECCIÓN", "fecha_visita": "2025-07-24", "latitud": "-32.8892", "longitud": "-71.2514" } ], "total": 479, "filters": { "especie": "CEREZA", "resultado": "SIN DETECCIÓN" } }
GET /api/stats/lobesia

Obtiene estadísticas agregadas de los datos de prospección de Lobesia botrana. Incluye distribución por especie, resultado y regiones.

Ejemplo cURL:

curl -X GET "https://sag.xportplan.com/api/stats/lobesia" \ -H "X-API-Key: sk_live_TU_API_KEY_AQUI"

Respuesta de ejemplo:

{ "total_records": 479, "unique_species": 6, "resultado_distribution": [ {"resultado": "SIN DETECCIÓN", "count": 450}, {"resultado": "POSITIVA", "count": 29} ], "top_species": [ {"especie": "CEREZA", "count": 369}, {"especie": "ARÁNDANO", "count": 96} ], "top_regions": [ {"region": "VALPARAISO", "count": 250} ] }

🦋 Lobesia Otros - Predios Reglamentados (Ciruelo, Vid, Arándano)

GET /api/records/lobesia-otros

Consulta registros de predios dentro del área reglamentada por Lobesia botrana para tres especies adicionales: Ciruelo, Vid (Uva de mesa) y Arándano. Datos extraídos de archivos Excel multi-hoja del portal SAG Chile (~15,853 registros en 9 regiones).

Parámetros de consulta (opcionales):
  • codigos - Buscar múltiples CSG separados por coma (ej: 3176734,3167089). Máx 1000 códigos BULK
  • csg - Buscar un CSG específico (búsqueda exacta)
  • especie - Filtrar por especie: CIRUELO, UVA, ARANDANO
  • region - Filtrar por región (ej: Metropolitana, Maule, Ñuble)
  • comuna - Filtrar por comuna
  • dentro_area_control - Filtrar por estado: SI o NO
  • limit - Límite de registros (default: 10000, máx: 10000)
  • offset - Desplazamiento para paginación (default: 0)

Ejemplo cURL - Consulta por múltiples CSGs:

curl -X GET "https://sag.xportplan.com/api/records/lobesia-otros?codigos=3176734,3167089,2548790" \ -H "X-API-Key: sk_live_TU_API_KEY_AQUI"

Ejemplo cURL - Filtrar por especie y región:

curl -X GET "https://sag.xportplan.com/api/records/lobesia-otros?especie=UVA®ion=Maule&limit=100" \ -H "X-API-Key: sk_live_TU_API_KEY_AQUI"

Respuesta de ejemplo:

{ "records": [ { "id": 1, "run_id": 190, "csg": "3176734", "nombre_predio": "LA CANDELARIA", "provincia": "MAIPO", "comuna": "BUIN", "dentro_area_control": "SI", "plan_operacional_vigente": "SI", "especie": "CIRUELO", "region": "Metropolitana", "fecha_actualizacion": "23-12-2024" } ], "total": 15853, "limit": 10000, "offset": 0 }
GET /api/stats/lobesia-otros

Obtiene estadísticas agregadas de los predios reglamentados por Lobesia botrana (otras especies). Incluye distribución por especie y región.

Ejemplo cURL:

curl -X GET "https://sag.xportplan.com/api/stats/lobesia-otros" \ -H "X-API-Key: sk_live_TU_API_KEY_AQUI"

Respuesta de ejemplo:

{ "total_records": 15853, "by_especie": [ {"especie": "UVA", "count": 12050}, {"especie": "ARANDANO", "count": 2565}, {"especie": "CIRUELO", "count": 1238} ], "by_region": [ {"region": "Ñuble", "count": 5461}, {"region": "Maule", "count": 5207}, {"region": "O'Higgins", "count": 2485} ] }

🍇 Predios UVA - Uva de Mesa para México

GET /api/records/predios-uva

Consulta registros de predios de Uva de Mesa para México ubicados dentro del área reglamentada por Lobesia botrana. Datos extraídos de archivo Excel multi-hoja del portal SAG Chile.

Parámetros de consulta (opcionales):
  • codigos - Buscar múltiples CSG separados por coma (ej: 3176734,3167089). Máx 1000 códigos BULK
  • csg - Buscar un CSG específico (búsqueda exacta)
  • region - Filtrar por región (ej: Metropolitana, Maule, Ñuble)
  • comuna - Filtrar por comuna
  • dentro_area_control - Filtrar por estado: SI o NO
  • limit - Límite de registros (default: 10000, máx: 10000)
  • offset - Desplazamiento para paginación (default: 0)

Ejemplo cURL - Consulta por múltiples CSGs:

curl -X GET "https://sag.xportplan.com/api/records/predios-uva?codigos=3176734,3167089,2548790" \ -H "X-API-Key: sk_live_TU_API_KEY_AQUI"

Ejemplo cURL - Filtrar por región:

curl -X GET "https://sag.xportplan.com/api/records/predios-uva?region=Maule&limit=100" \ -H "X-API-Key: sk_live_TU_API_KEY_AQUI"

Respuesta de ejemplo:

{ "records": [ { "csg": "3176734", "nombre_predio": "FUNDO LA ESPERANZA", "provincia": "MAIPO", "comuna": "BUIN", "dentro_area_control": "SI", "plan_operacional_vigente": "SI", "region": "Metropolitana", "fecha_actualizacion": "23-12-2024" } ], "total": 12050, "limit": 10000, "offset": 0 }
GET /api/stats/predios-uva

Obtiene estadísticas agregadas de los predios de Uva de Mesa para México. Incluye distribución por región.

Ejemplo cURL:

curl -X GET "https://sag.xportplan.com/api/stats/predios-uva" \ -H "X-API-Key: sk_live_TU_API_KEY_AQUI"

Respuesta de ejemplo:

{ "total_records": 12050, "by_region": [ {"region": "Ñuble", "count": 4500}, {"region": "Maule", "count": 4200}, {"region": "O'Higgins", "count": 2000} ] }

🪰 Mosca - Campañas Mosca de la Fruta

GET /api/records/mosca

Consulta registros de campañas de Mosca de la Fruta extraídos de archivos Excel del portal SAG Chile. Incluye tanto CSG (predios) como CSP (establecimientos) dentro del área reglamentada.

Parámetros de consulta (opcionales):
  • run_id - Filtrar por ID de ejecución específica
  • tipo_registro - Filtrar por tipo: CSG o CSP
  • radio - Filtrar por zona geográfica de control (ej: 7,2 | 7,5 | 15 | 27,2 | 80)
  • region - Filtrar por región
  • campana - Filtrar por nombre de campaña
  • codigos - Buscar múltiples CSG/CSP separados por coma (ej: 116191,123456,789012). Máx 100 códigos
  • latest_only - Si es true, devuelve solo el registro más reciente por código con el radio más restrictivo (menor número) de esa fecha. Funciona con o sin el parámetro codigos
  • limit - Límite de registros (default: 100)
  • offset - Desplazamiento para paginación (default: 0)

Ejemplo cURL - Todos los códigos (solo más recientes):

curl -X GET "https://sag.xportplan.com/api/records/mosca?latest_only=true&limit=100" \ -H "X-API-Key: sk_live_TU_API_KEY_AQUI"

Ejemplo cURL - Códigos específicos (solo más recientes):

curl -X GET "https://sag.xportplan.com/api/records/mosca?codigos=CSG1,CSG2,CSG3&latest_only=true" \ -H "X-API-Key: sk_live_TU_API_KEY_AQUI"

Ejemplo cURL - Filtros tradicionales:

curl -X GET "https://sag.xportplan.com/api/records/mosca?tipo_registro=CSG&radio=80®ion=COQUIMBO&limit=10" \ -H "X-API-Key: sk_live_TU_API_KEY_AQUI"

Respuesta de ejemplo (con latest_only=true):

{ "total": 3, "offset": 0, "limit": 100, "latest_only": true, "filters": { "codigos": ["CSG1", "CSG2", "CSG3"] }, "records": [ { "codigo": "CSG1", "tipo_registro": "CSG", "radio": "80", "region": "METROPOLITANA DE SANTIAGO", "comuna": "CALERA DE TANGO", "productor_establecimiento": "AGRICOLA EJEMPLO LTDA.", "predio": "EL CAMPO", "campana": "LA GRANJA", "fecha_ingreso_campana": "2025-05-30" } ] }
GET /api/stats/mosca

Obtiene estadísticas agregadas de los datos de campañas de Mosca de la Fruta. Incluye distribución por tipo de registro (CSG/CSP), campañas y regiones.

Ejemplo cURL:

curl -X GET "https://sag.xportplan.com/api/stats/mosca" \ -H "X-API-Key: sk_live_TU_API_KEY_AQUI"

Respuesta de ejemplo:

{ "total_records": 3095, "unique_campanas": 15, "tipo_distribution": [ {"tipo": "CSG", "count": 2497}, {"tipo": "CSP", "count": 598} ], "top_campanas": [ {"campana": "2024-001", "count": 450}, {"campana": "2024-002", "count": 380} ], "top_regions": [ {"region": "METROPOLITANA", "count": 800} ] }

🇰🇷 Corea - Exportación a Corea (Multi-especie)

GET /api/records/corea

Consulta registros de participantes inscritos para exportación a Corea extraídos de archivos Excel del portal SAG Chile. Incluye tanto CSG (Orchards) como CSP (Facilities) con control de cambios por archivo individual.

Parámetros de consulta (opcionales):
  • run_id - Filtrar por ID de ejecución específica
  • especie - Filtrar por especie (ej: ARÁNDANO)
  • tipo_registro - Filtrar por tipo (CSG o CSP)
  • region - Filtrar por región
  • limit - Límite de registros (default: 100)
  • offset - Desplazamiento para paginación (default: 0)

Ejemplo cURL:

curl -X GET "https://sag.xportplan.com/api/records/corea?especie=ARÁNDANO&tipo_registro=CSG&limit=10" \ -H "X-API-Key: sk_live_TU_API_KEY_AQUI"

Respuesta de ejemplo:

{ "records": [ { "id": 1, "run_id": 34, "codigo": "123456", "tipo_registro": "CSG", "especie": "ARÁNDANO", "grower_name": "Productor Ejemplo S.A.", "orchard_facility_name": "Huerto Norte", "region": "MAULE", "district": "CURICO", "fecha_actualizacion": "2025-01-15" } ], "total": 245, "filters": { "especie": "ARÁNDANO", "tipo_registro": "CSG" } }
GET /api/stats/corea

Obtiene estadísticas agregadas de los datos de exportación a Corea. Incluye distribución por especie, tipo de registro (CSG/CSP) y regiones.

Ejemplo cURL:

curl -X GET "https://sag.xportplan.com/api/stats/corea" \ -H "X-API-Key: sk_live_TU_API_KEY_AQUI"

Respuesta de ejemplo:

{ "total_records": 245, "unique_species": 1, "tipo_distribution": [ {"tipo": "CSG", "count": 180}, {"tipo": "CSP", "count": 65} ], "top_species": [ {"especie": "ARÁNDANO", "count": 245} ], "top_regions": [ {"region": "MAULE", "count": 85}, {"region": "ÑUBLE", "count": 60} ] }

🚫 Descolgados - Productores y Variedades Excluidas

GET /api/records/descolgados

Consulta registros de productores y variedades excluidas del portal SAG DESCOLGADOS con autenticación. Incluye campos JSONB con arrays para países y plagas.

Parámetros de consulta (opcionales):
  • run_id - Filtrar por ID de ejecución específica
  • rut_productor - Buscar por RUT del productor
  • nombre_productor - Buscar por nombre (LIKE)
  • variedad - Filtrar por variedad
  • pais - Filtrar por país específico en array paises_a_descolgar
  • plaga - Filtrar por plaga específica en array plagas
  • limit - Límite de registros (default: 100)
  • offset - Desplazamiento para paginación (default: 0)

Ejemplo cURL:

curl -X GET "https://sag.xportplan.com/api/records/descolgados?variedad=CRIMSON&pais=CHINA&limit=10" \ -H "X-API-Key: sk_live_TU_API_KEY_AQUI"

Respuesta de ejemplo:

{ "records": [ { "id": 1, "run_id": 45, "rut_productor": "12.345.678-9", "nombre_productor": "AGRICOLA EJEMPLO LTDA.", "especie": "UVA DE MESA", "variedad": "CRIMSON SEEDLESS", "paises_a_descolgar": ["CHINA", "INDIA"], "plagas": ["LOBESIA BOTRANA", "TRIPS"], "fecha_exclusion": "2024-09-15", "observaciones": "Incumplimiento protocolo" } ], "total": 87 }
GET /api/stats/descolgados

Obtiene estadísticas de productores excluidos incluyendo distribución por país, plaga y variedad.

Ejemplo cURL:

curl -X GET "https://sag.xportplan.com/api/stats/descolgados" \ -H "X-API-Key: sk_live_TU_API_KEY_AQUI"

Respuesta de ejemplo:

{ "total_records": 87, "top_varieties": [ {"variedad": "CRIMSON SEEDLESS", "count": 25} ], "top_paises": [ {"pais": "CHINA", "count": 45} ], "top_plagas": [ {"plaga": "LOBESIA BOTRANA", "count": 30} ] }

🇯🇵 Japón - Systems Approach Cerezas

GET /api/records/japon

Consulta registros de participantes en Systems Approach para exportación de cerezas a Japón. Incluye tanto CSG (Orchards) como CSP (Facilities) con estructura unificada.

Parámetros de consulta (opcionales):
  • run_id - Filtrar por ID de ejecución específica
  • region - Filtrar por región
  • comuna - Filtrar por comuna
  • variedad - Filtrar por variedad de cereza
  • tipo_registro - Filtrar por tipo (CSG o CSP)
  • limit - Límite de registros (default: 100)
  • offset - Desplazamiento para paginación (default: 0)

Ejemplo cURL:

curl -X GET "https://sag.xportplan.com/api/records/japon?variedad=SANTINA&tipo_registro=CSG&limit=10" \ -H "X-API-Key: sk_live_TU_API_KEY_AQUI"

Respuesta de ejemplo:

{ "records": [ { "id": 1, "run_id": 52, "codigo": "123456", "tipo_registro": "CSG", "grower_name": "AGRICOLA CEREZA LTDA.", "orchard_name": "HUERTO LAS CEREZAS", "region": "O'HIGGINS", "comuna": "SAN FERNANDO", "variedad": "SANTINA", "fecha_actualizacion": "2025-08-20" } ], "total": 1245 }
GET /api/stats/japon

Obtiene estadísticas de participantes en Systems Approach Japón con distribución por región, comuna y variedad.

Respuesta de ejemplo:

{ "total_records": 1245, "tipo_distribution": [ {"tipo": "CSG", "count": 980}, {"tipo": "CSP", "count": 265} ], "top_regions": [ {"region": "O'HIGGINS", "count": 450} ] }

🇺🇸 USA - Systems Approach (Multi-dataset)

⚠️ Arquitectura Multi-dataset: Este scraper genera 2 tablas separadas (arándanos y ciruelas) con endpoints independientes. Cada dataset tiene su propio CSV, modelo de datos y endpoints REST.

📘 Arándanos (Blueberries)

GET /api/records/usa-arandanos

Consulta registros de predios participantes en Systems Approach para exportación de arándanos a USA.

Parámetros de consulta (opcionales):
  • run_id - Filtrar por ID de ejecución específica
  • region - Filtrar por región
  • codigo - Buscar por código de predio
  • tipo_registro - Filtrar por tipo (Participantes/Aprobados)
  • limit - Límite de registros (default: 100)
  • offset - Desplazamiento para paginación (default: 0)

Ejemplo cURL:

curl -X GET "https://sag.xportplan.com/api/records/usa-arandanos?region=BIOBIO&limit=10" \ -H "X-API-Key: sk_live_TU_API_KEY_AQUI"

Respuesta de ejemplo:

{ "records": [ { "id": 1, "run_id": 58, "codigo": "123456", "tipo_registro": "Participantes", "region": "BIOBIO", "comuna": "LOS ANGELES", "grower_name": "AGRICOLA BLUEBERRY S.A.", "predio": "CAMPO AZUL", "fecha_actualizacion": "2025-09-15" } ], "total": 890 }
GET /api/stats/usa-arandanos

Estadísticas de arándanos con distribución por regiones, comunas y productores.

Respuesta de ejemplo:

{ "total_records": 1390, "top_regions": [ {"region": "BIOBIO", "count": 450} ], "top_growers": [...] }

🍇 Ciruelas (Plums)

GET /api/records/usa-ciruelas

Consulta registros CSG de predios para exportación de ciruelas a USA.

Parámetros de consulta (opcionales):
  • run_id - Filtrar por ID de ejecución específica
  • region - Filtrar por región
  • codigo - Buscar por código CSG
  • limit - Límite de registros (default: 100)
  • offset - Desplazamiento para paginación (default: 0)

Ejemplo cURL:

curl -X GET "https://sag.xportplan.com/api/records/usa-ciruelas?region=MAULE&limit=10" \ -H "X-API-Key: sk_live_TU_API_KEY_AQUI"

Respuesta de ejemplo:

{ "records": [ { "id": 1, "run_id": 58, "codigo": "654321", "region": "MAULE", "comuna": "CURICO", "grower_name": "FRUTALES DEL SUR LTDA.", "predio": "SANTA ROSA" } ], "total": 245 }
GET /api/stats/usa-ciruelas

Estadísticas de ciruelas con distribución por regiones y productores.

Respuesta de ejemplo:

{ "total_records": 245, "top_regions": [ {"region": "MAULE", "count": 120} ] }

🇧🇷 Brasil - SMR Brasil (Multi-dataset)

⚠️ Arquitectura Multi-dataset: Sistema de Mitigación de Riesgo Brasil con 2 tablas separadas: CSG/CSP (ciruelas, arándanos, uva) y SDP (kiwi). Cada dataset tiene endpoints independientes.

🌿 CSG/CSP - Ciruelas, Arándanos, Uva

GET /api/records/brasil-csg

Consulta registros CSG/CSP de participantes inscritos en SMR Brasil para ciruelas, arándanos y uva.

Parámetros de consulta (opcionales):
  • run_id - Filtrar por ID de ejecución específica
  • region - Filtrar por región
  • especie - Filtrar por especie (ciruelas, arandanos, uva)
  • tipo_registro - Filtrar por tipo (CSG, CSP, SDP)
  • limit - Límite de registros (default: 100)
  • offset - Desplazamiento para paginación (default: 0)

Ejemplo cURL:

curl -X GET "https://sag.xportplan.com/api/records/brasil-csg?especie=uva&tipo_registro=CSG®ion=OHIGGINS&limit=10" \ -H "X-API-Key: sk_live_TU_API_KEY_AQUI"

Respuesta de ejemplo:

{ "records": [ { "id": 1, "run_id": 67, "codigo": "123456", "tipo_registro": "CSG", "especie": "uva", "region": "O'HIGGINS", "provincia": "COLCHAGUA", "comuna": "SANTA CRUZ", "fecha_actualizacion": "2025-10-20" } ], "total": 11290 }
GET /api/stats/brasil-csg

Estadísticas de registros CSG/CSP con distribución por región, especie y tipo.

Respuesta de ejemplo:

{ "total_records": 11290, "especie_distribution": [ {"especie": "uva", "count": 7317}, {"especie": "ciruelas", "count": 3973} ], "tipo_distribution": [ {"tipo": "CSG", "count": 8500}, {"tipo": "CSP", "count": 2790} ] }

🥝 SDP - Kiwi

GET /api/records/brasil-sdp

Consulta registros SDP aprobados para exportación de kiwi a Brasil.

Parámetros de consulta (opcionales):
  • run_id - Filtrar por ID de ejecución específica
  • region - Filtrar por región
  • especie - Filtrar por especie
  • codigo - Buscar por código SDP
  • limit - Límite de registros (default: 100)
  • offset - Desplazamiento para paginación (default: 0)

Ejemplo cURL:

curl -X GET "https://sag.xportplan.com/api/records/brasil-sdp?region=MAULE&limit=10" \ -H "X-API-Key: sk_live_TU_API_KEY_AQUI"

Respuesta de ejemplo:

{ "records": [ { "id": 1, "run_id": 67, "codigo_sdp": "SDP12345", "especie": "kiwi", "region": "MAULE", "provincia": "CURICO", "comuna": "CURICO", "fecha_actualizacion": "2025-08-18" } ], "total": 527 }
GET /api/stats/brasil-sdp

Estadísticas de registros SDP con distribución por región y especie.

Respuesta de ejemplo:

{ "total_records": 527, "especie_distribution": [ {"especie": "kiwi", "count": 527} ], "top_regions": [ {"region": "MAULE", "count": 250} ] }

🇨🇳 ChinaPort - API Directa chinaport.gov.cn

⚡ API REST Directa: Este scraper consulta directamente la API de ChinaPort sin necesidad de navegación web. Extrae ~20,652 registros con paginación automática.

GET /api/records/chinaport

Consulta registros de instalaciones chilenas registradas en ChinaPort. Las especies vienen parseadas en un array JSON.

Parámetros de consulta (opcionales):
  • run_id - Filtrar por ID de ejecución específica
  • csg - Buscar por código CSG chileno
  • especie - Filtrar por especie en array especies
  • estado - Filtrar por estado: "1" (Activo) o "0" (Inactivo)
  • empresa - Buscar por nombre de empresa
  • region - Filtrar por región
  • limit - Límite de registros (default: 100)
  • offset - Desplazamiento para paginación (default: 0)

Ejemplo cURL:

curl -X GET "https://sag.xportplan.com/api/records/chinaport?especie=CHERRY&estado=1&limit=10" \ -H "X-API-Key: sk_live_TU_API_KEY_AQUI"

Respuesta de ejemplo:

{ "records": [ { "id": 1, "run_id": 75, "overseas_official_reg_no": "89147", "especies": ["ORANGE", "LEMON", "CHERRY", "TABLE GRAPE"], "estado_registro": "1", "valid_from": "2024-05-27 00:00:00", "valid_to": "2999-12-31 00:00:00", "empresa": "FRUTICOLA Y GANADERA SANTA MARTA S.A.", "region": "Region Metropolitana de Santiago, Chile", "china_reg_no": "QCHL1424052715759" } ], "total": 20652 }
GET /api/stats/chinaport

Obtiene estadísticas de registros ChinaPort con distribución por estado, región y empresas top.

Ejemplo cURL:

curl -X GET "https://sag.xportplan.com/api/stats/chinaport" \ -H "X-API-Key: sk_live_TU_API_KEY_AQUI"

Respuesta de ejemplo:

{ "total_records": 20652, "estado_distribution": [ {"estado": "Activo", "count": 18500}, {"estado": "Inactivo", "count": 2152} ], "region_distribution": [ {"region": "Chile", "count": 20652} ], "top_empresas": [ {"empresa": "EXPORTADORA SANTA CRUZ S.A.", "count": 150} ] }

🔍 Búsqueda Consolidada - CSG y SDP (NUEVO)

✨ Endpoints de Búsqueda Unificada

Estos endpoints permiten buscar un código CSG (Código de Sitio de Gestión - establecimiento/huerto) o SDP (Sitio De Producción) en todas las fuentes disponibles con una sola petición.

🎯 CSG: Busca en 12 fuentes | 🎯 SDP: Busca en 4 fuentes

GET /api/records/by-csg/{csg}

Búsqueda consolidada por CSG (establecimiento/huerto). Retorna información de todas las fuentes donde aparece el código, incluyendo especies, variedades, sectores, regiones y programas de exportación asociados.

📊 Fuentes consultadas (12 tablas):
  • SYNGENTA
  • Aprobados Corea - Japon
  • Inscritos China
  • Lobesia
  • Mosca
  • Inscritos Corea
  • Descuelgues Planta
  • Japon System Approach
  • USA System approach Arandano
  • USA System Approach Ciruela
  • Brasil CSG
  • China API
🔐 Autenticación (dos opciones):
  • Authorization: Bearer {api_key} - Recomendado (estándar REST)
  • X-API-Key: {api_key} - Alternativa compatible

Ejemplo cURL:

curl -X GET "https://sag.xportplan.com/api/records/by-csg/94467" \ -H "Authorization: Bearer sk_live_TU_API_KEY_AQUI"

Ejemplo Python:

import requests url = "https://sag.xportplan.com/api/records/by-csg/94467" headers = { "Authorization": "Bearer sk_live_TU_API_KEY_AQUI" } response = requests.get(url, headers=headers) data = response.json() # Acceder a los datos csg_data = data["data"][0] print(f"CSG: {csg_data['csg']}") print(f"Total de fuentes: {csg_data['totalSources']}") # Iterar por fuentes for source in csg_data["sources"]: print(f"\nFuente: {source['sourceName']}") print(f"Especies: {', '.join(source['especies'])}") if source['variedadesPorEspecie']: for especie, variedades in source['variedadesPorEspecie'].items(): print(f" {especie}: {', '.join(variedades)}")

Ejemplo JavaScript/Node.js:

const axios = require('axios'); const url = 'https://sag.xportplan.com/api/records/by-csg/94467'; const headers = { 'Authorization': 'Bearer sk_live_TU_API_KEY_AQUI' }; axios.get(url, { headers }) .then(response => { const csgData = response.data.data[0]; console.log(`CSG: ${csgData.csg}`); console.log(`Total fuentes: ${csgData.totalSources}`); csgData.sources.forEach(source => { console.log(`\n${source.sourceName}`); console.log(`Especies: ${source.especies.join(', ')}`); }); }) .catch(error => console.error('Error:', error));

Ejemplo Excel / Power BI:

let url = "https://sag.xportplan.com/api/records/by-csg/94467", headers = [Authorization="Bearer sk_live_TU_API_KEY_AQUI"], response = Json.Document(Web.Contents(url, [Headers=headers])), data = response[data]{0} in data

Respuesta de ejemplo:

{ "data": [ { "csg": "94467", "totalSources": 4, "sources": [ { "sourceKey": "china_export", "sourceName": "Inscritos China", "found": true, "especies": ["APRICOT", "NECTARINES", "PEACHES", "TABLE GRAPE"], "variedadesPorEspecie": null, "detalles": null }, { "sourceKey": "korea_export", "sourceName": "Inscritos Corea", "found": true, "especies": ["UVA DE MESA"], "variedadesPorEspecie": null, "detalles": null }, { "sourceKey": "mosca_fruta", "sourceName": "Mosca", "found": true, "especies": [], "variedadesPorEspecie": null, "detalles": [ { "radioDeteccion": "1.5 km", "especie": "Cerezas", "predio": "Predio Los Andes", "campana": "2024-2025", "region": "O'Higgins", "comuna": "San Fernando", "productor": "Juan Pérez" } ] } ], "sdps": [], "sectores": [], "descuelgues": { "standard": [], "otros": [] } } ], "pagination": { "page": 1, "limit": 100, "total": 1, "totalPages": 1 } }
GET /api/records/by-sdp/{sdp}

Búsqueda consolidada por SDP (Sitio De Producción). Retorna información de todas las fuentes donde aparece el código, incluyendo especies, variedades, regiones, clasificaciones de riesgo y CSG asociados.

📊 Fuentes consultadas (4 tablas):
  • SDP Chile - Sitios de Producción Aprobados (codigo_sag es SDP)
  • SDP Mexico - Registro para Exportación (codigo_sag es SDP + clasificación)
  • Brasil SDP - SMR Brasil códigos SDP (kiwi)
  • SYNGENTA Mexico - SDPs asociados a CSG (sdp_mexico)

Ejemplo cURL:

curl -X GET "https://sag.xportplan.com/api/records/by-sdp/64585" \ -H "Authorization: Bearer sk_live_TU_API_KEY_AQUI"

Ejemplo Python:

import requests url = "https://sag.xportplan.com/api/records/by-sdp/64585" headers = { "Authorization": "Bearer sk_live_TU_API_KEY_AQUI" } response = requests.get(url, headers=headers) data = response.json() sdp_data = data["data"][0] print(f"SDP: {sdp_data['sdp']}") print(f"Total de fuentes: {sdp_data['totalSources']}") # CSGs asociados if sdp_data["csgAsociados"]: print("\nCSGs asociados:") for csg in sdp_data["csgAsociados"]: print(f" - CSG {csg['csg']}: {csg['especie']} ({csg['exportador']})")

Respuesta de ejemplo:

{ "data": [ { "sdp": "64585", "totalSources": 1, "sources": [ { "sourceKey": "sag_chile_sdp", "sourceName": "SDP Chile", "found": true, "especies": ["UVA"], "variedadesPorEspecie": { "UVA": ["IFG TEN"] }, "detalles": [ { "especie": "UVA", "variedad": "IFG TEN", "region": "3", "productor": "AGRICOLA DAINAL LIMITADA", "autorizadoMuestreo": "NO" } ] } ], "csgAsociados": [] } ], "pagination": { "page": 1, "limit": 100, "total": 1, "totalPages": 1 } }

⚠️ Diferencias Clave: CSG vs SDP

🏭 CSG (Código de Sitio de Gestión)
  • Qué es: Establecimiento/Huerto/Empacadora
  • Fuentes: 12 tablas distintas
  • Incluye: Sectores, especies, variedades, programas de exportación
  • Ejemplo: 94467
🌱 SDP (Sitio De Producción)
  • Qué es: Sitio de producción aprobado
  • Fuentes: 4 tablas distintas
  • Incluye: Especies, variedades, clasificaciones, CSG asociados
  • Ejemplo: 64585
📌 Nota importante: SAG Chile y SAG México usan codigo_sag como SDP, no CSG. Syngenta vincula SDP (sdp_mexico) con CSG (codigo_sag).

💡 Notas de Integración

  • ✅ Todos los endpoints soportan CORS para llamadas desde navegadores
  • ✅ Autenticación requerida: Incluye el header X-API-Key en tus peticiones
  • ✅ Los datos se actualizan cada vez que ejecutas un scraper
  • ✅ Usa paginación (limit y offset) para grandes volúmenes
  • ⚠️ El campo clasificacion en SAG México indica el estado de aprobación (A/B/C*/Excluido)
  • ⚠️ Los datos de Power BI incluyen 8 columnas específicas de monitoreo
  • ⚠️ CHINA: El campo tipo_registro indica si es CSG (Orchard) o CSP (Facility). Los CSP no tienen grower_name (NULL)
  • ⚠️ LOBESIA: Incluye 20 columnas con datos de prospección de Lobesia botrana, coordenadas geográficas y resultados de análisis
  • ⚠️ MOSCA: El campo tipo_registro indica si es CSG (Predio) o CSP (Establecimiento). El campo radio indica la zona geográfica de control de la campaña (7,2 | 7,5 | 15 | 27,2 | 80). Los CSP no tienen campo "predio" (NULL)
  • ⚠️ COREA: Estructura idéntica a CHINA con control de cambios por archivo. El campo tipo_registro indica si es CSG (Orchard) o CSP (Facility)
  • ⚠️ DESCOLGADOS: Incluye campos JSONB paises_a_descolgar y plagas que contienen arrays de strings. Usa filtros específicos para consultar por país o plaga
  • ⚠️ JAPÓN: Systems Approach cerezas con 16 columnas unificadas para CSG/CSP. Incluye variedades y fechas de actualización
  • ⚠️ USA: Arquitectura multi-dataset con endpoints separados para arándanos y ciruelas. Cada especie tiene su propio CSV y tabla
  • ⚠️ BRASIL: Arquitectura multi-dataset con 2 tablas: brasil_csg_records (CSG/CSP multi-especie) y brasil_sdp_records (SDP kiwi). Total 11,817 registros
  • ⚠️ CHINAPORT: API REST directa a chinaport.gov.cn con paginación automática. Especies parseadas a JSON array desde campo prodNameEn
  • ⚠️ VIETNAM: Similar a China con archivos Excel multi-especie. Incluye Cherry, Table Grape y Apple con campo temporada (ej: 2024-2025)