POST/v1/users/import
Importuoti naudotojus iš CSV
users_import
Siųskite CSV failą lauke csv. Pirmoji eilutė – antraštė. Skyriklis – , arba ;, jis nustatomas pagal antraštę. Koduotė – UTF-8 (BOM leidžiamas), iki 1000 duomenų eilučių.
Stulpeliai: email (privalomas; sinonimai e-mail, mail, почта), name (display_name, имя), role (admin, editor, verifier, viewer; sinonimas роль), groups (группы; kelias grupes atskirkite | arba ;, nurodydami įprastos grupės raktą arba pavadinimą), profile (data_profile, профиль; duomenų profilio raktas). Nežinomi stulpeliai praleidžiami ir išvardijami lauke ignored_columns.
Su dry_run: true (numatytasis) grąžina peržiūrą be pakeitimų: kiekvienos eilutės veiksmą ir klaidas. Kitaip įvykdomos eilutės be klaidų:
- invite: siunčia kvietimą su vaidmeniu, profiliu ir vardu iš failo. Jei sukonfigūruotas paštas, išsiunčiamas el. laiškas, o nuoroda grąžinama atsake.
- exists: naudotojas su šiuo el. pašto adresu jau yra. Jis pridedamas prie grupių iš failo; vaidmuo ir profilis nesikeičia.
- pending: kvietimas šiuo adresu jau laukia priėmimo. Prie jo pridedamos grupės iš failo.
Eilutės su klaidomis praleidžiamos. Pakviesti naudotojai prisijungia prie savo grupių, kai priima kvietimą. create_groups sukuria trūkstamas įprastas grupes; be jo nežinoma grupė yra eilutės klaida. Plano naudotojų limitas ir prenumeratos licencijos tikrinami visiems naujiems kvietimams kartu: jei jų nepakanka, niekas neįvykdoma (402). Rankinių kvietimų limitas (50 laukiančių) importui netaikomas. Reikia leidimo ORG_MANAGE_USERS. Įrašo į audito žurnalą įvykį users.import, o kiekvienam kvietimui – invitation.create.
Autentifikavimas
Siųskite API raktą antraštėje Authorization: Authorization: Bearer <raktas>.
Antraštės parametrai
Idempotency-KeystringRaktas saugiam rašymo operacijos pakartojimui: nuo 1 iki 255 spausdinamų ASCII simbolių; rekomenduojamas atskiras UUID v4 kiekvienai loginei operacijai. Pakartojus užklausą su tuo pačiu raktu per 24 valandas, operacija iš naujo nevykdoma: grąžinamas išsaugotas atsakas (būsena, antraštės ir turinys) su antrašte
Idempotency-Replayed: true. Tas pats raktas su kitu metodu, keliu,Content-Typear turiniu grąžina409 api.idempotency_mismatch; kol pirmoji užklausa dar vykdoma –409 api.idempotency_in_progresssuRetry-After: 1. Po 5xx ar 429 atsako raktas atlaisvinamas, ir pakartojimas operaciją vykdo iš naujo. Raktas galioja organizacijos ir iškvietėjo (API rakto, naudotojo arba pasirinktinio šaltinio rakto) ribose.length ≥ 1, length ≤ 255
Užklausos turinys
application/json
csvstringprivalomasCSV failo turinys UTF-8 koduote.
length ≥ 1, length ≤ 2000000
dry_runbooleanTik peržiūra (numatytoji).
falseįvykdo eilutes be klaidų.Numatytoji reikšmė: true
default_rolestringVaidmuo eilutėms be stulpelio
rolearba su tuščiu langeliu.Numatytoji reikšmė: "viewer"
default_profilestring | nullDuomenų profilis eilutėms be profilio. Jei tuščias, naudojamas numatytasis organizacijos profilis (administratoriai gauna visišką prieigą).
create_groupsbooleanSukurti trūkstamas įprastas grupes. Be šio požymio nežinoma grupė laikoma eilutės klaida.
Numatytoji reikšmė: false
ttl_daysintegerKvietimų galiojimas dienomis.
Numatytoji reikšmė: 7≥ 1, ≤ 30
Atsakai
200Importo peržiūra arba rezultatas pagal eilutes
Atsako antraštės
RateLimit-PolicyGaliojantys limitai IETF juodraščio
draft-ietf-httpapi-ratelimit-headersformatu: kableliais atskirti elementai"<name>";q=<quota>;w=<window in seconds>.key– API rakto užklausų dažnis (kvota – pliūpsnis, laiko langas – laikas, per kurį kvota visiškai atsistato; sesijai taiuser, be prisijungimo duomenų –ip);minute,dayirmonth– organizacijos kvotos kalendorinei minutei, dienai ir mėnesiui pagal UTC.RateLimitKiek liko kiekvieno
RateLimit-Policylimito:"<name>";r=<remaining>;t=<seconds until reset>.X-RateLimit-LimitGriežčiausio
RateLimit-Policyįrašo (kuriame liko mažiausiai užklausų) limitas.X-RateLimit-RemainingLikusių užklausų skaičius pagal griežčiausią limitą.
X-RateLimit-ResetSekundės iki griežčiausio limito atsistatymo.
Idempotency-Replayedtrue– atsakas pakartotas iš šiamIdempotency-Keyišsaugoto atsako: operacija iš naujo nevykdyta.
application/json
dry_runbooleanprivalomastotalintegerprivalomasDuomenų eilučių skaičius faile.
delimiterstringprivalomasIš antraštės nustatytas skyriklis.
columnsarray of stringprivalomasAtpažinti stulpeliai kanonine forma (
email,name,role,groups,profile).ignored_columnsarray of stringprivalomascreated_groupsarray of stringprivalomasVykdant sukurtos grupės.
400Užklausa netinkama: parametro reikšmė arba objekto būsena neleidžia atlikti veiksmo (`detail` – pranešimas).
Atsako antraštės
RateLimit-PolicyGaliojantys limitai IETF juodraščio
draft-ietf-httpapi-ratelimit-headersformatu: kableliais atskirti elementai"<name>";q=<quota>;w=<window in seconds>.key– API rakto užklausų dažnis (kvota – pliūpsnis, laiko langas – laikas, per kurį kvota visiškai atsistato; sesijai taiuser, be prisijungimo duomenų –ip);minute,dayirmonth– organizacijos kvotos kalendorinei minutei, dienai ir mėnesiui pagal UTC.RateLimitKiek liko kiekvieno
RateLimit-Policylimito:"<name>";r=<remaining>;t=<seconds until reset>.X-RateLimit-LimitGriežčiausio
RateLimit-Policyįrašo (kuriame liko mažiausiai užklausų) limitas.X-RateLimit-RemainingLikusių užklausų skaičius pagal griežčiausią limitą.
X-RateLimit-ResetSekundės iki griežčiausio limito atsistatymo.
application/json
401Prisijungimo duomenys neišsiųsti (nei sesijos slapukas, nei API raktas) arba raktas nerastas.
Atsako antraštės
RateLimit-PolicyGaliojantys limitai IETF juodraščio
draft-ietf-httpapi-ratelimit-headersformatu: kableliais atskirti elementai"<name>";q=<quota>;w=<window in seconds>.key– API rakto užklausų dažnis (kvota – pliūpsnis, laiko langas – laikas, per kurį kvota visiškai atsistato; sesijai taiuser, be prisijungimo duomenų –ip);minute,dayirmonth– organizacijos kvotos kalendorinei minutei, dienai ir mėnesiui pagal UTC.RateLimitKiek liko kiekvieno
RateLimit-Policylimito:"<name>";r=<remaining>;t=<seconds until reset>.X-RateLimit-LimitGriežčiausio
RateLimit-Policyįrašo (kuriame liko mažiausiai užklausų) limitas.X-RateLimit-RemainingLikusių užklausų skaičius pagal griežčiausią limitą.
X-RateLimit-ResetSekundės iki griežčiausio limito atsistatymo.
application/json
402Organizacija pasiekė plano limitą (kortelių, saugyklos ar naudotojų). `error.details` pateikia `kind`, `limit` ir `used`.
Atsako antraštės
RateLimit-PolicyGaliojantys limitai IETF juodraščio
draft-ietf-httpapi-ratelimit-headersformatu: kableliais atskirti elementai"<name>";q=<quota>;w=<window in seconds>.key– API rakto užklausų dažnis (kvota – pliūpsnis, laiko langas – laikas, per kurį kvota visiškai atsistato; sesijai taiuser, be prisijungimo duomenų –ip);minute,dayirmonth– organizacijos kvotos kalendorinei minutei, dienai ir mėnesiui pagal UTC.RateLimitKiek liko kiekvieno
RateLimit-Policylimito:"<name>";r=<remaining>;t=<seconds until reset>.X-RateLimit-LimitGriežčiausio
RateLimit-Policyįrašo (kuriame liko mažiausiai užklausų) limitas.X-RateLimit-RemainingLikusių užklausų skaičius pagal griežčiausią limitą.
X-RateLimit-ResetSekundės iki griežčiausio limito atsistatymo.
application/json
403Veiksmas neleidžiamas: vaidmuo nesuteikia reikiamų teisių, nėra prieigos prie rinkinio ar kortelės, užklausa vykdoma režimu „View as“ arba organizacijos veikla sustabdyta ar organizacija ištrinta (`detail` – objektas su `code: org_suspended | org_deleted`).
Atsako antraštės
RateLimit-PolicyGaliojantys limitai IETF juodraščio
draft-ietf-httpapi-ratelimit-headersformatu: kableliais atskirti elementai"<name>";q=<quota>;w=<window in seconds>.key– API rakto užklausų dažnis (kvota – pliūpsnis, laiko langas – laikas, per kurį kvota visiškai atsistato; sesijai taiuser, be prisijungimo duomenų –ip);minute,dayirmonth– organizacijos kvotos kalendorinei minutei, dienai ir mėnesiui pagal UTC.RateLimitKiek liko kiekvieno
RateLimit-Policylimito:"<name>";r=<remaining>;t=<seconds until reset>.X-RateLimit-LimitGriežčiausio
RateLimit-Policyįrašo (kuriame liko mažiausiai užklausų) limitas.X-RateLimit-RemainingLikusių užklausų skaičius pagal griežčiausią limitą.
X-RateLimit-ResetSekundės iki griežčiausio limito atsistatymo.
application/json
413Užklausos turinys viršija leistiną dydį.
Atsako antraštės
RateLimit-PolicyGaliojantys limitai IETF juodraščio
draft-ietf-httpapi-ratelimit-headersformatu: kableliais atskirti elementai"<name>";q=<quota>;w=<window in seconds>.key– API rakto užklausų dažnis (kvota – pliūpsnis, laiko langas – laikas, per kurį kvota visiškai atsistato; sesijai taiuser, be prisijungimo duomenų –ip);minute,dayirmonth– organizacijos kvotos kalendorinei minutei, dienai ir mėnesiui pagal UTC.RateLimitKiek liko kiekvieno
RateLimit-Policylimito:"<name>";r=<remaining>;t=<seconds until reset>.X-RateLimit-LimitGriežčiausio
RateLimit-Policyįrašo (kuriame liko mažiausiai užklausų) limitas.X-RateLimit-RemainingLikusių užklausų skaičius pagal griežčiausią limitą.
X-RateLimit-ResetSekundės iki griežčiausio limito atsistatymo.
application/json
422Validavimo klaida: turinys ar parametrai neatitinka schemos (`detail` – validavimo klaidų sąrašas) arba parametro reikšmė nepatenka į leistiną intervalą (`detail` – pranešimas).
Atsako antraštės
RateLimit-PolicyGaliojantys limitai IETF juodraščio
draft-ietf-httpapi-ratelimit-headersformatu: kableliais atskirti elementai"<name>";q=<quota>;w=<window in seconds>.key– API rakto užklausų dažnis (kvota – pliūpsnis, laiko langas – laikas, per kurį kvota visiškai atsistato; sesijai taiuser, be prisijungimo duomenų –ip);minute,dayirmonth– organizacijos kvotos kalendorinei minutei, dienai ir mėnesiui pagal UTC.RateLimitKiek liko kiekvieno
RateLimit-Policylimito:"<name>";r=<remaining>;t=<seconds until reset>.X-RateLimit-LimitGriežčiausio
RateLimit-Policyįrašo (kuriame liko mažiausiai užklausų) limitas.X-RateLimit-RemainingLikusių užklausų skaičius pagal griežčiausią limitą.
X-RateLimit-ResetSekundės iki griežčiausio limito atsistatymo.
application/json
429Per daug užklausų (`api.rate_limited`), išnaudota organizacijos minutės, dienos ar mėnesio kvota (`api.quota_exceeded`; `error.details` pateikia `quota`, `limit` ir `reset_at`), pasiektas organizacijos limitas arba atsakymų paslauga užimta (`answers.engine_busy`). Palaukite tiek, kiek nurodyta antraštėje `Retry-After`.
Atsako antraštės
Retry-AfterKiek sekundžių palaukti prieš kartojant užklausą.
RateLimit-PolicyGaliojantys limitai IETF juodraščio
draft-ietf-httpapi-ratelimit-headersformatu: kableliais atskirti elementai"<name>";q=<quota>;w=<window in seconds>.key– API rakto užklausų dažnis (kvota – pliūpsnis, laiko langas – laikas, per kurį kvota visiškai atsistato; sesijai taiuser, be prisijungimo duomenų –ip);minute,dayirmonth– organizacijos kvotos kalendorinei minutei, dienai ir mėnesiui pagal UTC.RateLimitKiek liko kiekvieno
RateLimit-Policylimito:"<name>";r=<remaining>;t=<seconds until reset>.X-RateLimit-LimitGriežčiausio
RateLimit-Policyįrašo (kuriame liko mažiausiai užklausų) limitas.X-RateLimit-RemainingLikusių užklausų skaičius pagal griežčiausią limitą.
X-RateLimit-ResetSekundės iki griežčiausio limito atsistatymo.
application/json
Klaidų kodai
Kodai, kuriuos ši operacija gali grąžinti lauke error.code, be bendrųjų kodų, galimų bet kuriai užklausai.
- 409api.idempotency_in_progress
- 400api.idempotency_key_invalid
- 409api.idempotency_mismatch
- 403auth.admin_required
- 401auth.not_authenticated
- 403api_keys.scope
- 402limits.users
- 402billing.seats_exceeded
- 400profiles.unknown
- 413users_import.too_many_rows
- 422users_import.csv_invalid
- 422users_import.no_email_column
- 422users_import.empty
- 422validation.failed
Saugūs pakartojimai
Su kiekviena POST ir PATCH užklausa siųskite antraštę Idempotency-Key (pavyzdžiui, UUID). Pakartojus užklausą su tuo pačiu raktu per 24 valandas, grąžinamas išsaugotas atsakas, o užklausa iš naujo nevykdoma.
Užklausų dažnio limitai
Atsakuose yra antraštės RateLimit ir RateLimit-Policy bei ankstesnės X-RateLimit-Limit, X-RateLimit-Remaining ir X-RateLimit-Reset. Atsake 429 yra antraštė Retry-After sekundėmis: palaukite ir pakartokite užklausą.