PATCH/v1/api-keys/{key_id}
Aktualizowanie klucza API
update_api_key
Zmienia profil dostępu, zakresy, ograniczenie do kolekcji, dozwolone sieci i wygaśnięcie klucza. Nieprzekazane pola pozostają bez zmian.
Uwierzytelnianie
Wyślij klucz API w nagłówku Authorization: Authorization: Bearer <klucz>.
Parametry ścieżki
key_idintegerwymagane
Parametry nagłówka
Idempotency-KeystringKlucz bezpiecznego ponowienia zapisu: od 1 do 255 drukowalnych znaków ASCII; zalecany jest UUID v4 na każdą operację logiczną. Ponowienie z tym samym kluczem w ciągu 24 godzin nie wykonuje operacji ponownie: zwraca zapisaną odpowiedź (status, nagłówki i treść) z nagłówkiem
Idempotency-Replayed: true. Ten sam klucz z inną metodą, ścieżką,Content-Typelub treścią zwraca409 api.idempotency_mismatch; dopóki pierwsze żądanie jest jeszcze wykonywane –409 api.idempotency_in_progresszRetry-After: 1. Po odpowiedzi 5xx lub 429 klucz zostaje zwolniony, a ponowienie wykonuje operację jeszcze raz. Klucz obowiązuje w obrębie organizacji i wywołującego (klucz API, użytkownik lub klucz własnego źródła).length ≥ 1, length ≤ 255
X-View-AsstringTylko dla kluczy API z rolą
admin. Wykonuje żądanie jako profil dostępu<profile>[:viewer|verifier|editor], np.employee:viewer. Klucz instalacji nie może używać tego nagłówka (403).
Parametry cookie
kb_view_asstringPlik cookie trybu „View as” dla sesji.
POST /auth/view-asgo ustawia, aDELETE /auth/view-asusuwa.
Treść żądania
application/json
data_profilestringNowy profil dostępu klucza. Profil dostępu nie ma zastosowania do roli
admin, dlatego dla klucza administratora profil inny niżfullzwraca400 api_keys.data_profile_not_applicable.scopesarray of ApiKeyScopeZakresy klucza. Zakresu
systemnie można wydać przez API.collection_idsarray of integerOgranicza klucz do tych kolekcji. Pusta lista oznacza brak ograniczenia. Klucz wywołujący, który sam jest ograniczony do kolekcji, widzi i zmienia tylko klucze w swoich kolekcjach (pozostałe klucze zwracają
404 api_keys.not_found) i może ustawić tylko niepustą listę własnych kolekcji. Pusta lista lub kolekcja spoza jego listy zwraca400 api_keys.invalid_collections. Bez tego pola kolekcje klucza pozostają bez zmian.items ≤ 100
allowed_cidrsarray of stringSieci, z których można używać klucza.
items ≤ 50
expires_atstring (date-time) | nullCzas wygaśnięcia (w przyszłości).
nulloznacza, że klucz nie wygasa.
Odpowiedzi
200Pomyślna odpowiedź
Nagłówki odpowiedzi
RateLimit-PolicyObowiązujące limity w formacie projektu IETF
draft-ietf-httpapi-ratelimit-headers: elementy rozdzielone przecinkami"<name>";q=<quota>;w=<window in seconds>.keyto częstotliwość żądań klucza API (przydział to wielkość chwilowego szczytu (burst), okno to czas jego pełnego odnowienia; dla sesji jest touser, bez danych uwierzytelniającychip);minute,dayimonthto przydziały organizacji na minutę, dzień i miesiąc kalendarzowy w UTC.RateLimitCo pozostało z każdego limitu w
RateLimit-Policy:"<name>";r=<remaining>;t=<seconds until reset>.X-RateLimit-LimitLimit najbardziej restrykcyjnej pozycji w
RateLimit-Policy(tej, w której zostało najmniej żądań).X-RateLimit-RemainingLiczba żądań pozostałych w ramach najbardziej restrykcyjnego limitu.
X-RateLimit-ResetLiczba sekund do odnowienia najbardziej restrykcyjnego limitu.
Idempotency-Replayedtrueoznacza, że odpowiedź została odtworzona z odpowiedzi zapisanej dla tegoIdempotency-Key: operacja nie została wykonana ponownie.
400Żądanie jest nieprawidłowe: wartość parametru lub stan obiektu nie pozwala na to działanie (`detail` zawiera komunikat).
Nagłówki odpowiedzi
RateLimit-PolicyObowiązujące limity w formacie projektu IETF
draft-ietf-httpapi-ratelimit-headers: elementy rozdzielone przecinkami"<name>";q=<quota>;w=<window in seconds>.keyto częstotliwość żądań klucza API (przydział to wielkość chwilowego szczytu (burst), okno to czas jego pełnego odnowienia; dla sesji jest touser, bez danych uwierzytelniającychip);minute,dayimonthto przydziały organizacji na minutę, dzień i miesiąc kalendarzowy w UTC.RateLimitCo pozostało z każdego limitu w
RateLimit-Policy:"<name>";r=<remaining>;t=<seconds until reset>.X-RateLimit-LimitLimit najbardziej restrykcyjnej pozycji w
RateLimit-Policy(tej, w której zostało najmniej żądań).X-RateLimit-RemainingLiczba żądań pozostałych w ramach najbardziej restrykcyjnego limitu.
X-RateLimit-ResetLiczba sekund do odnowienia najbardziej restrykcyjnego limitu.
application/json
401Nie przesłano danych uwierzytelniających (ani pliku cookie sesji, ani klucza API) lub nie znaleziono klucza.
Nagłówki odpowiedzi
RateLimit-PolicyObowiązujące limity w formacie projektu IETF
draft-ietf-httpapi-ratelimit-headers: elementy rozdzielone przecinkami"<name>";q=<quota>;w=<window in seconds>.keyto częstotliwość żądań klucza API (przydział to wielkość chwilowego szczytu (burst), okno to czas jego pełnego odnowienia; dla sesji jest touser, bez danych uwierzytelniającychip);minute,dayimonthto przydziały organizacji na minutę, dzień i miesiąc kalendarzowy w UTC.RateLimitCo pozostało z każdego limitu w
RateLimit-Policy:"<name>";r=<remaining>;t=<seconds until reset>.X-RateLimit-LimitLimit najbardziej restrykcyjnej pozycji w
RateLimit-Policy(tej, w której zostało najmniej żądań).X-RateLimit-RemainingLiczba żądań pozostałych w ramach najbardziej restrykcyjnego limitu.
X-RateLimit-ResetLiczba sekund do odnowienia najbardziej restrykcyjnego limitu.
application/json
403Działanie jest niedozwolone: rola jest niewystarczająca, brak dostępu do kolekcji lub karty, żądanie jest wykonywane w trybie „View as” albo organizacja jest zawieszona lub usunięta (`detail` to obiekt z `code: org_suspended | org_deleted`).
Nagłówki odpowiedzi
RateLimit-PolicyObowiązujące limity w formacie projektu IETF
draft-ietf-httpapi-ratelimit-headers: elementy rozdzielone przecinkami"<name>";q=<quota>;w=<window in seconds>.keyto częstotliwość żądań klucza API (przydział to wielkość chwilowego szczytu (burst), okno to czas jego pełnego odnowienia; dla sesji jest touser, bez danych uwierzytelniającychip);minute,dayimonthto przydziały organizacji na minutę, dzień i miesiąc kalendarzowy w UTC.RateLimitCo pozostało z każdego limitu w
RateLimit-Policy:"<name>";r=<remaining>;t=<seconds until reset>.X-RateLimit-LimitLimit najbardziej restrykcyjnej pozycji w
RateLimit-Policy(tej, w której zostało najmniej żądań).X-RateLimit-RemainingLiczba żądań pozostałych w ramach najbardziej restrykcyjnego limitu.
X-RateLimit-ResetLiczba sekund do odnowienia najbardziej restrykcyjnego limitu.
application/json
404Obiekt nie istnieje lub nie jest dla Ciebie dostępny. API nie potwierdza istnienia obiektu z ograniczonym dostępem.
Nagłówki odpowiedzi
RateLimit-PolicyObowiązujące limity w formacie projektu IETF
draft-ietf-httpapi-ratelimit-headers: elementy rozdzielone przecinkami"<name>";q=<quota>;w=<window in seconds>.keyto częstotliwość żądań klucza API (przydział to wielkość chwilowego szczytu (burst), okno to czas jego pełnego odnowienia; dla sesji jest touser, bez danych uwierzytelniającychip);minute,dayimonthto przydziały organizacji na minutę, dzień i miesiąc kalendarzowy w UTC.RateLimitCo pozostało z każdego limitu w
RateLimit-Policy:"<name>";r=<remaining>;t=<seconds until reset>.X-RateLimit-LimitLimit najbardziej restrykcyjnej pozycji w
RateLimit-Policy(tej, w której zostało najmniej żądań).X-RateLimit-RemainingLiczba żądań pozostałych w ramach najbardziej restrykcyjnego limitu.
X-RateLimit-ResetLiczba sekund do odnowienia najbardziej restrykcyjnego limitu.
application/json
422Błąd walidacji: treść lub parametry nie odpowiadają schematowi (`detail` to lista błędów walidacji) albo wartość parametru jest poza zakresem (`detail` zawiera komunikat).
Nagłówki odpowiedzi
RateLimit-PolicyObowiązujące limity w formacie projektu IETF
draft-ietf-httpapi-ratelimit-headers: elementy rozdzielone przecinkami"<name>";q=<quota>;w=<window in seconds>.keyto częstotliwość żądań klucza API (przydział to wielkość chwilowego szczytu (burst), okno to czas jego pełnego odnowienia; dla sesji jest touser, bez danych uwierzytelniającychip);minute,dayimonthto przydziały organizacji na minutę, dzień i miesiąc kalendarzowy w UTC.RateLimitCo pozostało z każdego limitu w
RateLimit-Policy:"<name>";r=<remaining>;t=<seconds until reset>.X-RateLimit-LimitLimit najbardziej restrykcyjnej pozycji w
RateLimit-Policy(tej, w której zostało najmniej żądań).X-RateLimit-RemainingLiczba żądań pozostałych w ramach najbardziej restrykcyjnego limitu.
X-RateLimit-ResetLiczba sekund do odnowienia najbardziej restrykcyjnego limitu.
application/json
429Zbyt wiele żądań (`api.rate_limited`), wyczerpano przydział organizacji na minutę, dzień lub miesiąc (`api.quota_exceeded`; `error.details` zawiera `quota`, `limit` i `reset_at`), osiągnięto limit organizacji albo usługa odpowiedzi jest zajęta (`answers.engine_busy`). Odczekaj czas podany w nagłówku `Retry-After`.
Nagłówki odpowiedzi
Retry-AfterLiczba sekund oczekiwania przed ponowieniem żądania.
RateLimit-PolicyObowiązujące limity w formacie projektu IETF
draft-ietf-httpapi-ratelimit-headers: elementy rozdzielone przecinkami"<name>";q=<quota>;w=<window in seconds>.keyto częstotliwość żądań klucza API (przydział to wielkość chwilowego szczytu (burst), okno to czas jego pełnego odnowienia; dla sesji jest touser, bez danych uwierzytelniającychip);minute,dayimonthto przydziały organizacji na minutę, dzień i miesiąc kalendarzowy w UTC.RateLimitCo pozostało z każdego limitu w
RateLimit-Policy:"<name>";r=<remaining>;t=<seconds until reset>.X-RateLimit-LimitLimit najbardziej restrykcyjnej pozycji w
RateLimit-Policy(tej, w której zostało najmniej żądań).X-RateLimit-RemainingLiczba żądań pozostałych w ramach najbardziej restrykcyjnego limitu.
X-RateLimit-ResetLiczba sekund do odnowienia najbardziej restrykcyjnego limitu.
application/json
Kody błędów
Kody, które ta operacja może zwrócić w error.code, oprócz ogólnych kodów każdego żądania.
- 409api.idempotency_in_progress
- 400api.idempotency_key_invalid
- 409api.idempotency_mismatch
- 400api_keys.data_profile_not_applicable
- 400api_keys.invalid_cidrs
- 400api_keys.invalid_collections
- 400api_keys.invalid_expires
- 400api_keys.invalid_scopes
- 404api_keys.not_found
- 403auth.admin_required
- 401auth.not_authenticated
- 403auth.system_scope
- 400profiles.unknown
- 403view_as.read_only
Bezpieczne ponawianie
Wysyłaj nagłówek Idempotency-Key (na przykład UUID) z każdym żądaniem POST i PATCH. Ponowienie z tym samym kluczem w ciągu 24 godzin zwraca zapisaną odpowiedź, zamiast ponownie wykonywać żądanie.
Limity częstotliwości
Odpowiedzi zawierają nagłówki RateLimit i RateLimit-Policy oraz starsze X-RateLimit-Limit, X-RateLimit-Remaining i X-RateLimit-Reset. Odpowiedź 429 ma nagłówek Retry-After w sekundach: odczekaj i ponów żądanie.