WEXBO API

ÚVOD#

Táto dokumentácia poskytuje informácie o API rozhraní pre vývojárov, prostredníctvom ktorého je možné získať prístup do jednotlivých účtov (profilov) vedených v systéme WEXBO a spravovať tak niektoré sekcie a položky (získavať, pridávať, upravovať alebo mazať) v reálnom čase. Prepojiť je tak možné účtovný systém, ERP či CRM systém, prepravnú spoločnosť, analytické a marketingové nástroje, atď. Naše rozhranie API funguje ako webová služba REST, ktorá je založená na jednoduchej komunikácii s protokolom HTTP, pričom na výmenu dát využíva dátový formát JSON. Dokumentácia popisuje aktuálnu verziu označovanú ako v1.

Podrobné informácie o systéme WEXBO nájdete na stránkach wexbo.com.

Autorizace#

Každé volanie požiadavky na REST API musí byť autorizované. Vo všetkých volaniach tak musí byť prítomná HTTP hlavička Authorization obsahujúca API token, ktorý reprezentuje prístup ku konkrétnemu účtu.

Authorization: Bearer {API_TOKEN}požadavekhttp

API token získate po prihlásení sa do administrácie vášho účtu napríklad cez https://admin.wexbo.com v sekcii DOPLNKY / PLUGINY v plugine s názvom API.

Návratový stavový kód HTTP pre volanie, pri ktorých nebol používateľ prihlásený, je 401 Unauthorized.

Požadavek#

HTTP metody#

Podporované sú bežné metódy protokolu HTTP, ktoré sa zvyčajne používajú medzi webovými službami REST. Každá metóda protokolu HTTP má inú funkciu, pričom spôsob výkladu je popísaný v nasledujúcom zozname:

KódPopis
GETNačítanie jedného alebo viacerých záznamov. Požiadavka neobsahuje žiadne telo, teda sa využívajú len URL parametre.
POSTVytvorenie nového záznamu. Požiadavka musí obsahovať telo vo formáte JSON, teda údaje záznamu, ktoré chcete pridať.
PUTÚprava či aktulizácia existujúceho záznamu. Požiadavka musí obsahovať identifikátor záznamu a telo vo formáte JSON, teda údaje záznamu, ktoré chcete upraviť.
DELETEZmazanie existujúceho záznamu. Požiadavka musí obsahovať identifikátor záznamu, a zároveň neobsahuje žiadne telo.

V prípade potreby, pre zmenu HTTP metódy je možné použiť aj HTTP hlavičku X-HTTP-Method-Override. Pôvodná požiadavka tak môže mať napríklad HTTP metódu GET, pričom ak bude v tejto hlavičke požiadavky použitá hodnota DELETE, požiadavka bude spracovaná práve ako HTTP metóda DELETE.

HTTP hlavičky#

Požiadavka na volanie musí obsahovať HTTP hlavičku autorizácie s tokenom a HTTP hlavičku s verziou API. Aktuálna verzia API je v1.

Authorization: Bearer {API_TOKEN}
Content-Type: application/vnd.wexbo.v1požadavekhttp

NázevHodnotaPopis
AuthorizationBearer {API_TOKEN}Autorizácia bude vykonaná na základe Bearer tokenu. Hlavička je popísaná vyššie v dokumentácii.
Content-Typeapplication/vnd.wexbo.v1Určuje, že odoslaná požiadavka je v štruktúre systému WEXBO v aktuálnej verzii v1 a obsah tela je vo formáte JSON s kódovaním UTF-8.

URL adresa#

Základná URL adresa pre požiadavky API je pre všetky profily rovnaká, a to:

https://api.wexbo.com/

Vyžadované je šifrované spojenie prostredníctvom protokolu HTTPS, keďže v opačnom prípade, pri využití nešifrovaného spojenia HTTP požiadavka nebude spracovaná.

Celková požiadavka sa skladá z HTTP hlavičiek, konkrétnej metódy, endpointu, parametrov popísaných nižšie, prípadne aj tela požiadavky vo formáte JSON.

https://api.wexbo.com/{ENDPOINT}/{NULL|ID|COUNT}?{URL_PARAMETERS}požadavekget

Koncový bod#

Zároveň URL adresa musí obsahovať aj tzv. endpoint (koncový bod). Konečná URL adresa pre volanie požiadavky pre zobrazenie zoznamu produktov bude vyzerať nasledovne:

