Úvod
API vracia štatistiky AI asistenta vo vašom e-shope: to, čo vidíte v dashboarde na asistent.ragnetiq.com, a navyše každú jednotlivú konverzáciu, každý odporúčaný produkt a každú objednávku a košík, ktoré sa asistentovi pripísali. Dáta sú vaše: môžete si ich stiahnuť do vlastného reportingu, dátového skladu alebo BI nástroja.
Základná adresa je https://asistent.ragnetiq.com/api/stats/v1. Všetky odpovede sú JSON v UTF-8, časy záznamov sú ISO 8601 v UTC. Požiadavky sú iba GET; API nič nemení.
Staršia adresa dashboard.ragnetiq.com presmeruje na asistent.ragnetiq.com. V API volaniach používajte novú adresu: väčšina HTTP klientov pri presmerovaní na inú doménu hlavičku Authorization zahodí a dostanete 401.
- Kľúč patrí jednému e-shopu. Ak má obchod viac jazykových mutácií (napríklad slovenskú, českú a maďarskú doménu), kľúč pokrýva všetky alebo len vybrané – podľa toho, čo s nami dohodnete. Parametrom
marketsi dáta zúžite na jednu mutáciu. - Obdobie si vyberáte parametrami
fromato, najviac 366 dní naraz. Dni sa počítajú v časovom pásmeEurope/Bratislava, rovnako ako v dashboarde. - Prehľady (
/summary,/products) sú rovnaké čísla ako v dashboarde;/conversations,/ordersa/cartsobsahujú jednotlivé záznamy. - Objednávky a košíky sú dostupné, iba ak má váš e-shop zapnuté meranie konverzií (
modulesv/client). - Neukladáme osobné údaje zákazníkov: identifikátor návštevníka je náhodný a e-maily či telefónne čísla v konverzáciách sú nahradené
[e-mail]a[telefón].
Autentifikácia
Kľúč vám vystaví Ragnetiq. Má tvar as_ a 64 hexadecimálnych znakov. Posielajte ho v hlavičke Authorization pri každej požiadavke:
Authorization: Bearer as_9f2c1a7e…Kľúč je tajný ako heslo. Používajte ho len zo servera (cron, backend, ETL), nikdy nie v prehliadači ani v mobilnej aplikácii. Ak unikne, napíšte nám: starý kľúč odvoláme a vystavíme nový; odvolaný kľúč prestane fungovať okamžite.
Neplatný, chýbajúci alebo odvolaný kľúč dostane odpoveď 401 unauthorized. Kľúč, ktorý nemá prístup k požadovanej jazykovej mutácii, dostane 403 forbidden.
Pravidlá spoločné pre všetky API Ragnetiq (kľúče, stránkovanie, limity, chyby, verzie) sú aj na jednej stránke: Základy API.
Spoločné parametre a pravidlá
Parametre v adrese
| Parameter | Hodnota | Význam |
|---|---|---|
market | doména mutácie, voliteľný | Obmedzí dáta na jednu alebo viac jazykových mutácií: ?market=demo-shop.cz, ?market=a&market=b alebo ?market=a,b. Bez parametra dostanete všetky mutácie kľúča spolu. Domény nájdete v /client. |
from | YYYY-MM-DD, voliteľný | Prvý deň obdobia (vrátane). Predvolene 29 dní pred to. |
to | YYYY-MM-DD, voliteľný | Posledný deň obdobia (vrátane). Predvolene dnes. Obdobie môže mať najviac 366 dní. |
after, limit | kurzor, celé číslo | Stránkovanie konverzácií, pozri nižšie. |
Deň začína a končí o polnoci v Bratislave (Europe/Bratislava), rovnako ako v administrácii; každá odpoveď to uvádza v poli timezone. Tržby sú v mene, ktorú uvádza pole currency.
Stránkovanie
/conversations vracia najviac 200 konverzácií naraz, zoradených od najstaršej. Odpoveď obsahuje next: kurzor za poslednou konverzáciou strany, alebo null, keď už ďalšia strana nie je. Ďalšiu stranu si vyžiadate parametrom after=<next> s rovnakým from, to a market. Veľkosť strany určuje limit (1 – 200, predvolene 100).
Kurzor je nepriehľadný text: neskladajte ho sami, iba ho pošlite späť. Konverzácie majú stále id, takže pri prírastkovom sťahovaní si môžete duplicity jednoducho vyradiť. /products, /orders a /carts vracajú celé obdobie naraz.
Limity
- Najviac 120 požiadaviek za minútu na jeden kľúč; pri prekročení dostanete
429 rate_limited. - Obdobie najviac 366 dní; dlhšiu históriu stiahnete po častiach.
- Dáta sú dostupné do niekoľkých sekúnd po tom, čo sa udalosť stala, takže čísla za dnešný deň sa priebežne menia. Pre uzavreté čísla sťahujte včerajší deň a staršie.
Chyby
Chybová odpoveď má vždy rovnaký tvar: HTTP stavový kód, pole error so strojovým kódom a message s vysvetlením.
HTTP/1.1 403 Forbidden
Content-Type: application/json; charset=utf-8
{ "error": "forbidden", "message": "Kľúč nemá prístup k mutácii demo-shop.cz." }| HTTP | error | Kedy |
|---|---|---|
| 400 | invalid_period | from/to nie sú dátumy, to je pred from, alebo obdobie presahuje 366 dní. |
| 400 | invalid_market, invalid_param | Nesprávny tvar parametra market, after alebo limit. |
| 401 | unauthorized | Chýbajúci, neplatný alebo odvolaný kľúč. |
| 403 | forbidden | Kľúč nepokrýva niektorú z mutácií v market, alebo module_disabled: e-shop nemá zapnuté meranie objednávok či košíkov. |
| 429 | rate_limited | Viac ako 120 požiadaviek za minútu. Počkajte a skúste znova. |
| 502, 503 | upstream, unavailable | Dočasný výpadok na našej strane. Zopakujte požiadavku neskôr. |
E-shop a mutácie
E-shop, ku ktorému kľúč patrí, jeho jazykové mutácie, ktoré kľúč vidí, a zapnuté moduly. Doménu z market používate v parametri market; je aj pri každej konverzácii.
curl "https://asistent.ragnetiq.com/api/stats/v1/client" \
-H "Authorization: Bearer as_VAS_KLUC"{
"client": "Demo Shop",
"access": "client",
"markets": [
{ "market": "demo-shop.sk", "country": "Slovensko" },
{ "market": "demo-shop.cz", "country": "Česko" }
],
"modules": { "orders": true, "carts": true }
}| Pole | Typ | Význam |
|---|---|---|
client | text | Názov e-shopu. |
access | text | client = kľúč pokrýva celý e-shop, aj mutácie pridané neskôr; markets = iba mutácie uvedené v markets. |
markets | pole | Jazykové mutácie, ktoré kľúč vidí: market (doména), country (krajina podľa domény). E-shop s jednou doménou má jednu mutáciu. |
modules | objekt | orders, carts: či má e-shop zapnuté meranie objednávok a košíkov z chatu. Bez modulu vracajú /orders a /carts chybu 403 module_disabled. |
Súhrn
Čísla z dashboardu: súčty za obdobie, to isté za rovnako dlhé predchádzajúce obdobie (na porovnanie), lievik od konverzácie k objednávke, objednávky a košíky z chatu, hodnoty po dňoch a rozdelenie podľa jazykových mutácií.
curl "https://asistent.ragnetiq.com/api/stats/v1/summary?from=2026-10-01&to=2026-10-15" \
-H "Authorization: Bearer as_VAS_KLUC"{
"client": "Demo Shop",
"markets": null,
"from": "2026-10-01",
"to": "2026-10-15",
"timezone": "Europe/Bratislava",
"totals": {
"sessions": 1028,
"users": 846,
"returning_users": 131,
"messages": 3410,
"recommendation_sessions": 612,
"click_sessions": 247,
"click_rate": 0.2403,
"emails": 58,
"email_rate": 0.0564,
"avg_duration_seconds": 214,
"total_duration_seconds": 198732,
"support_savings_eur": 6063
},
"previous": { "from": "2026-09-16", "to": "2026-09-30", "sessions": 964, "…": "…" },
"funnel": { "sessions": 1028, "recommendation_sessions": 612, "click_sessions": 247, "carts": 91, "orders": 52 },
"orders": { "count": 52, "revenue": 3184.6, "currency": "EUR", "previous": { "count": 47, "revenue": 2911.2, "currency": "EUR" } },
"carts": { "count": 91, "revenue": 0, "currency": "EUR", "previous": { "count": 85, "revenue": 0, "currency": "EUR" } },
"daily": [
{ "day": "2026-10-01", "sessions": 71, "click_sessions": 17, "emails": 4 },
{ "day": "2026-10-02", "sessions": 64, "click_sessions": 15, "emails": 3 }
],
"markets": [
{ "market": "demo-shop.sk", "country": "Slovensko", "sessions": 804, "users": 661, "messages": 2671,
"click_sessions": 196, "click_rate": 0.2438, "emails": 47 },
{ "market": "demo-shop.cz", "country": "Česko", "sessions": 224, "users": 185, "messages": 739,
"click_sessions": 51, "click_rate": 0.2277, "emails": 11 }
]
}totals a previous
| Pole | Typ | Význam |
|---|---|---|
sessions | číslo | Konverzácie (relácie) s asistentom. |
users | číslo | Rôzni návštevníci; returning_users z nich mali 2 a viac konverzácií. |
messages | číslo | Správy, ktoré napísali zákazníci. |
recommendation_sessions | číslo | Konverzácie, v ktorých asistent odporučil produkt. |
click_sessions, click_rate | číslo, číslo 0 – 1 | Konverzácie s preklikom na odporúčaný produkt a ich podiel zo sessions. |
emails, email_rate | číslo, číslo 0 – 1 | Konverzácie, v ktorých zákazník nechal e-mail (napríklad pre podporu), a ich podiel. |
avg_duration_seconds, total_duration_seconds | číslo | Priemerná dĺžka konverzácie a čas vo všetkých konverzáciách spolu. |
support_savings_eur | číslo | Odhad úspory na podpore: konverzácia bez e-mailu = 15 minút práce podpory po 25 € za hodinu. |
previous má tie isté polia a navyše from a to predchádzajúceho obdobia.
funnel
Lievik: sessions → recommendation_sessions dostali odporúčanie → click_sessions preklikli na produkt → carts pridali do košíka → orders objednali. carts a orders sú null, ak e-shop nemá daný modul.
orders a carts
Objednávky a košíky pripísané asistentovi: count, revenue, currency a to isté v previous. Celé pole je null, ak e-shop nemá daný modul. Jednotlivé záznamy vracajú /orders a /carts.
daily
Jeden záznam pre každý deň obdobia (aj s nulami): day (YYYY-MM-DD), sessions, click_sessions, emails.
markets
To isté po jazykových mutáciách: market, country, sessions, users, messages, click_sessions, click_rate, emails.
Konverzácie
Každá konverzácia s asistentom aj s celým priebehom, od najstaršej, po stranách. Všetko, čo /summary počíta o konverzáciách, sa dá odvodiť odtiaľto.
| Parameter | Hodnota | Význam |
|---|---|---|
after | text | Kurzor next z predchádzajúcej strany. Bez neho prvá strana. |
limit | 1 – 200 | Veľkosť strany. Predvolene 100. |
curl "https://asistent.ragnetiq.com/api/stats/v1/conversations?market=demo-shop.cz&from=2026-10-01&to=2026-10-15&limit=200" \
-H "Authorization: Bearer as_VAS_KLUC"{
"client": "Demo Shop",
"markets": ["demo-shop.cz"],
"from": "2026-10-01",
"to": "2026-10-15",
"timezone": "Europe/Bratislava",
"items": [
{
"id": "3f0c5a92-6b1e-4c7d-9a10-2e8f4b6d1c55",
"market": "demo-shop.cz",
"started_at": "2026-10-14T08:21:36.412+00:00",
"visitor_id": "k2v9x1m4p7q8r3s6",
"user_messages": 3,
"had_recommendation": true,
"had_click": true,
"email_submitted": false,
"city": "Brno",
"duration_seconds": 184,
"feedback": "positive",
"messages": [
{ "role": "user", "content": "Jaký čaj doporučujete na spaní?", "at": "2026-10-14T08:21:36.412Z" },
{ "role": "assistant", "content": "Na klidný spánek vyzkoušejte **Bylinný čaj 100 g** …", "at": "2026-10-14T08:21:39.907Z" }
]
}
],
"next": "MjAyNi0xMC0xNFQwODoyMTozNi40MTIrMDA6MDB8M2YwYzVhOTI…"
}Polia konverzácie
| Pole | Typ | Význam |
|---|---|---|
id | text | Stále id konverzácie (UUID). |
market | text | Doména jazykovej mutácie, na ktorej konverzácia prebehla. |
started_at | čas | Začiatok konverzácie (UTC). |
visitor_id | text | null | Náhodný identifikátor prehliadača. Nie je to osoba. |
user_messages | číslo | Počet správ zákazníka. |
had_recommendation, had_click | áno/nie | Asistent odporučil produkt; zákazník preklikol na odporúčaný produkt. |
email_submitted | áno/nie | Zákazník v chate nechal e-mail (samotný e-mail API nevracia). |
city | text | null | Mesto podľa IP adresy, ak sa dalo určiť. |
duration_seconds | číslo | Dĺžka konverzácie. |
feedback | text | null | Hodnotenie zákazníka: positive, negative alebo null. |
messages | pole | Priebeh: role (user zákazník, assistant asistent), content, at. E-maily a telefónne čísla sú nahradené [e-mail] a [telefón]. |
Produkty
Najviac 100 produktov, ktoré asistent v konverzáciách odporučil, zoradených podľa počtu odporúčaní.
curl "https://asistent.ragnetiq.com/api/stats/v1/products?from=2026-09-16&to=2026-10-15" \
-H "Authorization: Bearer as_VAS_KLUC"{
"client": "Demo Shop",
"markets": null,
"from": "2026-09-16",
"to": "2026-10-15",
"timezone": "Europe/Bratislava",
"items": [
{ "product_id": "1042", "name": "Bylinný čaj 100 g", "url": "https://demo-shop.sk/bylinny-caj-100-g",
"recommendations": 214, "clicks": 61, "click_rate": 0.285, "avg_position": 1.4 }
]
}| Pole | Typ | Význam |
|---|---|---|
product_id | text | Identifikátor produktu z vášho feedu, takže si ho viete spojiť s vlastným katalógom. |
name, url | text, text | null | Názov produktu a jeho adresa v e-shope. |
recommendations | číslo | Koľkokrát asistent produkt odporučil. |
clicks, click_rate | číslo, číslo 0 – 1 | Prekliky zákazníkov na produkt a ich podiel z odporúčaní. |
avg_position | číslo | null | Priemerné poradie produktu v odporúčaní (1 = prvý). |
Objednávky
Objednávky pripísané asistentovi za obdobie, od najstaršej, s konverzáciou, ktorá k objednávke viedla. Iba pre e-shopy so zapnutým meraním objednávok.
curl "https://asistent.ragnetiq.com/api/stats/v1/orders?from=2026-10-01&to=2026-10-15" \
-H "Authorization: Bearer as_VAS_KLUC"{
"client": "Demo Shop",
"markets": null,
"from": "2026-10-01",
"to": "2026-10-15",
"timezone": "Europe/Bratislava",
"count": 52,
"revenue": 3184.6,
"currency": "EUR",
"items": [
{
"id": "2026001234",
"code": "2026001234",
"created_at": "2026-10-14T09:02:11.055Z",
"attribution": "direct",
"confidence": 0.92,
"revenue": 42.9,
"currency": "EUR",
"recommendation_query": "čaj na spanie",
"recommended_product": "Bylinný čaj 100 g",
"clicked_url": "https://demo-shop.sk/bylinny-caj-100-g",
"minutes_from_click": 18,
"conversation": [
{ "role": "user", "content": "Aký čaj odporúčate na spanie?", "at": "2026-10-14T08:41:02.118Z" }
]
}
]
}| Pole | Typ | Význam |
|---|---|---|
count, revenue, currency | číslo, číslo, text | Počet pripísaných objednávok a ich tržba spolu. |
items[].id, code | text, text | null | Číslo objednávky vo vašom e-shope a jej kód, ak sa líši. |
created_at | čas | null | Kedy bola objednávka vytvorená (UTC). |
attribution, confidence | text, číslo 0 – 1 | Ako silno sa objednávka asistentovi pripísala (napríklad direct) a istota pripísania. |
revenue, currency | číslo, text | Tržba objednávky pripísaná asistentovi. |
recommendation_query, recommended_product, clicked_url | text | null | Na čo sa zákazník pýtal, aký produkt dostal a kam preklikol. |
minutes_from_click | číslo | null | Minúty od prekliku po objednávku. |
conversation | pole | Konverzácia pred objednávkou (role, content, at), bez osobných údajov. |
Košíky
Pridania do košíka pripísané asistentovi, v rovnakom tvare ako /orders: zákazník po konverzácii a preklike pridal produkt do košíka. Iba pre e-shopy so zapnutým meraním košíkov.
curl "https://asistent.ragnetiq.com/api/stats/v1/carts?market=demo-shop.sk&from=2026-10-01&to=2026-10-15" \
-H "Authorization: Bearer as_VAS_KLUC"Príklady
Odporúčaný postup: raz denne (napríklad ráno) si stiahnite /summary za včerajšok pre denné reporty a /conversations a /orders za včerajší deň do vlastného skladu. Kľúč držte v premennej prostredia, nie v kóde.
const BASE = "https://asistent.ragnetiq.com/api/stats/v1";
const headers = { Authorization: `Bearer ${process.env.ASSISTANT_API_KEY}` };
async function get(path, params = {}) {
const url = new URL(BASE + path);
for (const [k, v] of Object.entries(params)) if (v != null) url.searchParams.set(k, String(v));
const res = await fetch(url, { headers });
if (!res.ok) throw new Error(`${res.status} ${await res.text()}`);
return res.json();
}
// súhrn za september
const summary = await get("/summary", { from: "2026-09-01", to: "2026-09-30" });
console.log(summary.totals.sessions, summary.orders?.count);
// všetky konverzácie po stranách
let after = null;
do {
const page = await get("/conversations", { from: "2026-09-01", to: "2026-09-30", after, limit: 200 });
for (const c of page.items) store(c); // vaša logika
after = page.next;
} while (after);import os, requests
BASE = "https://asistent.ragnetiq.com/api/stats/v1"
HEADERS = {"Authorization": f"Bearer {os.environ['ASSISTANT_API_KEY']}"}
def get(path, **params):
r = requests.get(BASE + path, headers=HEADERS, params=params, timeout=60)
r.raise_for_status()
return r.json()
summary = get("/summary", **{"from": "2026-09-01", "to": "2026-09-30", "market": "demo-shop.cz"})
print(summary["totals"]["sessions"])
orders = get("/orders", **{"from": "2026-09-01", "to": "2026-09-30"})
for order in orders["items"]:
... # vaša logikaZmeny
| Dátum | Verzia | Zmena |
|---|---|---|
| 25. 10. 2026 | v1 | Prvé vydanie: /client, /summary, /conversations, /products, /orders, /carts; kľúče na celý e-shop aj jednotlivé jazykové mutácie. |
Verzia je v adrese (/v1). Nové polia môžeme pridávať kedykoľvek; existujúce polia a ich význam v rámci verzie nemeníme. O prípadnej novej verzii vás vopred informujeme.