Documentazione API

Crea flussi di autorizzazione Kick, consulta i permessi e gestisci i token con l’API v2.

Scarica OpenAPI

Flusso di autorizzazione

  1. Consulta il catalogo e scegli gli ID dei permessi attivi necessari alla tua integrazione.
  2. Crea un flusso. Mantieni privata la chiave di recupero e apri authorization_url nel browser del titolare dell’account.
  3. 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/json
Risposta 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/json
Risposta di esempio
{
  "message": "invalid request",
  "success": false
}
HTTP 401
Token o chiave di recupero non validi
application/json
Risposta di esempio
{
  "message": "invalid retrieval key",
  "success": false
}
HTTP 429
Limite di richieste raggiunto
application/json
Risposta di esempio
{
  "message": "rate limit exceeded",
  "success": false
}
HTTP 503
Servizio temporaneamente non disponibile
application/json
Risposta di esempio
{
  "message": "Service unavailable",
  "success": false
}
Prova questo endpoint
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_agentFacoltativo

string · corpo

Nome facoltativo del client IA, fino a 64 byte UTF-8 senza caratteri di controllo. Serve per l’attribuzione, non per l’autenticazione.

credentialsFacoltativo

object · corpo

Usa 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_aiFacoltativo

boolean · corpo

Contrassegnare un flusso come assistito da IA.

redirect_urlFacoltativo

string · corpo

Destinazione HTTP o HTTPS assoluta facoltativa dopo l’autorizzazione. Non sono ammesse credenziali nell’URL.

scope_idsFacoltativo

array · corpo

ID numerici dal catalogo. Scegli permessi attivi, al massimo 150 distinti.

scopesFacoltativo

array · corpo

Nomi dei permessi separati da virgole. Il parametro deve essere presente; un valore vuoto non richiede permessi.

titleFacoltativo

string · corpo

Nome 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/json
Risposta 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/json
Risposta di esempio
{
  "message": "invalid request",
  "success": false
}
HTTP 401
Token o chiave di recupero non validi
application/json
Risposta di esempio
{
  "message": "invalid retrieval key",
  "success": false
}
HTTP 429
Limite di richieste raggiunto
application/json
Risposta di esempio
{
  "message": "rate limit exceeded",
  "success": false
}
HTTP 503
Servizio temporaneamente non disponibile
application/json
Risposta di esempio
{
  "message": "Service unavailable",
  "success": false
}
Prova questo endpoint
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

idObbligatorio

string · percorso

ID del flusso restituito alla creazione.

AuthorizationObbligatorio

Bearer · intestazione

Chiave privata di recupero restituita alla creazione del flusso. Non inserirla nei link pubblici.

Risposta

HTTP 200
Risposta riuscita
application/json
Risposta 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/json
Risposta di esempio
{
  "status": "pending",
  "success": false
}
HTTP 400
Richiesta non valida
application/json
Risposta di esempio
{
  "message": "invalid request",
  "success": false
}
HTTP 401
Token o chiave di recupero non validi
application/json
Risposta di esempio
{
  "message": "invalid retrieval key",
  "success": false
}
HTTP 410
Credenziali scadute o già recuperate
application/json
Risposta di esempio
{
  "message": "workflow credentials are no longer available",
  "success": false
}
HTTP 429
Limite di richieste raggiunto
application/json
Risposta di esempio
{
  "message": "rate limit exceeded",
  "success": false
}
HTTP 503
Servizio temporaneamente non disponibile
application/json
Risposta di esempio
{
  "message": "Service unavailable",
  "success": false
}
Prova questo endpoint
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

titleFacoltativo

string · query

Nome dell’applicazione, fino a 500 byte UTF-8.

scopesFacoltativo

string · query

Nomi dei permessi separati da virgole. Il parametro deve essere presente; un valore vuoto non richiede permessi.

scope_idsFacoltativo

string · query

ID numerici dal catalogo. Scegli permessi attivi, al massimo 150 distinti.

ai_agentFacoltativo

string · query

Nome 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/json
Risposta 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/json
Risposta di esempio
{
  "message": "invalid request",
  "success": false
}
HTTP 401
Token o chiave di recupero non validi
application/json
Risposta di esempio
{
  "message": "invalid retrieval key",
  "success": false
}
HTTP 429
Limite di richieste raggiunto
application/json
Risposta di esempio
{
  "message": "rate limit exceeded",
  "success": false
}
HTTP 503
Servizio temporaneamente non disponibile
application/json
Risposta di esempio
{
  "message": "Service unavailable",
  "success": false
}
Prova questo endpoint
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

idObbligatorio

string · percorso

ID del flusso restituito alla creazione.

keyObbligatorio

string · percorso

Chiave privata di recupero restituita alla creazione del flusso. Non inserirla nei link pubblici.

Risposta