https://api.wexbo.com/productspožadavekget

Zozname všetkých dostupných endpointov nájdete nižšie v dokumentácii v sekcii Odkazy, kde sú detailne popísané, keďže každý endpoint má vlastné parametre, dostupné metódy a rôznu štruktúru pre dáta požiadavky či samotné dáta odpovede.

Identifikátor#

V prípade, že chcete zobraziť konkrétny detail jedného záznamu (metóda GET), alebo aktualizovať konkrétny záznam (metóda PUT), prípadne daný záznam zmazať (metóda DELETE), je nutné hneď za endpointom pridať {ID} (identifikátor záznamu). Napríklad pre zobrazenie detailu produktu s ID 1000001 je to URL adresa požiadavky:

https://api.wexbo.com/products/1000001požadavekget

URL parametry#

Do URL požiadavky je možné pridať niektoré všeobecné nepovinné URL parametre, ktorých zoznam nájdete v tabuľke nižšie. Bližšie informácie niektorých všeobecných URL parametrov sú popísané nižšie v dokumentácii.

https://api.wexbo.com/products?fields=id&options=pagination,links&sort=id&direction=desc&page=1&offset=0&limit=25požadavekget

ParametrTypPopis
fieldslist, arrayPožadované atribúty odpovede oddelené čiarkou. Predvolená hodnota je zoznam predvolene zobrazených atribútov konkrétneho endpointu. Príklad použitia v prípade typu list: fields=id,code,name. Príklad použitia v prípade typu array: fields[]=id&fields[]=code&fields[]=name.
optionslist, arrayZobrazenie doplnkových možností v odpovedi. Predvolene je hodnota parametru prázdna. Možné je použiť nasledujúce hodnoty oddelené čiarkou: result, data, count, pagination, links. Príklad použitia v prípade typu list: options=count,pagination,links. Príklad použitia v prípade typu array: options[]=count&options[]=pagination&options[]=links.
filterlist, objectMožnosť nastavenia viacerých filtrov pre zobrazenie len konkrétnych záznamov. Príklad použitia v prípade typu list: filter=date_from:2000-01-01,date_to:2000-12-31. Príklad použitia v prípade typu object: filter[date_from]=2000-01-01&filter[date_to]=2000-12-31.
sortlist, objectZoradenie zoznamu záznamov na základe určeného poľa. Povolené hodnoty, resp. zoznam atribútov pre radenie je zobrazený v konkrétnom endpointe. Príklad použitia v prípade typu list: sort=id. Príklad použitia v prípade typu list: sort=id:asc,name:desc. Príklad použitia v prípade typu object: sort[id]=asc&sort[name]=desc.
directionenumSpôsob predvoleného abecedného radenia záznamov na základe URL parametra sort. Zadať je možné len hodnotu asc (A - Z, 0 - 9, vzostupne) alebo desc (Z - A, 9 - 0, zostupne). Predvolenú hodnotu má nastavenú každý endpoint zvlášť. Príklad použitia: direction=asc.
pageintegerAktuálna strana. Predvolená hodnota je 1 (prvá strana). Príklad použitia: page=2.
offsetintegerNastavená začiatočná pozícia záznamov pri stránkovaní. V prípade použitia parametru page sa parameter offset neuplatní. Predvolená hodnota je 0 (od začiatku). Príklad použitia: offset=25.
limitintegerNastavenie stránkovania. Predvolená hodnota je 25 (záznamov na stranu) a maximálna hodnota je 250 (záznamov na stranu). Príklad použitia: limit=100.

Pole#

Každý endpoint obsahuje predvolené atribúty alebo či inak polia, ktoré sú súčasťou JSON tela odpovede požiadavky a sú už zahrnuté v parametri data. V prípade zadania ďalších hodnôt do URL parametra fields je možné v odpovedi v parametri data zobraziť ďalšie atribúty, ktoré konkrétny endpoint podporuje. Názvy atribútov sú v tzv. snakeCase formáte (slová bez diakritiky, zapísané malými písmenami, oddelené podtržníkom). Príklad zadania požiadavky pre zobrazenie požadovaných atribútov:

https://api.wexbo.com/products?fields=id,code,namepožadavekget

