Luuk Loading
Saltar al contenido principal

Consumir Respuestas vía API

Obtén todas las respuestas de un proceso en formato JSON mediante peticiones HTTP.

Endpoint

POST https://gf-apps.com/luuk/functions/ApiProceso

Parámetros Obligatorios

ParámetroTipoDescripciónEjemplo
IdStringID del procesoabc123xyz
FechaInicioStringFecha inicio (DD/MM/YYYY)01/10/2025
FechaFinalStringFecha fin (DD/MM/YYYY)31/10/2025
TimeZoneNumberOffset de zona horaria*180
sessionTokenStringToken del usuario APIr:abc123...
PageNumberPágina (1-N)1

Nota sobre TimeZone*:

  • UTC = 0
  • UTC-3 (Chile) = 180 (minutos, invertido)
  • UTC-5 = 300

Headers Requeridos

Content-Type: application/json
X-Parse-Application-Id: dklR89HL5f1A4mGa5tvh1vevaT9BBKOBbcSX4OuFgsblaCiGBc
X-Parse-Session-Token: r:xxxxxxxxxxxxxxx

Ejemplo de Petición HTTP

Request completo:

POST /luuk/functions/ApiProceso?Id=abc123xyz&FechaInicio=01/10/2025&FechaFinal=31/10/2025&TimeZone=180&sessionToken=r:a1b2c3d4e5f6&Page=1
Host: gf-apps.com
Content-Type: application/json
X-Parse-Application-Id: dklR89HL5f1A4mGa5tvh1vevaT9BBKOBbcSX4OuFgsblaCiGBc
X-Parse-Session-Token: r:a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6

Ejemplo con cURL

curl -X POST \
  'https://gf-apps.com/luuk/functions/ApiProceso?Id=abc123xyz&FechaInicio=01/10/2025&FechaFinal=31/10/2025&TimeZone=180&sessionToken=r:a1b2c3d4e5f6&Page=1' \
  -H 'Content-Type: application/json' \
  -H 'X-Parse-Application-Id: dklR89HL5f1A4mGa5tvh1vevaT9BBKOBbcSX4OuFgsblaCiGBc' \
  -H 'X-Parse-Session-Token: r:a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6'

Ejemplo con Python

import requests

url = "https://gf-apps.com/luuk/functions/ApiProceso"
params = {
    "Id": "abc123xyz",
    "FechaInicio": "01/10/2025",
    "FechaFinal": "31/10/2025",
    "TimeZone": 180,
    "sessionToken": "r:a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6",
    "Page": 1
}
headers = {
    "Content-Type": "application/json",
    "X-Parse-Application-Id": "dklR89HL5f1A4mGa5tvh1vevaT9BBKOBbcSX4OuFgsblaCiGBc",
    "X-Parse-Session-Token": "r:a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6"
}

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

print(f"Total de respuestas: {len(data['result'])}")

Estructura de Respuesta

La API devuelve un JSON con la siguiente estructura:

{
  "result": [
    {
      "latitude": -33.4372,
      "longitude": -70.6506,
      "fechaRespuesta": "2025-10-16T15:45:00.000Z",
      "nombreUsuario": "Juan",
      "apellidoUsuario": "Pérez",
      "emailUsuario": "juan@empresa.com",
      "numeroCorrelativo": 12567,
      "hiloId": "hilo_abc123",
      "estado": "Finalizado",
      "detalleRespuesta": "Inspección completada correctamente",
      "tipoRespuesta": "Texto",
      "porcentajeAcierto": 95
    },
    // ... hasta 1000 registros
  ]
}

Campos de la Respuesta

CampoTipoDescripción
latitudeNumberLatitud GPS donde se completó
longitudeNumberLongitud GPS
fechaRespuestaStringTimestamp ISO 8601
nombreUsuarioStringNombre del usuario
apellidoUsuarioStringApellido del usuario
emailUsuarioStringEmail del usuario
numeroCorrelativoNumberNúmero único del hilo
hiloIdStringID único del hilo
estadoString"Finalizado", "En proceso", "Pendiente"
detalleRespuestaStringRespuesta específica
tipoRespuestaStringTipo de acción
porcentajeAciertoNumber% de respuestas correctas (si aplica)

Paginación

La API devuelve máximo 1000 registros por petición.

Para obtener más:

page = 1
all_responses = []

while True:
    params["Page"] = page
    response = requests.post(url, params=params, headers=headers)
    data = response.json()

    if not data["result"]:
        break  # No hay más datos

    all_responses.extend(data["result"])
    page += 1

print(f"Total de respuestas obtenidas: {len(all_responses)}")


¿Dudas? Escríbenos