Klucze API
MarkdownMetody, pola żądań i odpowiedzi.
Pełny przewodnik
W tej sekcji jest 5 metod. Otwórz metodę, aby zobaczyć warunki dostępu, pola żądania i odpowiedź.
| Metoda i ścieżka | Opis | Dostęp |
|---|---|---|
GET /api/v1/keys | Lista — klucze API | Token panelu użytkownika |
POST /api/v1/keys | Utworzenie klucza API | Token panelu użytkownika |
DELETE /api/v1/keys/:id | Usunięcie — klucze API | Token panelu użytkownika |
GET /api/v1/keys/:id | Pobranie według identyfikatora — klucze API | Token panelu użytkownika |
PUT /api/v1/keys/:id | Zmiana klucza API | Token panelu użytkownika |
GET /api/v1/keys — Lista — klucze API
Dostęp: Token panelu użytkownika
/api/v1/keyscurl --fail-with-body "https://ailoot.ai/api/v1/keys" \
-H "Authorization: Bearer $TOKEN"Parametry zapytania
| Pole | Typ | Wymagane | Walidacja / opis |
|---|---|---|---|
sort_by | string | nie | ; domyślnie: created_at |
sort_order | string | nie | ; domyślnie: desc |
search | string | nie | |
status | string | nie | |
page | integer | nie | ; domyślnie: 1; positive; page_size/limit <=1000 |
page_size | integer | nie | ; domyślnie: 20; positive; page_size/limit <=1000 |
limit | integer | nie | ; domyślnie: 20; positive; page_size/limit <=1000 |
Treść żądania nie jest wymagana. Przekaż wskazane powyżej parametry w URL.
Odpowiedź
Odpowiedź JSON zawiera code, message i data. Zawartość data opisano w schematach poniżej.
Schematy danych odpowiedzi: APIKey. Pola i typy — na stronach „Schematy danych”.
{
"code": 0,
"message": "success",
"data": {
"items": [
{
"id": "PLACEHOLDER_ID (integer)",
"user_id": "PLACEHOLDER_USER_ID (integer)",
"key": "PLACEHOLDER_KEY (string)",
"name": "PLACEHOLDER_NAME (string)",
"status": "PLACEHOLDER_STATUS (string)",
"ip_whitelist": "PLACEHOLDER_IP_WHITELIST (array)",
"ip_blacklist": "PLACEHOLDER_IP_BLACKLIST (array)",
"last_used_at": "PLACEHOLDER_LAST_USED_AT (string)",
"last_used_ip": "PLACEHOLDER_LAST_USED_IP (string)",
"quota": "PLACEHOLDER_QUOTA (number)",
"quota_used": "PLACEHOLDER_QUOTA_USED (number)",
"expires_at": "PLACEHOLDER_EXPIRES_AT (string)",
"created_at": "PLACEHOLDER_CREATED_AT (string)",
"updated_at": "PLACEHOLDER_UPDATED_AT (string)",
"current_concurrency": "PLACEHOLDER_CURRENT_CONCURRENCY (integer)",
"rate_limit_5h": "PLACEHOLDER_RATE_LIMIT_5H (number)",
"rate_limit_1d": "PLACEHOLDER_RATE_LIMIT_1D (number)",
"rate_limit_7d": "PLACEHOLDER_RATE_LIMIT_7D (number)",
"usage_5h": "PLACEHOLDER_USAGE_5H (number)",
"usage_1d": "PLACEHOLDER_USAGE_1D (number)",
"usage_7d": "PLACEHOLDER_USAGE_7D (number)",
"window_5h_start": "PLACEHOLDER_WINDOW_5H_START (string)",
"window_1d_start": "PLACEHOLDER_WINDOW_1D_START (string)",
"window_7d_start": "PLACEHOLDER_WINDOW_7D_START (string)",
"reset_5h_at": "PLACEHOLDER_RESET_5H_AT (string)",
"reset_1d_at": "PLACEHOLDER_RESET_1D_AT (string)",
"reset_7d_at": "PLACEHOLDER_RESET_7D_AT (string)",
"user": "PLACEHOLDER_USER (object)"
}
],
"total": "PLACEHOLDER_TOTAL (integer)",
"page": "PLACEHOLDER_PAGE (integer)",
"page_size": "PLACEHOLDER_PAGE_SIZE (integer)",
"pages": "PLACEHOLDER_PAGES (integer)"
}
}Cechy szczególne: Wszystkie dane osobowe i obiekty są ograniczone do podmiotu JWT.
Uwagi: odpowiedź zawiera poufną wartość key; nie publikuj rzeczywistych wartości.
POST /api/v1/keys — Utworzenie klucza API
Dostęp: Token panelu użytkownika
/api/v1/keysPola JSON / formularza
| Pole | Typ | Wymagane | Walidacja / opis |
|---|---|---|---|
name | string | tak | required |
custom_key | string | nie | ; Opcjonalna własna wartość klucza; może być null |
ip_whitelist | array | nie | ; Lista dozwolonych IP |
ip_blacklist | array | nie | ; Lista zabronionych IP |
quota | number | nie | ; Limit wydatków klucza w USD; może być null |
expires_in_days | integer | nie | ; Okres ważności w dniach; może być null |
rate_limit_5h | number | nie | ; może być null |
rate_limit_1d | number | nie | ; może być null |
rate_limit_7d | number | nie | ; może być null |
{
"name": "PLACEHOLDER_NAME (string)",
"custom_key": "PLACEHOLDER_CUSTOM_KEY (string)",
"ip_whitelist": "PLACEHOLDER_IP_WHITELIST (array)",
"ip_blacklist": "PLACEHOLDER_IP_BLACKLIST (array)",
"quota": "PLACEHOLDER_QUOTA (number)",
"expires_in_days": "PLACEHOLDER_EXPIRES_IN_DAYS (integer)",
"rate_limit_5h": "PLACEHOLDER_RATE_LIMIT_5H (number)",
"rate_limit_1d": "PLACEHOLDER_RATE_LIMIT_1D (number)",
"rate_limit_7d": "PLACEHOLDER_RATE_LIMIT_7D (number)"
}PLACEHOLDER oznacza Twoje dane wejściowe i ich typ. Zastąp wartości i pozostaw tylko potrzebne pola opcjonalne; znaczników tekstowych nie wysyła się zamiast liczb, wartości boolean, obiektów lub tablic.
Schemat żądania: CreateAPIKeyRequest
Odpowiedź
Odpowiedź JSON zawiera code, message i data. Zawartość data opisano w schematach poniżej.
Schematy danych odpowiedzi: APIKey. Pola i typy — na stronach „Schematy danych”.
{
"code": 0,
"message": "success",
"data": {
"id": "PLACEHOLDER_ID (integer)",
"user_id": "PLACEHOLDER_USER_ID (integer)",
"key": "PLACEHOLDER_KEY (string)",
"name": "PLACEHOLDER_NAME (string)",
"status": "PLACEHOLDER_STATUS (string)",
"ip_whitelist": "PLACEHOLDER_IP_WHITELIST (array)",
"ip_blacklist": "PLACEHOLDER_IP_BLACKLIST (array)",
"last_used_at": "PLACEHOLDER_LAST_USED_AT (string)",
"last_used_ip": "PLACEHOLDER_LAST_USED_IP (string)",
"quota": "PLACEHOLDER_QUOTA (number)",
"quota_used": "PLACEHOLDER_QUOTA_USED (number)",
"expires_at": "PLACEHOLDER_EXPIRES_AT (string)",
"created_at": "PLACEHOLDER_CREATED_AT (string)",
"updated_at": "PLACEHOLDER_UPDATED_AT (string)",
"current_concurrency": "PLACEHOLDER_CURRENT_CONCURRENCY (integer)",
"rate_limit_5h": "PLACEHOLDER_RATE_LIMIT_5H (number)",
"rate_limit_1d": "PLACEHOLDER_RATE_LIMIT_1D (number)",
"rate_limit_7d": "PLACEHOLDER_RATE_LIMIT_7D (number)",
"usage_5h": "PLACEHOLDER_USAGE_5H (number)",
"usage_1d": "PLACEHOLDER_USAGE_1D (number)",
"usage_7d": "PLACEHOLDER_USAGE_7D (number)",
"window_5h_start": "PLACEHOLDER_WINDOW_5H_START (string)",
"window_1d_start": "PLACEHOLDER_WINDOW_1D_START (string)",
"window_7d_start": "PLACEHOLDER_WINDOW_7D_START (string)",
"reset_5h_at": "PLACEHOLDER_RESET_5H_AT (string)",
"reset_1d_at": "PLACEHOLDER_RESET_1D_AT (string)",
"reset_7d_at": "PLACEHOLDER_RESET_7D_AT (string)",
"user": "PLACEHOLDER_USER (object)"
}
}Cechy szczególne: Wszystkie dane osobowe i obiekty są ograniczone do podmiotu JWT.
Uwagi: operacja zmienia stan lub kontynuuje jednorazową autoryzację; przykład opisuje kontrakt i nie jest wykonywany.
Uwagi: obsługiwany jest Idempotency-Key; ponowienie zwraca zapisaną odpowiedź z X-Idempotency-Replayed.
Uwagi: odpowiedź zawiera poufną wartość key; nie publikuj rzeczywistych wartości.
DELETE /api/v1/keys/:id — Usunięcie — klucze API
Dostęp: Token panelu użytkownika
/api/v1/keys/:idParametry ścieżki
| Pole | Typ | Wymagane | Walidacja / opis |
|---|---|---|---|
id | integer | tak |
Treść żądania nie jest wymagana.
Odpowiedź
Odpowiedź JSON zawiera code, message i data. Zawartość data opisano w schematach poniżej.
{
"code": 0,
"message": "success",
"data": {
"message": "VALUE_FROM_RESPONSE"
}
}Cechy szczególne: Wszystkie dane osobowe i obiekty są ograniczone do podmiotu JWT.
Uwagi: operacja zmienia stan lub kontynuuje jednorazową autoryzację; przykład opisuje kontrakt i nie jest wykonywany.
Uwagi: odpowiedź zawiera poufną wartość key; nie publikuj rzeczywistych wartości.
GET /api/v1/keys/:id — Pobranie według identyfikatora — klucze API
Dostęp: Token panelu użytkownika
/api/v1/keys/:idcurl --fail-with-body "https://ailoot.ai/api/v1/keys/$ID" \
-H "Authorization: Bearer $TOKEN"Parametry ścieżki
| Pole | Typ | Wymagane | Walidacja / opis |
|---|---|---|---|
id | integer | tak |
Treść żądania nie jest wymagana. Przekaż wskazane powyżej parametry w URL.
Odpowiedź
Odpowiedź JSON zawiera code, message i data. Zawartość data opisano w schematach poniżej.
Schematy danych odpowiedzi: APIKey. Pola i typy — na stronach „Schematy danych”.
{
"code": 0,
"message": "success",
"data": {
"id": "PLACEHOLDER_ID (integer)",
"user_id": "PLACEHOLDER_USER_ID (integer)",
"key": "PLACEHOLDER_KEY (string)",
"name": "PLACEHOLDER_NAME (string)",
"status": "PLACEHOLDER_STATUS (string)",
"ip_whitelist": "PLACEHOLDER_IP_WHITELIST (array)",
"ip_blacklist": "PLACEHOLDER_IP_BLACKLIST (array)",
"last_used_at": "PLACEHOLDER_LAST_USED_AT (string)",
"last_used_ip": "PLACEHOLDER_LAST_USED_IP (string)",
"quota": "PLACEHOLDER_QUOTA (number)",
"quota_used": "PLACEHOLDER_QUOTA_USED (number)",
"expires_at": "PLACEHOLDER_EXPIRES_AT (string)",
"created_at": "PLACEHOLDER_CREATED_AT (string)",
"updated_at": "PLACEHOLDER_UPDATED_AT (string)",
"current_concurrency": "PLACEHOLDER_CURRENT_CONCURRENCY (integer)",
"rate_limit_5h": "PLACEHOLDER_RATE_LIMIT_5H (number)",
"rate_limit_1d": "PLACEHOLDER_RATE_LIMIT_1D (number)",
"rate_limit_7d": "PLACEHOLDER_RATE_LIMIT_7D (number)",
"usage_5h": "PLACEHOLDER_USAGE_5H (number)",
"usage_1d": "PLACEHOLDER_USAGE_1D (number)",
"usage_7d": "PLACEHOLDER_USAGE_7D (number)",
"window_5h_start": "PLACEHOLDER_WINDOW_5H_START (string)",
"window_1d_start": "PLACEHOLDER_WINDOW_1D_START (string)",
"window_7d_start": "PLACEHOLDER_WINDOW_7D_START (string)",
"reset_5h_at": "PLACEHOLDER_RESET_5H_AT (string)",
"reset_1d_at": "PLACEHOLDER_RESET_1D_AT (string)",
"reset_7d_at": "PLACEHOLDER_RESET_7D_AT (string)",
"user": "PLACEHOLDER_USER (object)"
}
}Cechy szczególne: Wszystkie dane osobowe i obiekty są ograniczone do podmiotu JWT.
Uwagi: odpowiedź zawiera poufną wartość key; nie publikuj rzeczywistych wartości.
PUT /api/v1/keys/:id — Zmiana klucza API
Dostęp: Token panelu użytkownika
/api/v1/keys/:idParametry ścieżki
| Pole | Typ | Wymagane | Walidacja / opis |
|---|---|---|---|
id | integer | tak |
Pola JSON / formularza
| Pole | Typ | Wymagane | Walidacja / opis |
|---|---|---|---|
name | string | nie | |
status | string | nie | omitempty,oneof=active inactive |
ip_whitelist | array | nie | ; Dozwolone IP: null nie zmienia listy, pusta tablica ją czyści; może być null |
ip_blacklist | array | nie | ; Zabronione IP: null nie zmienia listy, pusta tablica ją czyści; może być null |
quota | number | nie | ; Limit wydatków klucza w USD; 0 — bez limitu; może być null |
expires_at | string | nie | ; Czas wygaśnięcia w formacie ISO 8601; może być null |
reset_quota | boolean | nie | ; Zresetować wykorzystaną część limitu wydatków; może być null |
rate_limit_5h | number | nie | ; może być null |
rate_limit_1d | number | nie | ; może być null |
rate_limit_7d | number | nie | ; może być null |
reset_rate_limit_usage | boolean | nie | ; Zresetować wykorzystanie limitów w oknach czasowych; może być null |
{
"name": "PLACEHOLDER_NAME (string)",
"status": "PLACEHOLDER_STATUS (string)",
"ip_whitelist": "PLACEHOLDER_IP_WHITELIST (array)",
"ip_blacklist": "PLACEHOLDER_IP_BLACKLIST (array)",
"quota": "PLACEHOLDER_QUOTA (number)",
"expires_at": "PLACEHOLDER_EXPIRES_AT (string)",
"reset_quota": "PLACEHOLDER_RESET_QUOTA (boolean)",
"rate_limit_5h": "PLACEHOLDER_RATE_LIMIT_5H (number)",
"rate_limit_1d": "PLACEHOLDER_RATE_LIMIT_1D (number)",
"rate_limit_7d": "PLACEHOLDER_RATE_LIMIT_7D (number)",
"reset_rate_limit_usage": "PLACEHOLDER_RESET_RATE_LIMIT_USAGE (boolean)"
}PLACEHOLDER oznacza Twoje dane wejściowe i ich typ. Zastąp wartości i pozostaw tylko potrzebne pola opcjonalne; znaczników tekstowych nie wysyła się zamiast liczb, wartości boolean, obiektów lub tablic.
Schemat żądania: UpdateAPIKeyRequest
Odpowiedź
Odpowiedź JSON zawiera code, message i data. Zawartość data opisano w schematach poniżej.
Schematy danych odpowiedzi: APIKey. Pola i typy — na stronach „Schematy danych”.
{
"code": 0,
"message": "success",
"data": {
"id": "PLACEHOLDER_ID (integer)",
"user_id": "PLACEHOLDER_USER_ID (integer)",
"key": "PLACEHOLDER_KEY (string)",
"name": "PLACEHOLDER_NAME (string)",
"status": "PLACEHOLDER_STATUS (string)",
"ip_whitelist": "PLACEHOLDER_IP_WHITELIST (array)",
"ip_blacklist": "PLACEHOLDER_IP_BLACKLIST (array)",
"last_used_at": "PLACEHOLDER_LAST_USED_AT (string)",
"last_used_ip": "PLACEHOLDER_LAST_USED_IP (string)",
"quota": "PLACEHOLDER_QUOTA (number)",
"quota_used": "PLACEHOLDER_QUOTA_USED (number)",
"expires_at": "PLACEHOLDER_EXPIRES_AT (string)",
"created_at": "PLACEHOLDER_CREATED_AT (string)",
"updated_at": "PLACEHOLDER_UPDATED_AT (string)",
"current_concurrency": "PLACEHOLDER_CURRENT_CONCURRENCY (integer)",
"rate_limit_5h": "PLACEHOLDER_RATE_LIMIT_5H (number)",
"rate_limit_1d": "PLACEHOLDER_RATE_LIMIT_1D (number)",
"rate_limit_7d": "PLACEHOLDER_RATE_LIMIT_7D (number)",
"usage_5h": "PLACEHOLDER_USAGE_5H (number)",
"usage_1d": "PLACEHOLDER_USAGE_1D (number)",
"usage_7d": "PLACEHOLDER_USAGE_7D (number)",
"window_5h_start": "PLACEHOLDER_WINDOW_5H_START (string)",
"window_1d_start": "PLACEHOLDER_WINDOW_1D_START (string)",
"window_7d_start": "PLACEHOLDER_WINDOW_7D_START (string)",
"reset_5h_at": "PLACEHOLDER_RESET_5H_AT (string)",
"reset_1d_at": "PLACEHOLDER_RESET_1D_AT (string)",
"reset_7d_at": "PLACEHOLDER_RESET_7D_AT (string)",
"user": "PLACEHOLDER_USER (object)"
}
}Cechy szczególne: Wszystkie dane osobowe i obiekty są ograniczone do podmiotu JWT.
Uwagi: operacja zmienia stan lub kontynuuje jednorazową autoryzację; przykład opisuje kontrakt i nie jest wykonywany.
Uwagi: odpowiedź zawiera poufną wartość key; nie publikuj rzeczywistych wartości.
Uwagi: dopóki klucz ma niezakończone żądania z rezerwacją, nie można zmniejszyć ani zresetować jego limitu wydatków. Przekazuj tylko pola, które zmieniasz.