{
···
"data": [
{
"id": 1000001,
"code": "product_code",
"name": "Product name",
},
···
],
···
}odpověďjson

Všetky podporované atribúty pre URL parameter fields sú popísané v konkrétnom endpointe.

Doplňkové možnosti#

V odpovedi je možné zobraziť aj ďalšie doplnkové možnosti a to prostredníctvom URL parametra options, ktorý je možné zadávať ako typ list alebo ako typ array. Dané typy parametra však nie je možné kombinovať.

V prípade typu list je možné do parametra zadať viacero hodnôt oddelených čiarkou.

https://api.wexbo.com/products?options=result,count,pagination,linkspožadavekget

V prípade typu array je možné zadať parameter do URL adresy viac krát.

https://api.wexbo.com/products?&options[]=result&options[]=count&options[]=pagination&options[]=linkspožadavekget

HodnotaPopis
resultV JSON těle odpovědi bude parametr result hodnota typu string namísto boolean. Tedy místo hodnoty true bude ok a místo hodnoty false bude error. Pro snazší programátorské zpracování odpovědí doporučujeme používat původní hodnoty typu boolean. Pro zobrazení parametru result současně nesmí být použit parametr data.
dataZobrazit v JSON těle odpovědi jen samotný obsah parametru data (pouze data bez dalších parametrů). V tomto případě se v těle nezobrazí žádné další parametry jako result, count, pagination, links, errors atd. přičemž dané údaje lze získat pouze z dostupných HTTP hlaviček.
countInformace o celkovém dostupném počtu všech záznamů na základě zadaných filtrů. Pro zobrazení parametru count současně nesmí být použit parametr data. Parameter count je možné využiť len v endpointoch, ktoré zobrazujú zoznam záznamov (metóda GET bez {ID}).
paginationInformace o stránkování zobrazit v samotném JSON těle odpovědi. Pro zobrazení parametru pagination současně nesmí být použit parametr data. Parameter pagination je možné využiť len v endpointoch, ktoré zobrazujú zoznam záznamov (metóda GET bez {ID}).
linksZobrazit v JSON těle odpovědi i odkazy, například ohledně stránkování. Pro zobrazení parametru links současně nesmí být použit parametr data. Parameter links je možné využiť len v endpointoch, ktoré zobrazujú zoznam záznamov (metóda GET bez {ID}).

Filtrování#

V prípade požiadavky na zoznam záznamov (metóda GET bez {ID}) je možné si prostredníctvom rôznych filtrov jednotlivých endpointov zobraziť len záznamy na základe zvolených parametrov. URL parameter filter môže byť zadaný buď v jednoduchom čitateľnom zápise typu list alebo naopak typu object pre jednoduchšie parasovanie pomocou programu. Dané zápisy však nie je možné kombinovať.

Zoznam filtrov

V prípade typu list zadajte do URL parametra filter hodnoty oddelené čiarkou, pričom každá z hodnôt musí obsahovať identifikátor filtrovaného parametra a filtrovanú hodnotu oddelené dvojbodkou.

https://api.wexbo.com/products?filter=active:1,date:2000-12-31požadavekget

Samostatné filtre

V prípade typu object je možné parameter filter zadať do URL adresy opakovane s rôznym identifikátorom filtrovaného parametra, ktorá bude obsahovať samotnú filtrovanú hodnotu.

https://api.wexbo.com/products?filter[active]=1&filter[date]=2000-12-31požadavekget

Hodnota filtra

Hodnotu filtra je nutné zadať podľa typu, ktorý ma daný filter určenú. Podrobné informácie ohľadom správneho formátu jednotlivých typov sú popísané v odstavci Dátové typy.

https://api.wexbo.com/products?filter=active:1požadavekget

https://api.wexbo.com/products?filter[active]=truepožadavekget

Zoznam hodnôt filtra

Takmer všetky filtre okrem typu boolean môžu obsahovať viacero hodnôt, ktoré oddelíte znakom bodkočiarky ;. V tomto prípade sa zobrazia záznamy, ktoré vyhovujú aspoň jednej z hodnôt, teda pre zadané hodnoty sa použije logická spojka OR.

https://api.wexbo.com/products?filter=id:1000001;1000002;1000003požadavekget

https://api.wexbo.com/products?filter[id]=1000001;1000002;1000003požadavekget

