Kling Image Animation API

Transform static images into smooth videos with natural motion

✓ 5-10 seconds

✓ Natural motion

✓ Pro mode

✓ High quality

Autenticação

Para aceder ao Kling Image-to-Video API através da API Doitong, utilize a sua chave de API Doitong. Inclua-a na mutação GraphQL ou nos cabeçalhos da API REST.

Importante: Mantenha a sua chave de API Doitong segura e nunca a exponha em código do lado do cliente. Faça sempre as chamadas de API a partir do seu servidor backend.
// GraphQL Header
{
  "Authorization": "Bearer YOUR_API_KEY"
}

// REST Header
"X-API-Key": "YOUR_API_KEY"

Início Rápido

Comece a utilizar o Kling Image-to-Video API em apenas alguns minutos. Siga estes passos simples para gerar o seu primeiro image to video.

Passo 1: Obter a sua Chave de API

Registe uma conta Doitong e aceda ao seu painel de controlo para gerar uma chave de API.

Passo 2: Fazer o seu Primeiro Pedido

Utilize um dos exemplos de código abaixo para realizar a sua primeira chamada de API.

curl -X POST https://api.doitong.com/graphql \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Idempotency-Key: unique-request-id-123" \
  -d '{
    "query": "mutation Generate($input: GenerateInput!) { generate(input: $input) { id status type provider url metadata creditCost } }",
    "variables": {
      "input": {
        "type": "VIDEO",
        "provider": "kling-i2v",
        "input": {
          "image": "https://example.com/your-image.jpg"
        },
        "options": {
          "duration": 5,
          "motionIntensity": "medium"
        }
      }
    }
  }'
const response = await fetch('https://api.doitong.com/graphql', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
    'Authorization': 'Bearer YOUR_API_KEY'
  },
  body: JSON.stringify({
    query: `
      mutation AnimateImage($input: ImageAnimationInput!) {
        animateImage(input: $input) {
          id
          status
          url
        }
      }
    `,
    variables: {
      input: {
        service: 'kling-i2v',
        imageUrl: 'https://example.com/your-image.jpg',
        duration: 5,
        motionIntensity: 'medium'
      }
    }
  })
});

const data = await response.json();
console.log('Animated Video:', data.data.animateImage);
import requests
import json

url = "https://api.doitong.com/graphql"
headers = {
    "Content-Type": "application/json",
    "Authorization": "Bearer YOUR_API_KEY"
}

query = """
mutation Generate($input: GenerateInput!) {
  generate(input: $input) {
    id
    status
    type
    provider
    url
    metadata
    creditCost
  }
}
"""

variables = {
    "input": {
        "type": "VIDEO",
        "provider": "kling-i2v",
        "input": {
            "imageUrl": "https://example.com/your-image.jpg"
        },
        "options": {
            "duration": 5,
            "motionIntensity": "medium"
        }
    }
}

response = requests.post(url, json={
    "query": query,
    "variables": variables
}, headers=headers)

data = response.json()
print("Result:", data["data"]["generate"])
mutation Generate($input: GenerateInput!) {
  generate(input: $input) {
    id
    status
    type
    provider
    url
    metadata
    creditCost
    createdAt
  }
}

# Variables
{
  "input": {
    "type": "VIDEO",
    "provider": "kling-i2v",
    "input": {
      "imageUrl": "https://example.com/your-image.jpg"
    },
    "options": {
      "duration": 5,
      "motionIntensity": "medium",
      "version": "1.6"
    }
  }
}

Preçário

O Kling Image-to-Video API utiliza um modelo de preços baseado em créditos. Os créditos são consumidos com base na complexidade e duração do conteúdo gerado.

Funcionalidade Créditos Descrição
Utilização Básica 10-50 Créditos Qualidade e duração standard
Utilização Premium 100-500 Créditos Alta qualidade e funcionalidades estendidas

Endpoints da API

O Kling Image-to-Video API está disponível através do nosso endpoint GraphQL unificado.

Endpoint GraphQL

POST https://api.doitong.com/graphql

Endpoint REST

POST https://api.doitong.com/v1/image_to_video

Parâmetros

Parâmetros disponíveis para pedidos Kling Image-to-Video API:

