Tato stránka popisuje, jak z Time Slot Control automaticky stahovat data rezervací do externího systému (WMS, ERP, BI, datový sklad). Typické použití je pravidelné volání API, například každých 15 minut nebo jednou denně, které stáhne nové a změněné rezervace.
Pro okamžitou informaci o změně lze volání API kombinovat s webhooky. Webhook oznámí, že se rezervace změnila, a detail rezervace si systém stáhne přes API popsané níže.
Předpoklady:
.timeslotcontrol.comGET https://api.timeslotcontrol.com/v3/{tenant}/Reservations
Odpověď je pole JSON objektů. Názvy polí jsou v PascalCase. Všechny časy jsou v UTC (ISO 8601). Smazané rezervace se nevracejí (viz sekce Smazané rezervace níže).
Endpoint podporuje standardní OData parametry:
$filter
$orderby
StartUtc asc.$top
Jedno volání vrátí nejvýše 1000 záznamů, a to i bez parametru
$top. Vždy proto omezte dotaz časovým rozsahem ($filter) a nastavte$top=1000. Pokud odpověď obsahuje 1000 záznamů, zužte časový rozsah (viz Stránkování níže).
Id
Guid
ReservationNumber
string
StartUtc / EndUtc
DateTime
ResourceId
Guid
Carrier
string
CarrierId
Guid?
VehicleTypeId
Guid?
VehicleNumberPlate / TrailerNumberPlate
string
CarrierDriverFullName
string
ApprovalStatus
string
Approved, Pending nebo Rejected.RealGateVehicleArrivalUtc / RealGateVehicleDepartureUtc
DateTime?
OrderNumbers / SupplierNames
string
Created / Updated
DateTime?
Kompletní seznam polí včetně vlastních polí (ExtCustomField*) najdete v API Reference (Scalar UI): https://api.timeslotcontrol.com/_doc, sekce Reservations.
Příklady používají sandbox api.tscsandbox.com a Basic autentizaci. Na produkci použijte api.timeslotcontrol.com. Místo Basic autentizace lze použít také Bearer token.
Všechny rezervace se slotem v daném týdnu, seřazené podle začátku slotu:
curl -G "https://api.tscsandbox.com/v3/{tenant}/Reservations" \
-u "api@vasedomena.com:heslo" \
--data-urlencode "\$filter=StartUtc ge 2026-10-05T00:00:00Z and StartUtc lt 2026-10-12T00:00:00Z" \
--data-urlencode "\$orderby=StartUtc asc,Id asc" \
--data-urlencode "\$top=1000"
Odpověď (zkráceno):
[
{
"Id": "3f6c2a1e-...",
"ReservationNumber": "R-2026-012345",
"StartUtc": "2026-10-06T06:00:00Z",
"EndUtc": "2026-10-06T06:30:00Z",
"ResourceId": "6f9d8b0f-...",
"Carrier": "Dopravce s.r.o.",
"CarrierId": "b7d82473-...",
"VehicleTypeId": "1c2d3e4f-...",
"VehicleNumberPlate": "1AB2345"
}
]
Pro pravidelné stahování je nejúspornější načítat jen rezervace vytvořené nebo změněné od posledního běhu. Čas posledního úspěšného běhu si uložte na své straně a použijte ho ve filtru:
curl -G "https://api.tscsandbox.com/v3/{tenant}/Reservations" \
-u "api@vasedomena.com:heslo" \
--data-urlencode "\$filter=(Created ge 2026-10-06T08:00:00Z and Created lt 2026-10-06T08:15:00Z) or (Updated ge 2026-10-06T08:00:00Z and Updated lt 2026-10-06T08:15:00Z)" \
--data-urlencode "\$orderby=Id asc" \
--data-urlencode "\$top=1000"
Jako počátek dalšího běhu doporučujeme použít čas zahájení předchozího běhu (ne jeho konce) a zpracovávat záznamy idempotentně podle
Id. Rezervace změněná během běhu se tak nikdy neztratí.
Stahujte data po časových úsecích (např. po dnech, u přírůstkové synchronizace po intervalech mezi běhy). Pokud odpověď obsahuje přesně 1000 záznamů, nemusí být úplná: rozdělte úsek na menší části (např. na poloviny) a stáhněte je zvlášť. Opakujte, dokud každá odpověď nevrátí méně než 1000 záznamů.
Parametry
$skipa$selecttento endpoint v současnosti nezpracovává správně, proto je nepoužívejte. Endpoint vždy vrací všechna pole rezervace.
Rezervace obsahuje rampu a typ vozidla jako ID. Názvy načtěte z číselníků, ideálně jednou a uložte si je do mezipaměti, protože se mění zřídka.
GET https://api.timeslotcontrol.com/v3/{tenant}/Resources
Vrací pole Id, ResourceName, ShortName, ResourceNameLocalized a BranchOfficeId. Hodnota ResourceId z rezervace odpovídá poli Id.
GET https://api.timeslotcontrol.com/odata/v1/{tenant}/VehicleType?$select=Id,VehicleTypeName
Hodnota VehicleTypeId z rezervace odpovídá poli Id, název je v poli VehicleTypeName.
Endpoint Reservations vrací pouze platné rezervace. Smazané rezervace jsou dostupné přes OData entitu ReservationDeleted:
GET https://api.timeslotcontrol.com/odata/v1/{tenant}/ReservationDeleted?$select=Id,ReservationNumber
Pokud ve svém systému udržujete kopii rezervací, pravidelně porovnávejte Id s touto entitou a smazané rezervace odstraňte. Alternativně můžete odebírat webhook reservation.deleted.
https://api.tscsandbox.com.Created/Updated se stránkováním.Pokud stačí data pro reporting bez programování, lze se k entitě
Reservationpřipojit přímo z Microsoft Excel nebo Power BI přes OData (viz OData) a data automaticky aktualizovat.