Rozsah hodnôt filtra

Filtre typu integer, float, date, datetime môžu obsahovať rozsah hodnôt, ktoré oddelíte znakom pomlčky -. V tomto prípade sa zobrazia záznamy, ktoré vyhovujú zadanému rozsahu hodnôt vrátane zadaných hodnôt.

https://api.wexbo.com/products?filter=id:1000001-1000099požadavekget

https://api.wexbo.com/products?filter[id]=1000001-1000099požadavekget

https://api.wexbo.com/products?filter[date]=2000-01-01-2000-12-31požadavekget

Stránkování#

V prípade požiadavky na zoznam záznamov (metóda GET bez {ID}) sa zobrazuje len určitý počet záznamov, pričom sa využíva tzv. stránkovanie. Predvolene je počet zobrazujúcich záznamov na stranu nastavený na hodnotu 25.

Nastaviť je možné aj inú hodnotu a to prostredníctvom URL parametra limit, do ktorého je možné zadať hodnotu od 1 do 250. Aktuálne nastavené stránkovanie požiadavky sa vždy zobrazí v odpovedi stránkovania v parametri paging.

https://api.wexbo.com/products?limit=50požadavekget

Predvolene sa zobrazí prvá stránka so zoznamom záznamov, keďže URL parameter page má predvolenú hodnotu 1. Pridaním daného parametra do URL adresy požiadavky je možné zobraziť zoznam záznamov ďalších stránok.

https://api.wexbo.com/products?page=2požadavekget

Namiesto parametra page je možné použiť URL parameter offset, kedy sa majú zobraziť záznamy od nastavenej hodnoty. Predvolene má daný parameter hodnotu 0 (od začiatku). Ak je zadaný súčasne aj parameter page, tak parameter offset sa v požiadavke neuplatní, teda pre stránkovanie je možné použiť len jeden z nich. Nastaviť je možné napríklad zobrazenie záznamov od 50-teho záznamu 25 záznamov na stranu, teda záznamy v poradí 5075:

https://api.wexbo.com/products?limit=25&offset=50požadavekget

Súčasťou odpovede takýchto požiadaviek sú HTTP hlavičky X-Pagination-... obsahujúca informácie o stránkovaní.

...
X-Pagination-Pages:
10
X-Pagination-Page: 1
X-Pagination-Offset: 0
X-Pagination-Count: 25
X-Pagination-Total: 250
X-Pagination-Paging: 25
...odpověďhttp

Ak chcete informácie o stránkovaní zobraziť priamo v JSON tele odpovede, je nutné v požiadavke využiť parameter options obsahujúcu hodnotu pagination.

https://api.wexbo.com/products?options=paginationpožadavekget

{
···
"pagination": {
"pages": 10,
"page": 1,
"offset": 0,
"count": 25,
"total": 250,
"paging": 25,
"status": "continue"
},
···
}odpověďjson

ParametrTypPopis
pagination.pagesintegerCelkový počet dostupných strán záznamov.
pagination.pageintegerAktuálna strana záznamov.
pagination.offsetinteger
pagination.countintegerPočet záznamov na aktuálnej strane.
pagination.totalintegerCelkový počet záznamov (na všetkých stranách).
pagination.pagingintegerPočet záznamov na stranu. Aktuálne nastavené stránkovanie pomocou URL parametra limit.
pagination.statusenumAktuálny stav stránkovania, ktorý určuje či je existuje aj nasledujúca strana s ďalšími záznamami. Parametr môže obsahovať hodnoty continue (je možné prejsť na ďalšiu stranu), done (posledná strana), error (strana mimo rozsah stránkovania).

Řazení#

V prípade požiadavky na zoznam záznamov (metóda GET bez {ID}) je možné si nastaviť radenie zobrazovaných záznamov. Požiť je možné buď jednoduché radenie prostredníctvom jedného parametra využitím URL parametrov sort typu list a parametra direction alebo je možné použiť zložitejšie radenie prostredníctvom viacerých parametrov využitím URL parametra sort a to buď typu list alebo object. Dané URL parametre či typy však nie je možné kombinovať.

Príklad jednoduchého radenia s využitím URL parametrov sort a direction. Parameter direction je využiť aj samostatne.

https://api.wexbo.com/products?sort=id&direction=ascpožadavekget

