Kľúč na firmu
Kľúč vygeneruje admin firmy v Nastaveniach. Vidí sa raz — u nás je uložený len jeho odtlačok, takže ho ani my prečítať nevieme.
API
REST API nad tým istým skladom, ktorý vidíte v appke. Napojíte naň e-shop, ERP, Make.com alebo vlastný skript. Je vo všetkých balíkoch vrátane Free — sklad, ktorý si nemôžete vyskúšať napojiť ešte predtým, než začnete platiť, je mačka vo vreci.
Kľúč vygeneruje admin firmy v Nastaveniach. Vidí sa raz — u nás je uložený len jeho odtlačok, takže ho ani my prečítať nevieme.
História s IP adresou, stavom, trvaním aj odpoveďou. Keď sa integrácia sype, nemusíte hádať prečo.
Jedno volanie povie, čo je naskenovaný kód a kde leží. Vlastnú čítačku tak napojíte za popoludnie.
Overenie
Žiadne OAuth, žiadne tokeny s expiráciou. Kľúč patrí na server — nie do prehliadača ani do mobilnej appky, odkiaľ si ho ktokoľvek prečíta.
curl -H "Authorization: Bearer cstrg_ab12cd34_…" \
https://www.cloudstrg.sk/api/v1/info
Kto hlavičku Authorization nastaviť nevie (niektoré low-code nástroje), pošle kľúč v X-Api-Key.
{ "ok": true, "data": … }
{ "ok": false, "chyba": { "kod": "nenajdene", "sprava": "…" } }
Integrácia sa tak nemusí pozerať na HTTP stav, aby vedela, či uspela — stačí ok. Zoznamy majú navyše strankovanie s limit, offset a celkom.
200 / 201 — v poriadku401 — chýbajúci alebo neplatný kľúč402 — balík je plný, nová pozícia sa doň nezmestí404 — vec neexistuje alebo nepatrí vašej firme422 — chýbajúci či nezmyselný parameter429 — prekročený strop volaní; skúste o minútuKoncové body
Základ je https://www.cloudstrg.sk/api/v1. Zápisy sú zámerne len dva — založiť kontajner a povedať, kam putoval. Meniť štruktúru skladu cez API nejde: to je rozhodnutie, ktoré má urobiť človek pri regáli.
| Metóda | Cesta | Čo robí |
|---|---|---|
| GET |
/info
|
Kto som, aký mám balík a koľko volaní mi zostáva. |
| GET |
/sklady
|
Zoznam skladov. |
| GET |
/sklady/{id}
|
Jeden sklad. |
| GET |
/regaly?sklad_id=
|
Regály v sklade. |
| GET |
/police?regal_id=
|
Police v regáli. |
| GET |
/kontajnery
|
Krabice a šanóny. Filtre: sklad_id, polica_id, typ, stav, q, nezaradene, limit, offset. |
| GET |
/kontajnery/{id}
|
Jeden kontajner aj so zoznamom vecí vnútri. |
| POST |
/kontajnery
|
Založí kontajner a pridelí mu kód. Telo: nazov, typ, popis, polica_id. |
| POST |
/kontajnery/{id}/presun
|
Presunie kontajner na policu. Telo: polica_id (null = vyradiť z police). |
| GET |
/kod/{kod}
|
Čo je tento kód zo štítku a kde to leží. |
| GET |
/hladat?q=
|
Hľadanie naprieč krabicami aj vecami v nich. |
| GET |
/grafana/metriky
|
Okamžitý stav skladu ako ploché pole — pre Stat panely. |
| GET |
/grafana/rad?metrika=
|
Časový rad po dňoch bez dier: hladania, otvorenia, pohyby, api. |
| GET |
/grafana/tabulka?co=
|
Hotové riadky pre Table panel: najhladanejsie, bez-vysledku, najziadanejsie, police, sklady. |
| GET |
/grafana/prometheus
|
Tie isté čísla v textovom formáte Prometheusa. |
Ukážky
curl -H "Authorization: Bearer $KLUC" \
https://www.cloudstrg.sk/api/v1/kod/K-9WZ2QK
{
"ok": true,
"data": {
"typ": "kontajner",
"kod": "K-9WZ2QK",
"id": 412,
"nazov": "Účtovníctvo 2023",
"popis": "Košice · R1 · R1-2"
}
}
curl -H "Authorization: Bearer $KLUC" \
"https://www.cloudstrg.sk/api/v1/hladat?q=vŕtačka"
curl -X POST -H "Authorization: Bearer $KLUC" \
-H "Content-Type: application/json" \
-d '{"nazov":"Faktúry 2026","typ":"sanon","polica_id":12}' \
https://www.cloudstrg.sk/api/v1/kontajnery
Kód sa pridelí sám a vráti sa v odpovedi — štítok si naň potom vytlačíte v appke. O kódoch rozhoduje appka zámerne, aby nemohli vzniknúť dva rovnaké.
Grafana
Grafana sa k našej databáze nedostane a ani nemá — dostane hotové čísla cez HTTPS. Stačí jej API kľúč a jeden datasource.
V Grafane pridajte datasource Infinity, typ JSON → URL, a do hlavičiek Authorization: Bearer cstrg_…. Odpovede sú holé polia objektov, takže sa nenastavuje žiadny root selector.
# Stat panely — stav skladu práve teraz
https://www.cloudstrg.sk/api/v1/grafana/metriky
# Time series — hľadania po dňoch (aj otvorenia, pohyby, api)
https://www.cloudstrg.sk/api/v1/grafana/rad?metrika=hladania&dni=30
# Table — po čom sa najviac siaha
https://www.cloudstrg.sk/api/v1/grafana/tabulka?co=najziadanejsie&dni=30
Rad má vždy jeden riadok na deň — aj za dni, keď sa nič nedialo. Bez toho by Grafana spojila tretí a siedmy deň priamkou, akoby sa medzitým pracovalo.
scrape_configs:
- job_name: cloudstrg
scrape_interval: 60s
metrics_path: /api/v1/grafana/prometheus
scheme: https
authorization:
credentials: cstrg_ab12cd34_…
static_configs:
- targets: ['www.cloudstrg.sk']
Obe cesty vracajú tie isté čísla, takže sa dajú aj kombinovať.
Volania pre Grafanu sa počítajú do rovnakého stropu ako ostatné. Obnova každých 10 sekúnd je 360 volaní za hodinu na jeden panel — pri desiatich paneloch aj Free balík vyčerpáte za osem minút. Nastavte interval na minútu; skladové čísla sa rýchlejšie nemenia.
Limity
Líši sa len strop volaní na hodinu. Každá odpoveď nesie X-RateLimit-Limit a X-RateLimit-Remaining, takže integrácia vie, ako je na tom, bez toho aby to musela hádať.
500 volaní za hodinu — zadarmo
2 000 volaní za hodinu
10 000 volaní za hodinu
50 000 volaní za hodinu
Strop je na firmu, nie na kľúč — viac kľúčov si teda vytvoríte kvôli prehľadu, nie kvôli limitu. Pri prekročení príde 429 a hlavička Retry-After; nič sa nemaže a o minútu ide všetko ďalej.
Začnite jedným regálom
Free balík je zadarmo a bez časového obmedzenia — 30 pozícií stačí na jeden regál aj na to, aby ste zistili, či vám to sadne. Platený balík si vyberiete až keď vám miesto dôjde.