API

Sklad, ze kterého se dají dostat data ven

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íč 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.

Vidíte každé volání

Historie s IP adresou, stavem, trváním i odpovědí. Když se integrace sype, nemusíte hádat proč.

Kód ze štítku

Jedno volání řekne, co je naskenovaný kód a kde leží. Vlastní čtečku tak napojíte za odpoledne.

Ověření

Klíč v hlavičce, nic jiného

Žá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.

Odpověď má vždy stejný tvar

{ "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.

Stavy, které vám mohou přijít

  • 200 / 201 — v pořádku
  • 401 — chybějící nebo neplatný klíč
  • 402 — balíček je plný, nová pozice se do něj nevejde
  • 404 — věc neexistuje nebo nepatří vaší firmě
  • 422 — chybějící či nesmyslný parametr
  • 429 — překročený strop volání; zkuste to za minutu

Koncové body

15 volání, která pokryjí většinu

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

Tři věci, které budete dělat nejčastěji

Co je tento kód ze štítku

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"
  }
}

Najít krabici podle věci v ní

curl -H "Authorization: Bearer $KLUC" \
  "https://www.cloudstrg.sk/api/v1/hladat?q=vŕtačka"

Založit krabici a rovnou ji zařadit

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

Dashboard bez přístupu do databáze

Grafana se k naší databázi nedostane a ani nemusí — dostane hotová čísla přes HTTPS. Stačí jí API klíč a jeden datasource.

Cesta první: Infinity datasource (bez Promethea)

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.

Cesta druhá: Prometheus (když scrape už máte)

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.

Jedna věc, na kterou pozor

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

API má každý balíček

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.

Free

500 volání za hodinu — zdarma

Start

2 000 volání za hodinu

Profi

10 000 volání za hodinu

Sklad

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

Za hodinu máte očíslovaný první regál. Za odpoledne celý sklad.

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.