Príklad kombinovaného radenia len s využitím URL parametra sort typu list.

https://api.wexbo.com/products?sort=id:ascpožadavekget

https://api.wexbo.com/products?sort=id:asc,name:descpožadavekget

Príklad kombinovaného radenia len s využitím URL parametra sort typu object.

https://api.wexbo.com/products?sort[id]=ascpožadavekget

https://api.wexbo.com/products?sort[id]=asc&sort[name]=descpožadavekget

JSON telo#

V prípade požiadaviek s metódou PUT alebo POST musí požiadavka obsahovať aj telo s obsahom požiadavky. Naopak požiadavky s metódami GET a DELETE telo neobsahujú. Telo požiadavky musí byť v štruktúrovanom formáte JSON kódované prostredníctvom znakovej sady UTF-8. Príklady s kompletným výpisom tela aj popisom jednotlivých atribútov pre konkrétne endpointy nájdete nižšie po rozkliknutí požadovaného endpointu.

https://api.wexbo.com/productspožadavekpost

{
"name": "Tenisová raketa",
"active": true,
"price": 50.99,
···
}požadavekjson

Datové typy#

TypPopis
booleanBoolean hodnota, přičemž podporovány jsou pouze hodnoty uvedené v příkladu. Příklad: true a false alebo 1 a 0.
stringStandardní řetězec znaků v kódování UTF-8.
integerCelé číslo. Příklad: 123456.
floatDesetinné číslo, přičemž jako oddělovač desetinných míst je použit znak tečky .. Příklad: 20.45.
listVíce hodnot oddělených znakem čárky ,. Příklad: 1,2,3.
arrayPole hodnot JSON nebo URL. Příklad: JSON array [1, 2, 3] alebo URL array x[]=1&x[]=2&x[]=3.
objectObjekt typu JSON nebo URL. Příklad: JSON object {'id': 1, 'name': 'test'} alebo URL object x[id]=1&x[name]=test.
dateDatum ve formátu YYYY-MM-DD podle standardu ISO 8601. Příklad: 2000-12-31.
datetimeDatum a čas ve formátu YYYY-MM-DD HH:MM:SS podle standardu ISO 8601. Příklad: 2000-12-31 23:59:59.
enumNěkterá z výchozích hodnot.
uuidValidní UUID 32 znakový řetězec hexadecimálních znaků (a - f, 0 - 9) oddělených znakem pomlčky - podle standardu RFC 9562. Příklad: 0192615c-a59d-7f2c-96a6-0f80c014856a
codeŘetězec znaků, ve kterém mohou být použity pouze základní alfa-numerické znaky (a - z, 0 - 9) bez diakritiky a znaky pomlčka -, podtržník _ a tečka . (bez mezer).
imageObsah obrázku v data inline formátu zakódovaný prostřednictvím Base64. Příklad: data:image/jpeg;base64,....
urlURL adresa v absolutním (externí) nebo i v relativním (lokální) tvaru. Příklad: https://example.com/image.jpg alebo /files/images/image.jpg.
emailValidní e-mailová adresa. Příklad: example@domain.com.
languageKód jazyku dle standardu ISO 639-1. Příklad: cs alebo sk alebo en.
currencyKód měny dle standardu ISO 4217. Příklad: CZK alebo EUR alebo USD.
countryKód země dle standardu ISO 3166-1 alpha-2. Příklad: cz alebo sk alebo us.

Odpověď#

Súčasťou každej odpovede servera na požiadavku klienta je telo vo formáte JSON s parametrami result, data, errors.

Stav#

Úspešne spracovaná požiadavka obsahuje v JSON tele odpovedi, hneď na začiatku parameter result s hodnotou ok. Naopak chybne spracovaná požiadavka obsahuje parameter result s hodnotou error.

{
"result": "ok",
···
}odpověďjson

Data#

Základom odpovede na požiadavku sú samotné dáta, ktoré sú obsiahnuté v JSON tele odpovedi v parametri data. V prípade požiadavky s metódou DELETE (zmazanie záznamu) má daný parameter prázdnu hodnotu. V opačnom prípade parameter obsahuje predvolené atribúty, prípadne aj atribúty zahrnuté v URL parametry fields.

{
···
"data": {
"id": 1,
···
},
···
}odpověďjson

Stránkování#

