Documentação da API

Crie fluxos de autorização da Kick, consulte permissões e gerencie tokens com a API v2.

Baixar OpenAPI

Fluxo de autorização

  1. Consulte o catálogo e escolha os IDs das permissões ativas necessárias para sua integração.
  2. Crie um fluxo. Mantenha a chave de recuperação privada e abra authorization_url no navegador do titular da conta.
  3. Após a autorização, recupere as credenciais uma única vez. Salve o token de acesso e o token de atualização mais recente.

Os fluxos expiram após 24 horas. Uma recuperação bem-sucedida consome as credenciais armazenadas. Aguarde pelo menos cinco segundos entre consultas pendentes.

Autenticação e limites

A recuperação usa a chave privada do fluxo como credencial Bearer. Os demais endpoints usam os dados indicados abaixo. A API v2 permite 120 solicitações por minuto por IP; HTTP 429 indica que o limite foi atingido.

Referência de endpoints

GET /api/v2/scopes

Permissões disponíveis para o token

Consulte os IDs, nomes, descrições e disponibilidade das permissões atuais. Esta solicitação não exige credenciais.

Este endpoint não tem parâmetros de solicitação.

Resposta

HTTP 200
Resposta bem-sucedida
application/json
Resposta de exemplo
{
  "scopes": [
    {
      "description": "Send chat messages as the authorized account.",
      "id": 6,
      "scope": "chat:write",
      "secret": false
    }
  ],
  "success": true
}
HTTP 400
Solicitação inválida
application/json
Resposta de exemplo
{
  "message": "invalid request",
  "success": false
}
HTTP 401
Token ou chave de recuperação inválidos
application/json
Resposta de exemplo
{
  "message": "invalid retrieval key",
  "success": false
}
HTTP 429
Limite de solicitações atingido
application/json
Resposta de exemplo
{
  "message": "rate limit exceeded",
  "success": false
}
HTTP 503
Serviço temporariamente indisponível
application/json
Resposta de exemplo
{
  "message": "Service unavailable",
  "success": false
}
Testar este endpoint
POST /api/v2/workflows

Criar um fluxo de autorização

Cria um fluxo de autorização de 24 horas. Use o modo compartilhado habilitado ou envie suas credenciais de aplicativo no corpo POST.

Parâmetros

ai_agentOpcional

string · corpo

Nome opcional do cliente de IA, até 64 bytes UTF-8 sem caracteres de controle. Serve para atribuição, não para autenticação.

credentialsOpcional

object · corpo

Use seu aplicativo de desenvolvedor Kick. Deixe ambos os campos vazios apenas quando o modo compartilhado estiver disponível. As credenciais ficam na memória desta aba e são criptografadas temporariamente no servidor durante a autorização.

is_aiOpcional

boolean · corpo

Marcar um fluxo como assistido por IA.

redirect_urlOpcional

string · corpo

Destino HTTP ou HTTPS absoluto opcional após a autorização. Não são permitidas credenciais na URL.

scope_idsOpcional

array · corpo

IDs numéricos do catálogo. Escolha permissões ativas, no máximo 150 distintas.

scopesOpcional

array · corpo

Nomes de permissões separados por vírgulas. O parâmetro deve estar presente; um valor vazio não solicita permissões.

titleOpcional

string · corpo

Nome do aplicativo, até 500 bytes UTF-8.

Corpo JSON da solicitação

{
  "credentials": {
    "client_id": "YOUR_CLIENT_ID",
    "client_secret": "YOUR_CLIENT_SECRET"
  },
  "scope_ids": [
    6
  ],
  "title": "Example integration"
}

Resposta

