Klíč na firmu
Klíč vygeneruje admin firmy v Nastavení. Zobrazí se jednou — u nás je uložený jen jeho otisk, takže ho ani my přečíst neumíme.
API
REST API nad tímtéž skladem, který vidíte v aplikaci. Napojíte na něj e-shop, ERP, Make.com nebo vlastní skript. Je ve všech balíčcích včetně Free — sklad, který si nemůžete zkusit napojit ještě předtím, než začnete platit, je zajíc v pytli.
Klíč vygeneruje admin firmy v Nastavení. Zobrazí se jednou — u nás je uložený jen jeho otisk, takže ho ani my přečíst neumíme.
Historie s IP adresou, stavem, trváním i odpovědí. Když se integrace sype, nemusíte hádat proč.
Jedno volání řekne, co je naskenovaný kód a kde leží. Vlastní čtečku tak napojíte za odpoledne.
Ověření
Žádné OAuth, žádné tokeny s expirací. Klíč patří na server — ne do prohlížeče ani do mobilní aplikace, odkud si ho kdokoli přečte.
curl -H "Authorization: Bearer cstrg_ab12cd34_…" \
https://www.cloudstrg.sk/api/v1/info
Kdo hlavičku Authorization nastavit neumí (některé low-code nástroje), pošle klíč v X-Api-Key.
{ "ok": true, "data": … }
{ "ok": false, "chyba": { "kod": "nenajdene", "sprava": "…" } }
Integrace se tak nemusí dívat na HTTP stav, aby věděla, jestli uspěla — stačí ok. Seznamy mají navíc strankovanie s limit, offset a celkom.
200 / 201 — v pořádku401 — chybějící nebo neplatný klíč402 — balíček je plný, nová pozice se do něj nevejde404 — věc neexistuje nebo nepatří vaší firmě422 — chybějící či nesmyslný parametr429 — překročený strop volání; zkuste to za minutuKoncové body
Základ je https://www.cloudstrg.sk/api/v1. Zápisy jsou záměrně jen dva — založit kontejner a říct, kam putoval. Měnit strukturu skladu přes API nejde: to je rozhodnutí, které má udělat člověk u regálu.
| Metoda | Cesta | Co dělá |
|---|---|---|
| GET |
/info
|
Kdo jsem, jaký mám balíček a kolik volání mi zbývá. |
| GET |
/sklady
|
Seznam skladů. |
| GET |
/sklady/{id}
|
Jeden sklad. |
| GET |
/regaly?sklad_id=
|
Regály ve skladu. |
| GET |
/police?regal_id=
|
Police v regálu. |
| GET |
/kontajnery
|
Krabice a šanony. Filtry: sklad_id, polica_id, typ, stav, q, nezaradene, limit, offset. |
| GET |
/kontajnery/{id}
|
Jeden kontejner i se seznamem věcí uvnitř. |
| POST |
/kontajnery
|
Založí kontejner a přidělí mu kód. Tělo: nazov, typ, popis, polica_id. |
| POST |
/kontajnery/{id}/presun
|
Přesune kontejner na polici. Tělo: polica_id (null = vyřadit z police). |
| GET |
/kod/{kod}
|
Co je tento kód ze štítku a kde leží. |
| GET |
/hladat?q=
|
Hledání napříč krabicemi i věcmi v nich. |
| GET |
/grafana/metriky
|
Okamžitý stav skladu jako ploché pole — pro Stat panely. |
| GET |
/grafana/rad?metrika=
|
Časová řada po dnech bez děr: hladania, otvorenia, pohyby, api. |
| GET |
/grafana/tabulka?co=
|
Hotové řádky pro Table panel: najhladanejsie, bez-vysledku, najziadanejsie, police, sklady. |
| GET |
/grafana/prometheus
|
Tatáž čísla v textovém formátu Prometheu. |
Ukázky
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 se přidělí sám a vrátí se v odpovědi — štítek si na něj pak vytisknete v aplikaci. O kódech rozhoduje aplikace záměrně, aby nemohly vzniknout dva stejné.
Grafana
Grafana se k naší databázi nedostane a ani nemusí — dostane hotová čísla přes HTTPS. Stačí jí API klíč a jeden datasource.
V Grafaně přidejte datasource Infinity, typ JSON → URL, a do hlaviček Authorization: Bearer cstrg_…. Odpovědi jsou holá pole objektů, takže se nenastavuje žádný root selector.
# Stat panely — stav skladu právě teď
https://www.cloudstrg.sk/api/v1/grafana/metriky
# Time series — hledání po dnech (i otvorenia, pohyby, api)
https://www.cloudstrg.sk/api/v1/grafana/rad?metrika=hladania&dni=30
# Table — po čem se nejvíc sahá
https://www.cloudstrg.sk/api/v1/grafana/tabulka?co=najziadanejsie&dni=30
Řada má vždy jeden řádek na den — i za dny, kdy se nic nedělo. Bez toho by Grafana spojila třetí a sedmý den přímkou, jako by se mezití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']
Obě cesty vracejí tatáž čísla, takže se dají i kombinovat.
Volání pro Grafanu se počítají do stejného stropu jako ostatní. Obnova každých 10 sekund je 360 volání za hodinu na jeden panel — při deseti panelech vyčerpáte i balíček Free za osm minut. Nastavte interval na minutu; skladová čísla se rychleji nemění.
Limity
Liší se jen strop volání za hodinu. Každá odpověď nese X-RateLimit-Limit a X-RateLimit-Remaining, takže integrace ví, jak na tom je, aniž by to musela hádat.
500 volání za hodinu — zdarma
2 000 volání za hodinu
10 000 volání za hodinu
50 000 volání za hodinu
Strop je na firmu, ne na klíč — více klíčů si tedy vytvoříte kvůli přehledu, ne kvůli limitu. Při překročení přijde 429 a hlavička Retry-After; nic se nemaže a za minutu jde všechno dál.
Začněte jedním regálem
Balíček Free je zdarma a bez časového omezení — 30 pozic stačí na jeden regál i na to, abyste zjistili, jestli vám to sedne. Placený balíček si vyberete, až vám místo dojde.