Súčasťou odpovede požiadaviek sú HTTP hlavičky X-Pagination-... obsahujúca informácie o stránkovaní. Ak chcete informácie o stránkovaní zobraziť priamo v JSON tele odpovede, je nutné v požiadavke využiť parameter options obsahujúcu hodnotu pagination. Podrobné informácie aj s príkladmi a popisom jednotlivých možností stránkovania nájdete vyššie v odstavci Požiadavka / Stránkovanie.

Odpoveď obsahuje aj HTTP hlavičku Link obsahujúcu automaticky generované odkazy pre jednoduchšiu možnosť vykonania ďalšej akcie. V prípade stránkovania sú to napríklad odkazy na požiadavky pre zobrazenie ďalšej strany záznamov.

Link: <https://api.wexbo.com/products?page=2&options=links>; rel="self", <https://api.wexbo.com/products?page=1&options=links>; rel="first", <https://api.wexbo.com/products?page=1&options=links>; rel="prev", <https://api.wexbo.com/products?page=3&options=links>; rel="next", <https://api.wexbo.com/products?page=9&options=links>; rel="last"odpověďhttp

Ak chcete informácie o odkazoch zobraziť priamo v JSON tele odpovede, je nutné v požiadavke využiť parameter options obsahujúcu hodnotu links.

https://api.wexbo.com/products?page=2&options=linkspožadavekget

{
···
"links": {
"self": "https://api.wexbo.com/products?page=2&options=links",
"first": "https://api.wexbo.com/products?page=1&options=links",
"prev": "https://api.wexbo.com/products?page=1&options=links",
"next": "https://api.wexbo.com/products?page=3&options=links",
"last": "https://api.wexbo.com/products?page=9&options=links"
},
···
}odpověďjson

ParametrTypPopis
linksobjectZoznam URL adries požiadavky pre stránkovanie.
links.selfurlAktuálna strana záznamov alebo aktuálne URL adresa požiadavky.
links.firsturlPrvá strana záznamov.
links.prevurlPredchádzajúca strana záznamov.
links.nexturlNasledujúca strana záznamov.
links.lasturlPosledná strana záznamov.

Chyby#

Zoznam konkrétnych informácií týkajúcich sa chýb požiadavky nájdete vždy v JSON tele odpovede na konci v parametri errors. V prípade úspešného spracovania požiadavky by mal byť zoznam parametra prázdny (prázdne array pole). Napriek tomu sa v danom zozname môžu nachádzať aj varovania s kódom 100, ktoré nie sú závažnými chybami, teda nebránia spracovaniu požiadavky, ale len upozorňujú na prípadné nezrovnalosti v požiadavke.

{
···
"errors": [
{
"code": 404,
"msg": "Information about error",
"error": "...",
"field": "..."
},
{
"code": 100,
"msg": "Just some warning",
"error": "...",
"field": "..."
}
]
}odpověďjson

ParametrTypPopis
errorsarrayZoznam chýb a varovaní.
errors[]objectInformácie o jednej z chýb alebo varovaní.
errors[].codeintegerVšeobecný stavový kód chyby popísaný nižšie.
errors[].msgstringKrátky popis chyby.
errors[].errorstringInterný identifikačný kód chyby pre lepšiu identifikáciu v prípade požiadavky na dohľadanie problému.
errors[].fieldstringProblémový parameter, metóda, atribút, pole, možnosť alebo položka požiadavky.

Kódy odpovědí#

Súčasťou každej odpovede servera na požiadavku klienta je kód o stave odpovedi v hlavičke (HTTP response status codes). Väčšina odpovedí zvyčajne obsahuje nižšie uvedené kódy odpovedí.

Úspěšné zpracování#

KódNázevPopis
200OKÚspešné načítanie alebo vykonanie požadovaného úkonu na zázname (metódy GET, PUT, DELETE).
201CreatedZáznam bol úspešne vytvorený (metóda POST).
204No ContentÚspešné spracovanie požiadavky no bez odpovede. Napríklad pri niektorých požiadavkách zmazania záznamu (metóda DELETE).

Chyba při zpracování#