Parâmetro Tipo Obrigatório Descrição
service String Yes Identificador do serviço: "kling-i2v"
prompt String Yes Descrição em texto do que pretende gerar
duration Inteiro No Duração do vídeo em segundos (predefinição: 5)
aspectRatio String No Proporção: "16:9", "9:16", "1:1" (predefinição: "16:9")
version String No Model version: "1.0", "1.5", "1.6"
webhookUrl String No URL para receber notificações de conclusão

Formato da Resposta

Todas as respostas da API seguem um formato consistente:

Resposta de Sucesso

{
  "data": {
    "imagevideo": {
      "id": "abc123xyz",
      "status": "processing",
      "url": null,
      "webhookUrl": "https://your-webhook.com/callback",
      "createdAt": "2024-01-01T00:00:00Z"
    }
  }
}

Resposta Concluída

{
  "data": {
    "imagevideo": {
      "id": "abc123xyz",
      "status": "completed",
      "url": "https://cdn.doitong.com/outputs/abc123xyz.mp4",
      "duration": 5,
      "createdAt": "2024-01-01T00:00:00Z"
    }
  }
}

Tratamento de Erros

A API utiliza códigos de estado HTTP padrão e devolve mensagens de erro detalhadas.

Códigos de Erro Comuns

Código de Estado Tipo de Erro Descrição
400 Bad Request Invalid parameters or malformed request
401 Unauthorized Missing or invalid API key
402 Payment Required Insufficient credits
429 Too Many Requests Rate limit exceeded
500 Internal Server Error Server error, please retry

Formato de Resposta de Erro

{
  "errors": [
    {
      "message": "Insufficient credits for this operation",
      "extensions": {
        "code": "INSUFFICIENT_CREDITS",
        "creditsRequired": 100,
        "creditsAvailable": 50
      }
    }
  ]
}

Webhooks

Receba notificações em tempo real quando a geração do seu image to video estiver concluída.

Configurar Webhooks

Include a <code>webhookUrl</code> parameter in your request to receive a POST notification when processing is complete.

Payload do Webhook

{
  "id": "abc123xyz",
  "status": "completed",
  "url": "https://cdn.doitong.com/outputs/abc123xyz.mp4",
  "service": "kling-i2v",
  "createdAt": "2024-01-01T00:00:00Z",
  "completedAt": "2024-01-01T00:01:00Z",
  "metadata": {
    "duration": 5,
    "width": 1920,
    "height": 1080
  }
}

Segurança do Webhook

Todos os pedidos de webhook incluem um cabeçalho de assinatura para verificação:

X-Doitong-Signature: sha256=abc123...

Limites de Pedidos

Para garantir uma utilização justa e a estabilidade do sistema, aplicam-se os seguintes limites:

Plano Pedidos/Minuto Tarefas Simultâneas Limite Diário
Grátis 10 1 100
Starter 30 3 1,000
Pro 60 10 10,000
Enterprise Personalizado Personalizado Ilimitado
Cabeçalhos de Limite de Pedidos: Verifique os cabeçalhos de resposta para saber o estado atual dos limites:
  • X-RateLimit-Limit: Maximum requests per window
  • X-RateLimit-Remaining: Requests remaining
  • X-RateLimit-Reset: Window reset timestamp

Boas Práticas

1. Otimize os seus Prompts

Escreva prompts claros e descritivos para obter os melhores resultados:

  • Be specific about visual elements, style, and mood
  • Include details about lighting, camera angles, and composition
  • Avoid contradictory or impossible requests

2. Gestão de Processamento Assíncrono

A geração é assíncrona. Implemente webhooks ou polling adequados:

// Polling example
async function pollStatus(jobId) {
  let status = 'processing';
  while (status === 'processing') {
    await sleep(2000); // Wait 2 seconds
    const result = await checkJobStatus(jobId);
    status = result.status;
  }
  return result;
}

3. Recuperação de Erros

Implemente lógica de repetição com backoff exponencial:

async function retryWithBackoff(fn, maxRetries = 3) {
  for (let i = 0; i < maxRetries; i++) {
    try {
      return await fn();
    } catch (error) {
      if (i === maxRetries - 1) throw error;
      await sleep(Math.pow(2, i) * 1000);
    }
  }
}

4. Monitorizar Consumo de Créditos

Acompanhe o seu consumo de créditos para evitar interrupções:

  • Check credit balance before large batch operations
  • Set up alerts for low credit thresholds
  • Implement credit-aware request queuing

Pronto para Começar?

Junte-se a milhares de programadores que utilizam o Kling Image-to-Video API para criar conteúdo incrível

Obter Chave de API Ver Preçário