HTTP 201
Criado
application/json
Resposta de exemplo
{
  "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
Solicitação inválida
application/json
Resposta de exemplo
{
  "message": "invalid request",
  "success": false
}
HTTP 401
Token ou chave de recuperação inválidos
application/json
Resposta de exemplo
{
  "message": "invalid retrieval key",
  "success": false
}
HTTP 429
Limite de solicitações atingido
application/json
Resposta de exemplo
{
  "message": "rate limit exceeded",
  "success": false
}
HTTP 503
Serviço temporariamente indisponível
application/json
Resposta de exemplo
{
  "message": "Service unavailable",
  "success": false
}
Testar este endpoint
GET /api/v2/workflows/{id}

Recuperar credenciais do fluxo

Retorna as credenciais uma única vez após a autorização. Envie a chave do fluxo como credencial Bearer. Uma leitura bem-sucedida consome as credenciais armazenadas.

Parâmetros

idObrigatório

string · caminho

ID do fluxo retornado na criação.

AuthorizationObrigatório

Bearer · cabeçalho

Chave privada de recuperação retornada na criação do fluxo. Não a inclua em links públicos.

Resposta

HTTP 200
Resposta bem-sucedida
application/json
Resposta de exemplo
{
  "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
Autorização ainda pendente
application/json
Resposta de exemplo
{
  "status": "pending",
  "success": false
}
HTTP 400
Solicitação inválida
application/json
Resposta de exemplo
{
  "message": "invalid request",
  "success": false
}
HTTP 401
Token ou chave de recuperação inválidos
application/json
Resposta de exemplo
{
  "message": "invalid retrieval key",
  "success": false
}
HTTP 410
Credenciais expiradas ou já recuperadas
application/json
Resposta de exemplo
{
  "message": "workflow credentials are no longer available",
  "success": false
}
HTTP 429
Limite de solicitações atingido
application/json
Resposta de exemplo
{
  "message": "rate limit exceeded",
  "success": false
}
HTTP 503
Serviço temporariamente indisponível
application/json
Resposta de exemplo
{
  "message": "Service unavailable",
  "success": false
}
Testar este endpoint
GET /api/v2/ai/workflows/create

Criar um fluxo de IA via GET

Alternativa GET para clientes que só podem consultar URLs. Cria um fluxo usando nomes de permissões e retorna uma URL privada de recuperação. O JSON é servido como text/plain.

Parâmetros

titleOpcional

string · consulta

Nome do aplicativo, até 500 bytes UTF-8.

scopesOpcional

string · consulta

Nomes de permissões separados por vírgulas. O parâmetro deve estar presente; um valor vazio não solicita permissões.

scope_idsOpcional

string · consulta

IDs numéricos do catálogo. Escolha permissões ativas, no máximo 150 distintas.

ai_agentOpcional

string · consulta

Nome opcional do cliente de IA, até 64 bytes UTF-8 sem caracteres de controle. Serve para atribuição, não para autenticação.

Resposta

HTTP 201
Criado
application/json
Resposta de exemplo
{
  "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
Solicitação inválida
application/json
Resposta de exemplo
{
  "message": "invalid request",
  "success": false
}
HTTP 401
Token ou chave de recuperação inválidos
application/json
Resposta de exemplo
{
  "message": "invalid retrieval key",
  "success": false
}
HTTP 429
Limite de solicitações atingido
application/json
Resposta de exemplo
{
  "message": "rate limit exceeded",
  "success": false
}
HTTP 503
Serviço temporariamente indisponível
application/json
Resposta de exemplo
{
  "message": "Service unavailable",
  "success": false
}
Testar este endpoint
GET /api/v2/ai/workflows/{id}/{key}

Recuperar credenciais de IA via GET

URL privada com a chave de recuperação. A resposta JSON entrega as credenciais uma vez; proteja toda a URL como uma senha.

Parâmetros

idObrigatório

string · caminho

ID do fluxo retornado na criação.

keyObrigatório

string · caminho

Chave privada de recuperação retornada na criação do fluxo. Não a inclua em links públicos.

Resposta

HTTP 200
Resposta bem-sucedida
application/json
Resposta de exemplo
{
  "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
Autorização ainda pendente
application/json
Resposta de exemplo
{
  "status": "pending",
  "success": false
}
HTTP 400
Solicitação inválida
application/json
Resposta de exemplo
{
  "message": "invalid request",
  "success": false
}
HTTP 401
Token ou chave de recuperação inválidos
application/json
Resposta de exemplo
{
  "message": "invalid retrieval key",
  "success": false
}
HTTP 410
Credenciais expiradas ou já recuperadas
application/json
Resposta de exemplo
{
  "message": "workflow credentials are no longer available",
  "success": false
}
HTTP 429
Limite de solicitações atingido
application/json
Resposta de exemplo
{
  "message": "rate limit exceeded",
  "success": false
}
HTTP 503
Serviço temporariamente indisponível
application/json
Resposta de exemplo
{
  "message": "Service unavailable",
  "success": false
}
Testar este endpoint
POST /api/v2/tokens/validate

Validar token

Verifica a validade e mostra o aplicativo emissor, tipo, permissões e validade retornados pelo Kick.

Parâmetros

access_tokenObrigatório

string · corpo

Token de acesso da Kick a consultar ou revogar, sem o prefixo oauth:.

Corpo JSON da solicitação

{
  "access_token": "EXAMPLE_ACCESS_TOKEN"
}

Resposta

HTTP 200
Resposta bem-sucedida
application/json
Resposta de exemplo
{
  "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
Solicitação inválida
application/json
Resposta de exemplo
{
  "message": "invalid request",
  "success": false
}
HTTP 401
Token ou chave de recuperação inválidos
application/json
Resposta de exemplo
{
  "message": "invalid access token",
  "success": false
}
HTTP 429
Limite de solicitações atingido
application/json
Resposta de exemplo
{
  "message": "rate limit exceeded",
  "success": false
}
HTTP 503
Serviço temporariamente indisponível
application/json
Resposta de exemplo
{
  "message": "Service unavailable",
  "success": false
}
Testar este endpoint
POST /api/v2/tokens/refresh

Token de atualização

Renova um token de acesso usando um token de atualização. Informe client_id e client_secret para renovar um token do seu próprio aplicativo da Kick.

Parâmetros

client_idOpcional

string · corpo

ID de cliente do aplicativo da Kick. Omita para usar o aplicativo compartilhado do KTG.

client_secretOpcional

string · corpo

Segredo de cliente do aplicativo da Kick. Para atualizar tokens, forneça junto com client_id.

refresh_tokenObrigatório

string · corpo

Token de atualização mais recente da conta e do aplicativo da Kick.

Corpo JSON da solicitação

{
  "client_id": "YOUR_CLIENT_ID",
  "client_secret": "YOUR_CLIENT_SECRET",
  "refresh_token": "EXAMPLE_REFRESH_TOKEN"
}

Resposta

HTTP 200
Resposta bem-sucedida
application/json
Resposta de exemplo
{
  "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
Solicitação inválida
application/json
Resposta de exemplo
{
  "message": "invalid refresh token or client credentials",
  "success": false
}
HTTP 401
Token ou chave de recuperação inválidos
application/json
Resposta de exemplo
{
  "message": "invalid retrieval key",
  "success": false
}
HTTP 429
Limite de solicitações atingido
application/json
Resposta de exemplo
{
  "message": "rate limit exceeded",
  "success": false
}
HTTP 503
Serviço temporariamente indisponível
application/json
Resposta de exemplo
{
  "message": "Service unavailable",
  "success": false
}
Testar este endpoint
POST /api/v2/tokens/revoke

Revogar token

Revoga um único token de acesso ou atualização enviado no corpo POST.

Parâmetros

access_tokenOpcional

string · corpo

Token de acesso da Kick a consultar ou revogar, sem o prefixo oauth:.

refresh_tokenOpcional

string · corpo

Token de atualização mais recente da conta e do aplicativo da Kick.

Corpo JSON da solicitação

{
  "access_token": "EXAMPLE_ACCESS_TOKEN"
}

Resposta

HTTP 200
Resposta bem-sucedida
application/json
Resposta de exemplo
{
  "revoked": true,
  "success": true
}
HTTP 400
Solicitação inválida
application/json
Resposta de exemplo
{
  "message": "invalid token request",
  "success": false
}
HTTP 401
Token ou chave de recuperação inválidos
application/json
Resposta de exemplo
{
  "message": "invalid retrieval key",
  "success": false
}
HTTP 429
Limite de solicitações atingido
application/json
Resposta de exemplo
{
  "message": "rate limit exceeded",
  "success": false
}
HTTP 503
Serviço temporariamente indisponível
application/json
Resposta de exemplo
{
  "message": "Service unavailable",
  "success": false
}
Testar este endpoint
POST /api/v2/token-requests

Solicitar token

Cria um link de solicitação de autorização. Depois que o titular da conta concluir a autorização, as credenciais serão enviadas para my_email.

Parâmetros

credentialsOpcional

object · corpo

Use seu aplicativo de desenvolvedor Kick. Deixe ambos os campos vazios apenas quando o modo compartilhado estiver disponível. As credenciais ficam na memória desta aba e são criptografadas temporariamente no servidor durante a autorização.

my_emailObrigatório

string · corpo

E-mail que recebe as credenciais após a conclusão da solicitação.

my_nameObrigatório

string · corpo

Nome do solicitante, até 128 bytes UTF-8.

scope_idsOpcional

array · corpo

IDs numéricos do catálogo. Escolha permissões ativas, no máximo 150 distintas.

scopesOpcional

array · corpo

Nomes de permissões separados por vírgulas. O parâmetro deve estar presente; um valor vazio não solicita permissões.

Corpo JSON da solicitação

{
  "credentials": {
    "client_id": "YOUR_CLIENT_ID",
    "client_secret": "YOUR_CLIENT_SECRET"
  },
  "my_email": "developer@example.com",
  "my_name": "Example developer",
  "scope_ids": [
    6
  ]
}

Resposta

HTTP 201
Criado
application/json
Resposta de exemplo
{
  "expires_at": "2030-01-02T12:00:00Z",
  "success": true,
  "url": "https://kicktokengen.com/request/EXAMPLE_ID"
}
HTTP 400
Solicitação inválida
application/json
Resposta de exemplo
{
  "message": "invalid request",
  "success": false
}
HTTP 401
Token ou chave de recuperação inválidos
application/json
Resposta de exemplo
{
  "message": "invalid retrieval key",
  "success": false
}
HTTP 429
Limite de solicitações atingido
application/json
Resposta de exemplo
{
  "message": "rate limit exceeded",
  "success": false
}
HTTP 503
Serviço temporariamente indisponível
application/json
Resposta de exemplo
{
  "message": "Service unavailable",
  "success": false
}
Testar este endpoint