KódNázevPopis
301Moved PermanentlyPremiestnenie zastaralej endpoint požiadavky na inú URL adresu. Nová URL adresa je uvedená v HTTP hlavičke Location. Odporúčame si čo najskôr URL adresu v implementácii zmeniť na novú.
400Bad RequestChyba v požiadavke klienta (napríklad v objekte JSON).
401UnauthorizedNesprávna autorizácia požiadavky klienta. Nezadaná hlavička autorizácie alebo nesprávny či neplatný API token. Podrobné informácie sú popísané v odstavci Autorizácia.
403Forbidden
402Payment RequiredOdpoveď požiadavky je spoplatnená, pričom v profile je nedostatok dostupného kreditu. Podrobné informácie sú popísané v odstavci Obmedzenia / Kredit.
404Not FoundPožadovaný záznam sa nenašiel.
405Method Not AllowedNepovolená metóda REQUEST METHOD v požiadavke klienta. Povolené sú len metódy GET, POST, PUT, DELETE. Podrobné informácie sú popísané v odstavci Požiadavka / HTTP metódy.
408Request TimeoutPrekročená maximálna doba na vykonanie požiadavky klienta.
409ConflictPožiadavku nebolo možné spracovať z rôznych dôvodov, pričom najčastejšie sa jedná o nesprávny formát hodnôt odosielaných atribútov, či nepoužitie povinných atribútov.
413Payload too largePríliš veľký obsah parametrov požiadavky klienta. Najčastejšie sa jedná o veľmi objemné obrázky, ktoré je možné posielať taktiež prostredníctvom JSON požiadavky. Podrobné informácie sú popísané v odstavci Obmedzenia / Veľkosť požiadavky.
422Unprocessable EntityNesprávne zadaná niektorá hodnota alebo parameter požiadavky.
423LockedBlokovanie požiadavky klienta najčastejšie z dôvodu nepovolenej IP adresy klienta, alebo exspirácie API tokenu či samotného pluginu API. Podrobné informácie sú popísané v odstavci Obmedzenia / Prihlásenia.
426Upgrade RequiredVyžadované nastavenie vyššej verzie požiadavky klienta. Aktuálna verzia API je v1. Verziu API zadávate do HTTP hlavičky Content-Type, pričom popis je uvedený vyššie v dokumentácii. Podrobné informácie sú popísané v odstavci Požiadavka / HTTP hlavičky.
429Too Many RequestsPožiadavku klienta nebolo možné vykonať z dôvodu dosiahnutia maximálneho počtu požiadaviek, buď za určitý čas alebo na základe nastavených limitov v plugine API. Podrobné informácie sú popísané v odstavci Obmedzenia / Počet požiadaviek.
500Internal Server ErrorNedostupnosť API serveru z dôvodu neplánovaného výpadku. Pre bližšie informácie kontaktujte našu technickú podporu alebo zopakujte požiadavku neskôr.
501Not ImplementedNeexistujúci alebo aktuálne nepodporovaný endpoint požiadavky.
503System maintenancePrebiehajúca údržba lebo dočasný výpadok API systému. Zopakujte požiadavku neskôr.
505HTTP Version Not SupportedPožiadavka klienta bola odoslaná cez nepodporovaný protokol HTTP. Všetky požiadavky je nutné posielať cez šifrovaný protokol HTTPS. Podrobné informácie sú popísané v odstavci Požiadavka / URL adresa.

Omezení#

Aby nedochádzalo k zbytočnému preťažovaniu API serveru zahlcovaním požiadaviek, či už úmyselne alebo neúmyselne z dôvodu nesprávneho návrhu napojenia, má API nastavené určité predvolené limity. Vyžaduje sa tak dôraz na správny návrh a optimalizáciu interakcie s API (webhooks, pagination, filter, fields, atď.), aby bol k prístup k API po celú dobu stabilný a dostupný pre všetkých.

Přihlášení#

Pokusy pre prihlásenie sú limitované počtom max. 5 neúspešných pokusov, pričom Ďalšie požiadavky nebudú spracované a na požiadavky bude odpovedané HTTP kódom 423 Locked.

Velikost požadavku#

Požiadavky s HTTP metódou PUT, teda aktualizácia záznamov, môžu obsahovať maximálne 100 parametrov s hodnotami, zároveň celé telo požiadavky pri HTTP metódach PUT a POST nesmie presiahnuť veľkosť 1 MB (hlavne v prípade vkladania obrázkov). V prípade, že je tento limit prekročený, požiadavka sa nevykoná a na požiadavku bude odpovedané s HTTP kódom 413 Payload too large.

