POST/v1/apps
Vytvořit aplikaci OAuth
create_app
Zaregistruje aplikaci organizace. public je klient bez tajného klíče (prohlížeč, mobilní aplikace, CLI): jen autorizační kód s PKCE. confidential je klient se serverem: dostane tajný klíč a také client credentials jménem organizace, s rolí role a datovým profilem data_profile. Tajný klíč klienta client_secret se vrací jen v této odpovědi a při obměně, proto si ho uložte. Organizace může mít až 50 aplikací. Vyžaduje oprávnění ORG_MANAGE_KEYS; klíč API nebo token potřebuje rozsah admin. Přidáno ve verzi 1.62.0.
Autentizace
Odešlete klíč API v hlavičce Authorization: Authorization: Bearer <klíč>.
Parametry hlavičky
Idempotency-KeystringKlíč pro bezpečné opakování zápisu: 1 až 255 tisknutelných znaků ASCII; doporučuje se UUID v4 pro každou logickou operaci. Opakování se stejným klíčem do 24 hodin operaci znovu nespustí: vrátí uloženou odpověď (stav, hlavičky a tělo) s hlavičkou
Idempotency-Replayed: true. Stejný klíč s jinou metodou, cestou,Content-Typenebo tělem vrací409 api.idempotency_mismatch; dokud první požadavek ještě běží, vrací409 api.idempotency_in_progresssRetry-After: 1. Po odpovědi 5xx nebo 429 se klíč uvolní a opakování operaci spustí znovu. Klíč platí v rámci organizace a volajícího (klíč API, uživatel nebo klíč vlastního zdroje).length ≥ 1, length ≤ 255
Tělo požadavku
application/json
namestringpovinnéNázev pro obrazovku souhlasu.
length ≥ 1, length ≤ 100
descriptionstringPopis pro obrazovku souhlasu.
length ≤ 1000
homepage_urlstringWeb aplikace (
httpnebohttps).length ≤ 2000
redirect_urisarray of stringURI pro přesměrování:
https;httpjen prolocalhost,127.0.0.1a[::1]; vlastní schéma aplikace jen v podobě obrácené domény (com.example.app:/callback). Bez fragmentu. Veřejná aplikace potřebuje alespoň jedno URI.items ≤ 10
Rozsahy, které si aplikace může vyžádat.
items ≥ 1
rolestringRole tokenů client credentials aplikace
confidential:admin,editor,verifierneboviewer(výchozíviewer).data_profilestringDatový profil tokenů client credentials; ve výchozím stavu stejný profil jako u nového klíče API.
Odpovědi
201Aplikace byla vytvořena.
Hlavičky odpovědi
RateLimit-PolicyPlatné limity ve formátu návrhu IETF
draft-ietf-httpapi-ratelimit-headers: položky oddělené čárkou"<name>";q=<quota>;w=<window in seconds>.keyje četnost požadavků klíče API (kvóta je nárazová špička, okno je doba jejího úplného obnovení; pro relaci je touser, bez přihlašovacích údajůip);minute,dayamonthjsou kvóty organizace na kalendářní minutu, den a měsíc v UTC.RateLimitKolik zbývá z každého limitu v
RateLimit-Policy:"<name>";r=<remaining>;t=<seconds until reset>.X-RateLimit-LimitLimit nejpřísnější položky v
RateLimit-Policy(té, ve které zbývá nejméně požadavků).X-RateLimit-RemainingPočet požadavků, které zbývají v rámci nejpřísnějšího limitu.
X-RateLimit-ResetPočet sekund do obnovení nejpřísnějšího limitu.
Idempotency-Replayedtrueznamená, že jde o znovu vrácenou uloženou odpověď pro tentoIdempotency-Key: operace se znovu nespustila.
application/json
idstringpovinnéID aplikace (
app_a 32 šestnáctkových znaků), které je zároveňclient_id.namestringpovinnéNázev, který zaměstnanec vidí na obrazovce souhlasu.
descriptionstringpovinnéPopis pro obrazovku souhlasu (může být prázdný).
homepage_urlstring | nullpovinnéWeb aplikace.
redirect_urisarray of stringpovinnéPovolené URI pro přesměrování (přesná shoda řetězce).
Rozsahy, které si aplikace může vyžádat.
client_secret_prefixstring | nullpovinnéPrvních několik znaků tajného klíče klienta, aby ho bylo možné poznat;
nullu veřejné aplikace.rolestring | nullpovinnéRole tokenů client credentials (
admin,editor,verifier,viewer);nullu veřejné aplikace.data_profilestring | nullpovinnéDatový profil tokenů client credentials;
nullu veřejné aplikace.authorizationsintegerpovinnéPočet aktivních autorizací zaměstnanců.
created_atstring (date-time)povinnéupdated_atstring (date-time)povinnéclient_secretstring | nullpovinnéTajný klíč klienta (
kbcs_…), zobrazí se jednou;nullu veřejné aplikace.
400Požadavek je neplatný: hodnota parametru nebo stav objektu akci neumožňuje (`detail` je zpráva).
Hlavičky odpovědi
RateLimit-PolicyPlatné limity ve formátu návrhu IETF
draft-ietf-httpapi-ratelimit-headers: položky oddělené čárkou"<name>";q=<quota>;w=<window in seconds>.keyje četnost požadavků klíče API (kvóta je nárazová špička, okno je doba jejího úplného obnovení; pro relaci je touser, bez přihlašovacích údajůip);minute,dayamonthjsou kvóty organizace na kalendářní minutu, den a měsíc v UTC.RateLimitKolik zbývá z každého limitu v
RateLimit-Policy:"<name>";r=<remaining>;t=<seconds until reset>.X-RateLimit-LimitLimit nejpřísnější položky v
RateLimit-Policy(té, ve které zbývá nejméně požadavků).X-RateLimit-RemainingPočet požadavků, které zbývají v rámci nejpřísnějšího limitu.
X-RateLimit-ResetPočet sekund do obnovení nejpřísnějšího limitu.
application/json
401Nebyly odeslány žádné přihlašovací údaje (ani cookie relace, ani klíč API), nebo klíč nebyl nalezen.
Hlavičky odpovědi
RateLimit-PolicyPlatné limity ve formátu návrhu IETF
draft-ietf-httpapi-ratelimit-headers: položky oddělené čárkou"<name>";q=<quota>;w=<window in seconds>.keyje četnost požadavků klíče API (kvóta je nárazová špička, okno je doba jejího úplného obnovení; pro relaci je touser, bez přihlašovacích údajůip);minute,dayamonthjsou kvóty organizace na kalendářní minutu, den a měsíc v UTC.RateLimitKolik zbývá z každého limitu v
RateLimit-Policy:"<name>";r=<remaining>;t=<seconds until reset>.X-RateLimit-LimitLimit nejpřísnější položky v
RateLimit-Policy(té, ve které zbývá nejméně požadavků).X-RateLimit-RemainingPočet požadavků, které zbývají v rámci nejpřísnějšího limitu.
X-RateLimit-ResetPočet sekund do obnovení nejpřísnějšího limitu.
application/json
403Akce není povolena: role nestačí, chybí přístup ke kolekci nebo kartě, požadavek běží v režimu „View as“, nebo je organizace pozastavená či smazaná (`detail` je objekt s `code: org_suspended | org_deleted`).
Hlavičky odpovědi
RateLimit-PolicyPlatné limity ve formátu návrhu IETF
draft-ietf-httpapi-ratelimit-headers: položky oddělené čárkou"<name>";q=<quota>;w=<window in seconds>.keyje četnost požadavků klíče API (kvóta je nárazová špička, okno je doba jejího úplného obnovení; pro relaci je touser, bez přihlašovacích údajůip);minute,dayamonthjsou kvóty organizace na kalendářní minutu, den a měsíc v UTC.RateLimitKolik zbývá z každého limitu v
RateLimit-Policy:"<name>";r=<remaining>;t=<seconds until reset>.X-RateLimit-LimitLimit nejpřísnější položky v
RateLimit-Policy(té, ve které zbývá nejméně požadavků).X-RateLimit-RemainingPočet požadavků, které zbývají v rámci nejpřísnějšího limitu.
X-RateLimit-ResetPočet sekund do obnovení nejpřísnějšího limitu.
application/json
409Stav objektu akci neumožňuje, například kvůli duplicitě, probíhajícímu indexování nebo úloze, která už je zpracovaná.
Hlavičky odpovědi
RateLimit-PolicyPlatné limity ve formátu návrhu IETF
draft-ietf-httpapi-ratelimit-headers: položky oddělené čárkou"<name>";q=<quota>;w=<window in seconds>.keyje četnost požadavků klíče API (kvóta je nárazová špička, okno je doba jejího úplného obnovení; pro relaci je touser, bez přihlašovacích údajůip);minute,dayamonthjsou kvóty organizace na kalendářní minutu, den a měsíc v UTC.RateLimitKolik zbývá z každého limitu v
RateLimit-Policy:"<name>";r=<remaining>;t=<seconds until reset>.X-RateLimit-LimitLimit nejpřísnější položky v
RateLimit-Policy(té, ve které zbývá nejméně požadavků).X-RateLimit-RemainingPočet požadavků, které zbývají v rámci nejpřísnějšího limitu.
X-RateLimit-ResetPočet sekund do obnovení nejpřísnějšího limitu.
application/json
422Chyba validace: tělo nebo parametry neodpovídají schématu (`detail` je seznam chyb validace), nebo je hodnota parametru mimo povolený rozsah (`detail` je zpráva).
Hlavičky odpovědi
RateLimit-PolicyPlatné limity ve formátu návrhu IETF
draft-ietf-httpapi-ratelimit-headers: položky oddělené čárkou"<name>";q=<quota>;w=<window in seconds>.keyje četnost požadavků klíče API (kvóta je nárazová špička, okno je doba jejího úplného obnovení; pro relaci je touser, bez přihlašovacích údajůip);minute,dayamonthjsou kvóty organizace na kalendářní minutu, den a měsíc v UTC.RateLimitKolik zbývá z každého limitu v
RateLimit-Policy:"<name>";r=<remaining>;t=<seconds until reset>.X-RateLimit-LimitLimit nejpřísnější položky v
RateLimit-Policy(té, ve které zbývá nejméně požadavků).X-RateLimit-RemainingPočet požadavků, které zbývají v rámci nejpřísnějšího limitu.
X-RateLimit-ResetPočet sekund do obnovení nejpřísnějšího limitu.
application/json
429Příliš mnoho požadavků (`api.rate_limited`), kvóta organizace na minutu, den nebo měsíc je vyčerpána (`api.quota_exceeded`; `error.details` obsahuje `quota`, `limit` a `reset_at`), organizace dosáhla svého limitu nebo je služba odpovědí vytížená (`answers.engine_busy`). Počkejte dobu uvedenou v hlavičce `Retry-After`.
Hlavičky odpovědi
Retry-AfterPočet sekund, které je třeba počkat před opakováním požadavku.
RateLimit-PolicyPlatné limity ve formátu návrhu IETF
draft-ietf-httpapi-ratelimit-headers: položky oddělené čárkou"<name>";q=<quota>;w=<window in seconds>.keyje četnost požadavků klíče API (kvóta je nárazová špička, okno je doba jejího úplného obnovení; pro relaci je touser, bez přihlašovacích údajůip);minute,dayamonthjsou kvóty organizace na kalendářní minutu, den a měsíc v UTC.RateLimitKolik zbývá z každého limitu v
RateLimit-Policy:"<name>";r=<remaining>;t=<seconds until reset>.X-RateLimit-LimitLimit nejpřísnější položky v
RateLimit-Policy(té, ve které zbývá nejméně požadavků).X-RateLimit-RemainingPočet požadavků, které zbývají v rámci nejpřísnějšího limitu.
X-RateLimit-ResetPočet sekund do obnovení nejpřísnějšího limitu.
application/json
Chybové kódy
Kódy, které tato operace může vrátit v error.code, kromě obecných kódů každého požadavku.
Bezpečné opakování
S každým požadavkem POST a PATCH odešlete hlavičku Idempotency-Key (například UUID). Opakování se stejným klíčem do 24 hodin vrátí uloženou odpověď, místo aby se požadavek provedl znovu.
Limity četnosti
Odpovědi obsahují hlavičky RateLimit a RateLimit-Policy a starší X-RateLimit-Limit, X-RateLimit-Remaining a X-RateLimit-Reset. Odpověď 429 má hlavičku Retry-After v sekundách: počkejte a požadavek zopakujte.