1. Página de resumen
Después de guardar la configuración del flujo, se abre una página de resumen que presenta toda la información necesaria para la extracción de datos.
Modificar la configuración
Puede modificar la información introducida previamente haciendo clic en la pestaña «Editar la configuración del flujo».

También puede acceder a esta página desde la pestaña «Configuraciones de flujo» haciendo clic en el símbolo del ojo de la columna «Acciones» de la tabla.

2. Elementos de extracción
Las condiciones de extracción del origen elegido se muestran en forma de tres elementos obligatorios que deben combinarse:
Método
GET: protocolo de solicitud utilizado para recuperar los datos.
Autorización
Bearer Token: clave de seguridad necesaria para acceder al contenido.
URL del punto final
URL en formato JSON o CSV:
https://gate.teeptrak.net/api/....json
https://gate.teeptrak.net/api/....csv
3. Notas importantes
Paginación y límites de solicitudes
Los datos se devuelven por bloques para garantizar un rendimiento óptimo.
Límites de solicitudes
- Máximo: 1 solicitud cada 2 segundos por token
- Cuota horaria: 500 solicitudes por hora por token
Si se supera este límite, la API devuelve un error 429 Too Many Requests.
Recomendación: espacie sus solicitudes al menos 8 segundos para mantenerse holgadamente dentro de ambos límites.
Resultados por página
Cada solicitud devuelve un máximo de 2000 resultados por página (2000 líneas). Para una exportación de 5000 resultados, es necesario realizar varias solicitudes, ya que los resultados se reparten en bloques de 2000 líneas.
Excepción: el conteo de productos está limitado a 1000 resultados por página.
4. Ejemplo de recuperación de datos
Mediante el método GET, la autorización Bearer Token y la URL proporcionada, puede exportar sus datos en formato JSON y/o CSV.
Procedimiento con Postman
- Introduzca la información de la API en los campos correspondientes de Postman
- Los datos exportados en formato JSON se muestran en la sección inferior

