1. Pagina recapitulativă
După salvarea configurației fluxului, se deschide o pagină recapitulativă care prezintă toate informațiile necesare pentru extragerea datelor.
Modificarea configurației
Puteți modifica informațiile introduse anterior făcând clic pe fila „Editați configurația fluxului”.

De asemenea, puteți accesa această pagină prin fila „Configurații de flux”, făcând clic pe simbolul ochiului din coloana „Acțiuni” a tabelului.

2. Elemente de extragere
Condițiile de extragere ale sursei alese sunt afișate sub forma a trei elemente obligatorii care trebuie combinate:
Metodă
GET: protocolul de cerere utilizat pentru a prelua datele.
Autorizare
Bearer Token: cheie de securitate necesară pentru a accesa conținutul.
URL punct final
URL în format JSON sau CSV:
https://gate.teeptrak.net/api/....json
https://gate.teeptrak.net/api/....csv
3. Note importante
Paginare și limite de cereri
Datele sunt returnate pe blocuri pentru a garanta o performanță optimă.
Limite de cereri
- Maximum: 1 cerere la fiecare 2 secunde per token
- Cotă orară: 500 de cereri pe oră per token
Dacă această limită este depășită, API-ul returnează o eroare 429 Too Many Requests.
Recomandare: distanțați cererile cu cel puțin 8 secunde pentru a rămâne confortabil în ambele limite.
Rezultate pe pagină
Fiecare cerere returnează maximum 2000 de rezultate pe pagină (2000 de rânduri). Pentru un export de 5000 de rezultate, este necesar să efectuați mai multe cereri, rezultatele fiind repartizate în blocuri de 2000 de rânduri.
Excepție: Contorizarea produselor este limitată la 1000 de rezultate pe pagină.
4. Exemplu de preluare a datelor
Prin utilizarea metodei GET, a autorizării Bearer Token și a URL-ului furnizat, puteți exporta datele în format JSON și/sau CSV.
Procedura cu Postman
- Introduceți informațiile API-ului în câmpurile corespunzătoare din Postman
- Datele exportate în format JSON sunt afișate în secțiunea inferioară

