QuickStart

Autentifique, faça uma primeira criação, e receba seus resultados.

QuickStart

Esta caminhada cria um vídeo de explicação mínimo. O URL da base de produção é:

https://api.kpainter.ai/openapi/v1

1 – Preparar uma chave de API

Ative e copie a sua chave do API Página chave, em seguida, mantê-lo em um ambiente do lado do servidor variável. Nunca entregue em código de navegador ou logs.

export KPAINTER_API_KEY="<your_api_key>"export KPAINTER_BASE_URL="https://api.kpainter.ai/openapi/v1"

2 – Verifique a conta

curl -s "$KPAINTER_BASE_URL/me" \  -H "Authorization: Bearer $KPAINTER_API_KEY"

3. Leia as capacidades atuais

curl -s "$KPAINTER_BASE_URL/capabilities" \  -H "Authorization: Bearer $KPAINTER_API_KEY"

Escolha a duração, voz, modelo e estilo de expressão desta resposta. Não considere valores de exemplo como configuração permanente.

4 – Criar conteúdo

curl -s "$KPAINTER_BASE_URL/creations" \  -H "Authorization: Bearer $KPAINTER_API_KEY" \  -H "Content-Type: application/json" \  -d '{    "type": "video",    "prompt": "Explain the customer escalation process to new employees",    "instructions": "Use a concise professional tone and preserve source terminology",    "max_credits": 300,    "video": {      "duration_seconds": 120,      "aspect_ratio": "16:9",      "language": "en"    }  }'

5 – Pólio de Progresso

A criação e a edição são asynchrônicas. Mantenha o ID de criação devolvido e pesquise o mesmo resultado.

import time while True:    response = requests.get(        f"{BASE_URL}/creations/{creation_id}",        headers=HEADERS,        timeout=30,    )    response.raise_for_status()    creation = response.json()     print(        creation["status"],        creation["progress_pct"],        creation.get("estimated_remaining_seconds"),        creation.get("estimated_credits"),    )     if creation["status"] in {"ready", "failed", "paused"}:        break     time.sleep(5)

6 – Leia as conclusões

Leia as saídas apenas quando o status está pronto ou tem_usable_delivery é verdadeiro:

outputs = requests.get(    f"{BASE_URL}/creations/{creation_id}/outputs",    headers=HEADERS,    timeout=30,)outputs.raise_for_status()print(outputs.json()["outputs"])

O tratamento devolveu URLs como autorizados. Não faça caminhos de armazenamento.

Adicionar arquivos fonte

Carregar cada fonte com POST / arquivos, e incluir seu arquivo_id em input_file_ids. Todos os três produtos aceitam arquivos carregados. Veja Criar e recuperar Para um exemplo.