Documentazione API
Crea flussi di autorizzazione Kick, consulta i permessi e gestisci i token con l’API v2.
Flusso di autorizzazione
- Consulta il catalogo e scegli gli ID dei permessi attivi necessari alla tua integrazione.
- Crea un flusso. Mantieni privata la chiave di recupero e apri authorization_url nel browser del titolare dell’account.
- Dopo l’autorizzazione, recupera le credenziali una sola volta. Salva il token di accesso e il token di aggiornamento più recente.
I flussi scadono dopo 24 ore. Un recupero riuscito consuma le credenziali memorizzate. Attendi almeno cinque secondi tra le verifiche in attesa.
Autenticazione e limiti
Il recupero usa la chiave privata del flusso come credenziale Bearer. Gli altri endpoint usano i dati indicati sotto. L’API v2 consente 120 richieste al minuto per IP; HTTP 429 indica il raggiungimento del limite.
Riferimento degli endpoint
GET /api/v2/scopes
Permessi disponibili per il token
Consulta ID, nomi, descrizioni e disponibilità dei permessi attuali. Questa richiesta non richiede credenziali.
Questo endpoint non ha parametri di richiesta.
Risposta
HTTP 200- Risposta riuscita
application/jsonRisposta di esempio
{ "scopes": [ { "description": "Send chat messages as the authorized account.", "id": 6, "scope": "chat:write", "secret": false } ], "success": true } HTTP 400- Richiesta non valida
application/jsonRisposta di esempio
{ "message": "invalid request", "success": false } HTTP 401- Token o chiave di recupero non validi
application/jsonRisposta di esempio
{ "message": "invalid retrieval key", "success": false } HTTP 429- Limite di richieste raggiunto
application/jsonRisposta di esempio
{ "message": "rate limit exceeded", "success": false } HTTP 503- Servizio temporaneamente non disponibile
application/jsonRisposta di esempio
{ "message": "Service unavailable", "success": false }
POST /api/v2/workflows
Crea un flusso di autorizzazione
Crea un flusso di autorizzazione di 24 ore. Usa la modalità condivisa abilitata o le credenziali della tua app nel corpo POST.
Parametri
ai_agentFacoltativostring· corpoNome facoltativo del client IA, fino a 64 byte UTF-8 senza caratteri di controllo. Serve per l’attribuzione, non per l’autenticazione.
credentialsFacoltativoobject· corpoUsa la tua applicazione sviluppatore Kick. Lascia entrambi i campi vuoti solo quando la modalità condivisa è disponibile. Le credenziali restano nella memoria della scheda e temporaneamente cifrate sul server durante l’autorizzazione.
is_aiFacoltativoboolean· corpoContrassegnare un flusso come assistito da IA.
redirect_urlFacoltativostring· corpoDestinazione HTTP o HTTPS assoluta facoltativa dopo l’autorizzazione. Non sono ammesse credenziali nell’URL.
scope_idsFacoltativoarray· corpoID numerici dal catalogo. Scegli permessi attivi, al massimo 150 distinti.
scopesFacoltativoarray· corpoNomi dei permessi separati da virgole. Il parametro deve essere presente; un valore vuoto non richiede permessi.
titleFacoltativostring· corpoNome dell’applicazione, fino a 500 byte UTF-8.
Corpo JSON della richiesta
{
"credentials": {
"client_id": "YOUR_CLIENT_ID",
"client_secret": "YOUR_CLIENT_SECRET"
},
"scope_ids": [
6
],
"title": "Example integration"
}
Risposta
HTTP 201- Creato
application/jsonRisposta di esempio
{ "authorization_url": "https://kicktokengen.com/authorize/EXAMPLE_ID", "expires_at": "2030-01-02T12:00:00Z", "id": "EXAMPLE_ID", "retrieval_key": "EXAMPLE_PRIVATE_KEY", "status_url": "https://kicktokengen.com/api/v2/workflows/EXAMPLE_ID", "success": true } HTTP 400- Richiesta non valida
application/jsonRisposta di esempio
{ "message": "invalid request", "success": false } HTTP 401- Token o chiave di recupero non validi
application/jsonRisposta di esempio
{ "message": "invalid retrieval key", "success": false } HTTP 429- Limite di richieste raggiunto
application/jsonRisposta di esempio
{ "message": "rate limit exceeded", "success": false } HTTP 503- Servizio temporaneamente non disponibile
application/jsonRisposta di esempio
{ "message": "Service unavailable", "success": false }
GET /api/v2/workflows/{id}
Recupera le credenziali del flusso
Restituisce le credenziali una sola volta dopo l’autorizzazione. Invia la chiave del flusso come credenziale Bearer. Una lettura riuscita consuma le credenziali memorizzate.
Parametri
idObbligatoriostring· percorsoID del flusso restituito alla creazione.
AuthorizationObbligatorioBearer· intestazioneChiave privata di recupero restituita alla creazione del flusso. Non inserirla nei link pubblici.
Risposta
HTTP 200- Risposta riuscita
application/jsonRisposta di esempio
{ "access_token": "EXAMPLE_ACCESS_TOKEN", "client_id": "EXAMPLE_CLIENT_ID", "expires_at": "2030-01-01T13:00:00Z", "expires_in": 3600, "refresh_token": "EXAMPLE_REFRESH_TOKEN", "scopes": [ "chat:write" ], "status": "authorized", "success": true, "token_type": "Bearer" } HTTP 202- Autorizzazione ancora in attesa
application/jsonRisposta di esempio
{ "status": "pending", "success": false } HTTP 400- Richiesta non valida
application/jsonRisposta di esempio
{ "message": "invalid request", "success": false } HTTP 401- Token o chiave di recupero non validi
application/jsonRisposta di esempio
{ "message": "invalid retrieval key", "success": false } HTTP 410- Credenziali scadute o già recuperate
application/jsonRisposta di esempio
{ "message": "workflow credentials are no longer available", "success": false } HTTP 429- Limite di richieste raggiunto
application/jsonRisposta di esempio
{ "message": "rate limit exceeded", "success": false } HTTP 503- Servizio temporaneamente non disponibile
application/jsonRisposta di esempio
{ "message": "Service unavailable", "success": false }
GET /api/v2/ai/workflows/create
Crea un flusso IA tramite GET
Alternativa GET per client che possono solo consultare URL. Crea un flusso usando i nomi dei permessi e restituisce un URL privato di recupero. Il JSON viene servito come text/plain.
Parametri
titleFacoltativostring· queryNome dell’applicazione, fino a 500 byte UTF-8.
scopesFacoltativostring· queryNomi dei permessi separati da virgole. Il parametro deve essere presente; un valore vuoto non richiede permessi.
scope_idsFacoltativostring· queryID numerici dal catalogo. Scegli permessi attivi, al massimo 150 distinti.
ai_agentFacoltativostring· queryNome facoltativo del client IA, fino a 64 byte UTF-8 senza caratteri di controllo. Serve per l’attribuzione, non per l’autenticazione.
Risposta
HTTP 201- Creato
application/jsonRisposta di esempio
{ "authorization_url": "https://kicktokengen.com/authorize/EXAMPLE_ID", "id": "EXAMPLE_ID", "retrieval_url": "https://kicktokengen.com/api/v2/ai/workflows/EXAMPLE_ID/EXAMPLE_PRIVATE_KEY", "success": true } HTTP 400- Richiesta non valida
application/jsonRisposta di esempio
{ "message": "invalid request", "success": false } HTTP 401- Token o chiave di recupero non validi
application/jsonRisposta di esempio
{ "message": "invalid retrieval key", "success": false } HTTP 429- Limite di richieste raggiunto
application/jsonRisposta di esempio
{ "message": "rate limit exceeded", "success": false } HTTP 503- Servizio temporaneamente non disponibile
application/jsonRisposta di esempio
{ "message": "Service unavailable", "success": false }
GET /api/v2/ai/workflows/{id}/{key}
Recupera le credenziali IA tramite GET
URL privata con la chiave di recupero. La risposta JSON consegna le credenziali una volta; proteggi l’intera URL come una password.
Parametri
idObbligatoriostring· percorsoID del flusso restituito alla creazione.
keyObbligatoriostring· percorsoChiave privata di recupero restituita alla creazione del flusso. Non inserirla nei link pubblici.
Risposta
HTTP 200- Risposta riuscita
application/jsonRisposta di esempio
{ "access_token": "EXAMPLE_ACCESS_TOKEN", "client_id": "EXAMPLE_CLIENT_ID", "expires_at": "2030-01-01T13:00:00Z", "expires_in": 3600, "refresh_token": "EXAMPLE_REFRESH_TOKEN", "scopes": [ "chat:write" ], "status": "authorized", "success": true, "token_type": "Bearer" } HTTP 202- Autorizzazione ancora in attesa
application/jsonRisposta di esempio
{ "status": "pending", "success": false } HTTP 400- Richiesta non valida
application/jsonRisposta di esempio
{ "message": "invalid request", "success": false } HTTP 401- Token o chiave di recupero non validi
application/jsonRisposta di esempio
{ "message": "invalid retrieval key", "success": false } HTTP 410- Credenziali scadute o già recuperate
application/jsonRisposta di esempio
{ "message": "workflow credentials are no longer available", "success": false } HTTP 429- Limite di richieste raggiunto
application/jsonRisposta di esempio
{ "message": "rate limit exceeded", "success": false } HTTP 503- Servizio temporaneamente non disponibile
application/jsonRisposta di esempio
{ "message": "Service unavailable", "success": false }
POST /api/v2/tokens/validate
Verifica token
Verifica la validità e mostra applicazione emittente, tipo, permessi e scadenza restituiti da Kick.
Parametri
access_tokenObbligatoriostring· corpoToken di accesso Kick da consultare o revocare, senza prefisso oauth:.
Corpo JSON della richiesta
{
"access_token": "EXAMPLE_ACCESS_TOKEN"
}
Risposta
HTTP 200- Risposta riuscita
application/jsonRisposta di esempio
{ "active": true, "client_id": "EXAMPLE_CLIENT_ID", "exp": 1893502800, "expires_in": 3600, "scope_details": [ { "description": "Send chat messages.", "scope": "chat:write" } ], "scopes": [ "chat:write" ], "success": true, "token_type": "user" } HTTP 400- Richiesta non valida
application/jsonRisposta di esempio
{ "message": "invalid request", "success": false } HTTP 401- Token o chiave di recupero non validi
application/jsonRisposta di esempio
{ "message": "invalid access token", "success": false } HTTP 429- Limite di richieste raggiunto
application/jsonRisposta di esempio
{ "message": "rate limit exceeded", "success": false } HTTP 503- Servizio temporaneamente non disponibile
application/jsonRisposta di esempio
{ "message": "Service unavailable", "success": false }
POST /api/v2/tokens/refresh
Token di aggiornamento
Rinnova un token di accesso con un token di aggiornamento. Fornisci client_id e client_secret per rinnovare un token della tua applicazione Kick.
Parametri
client_idFacoltativostring· corpoID client dell’applicazione Kick. Omettilo per usare l’applicazione condivisa di KTG.
client_secretFacoltativostring· corpoSegreto client dell’applicazione Kick. Per il rinnovo, forniscilo insieme a client_id.
refresh_tokenObbligatoriostring· corpoToken di aggiornamento più recente per l’account e l’applicazione Kick.
Corpo JSON della richiesta
{
"client_id": "YOUR_CLIENT_ID",
"client_secret": "YOUR_CLIENT_SECRET",
"refresh_token": "EXAMPLE_REFRESH_TOKEN"
}
Risposta
HTTP 200- Risposta riuscita
application/jsonRisposta di esempio
{ "access_token": "EXAMPLE_ACCESS_TOKEN", "client_id": "EXAMPLE_CLIENT_ID", "expires_at": "2030-01-01T13:00:00Z", "expires_in": 3600, "refresh_token": "EXAMPLE_REFRESH_TOKEN", "scopes": [ "chat:write" ], "status": "authorized", "success": true, "token_type": "Bearer" } HTTP 400- Richiesta non valida
application/jsonRisposta di esempio
{ "message": "invalid refresh token or client credentials", "success": false } HTTP 401- Token o chiave di recupero non validi
application/jsonRisposta di esempio
{ "message": "invalid retrieval key", "success": false } HTTP 429- Limite di richieste raggiunto
application/jsonRisposta di esempio
{ "message": "rate limit exceeded", "success": false } HTTP 503- Servizio temporaneamente non disponibile
application/jsonRisposta di esempio
{ "message": "Service unavailable", "success": false }
POST /api/v2/tokens/revoke
Revoca token
Revoca un solo token di accesso o aggiornamento inviato nel corpo POST.
Parametri
access_tokenFacoltativostring· corpoToken di accesso Kick da consultare o revocare, senza prefisso oauth:.
refresh_tokenFacoltativostring· corpoToken di aggiornamento più recente per l’account e l’applicazione Kick.
Corpo JSON della richiesta
{
"access_token": "EXAMPLE_ACCESS_TOKEN"
}
Risposta
HTTP 200- Risposta riuscita
application/jsonRisposta di esempio
{ "revoked": true, "success": true } HTTP 400- Richiesta non valida
application/jsonRisposta di esempio
{ "message": "invalid token request", "success": false } HTTP 401- Token o chiave di recupero non validi
application/jsonRisposta di esempio
{ "message": "invalid retrieval key", "success": false } HTTP 429- Limite di richieste raggiunto
application/jsonRisposta di esempio
{ "message": "rate limit exceeded", "success": false } HTTP 503- Servizio temporaneamente non disponibile
application/jsonRisposta di esempio
{ "message": "Service unavailable", "success": false }
POST /api/v2/quick-links
Link rapido
Crea un link riutilizzabile con gli ID dei permessi scelti. auth=stay apre il generatore; auth=authorize avvia l’autorizzazione Kick.
Parametri
authFacoltativostring· corpostay apre il generatore. authorize e l’alias di compatibilità auth_auth avviano immediatamente l’autorizzazione.
scope_idsFacoltativoarray· corpoID numerici dal catalogo. Scegli permessi attivi, al massimo 150 distinti.
scopesFacoltativoarray· corpoNomi dei permessi separati da virgole. Il parametro deve essere presente; un valore vuoto non richiede permessi.
Corpo JSON della richiesta
{
"auth": "stay",
"scope_ids": [
6
]
}
Risposta
HTTP 201- Creato
application/jsonRisposta di esempio
{ "success": true, "url": "https://kicktokengen.com/quick/Ab3dEf8_" } HTTP 400- Richiesta non valida
application/jsonRisposta di esempio
{ "message": "invalid request", "success": false } HTTP 401- Token o chiave di recupero non validi
application/jsonRisposta di esempio
{ "message": "invalid retrieval key", "success": false } HTTP 429- Limite di richieste raggiunto
application/jsonRisposta di esempio
{ "message": "rate limit exceeded", "success": false } HTTP 503- Servizio temporaneamente non disponibile
application/jsonRisposta di esempio
{ "message": "Service unavailable", "success": false }
POST /api/v2/token-requests
Richiedi token
Crea un link di richiesta di autorizzazione. Quando il titolare dell’account completa l’autorizzazione, le credenziali vengono inviate a my_email.
Parametri
credentialsFacoltativoobject· corpoUsa la tua applicazione sviluppatore Kick. Lascia entrambi i campi vuoti solo quando la modalità condivisa è disponibile. Le credenziali restano nella memoria della scheda e temporaneamente cifrate sul server durante l’autorizzazione.
my_emailObbligatoriostring· corpoIndirizzo e-mail che riceve le credenziali dopo il completamento della richiesta.
my_nameObbligatoriostring· corpoNome del richiedente, fino a 128 byte UTF-8.
scope_idsFacoltativoarray· corpoID numerici dal catalogo. Scegli permessi attivi, al massimo 150 distinti.
scopesFacoltativoarray· corpoNomi dei permessi separati da virgole. Il parametro deve essere presente; un valore vuoto non richiede permessi.
Corpo JSON della richiesta
{
"credentials": {
"client_id": "YOUR_CLIENT_ID",
"client_secret": "YOUR_CLIENT_SECRET"
},
"my_email": "developer@example.com",
"my_name": "Example developer",
"scope_ids": [
6
]
}
Risposta
HTTP 201- Creato
application/jsonRisposta di esempio
{ "expires_at": "2030-01-02T12:00:00Z", "success": true, "url": "https://kicktokengen.com/request/EXAMPLE_ID" } HTTP 400- Richiesta non valida
application/jsonRisposta di esempio
{ "message": "invalid request", "success": false } HTTP 401- Token o chiave di recupero non validi
application/jsonRisposta di esempio
{ "message": "invalid retrieval key", "success": false } HTTP 429- Limite di richieste raggiunto
application/jsonRisposta di esempio
{ "message": "rate limit exceeded", "success": false } HTTP 503- Servizio temporaneamente non disponibile
application/jsonRisposta di esempio
{ "message": "Service unavailable", "success": false }