HTTP 200
Risposta riuscita
application/json
Risposta 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/json
Risposta di esempio
{
  "status": "pending",
  "success": false
}
HTTP 400
Richiesta non valida
application/json
Risposta di esempio
{
  "message": "invalid request",
  "success": false
}
HTTP 401
Token o chiave di recupero non validi
application/json
Risposta di esempio
{
  "message": "invalid retrieval key",
  "success": false
}
HTTP 410
Credenziali scadute o già recuperate
application/json
Risposta di esempio
{
  "message": "workflow credentials are no longer available",
  "success": false
}
HTTP 429
Limite di richieste raggiunto
application/json
Risposta di esempio
{
  "message": "rate limit exceeded",
  "success": false
}
HTTP 503
Servizio temporaneamente non disponibile
application/json
Risposta di esempio
{
  "message": "Service unavailable",
  "success": false
}
Prova questo endpoint
POST /api/v2/tokens/validate

Verifica token

Verifica la validità e mostra applicazione emittente, tipo, permessi e scadenza restituiti da Kick.

Parametri

access_tokenObbligatorio

string · corpo

Token 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/json
Risposta 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/json
Risposta di esempio
{
  "message": "invalid request",
  "success": false
}
HTTP 401
Token o chiave di recupero non validi
application/json
Risposta di esempio
{
  "message": "invalid access token",
  "success": false
}
HTTP 429
Limite di richieste raggiunto
application/json
Risposta di esempio
{
  "message": "rate limit exceeded",
  "success": false
}
HTTP 503
Servizio temporaneamente non disponibile
application/json
Risposta di esempio
{
  "message": "Service unavailable",
  "success": false
}
Prova questo endpoint
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_idFacoltativo

string · corpo

ID client dell’applicazione Kick. Omettilo per usare l’applicazione condivisa di KTG.

client_secretFacoltativo

string · corpo

Segreto client dell’applicazione Kick. Per il rinnovo, forniscilo insieme a client_id.

refresh_tokenObbligatorio

string · corpo

Token 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/json
Risposta 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/json
Risposta di esempio
{
  "message": "invalid refresh token or client credentials",
  "success": false
}
HTTP 401
Token o chiave di recupero non validi
application/json
Risposta di esempio
{
  "message": "invalid retrieval key",
  "success": false
}
HTTP 429
Limite di richieste raggiunto
application/json
Risposta di esempio
{
  "message": "rate limit exceeded",
  "success": false
}
HTTP 503
Servizio temporaneamente non disponibile
application/json
Risposta di esempio
{
  "message": "Service unavailable",
  "success": false
}
Prova questo endpoint
POST /api/v2/tokens/revoke

Revoca token

Revoca un solo token di accesso o aggiornamento inviato nel corpo POST.

Parametri

access_tokenFacoltativo

string · corpo

Token di accesso Kick da consultare o revocare, senza prefisso oauth:.

refresh_tokenFacoltativo

string · corpo

Token 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/json
Risposta di esempio
{
  "revoked": true,
  "success": true
}
HTTP 400
Richiesta non valida
application/json
Risposta di esempio
{
  "message": "invalid token request",
  "success": false
}
HTTP 401
Token o chiave di recupero non validi
application/json
Risposta di esempio
{
  "message": "invalid retrieval key",
  "success": false
}
HTTP 429
Limite di richieste raggiunto
application/json
Risposta di esempio
{
  "message": "rate limit exceeded",
  "success": false
}
HTTP 503
Servizio temporaneamente non disponibile
application/json
Risposta di esempio
{
  "message": "Service unavailable",
  "success": false
}
Prova questo endpoint
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

credentialsFacoltativo

object · corpo

Usa 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_emailObbligatorio

string · corpo

Indirizzo e-mail che riceve le credenziali dopo il completamento della richiesta.

my_nameObbligatorio

string · corpo

Nome del richiedente, fino a 128 byte UTF-8.

scope_idsFacoltativo

array · corpo

ID numerici dal catalogo. Scegli permessi attivi, al massimo 150 distinti.

scopesFacoltativo

array · corpo

Nomi 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/json
Risposta di esempio
{
  "expires_at": "2030-01-02T12:00:00Z",
  "success": true,
  "url": "https://kicktokengen.com/request/EXAMPLE_ID"
}
HTTP 400
Richiesta non valida
application/json
Risposta di esempio
{
  "message": "invalid request",
  "success": false
}
HTTP 401
Token o chiave di recupero non validi
application/json
Risposta di esempio
{
  "message": "invalid retrieval key",
  "success": false
}
HTTP 429
Limite di richieste raggiunto
application/json
Risposta di esempio
{
  "message": "rate limit exceeded",
  "success": false
}
HTTP 503
Servizio temporaneamente non disponibile
application/json
Risposta di esempio
{
  "message": "Service unavailable",
  "success": false
}
Prova questo endpoint