Počet požadavků#

V rámci krátkeho času je možné odosielať len určitý počet požiadaviek, pričom po prekročení limitu bude na požiadavky odpovedané HTTP kódom 429 Too Many Requests.

Systém má aktuálne pevne nastavený hodinový, a taktiež denný limit na počet požiadaviek, ktorý je pri bežnom a správnom používaní API výrazne dostačujúci.

Jedným z limitov je aj počet súbežných požiadaviek v jednej sekunde, ktorý je aktuálne stanovený na maximálne 5 požiadaviek za sekundu pre jedno pripojenie (token). Odporúčame si tak pri väčšom počte požiadaviek nastaviť aj krátky čas oneskorenia, alebo budete musieť požiadavky odoslať znova.

Kredit#

Aj keď vedenie API pre používateľov nie je spoplatnené nejakým pevným mesačným poplatkom, spoplatnené sú samotné požiadavky, resp. záznamy v požiadavkách. Dynamicky sa využíva dostupný kredit profilu, pričom za každý záznam z požiadavky je profilu strhnutý 1 kredit. Pri nedostatku kreditu sa požiadavka nevykoná a na požiadavku bude odpovedané s HTTP kódom 402 Payment Required.

Kredit je možné si v profile dobiť cez administráciu https://admin.wexbo.com v sekcii NASTAVENIA / WEB v položke Dostupný kredit po kliknutí na tlačítko DOBIŤ KREDIT.

Partnerské implementácie, ktoré sú prepojené s natívnym pluginom systému nie sú spoplatnené prostredníctvom kreditu. Teda takýto plugin Vám nebude stŕhať žiadny kredit v profile.

Příklady#

Zobrazení produktů#

https://api.wexbo.com/products?fields=id,code,name,foo&options=pagination,links&sort=id&direction=asc&page=1&offset=0&limit=3požadavekget

Authorization: Bearer {API_TOKEN}
Content-Type: application/vnd.wexbo.v1požadavekhttp

200 OK
Content-Type:
application/vnd.wexbo.v1+json; charset=utf-8odpověďhttp

{
"result": "ok",
"data": [
{
"id": 1000001,
"code": "tenrak01",
"name": "Tenisová raketa",
},
{
"id": 1000002,
"code": "tankt72m1",
"name": "Tank T-72 M1",
},
{
"id": 1000003,
"code": "office30",
"name": "Microsoft Office 2030",
},
],
"pagination": {
"pages": 30,
"page": 1,
"offset": 0,
"count": 3,
"total": 90,
"paging": 3,
"status": "continue"
},
"links": {
"self": "https://api.wexbo.com/products?page=2&options=links",
"first": "https://api.wexbo.com/products?page=1&options=links",
"prev": "https://api.wexbo.com/products?page=1&options=links",
"next": "https://api.wexbo.com/products?page=3&options=links",
"last": "https://api.wexbo.com/products?page=9&options=links"
},
"errors": [
{
"code": 100,
"msg": "Field foo not exist.",
"error": "fields_1",
"field": "foo"
}
]
}odpověďjson

Aktualizace produktu#

Zobrazenie príkladu požiadavky na URL adresu s metódou GET, HTTP hlavičkou a samotným JSON telom.

https://api.wexbo.com/products/1000001požadavekget

Authorization: Bearer {API_TOKEN}
Content-Type: application/vnd.wexbo.v1požadavekhttp

{
"name": "Tenisová raketa (vypredaná)",
"active": false,
"price": 40.99
}požadavekjson

Výsledná odpoveď s HTTP hlavičkou a JSON telom.

200 OK
Content-Type:
application/vnd.wexbo.v1+json; charset=utf-8
Link: <http://api.wexbo.co/products/1000001>; rel="self"odpověďhttp

{
"result": "ok",
"data": [
{
"id": 1000001
}
],
"errors": []
}odpověďjson

Deník změn#

DatumVerzePopis
2025 Q1v1Public API for users (we are preparing...)
2024-11-22v1Public API for internal testing
2019-02-01v1For internal developers only

ODKAZY#

Technická špecifikácia jednolivých endpoint akcií API je aktuálne dostupná len pre prihlásených vývojárov, resp. po prihlásení vývojárskeho API tokenu.