Render Request

curl-example.sh
curl -X POST https://render-api.chillin.online/render/v1 \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_API_KEY" \
-d @request.json

Nota: Nossos pedidos de renderização são processados de forma assíncrona. Após enviar um pedido, você receberá imediatamente uma resposta contendo um render_id, que pode ser usado para consultar o status e os resultados da renderização.

PropriedadeTipoNecessárioExemploFaixa de ValoresDescrição
compositeWidthnumbertrue1920720 - 3840A largura do composto.
compositeHeightnumbertrue1080720 - 3840A altura do composto.
fpsnumbertrue3015 - 60A taxa de quadros do composto.
projectDataobjecttrue--Os dados do projeto. Podem ser exportados do editor.
cameraobjectfalse--Configuração de câmera opcional para cenas 3D. Controla o modo de projeção e o ângulo de visão.

Nota: A compositeWidth e a compositeHeight podem diferir da width e height especificadas em projectData. No entanto, a proporção de aspecto de compositeWidth para compositeHeight deve permanecer consistente com a proporção de aspecto de projectData.width para projectData.height.

Este design permite que o mesmo projeto de vídeo seja exportado em diferentes resoluções, mantendo a proporção de aspecto original.

Configuração da Câmera

O objeto camera opcional controla como os elementos 3D são projetados:

  • mode (string) - Modo de projeção: "perspective" (padrão) ou "orthographic". A perspectiva fornece um encurtamento baseado na profundidade; a ortográfica preserva linhas paralelas.
  • view (string) - Um nome de visualização de câmera predefinido (por exemplo, "front", "top", "right", "isometric"). Quando especificado, a câmera é posicionada para corresponder ao ângulo predefinido.

Se nenhuma camera for fornecida, a visualização frontal em perspectiva padrão é usada.

request.json
{
"compositeWidth": 1920,
"compositeHeight": 1080,
"fps": 30,
"projectData": {
  "type": "",
  "width": 1920,
  "height": 1080,
  "fill": "#000000",
  "view": [
    {
      "id": "8ecf7475-2c6c-47f9-827b-a09c7913f4c0",
      "type": "Image",
      "start": 0,
      "duration": 5,
      "trackIndex": 0,
      "x": -570.0335392757963,
      "y": -170.90659033307685,
      "blendMode": "normal",
      "anchorX": 1302,
      "anchorY": 2312,
      "rotation": 0,
      "scaleX": 0.23356401384083045,
      "scaleY": 0.23356401384083045,
      "alpha": 1,
      "skewX": 0,
      "skewY": 0,
      "keyframes": [],
      "externalUrl": "https://images.pexels.com/photos/30465303/pexels-photo-30465303.jpeg",
      "ext": "jpeg"
    }
  ],
  "audio": [],
  "effect": [],
  "transition": [],
  "version": 0,
  "duration": 5
}
};

Resposta de Renderização com Sucesso

success_response.json
{
"code": 0,
"data": {
  "message": "Async render request submitted successfully",
  "render_id": 105586,
  "status": "processing"
},
"msg": "success"
}

Resposta de Renderização com Erro

error_response.json
{
"code": 2004,
"data": {},
"msg": "invalid project data: invalid view array: view item 0: missing required field: id"
}

Códigos de Resposta

Aqui estão os códigos retornados pela API de renderização assíncrona:

  • 0: Sucesso – O pedido de renderização assíncrono foi enviado com sucesso.
  • 2001: Erro de parâmetro – O pedido contém parâmetros inválidos ou ausentes.
  • 2002: Usuário não registrado – O ID de usuário fornecido não existe.
  • 2003: Usuário não é membro da API e não pode usar os serviços de renderização.
  • 2004: Dados do projeto inválidos – O campo projectData não é um objeto JSON válido.
  • 2005: Saldo de renderização insuficiente – Saldo insuficiente para prosseguir com a renderização.
  • 2006: Falha ao converter dados do projeto – Não foi possível converter os dados do projeto para JSON.
  • 2007: Falha ao enviar dados JSON – Ocorreu um erro ao enviar os dados do projeto.
  • 2008: Falha ao converter dados de renderização – O payload do pedido de renderização não pôde ser serializado.
  • 2009: Falha ao enviar o pedido de renderização – Ocorreu um erro ao enviar o pedido.
  • 2010: Campo de duração ausente – O campo duration é obrigatório, mas está ausente.
  • 2011: Campo de duração inválido – O campo duration está presente, mas não está no formato correto.
  • 2012: Serviço de renderização falhou – O serviço de renderização encontrou um erro interno.

Se você encontrar um código de erro não listado, entre em contato com o suporte em [email protected].

Obter Resultado da Renderização

Após enviar um pedido de renderização assíncrono, você pode usar o render_id para consultar o status e o resultado da renderização.

get-result-example.sh
curl -X POST https://render-api.chillin.online/render/result \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '{"render_id": 100000}'

Parâmetros do Pedido

PropriedadeTipoNecessárioExemploFaixa de ValoresDescrição
render_idnumbertrue100000-O ID de renderização retornado do pedido de renderização inicial.

Resposta de Renderização com Sucesso

result_response.json
{
"code": 0,
"data": {
  "render": {
    "create_at": "2025-06-27T12:37:21.684337Z",
    "json_url": "https://cloud.chillin.online/project_xxx.json?verify=xxx",
    "render_id": 105549,
    "state": "success",
    "video_url": "https://cloud.chillin.online/video_xxx.mp4?verify=xxx"
  }
},
"msg": "success"
}

Estados de Renderização

O campo state na resposta pode ter os seguintes valores:

  • pending: O pedido de renderização está na fila e aguardando para ser processado
  • rendering: A renderização está sendo processada atualmente
  • success: A renderização foi concluída com sucesso e o vídeo está pronto
  • failed: A renderização falhou devido a um erro

Deletar Arquivos de Renderização

Use este endpoint para remover permanentemente o arquivo de vídeo renderizado e o JSON do projeto para uma tarefa concluída.

delete-render-files.sh
curl -X POST https://render-api.chillin.online/render/delete-files \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '{"render_id": 100000}'

Parâmetros do Pedido

PropriedadeTipoNecessárioExemploFaixa de ValoresDescrição
render_idnumbertrue100000-O ID de renderização que você deseja limpar. Apenas renderizações no estado de sucesso podem ser deletadas.

Resposta de Exemplo

delete_response.json
{
"code": 0,
"data": {
  "message": "Render files deleted"
},
"msg": "success"
}
  • A ação de exclusão é irreversível e remove tanto o vídeo quanto os ativos JSON.
  • Pedidos para renderizações que ainda estão pendentes, sendo renderizadas ou falharam serão rejeitados.