5. Parámetros opcionales y paginación
Es posible aplicar filtros a las exportaciones para afinar y optimizar sus necesidades de extracción.
Uso en Postman
- Haga clic en «Params»
- Introduzca las claves y los valores correspondientes
- Haga clic en «Send» para validar el filtro
Lista de parámetros disponibles
| N.º | Parámetro | Descripción |
|---|---|---|
| 1 | page |
Definir el número de página devuelto por la API |
| 2 | created_at_gte |
Definir el umbral «mayor o igual que» (creado el…) |
| 3 | created_at_lte |
Definir el umbral «menor o igual que» (creado el…) |
| 4 | updated_at_lte |
Definir el umbral «menor o igual que» (actualizado el…) |
| 5 | with_custom_fields |
Permitir la visualización de los campos personalizados |
| 6 | machine_ids |
Filtrar la solicitud por una o varias máquinas |
6. Datos brutos - Alternativa V2 con paginación por cursor
Presentación
Para la API de datos brutos, está disponible una alternativa opcional: la API Performance Logs V2. Esta API ofrece una paginación por cursor más robusta que la paginación clásica por número de página, lo que garantiza que cada registro se devuelva exactamente una vez, aunque los datos cambien entre sus solicitudes.
Endpoints V2:
GET /api/v1/external/performance_logs.json
GET /api/v1/external/performance_logs.csv
GET /api/v1/external/performance_logs/simplified_losses.json
GET /api/v1/external/performance_logs/simplified_losses.csv
Endpoints V1 clásicos (siguen disponibles):
GET /api/v1/external/raw_data
GET /api/v1/external/simplified_losses
Puede seguir utilizando la paginación clásica por page o adoptar la paginación por cursor según sus necesidades.
¿Cuándo utilizar V2 (cursor)?
- Tiene una sincronización periódica de datos (diaria, horaria, etc.)
- Quiere garantizar cero pérdidas o duplicaciones de datos
- Gestiona grandes volúmenes y quiere una exportación CSV en una sola solicitud
¿Cuándo permanecer en V1 (página)?
- Realiza exportaciones puntuales sencillas
- Prefiere la paginación clásica por número de página
- Su integración existente funciona bien con V1
Paginación por cursor: instrucciones de uso
Parámetros específicos de V2
| Parámetro | Descripción |
|---|---|
since |
Fecha ISO 8601 para la primera solicitud (p. ej., 2025-01-01T00:00:00Z). |
cursor |
Clave de paginación para las solicitudes siguientes. Véase más abajo. |
limit |
Número de resultados por página (valor por defecto: 2000, máx.: 2000) |
Concepto
El cursor es una clave de paginación que garantiza que cada registro se devuelva exactamente una vez, aunque los datos cambien entre sus solicitudes. Esto ofrece una mejor integridad de los datos en comparación con la paginación simple por número de página.
Primera solicitud (sincronización inicial)
Lance su primera solicitud sin cursor, utilizando el parámetro since o sin ningún parámetro:
GET /api/v1/external/performance_logs?since=2025-01-01T00:00:00Z
La respuesta JSON incluye un objeto meta que contiene un next_cursor:
{
"data": [ ... ],
"meta": {
"next_cursor": "eyJ1cGRhdGVkX2F0IjoiMjAyNS0wNi0wMVQxMDoxNTowMC4wMDAwMDBaIiwiaWQiOjJ9"
},
"links": {
"next": "https://gate.teeptrak.net/api/v1/external/performance_logs?cursor=eyJ1cGRhdGVkX2F0Ij..."
}
}
Solicitudes siguientes (sincronización incremental)
Guarde el último next_cursor recibido. Para la siguiente solicitud, utilice este cursor como parámetro:
GET /api/v1/external/performance_logs?cursor=eyJ1cGRhdGVkX2F0IjoiMjAyNS0wNi0wMVQxMDoxNTowMC4wMDAwMDBaIiwiaWQiOjJ9
La respuesta devuelve un nuevo next_cursor para la solicitud siguiente. Repita este ciclo hasta que next_cursor sea null, lo que indica que ha obtenido todos los datos disponibles.
Fin de la paginación
Cuando meta.next_cursor vale null o el número de resultados es inferior al límite, ha recuperado todos los registros disponibles.
Para continuar la solicitud más adelante y obtener los nuevos datos, se recomienda conservar el último cursor que no sea null.
Caso de error: cursor perdido
Si pierde su último cursor guardado, vuelva a lanzar una solicitud con el parámetro since y una fecha aproximada de su última sincronización correcta. Recuperará entonces los datos a partir de esa fecha.
Ejemplo completo de una sincronización en tres solicitudes
- Sincronización inicial
Solicitud 1: GET /api/v1/external/performance_logs?since=2025-01-01T00:00:00Z
Respuesta: 2000 registros + next_cursor = "cursor_ABC"
Guarde "cursor_ABC"
- Sincronización incremental
Solicitud 2: GET /api/v1/external/performance_logs?cursor=cursor_ABC
Respuesta: 2000 registros + next_cursor = "cursor_XYZ"
Guarde "cursor_XYZ"
- Última sincronización incremental
Solicitud 3: GET /api/v1/external/performance_logs?cursor=cursor_XYZ
Respuesta: 1500 registros + next_cursor = "cursor_qsd"
Guarde "cursor_qsd"
Sincronización terminada
7. Gestión del cursor con Postman (variables de entorno)
Para automatizar la gestión del cursor en Postman, utilice las variables de entorno.
Configuración inicial
- Abra Postman y vaya a «Manage Environments» (icono de engranaje)
- Cree o modifique su entorno Gate
- Añada dos variables:
- Clave:
cursor| Valor: (dejar vacío) - Clave:
token| Valor: su Bearer Token
- Clave:
Primera solicitud
En la pestaña Params, añada:
| Clave | Valor |
|---|---|
since |
2025-01-01T00:00:00Z |
En la pestaña Authorization, seleccione Bearer Token e introduzca su token.
Haga clic en Send.
Actualización del cursor después de cada respuesta
- Vaya a la pestaña Tests
- Añada este script para guardar automáticamente el
next_cursor:
if (pm.response.code === 200) {
const responseData = pm.response.json();
if (responseData.meta && responseData.meta.next_cursor) {
pm.environment.set("cursor", responseData.meta.next_cursor);
console.log("Cursor guardado:", responseData.meta.next_cursor);
} else {
console.log("Fin de la paginación: next_cursor es null");
}
}
Solicitudes siguientes
- En la pestaña Params, elimine el parámetro
since - Añada el parámetro
cursorcon el valor{{cursor}} - Haga clic en Send
Postman sustituirá automáticamente {{cursor}} por el último valor guardado. Después de cada respuesta, el script actualiza la variable con el nuevo cursor.
Repetir hasta el final
Siga enviando la solicitud. El cursor se actualiza automáticamente después de cada llamada. Cuando next_cursor es null, la sincronización ha terminado.
8. Estructura de la respuesta V2
Respuesta JSON
{
"data": [
{
"id": 1,
"duration": 300,
"machine_id": 10,
"created_at": "2025-01-15T10:30:00Z",
"updated_at": "2025-01-15T11:00:00Z",
"custom_fields": {
"Team": "Morning",
"Line": "L3"
}
}
],
"meta": {
"next_cursor": "eyJ1cGRhdGVkX2F0IjoiMjAyNS0wNi0wMVQxMDoxNTowMC4wMDAwMDBaIiwiaWQiOjJ9"
},
"links": {
"next": "https://gate.teeptrak.net/api/v1/external/performance_logs?cursor=eyJ..."
}
}
Elementos clave
| Elemento | Descripción |
|---|---|
data |
Tabla que contiene los registros de rendimiento |
meta.next_cursor |
Cursor para la solicitud siguiente. null si es el fin de la paginación |
links.next |
URL preconstruida para la solicitud siguiente (opcional) |
data.custom_fields |
Objeto que contiene los campos personalizados (si están activados) |
Formato de las fechas
Todas las fechas se devuelven en formato ISO 8601 en UTC (p. ej., 2025-01-15T10:30:00Z).
10. Ejemplos de integraciones con V2
Exportación CSV completa
Para exportar todos los datos en CSV de una sola vez:
GET /api/v1/external/performance_logs.csv?since=2025-01-01T00:00:00Z
Esta única solicitud devuelve todos los resultados en un solo archivo CSV, sin necesidad de paginación. Ideal para las exportaciones puntuales.
Filtrado por máquinas
Para extraer los datos de máquinas específicas:
GET /api/v1/external/performance_logs?cursor=...&machine_ids=10,20,30
Campos personalizados
Para incluir los campos personalizados en la respuesta:
GET /api/v1/external/performance_logs?cursor=...&with_custom_fields=true
Aparecerán en el objeto with_custom_fields de cada registro.