5. Parametri opționali și paginare
Este posibil să aplicați filtre asupra exporturilor pentru a rafina și optimiza nevoile dumneavoastră de extragere.
Utilizare în Postman
- Faceți clic pe „Params”
- Introduceți cheile și valorile corespunzătoare
- Faceți clic pe „Send” pentru a valida filtrul
Lista parametrilor disponibili
| Nr. | Parametru | Descriere |
|---|---|---|
| 1 | page |
Definește numărul paginii returnate de API |
| 2 | created_at_gte |
Definește pragul „mai mare sau egal cu” (creat la…) |
| 3 | created_at_lte |
Definește pragul „mai mic sau egal cu” (creat la…) |
| 4 | updated_at_lte |
Definește pragul „mai mic sau egal cu” (actualizat la…) |
| 5 | with_custom_fields |
Autorizează afișarea câmpurilor personalizate |
| 6 | machine_ids |
Filtrează cererea pe una sau mai multe mașini |
6. Date brute - Alternativa V2 cu paginare prin cursor
Prezentare
Pentru API-ul de date brute, este disponibilă o alternativă opțională: API Performance Logs V2. Acest API oferă o paginare prin cursor mai robustă decât paginarea clasică prin număr de pagină, garantând că fiecare înregistrare este returnată exact o dată, chiar dacă datele se modifică între cererile dumneavoastră.
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 clasice (în continuare disponibile):
GET /api/v1/external/raw_data
GET /api/v1/external/simplified_losses
Puteți continua să utilizați paginarea clasică prin page sau să adoptați paginarea prin cursor, în funcție de nevoile dumneavoastră.
Când să utilizați V2 (cursor)?
- Aveți o sincronizare regulată a datelor (zilnică, orară etc.)
- Doriți să garantați zero pierderi sau duplicări de date
- Gestionați volume mari și doriți un export CSV într-o singură cerere
Când să rămâneți la V1 (pagină)?
- Efectuați exporturi punctuale simple
- Preferați paginarea clasică prin număr de pagină
- Integrarea dumneavoastră existentă funcționează bine cu V1
Paginare prin cursor: mod de utilizare
Parametri specifici V2
| Parametru | Descriere |
|---|---|
since |
Dată ISO 8601 pentru prima cerere (ex. 2025-01-01T00:00:00Z). |
cursor |
Cheie de paginare pentru cererile următoare. Vedeți mai jos. |
limit |
Numărul de rezultate pe pagină (implicit: 2000, max: 2000) |
Concept
Cursorul este o cheie de paginare care garantează că fiecare înregistrare este returnată exact o dată, chiar dacă datele se modifică între cererile dumneavoastră. Aceasta oferă o integritate mai bună a datelor în comparație cu paginarea simplă prin număr de pagină.
Prima cerere (sincronizare inițială)
Lansați prima cerere fără cursor, utilizând parametrul since sau fără niciun parametru:
GET /api/v1/external/performance_logs?since=2025-01-01T00:00:00Z
Răspunsul JSON cuprinde un obiect meta care conține un next_cursor:
json
{
"data": [ ... ],
"meta": {
"next_cursor": "eyJ1cGRhdGVkX2F0IjoiMjAyNS0wNi0wMVQxMDoxNTowMC4wMDAwMDBaIiwiaWQiOjJ9"
},
"links": {
"next": "https://gate.teeptrak.net/api/v1/external/performance_logs?cursor=eyJ1cGRhdGVkX2F0Ij..."
}
}
Cererile următoare (sincronizare incrementală)
Salvați ultimul next_cursor primit. Pentru următoarea cerere, utilizați acest cursor ca parametru:
GET /api/v1/external/performance_logs?cursor=eyJ1cGRhdGVkX2F0IjoiMjAyNS0wNi0wMVQxMDoxNTowMC4wMDAwMDBaIiwiaWQiOjJ9
Răspunsul returnează un nou next_cursor pentru cererea următoare. Repetați acest ciclu până când next_cursor este null, ceea ce indică faptul că ați obținut toate datele disponibile.
Sfârșitul paginării
Când meta.next_cursor are valoarea null sau când numărul de rezultate este mai mic decât limita, ați preluat toate înregistrările disponibile.
Pentru a continua cererea mai târziu, în vederea obținerii datelor noi, se recomandă să păstrați ultimul cursor diferit de null.
Caz de eroare: cursor pierdut
Dacă pierdeți ultimul cursor salvat, relansați o cerere cu parametrul since și o dată aproximativă a ultimei sincronizări reușite. Veți prelua atunci datele începând cu această dată.
Exemplu complet al unei sincronizări în trei cereri
- Sincronizare inițială
Cererea 1: GET /api/v1/external/performance_logs?since=2025-01-01T00:00:00Z
Răspuns: 2000 de înregistrări + next_cursor = "cursor_ABC"
Salvați "cursor_ABC"
- Sincronizare incrementală
Cererea 2: GET /api/v1/external/performance_logs?cursor=cursor_ABC
Răspuns: 2000 de înregistrări + next_cursor = "cursor_XYZ"
Salvați "cursor_XYZ"
- Ultima sincronizare incrementală
Cererea 3: GET /api/v1/external/performance_logs?cursor=cursor_XYZ
Răspuns: 1500 de înregistrări + next_cursor = "cursor_qsd"
Salvați "cursor_qsd"
Sincronizare încheiată
7. Gestionarea cursorului cu Postman (variabile de mediu)
Pentru a automatiza gestionarea cursorului în Postman, utilizați variabilele de mediu.
Configurare inițială
- Deschideți Postman și accesați „Manage Environments” (pictograma roată dințată)
- Creați sau modificați mediul dumneavoastră Gate
- Adăugați două variabile:
- Cheie:
cursor| Valoare: (lăsați gol) - Cheie:
token| Valoare: Bearer Token-ul dumneavoastră
- Cheie:
Prima cerere
În fila Params, adăugați:
| Cheie | Valoare |
|---|---|
since |
2025-01-01T00:00:00Z |
În fila Authorization, selectați Bearer Token și introduceți token-ul dumneavoastră.
Faceți clic pe Send.
Actualizarea cursorului după fiecare răspuns
- Accesați fila Tests
- Adăugați acest script pentru a salva automat
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("Curseur sauvegardé :", responseData.meta.next_cursor);
} else {
console.log("Fin de pagination : next_cursor est null");
}
}
Cererile următoare
- În fila Params, ștergeți parametrul
since - Adăugați parametrul
cursorcu valoarea{{cursor}} - Faceți clic pe Send
Postman va înlocui automat {{cursor}} cu ultima valoare salvată. După fiecare răspuns, scriptul actualizează variabila cu noul cursor.
Repetați până la sfârșit
Continuați să trimiteți cererea. Cursorul se actualizează automat după fiecare apel. Când next_cursor este null, sincronizarea este încheiată.
8. Structura răspunsului V2
Răspuns 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..."
}
}
Elemente cheie
| Element | Descriere |
|---|---|
data |
Tablou care conține înregistrările de performanță |
meta.next_cursor |
Cursor pentru cererea următoare. null dacă paginarea s-a încheiat |
links.next |
URL preconstruit pentru cererea următoare (opțional) |
data.custom_fields |
Obiect care conține câmpurile personalizate (dacă sunt activate) |
Formatul datelor calendaristice
Toate datele calendaristice sunt returnate în format ISO 8601, în UTC (ex. 2025-01-15T10:30:00Z).
10. Exemple de integrări cu V2
Export CSV complet
Pentru a exporta toate datele în CSV dintr-o singură dată:
GET /api/v1/external/performance_logs.csv?since=2025-01-01T00:00:00Z
Această cerere unică returnează toate rezultatele într-un singur fișier CSV, fără a fi necesară paginarea. Ideal pentru exporturile punctuale.
Filtrare pe mașini
Pentru a extrage datele unor mașini specifice:
GET /api/v1/external/performance_logs?cursor=...&machine_ids=10,20,30
Câmpuri personalizate
Pentru a include câmpurile personalizate în răspuns:
GET /api/v1/external/performance_logs?cursor=...&with_custom_fields=true
Acestea vor apărea în obiectul with_custom_fields al fiecărei înregistrări.