API-nycklar
MarkdownMetoder, anropsfält och svar.
Fullständig guide
Avsnittet innehåller 5 metoder. Öppna en metod för att se åtkomstvillkor, anropsfält och svar.
| Metod och sökväg | Beskrivning | Åtkomst |
|---|---|---|
GET /api/v1/keys | Lista — API-nycklar | Kontrollpaneltoken |
POST /api/v1/keys | Skapa API-nyckel | Kontrollpaneltoken |
DELETE /api/v1/keys/:id | Ta bort — API-nycklar | Kontrollpaneltoken |
GET /api/v1/keys/:id | Hämta efter identifierare — API-nycklar | Kontrollpaneltoken |
PUT /api/v1/keys/:id | Ändra API-nyckel | Kontrollpaneltoken |
GET /api/v1/keys — Lista — API-nycklar
Åtkomst: kontrollpaneltoken
/api/v1/keyscurl --fail-with-body "https://ailoot.ai/api/v1/keys" \
-H "Authorization: Bearer $TOKEN"Query-parametrar
| Fältet | Typ | Obligatoriskt | Validering / beskrivning |
|---|---|---|---|
sort_by | string | nej | ; standard: created_at |
sort_order | string | nej | ; standard: desc |
search | string | nej | |
status | string | nej | |
page | integer | nej | ; standard: 1; positivt värde; page_size/limit <=1000 |
page_size | integer | nej | ; standard: 20; positivt värde; page_size/limit <=1000 |
limit | integer | nej | ; standard: 20; positivt värde; page_size/limit <=1000 |
Ingen anropskropp krävs. Skicka parametrarna ovan i URL:en.
Svar
JSON-svaret innehåller code, message och data. Innehållet i data beskrivs i schemana nedan.
Datascheman för svaret: APIKey. Fält och typer finns på sidorna ”Datascheman”.
{
"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)"
}
}Observera: Alla personuppgifter och objekt är begränsade till JWT-subjektet.
Observera: Svaret innehåller den hemliga nyckeln key; publicera inte faktiska värden.
POST /api/v1/keys — Skapa API-nyckel
Åtkomst: kontrollpaneltoken
/api/v1/keysJSON-/formulärfält
| Fältet | Typ | Obligatoriskt | Validering / beskrivning |
|---|---|---|---|
name | string | ja | required |
custom_key | string | nej | ; Valfritt eget nyckelvärde; kan vara null |
ip_whitelist | array | nej | ; Lista över tillåtna IP-adresser |
ip_blacklist | array | nej | ; Lista över blockerade IP-adresser |
quota | number | nej | ; Nyckelns utgiftsgräns i USD; kan vara null |
expires_in_days | integer | nej | ; Giltighetstid i dagar; kan vara null |
rate_limit_5h | number | nej | ; kan vara null |
rate_limit_1d | number | nej | ; kan vara null |
rate_limit_7d | number | nej | ; kan vara 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 anger dina indata och deras typ. Ersätt värdena och behåll endast de valfria fält du behöver; strängmarkörer ska inte skickas i stället för tal, boolean, objekt eller arrayer.
Anropsschema: CreateAPIKeyRequest
Svar
JSON-svaret innehåller code, message och data. Innehållet i data beskrivs i schemana nedan.
Datascheman för svaret: APIKey. Fält och typer finns på sidorna ”Datascheman”.
{
"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)"
}
}Observera: Alla personuppgifter och objekt är begränsade till JWT-subjektet.
Observera: Operationen ändrar tillstånd eller fortsätter en engångsautentisering; exemplet beskriver kontraktet och körs inte.
Observera: Idempotency-Key stöds; upprepning returnerar det sparade svaret med X-Idempotency-Replayed.
Observera: Svaret innehåller den hemliga nyckeln key; publicera inte faktiska värden.
DELETE /api/v1/keys/:id — Ta bort — API-nycklar
Åtkomst: kontrollpaneltoken
/api/v1/keys/:idParametrar i URL-sökvägen
| Fältet | Typ | Obligatoriskt | Validering / beskrivning |
|---|---|---|---|
id | integer | ja |
Ingen anropskropp krävs.
Svar
JSON-svaret innehåller code, message och data. Innehållet i data beskrivs i schemana nedan.
{
"code": 0,
"message": "success",
"data": {
"message": "VALUE_FROM_RESPONSE"
}
}Observera: Alla personuppgifter och objekt är begränsade till JWT-subjektet.
Observera: Operationen ändrar tillstånd eller fortsätter en engångsautentisering; exemplet beskriver kontraktet och körs inte.
Observera: Svaret innehåller den hemliga nyckeln key; publicera inte faktiska värden.
GET /api/v1/keys/:id — Hämta efter identifierare — API-nycklar
Åtkomst: kontrollpaneltoken
/api/v1/keys/:idcurl --fail-with-body "https://ailoot.ai/api/v1/keys/$ID" \
-H "Authorization: Bearer $TOKEN"Parametrar i URL-sökvägen
| Fältet | Typ | Obligatoriskt | Validering / beskrivning |
|---|---|---|---|
id | integer | ja |
Ingen anropskropp krävs. Skicka parametrarna ovan i URL:en.
Svar
JSON-svaret innehåller code, message och data. Innehållet i data beskrivs i schemana nedan.
Datascheman för svaret: APIKey. Fält och typer finns på sidorna ”Datascheman”.
{
"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)"
}
}Observera: Alla personuppgifter och objekt är begränsade till JWT-subjektet.
Observera: Svaret innehåller den hemliga nyckeln key; publicera inte faktiska värden.
PUT /api/v1/keys/:id — Ändra API-nyckel
Åtkomst: kontrollpaneltoken
/api/v1/keys/:idParametrar i URL-sökvägen
| Fältet | Typ | Obligatoriskt | Validering / beskrivning |
|---|---|---|---|
id | integer | ja |
JSON-/formulärfält
| Fältet | Typ | Obligatoriskt | Validering / beskrivning |
|---|---|---|---|
name | string | nej | |
status | string | nej | omitempty,oneof=active inactive |
ip_whitelist | array | nej | ; Tillåtna IP-adresser: null lämnar listan oförändrad, en tom array tömmer den; kan vara null |
ip_blacklist | array | nej | ; Blockerade IP-adresser: null lämnar listan oförändrad, en tom array tömmer den; kan vara null |
quota | number | nej | ; Nyckelns utgiftsgräns i USD; 0 — ingen gräns; kan vara null |
expires_at | string | nej | ; Utgångstid i ISO 8601-format; kan vara null |
reset_quota | boolean | nej | ; Nollställ den förbrukade delen av utgiftsgränsen; kan vara null |
rate_limit_5h | number | nej | ; kan vara null |
rate_limit_1d | number | nej | ; kan vara null |
rate_limit_7d | number | nej | ; kan vara null |
reset_rate_limit_usage | boolean | nej | ; Nollställ förbrukningen för tidsfönstrens gränser; kan vara 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 anger dina indata och deras typ. Ersätt värdena och behåll endast de valfria fält du behöver; strängmarkörer ska inte skickas i stället för tal, boolean, objekt eller arrayer.
Anropsschema: UpdateAPIKeyRequest
Svar
JSON-svaret innehåller code, message och data. Innehållet i data beskrivs i schemana nedan.
Datascheman för svaret: APIKey. Fält och typer finns på sidorna ”Datascheman”.
{
"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)"
}
}Observera: Alla personuppgifter och objekt är begränsade till JWT-subjektet.
Observera: Operationen ändrar tillstånd eller fortsätter en engångsautentisering; exemplet beskriver kontraktet och körs inte.
Observera: Svaret innehåller den hemliga nyckeln key; publicera inte faktiska värden.
Observera: Så länge nyckeln har oavslutade anrop med reservering kan dess utgiftsgräns inte sänkas eller nollställas. Skicka endast de fält du ändrar.