meshy-5 será descontinuado em 10 de out. de 2026. lowpoly será descontinuado em 30 de out. de 2026. Troque de modelo antes dessas datas para evitar erros nas solicitações.

API de Rigging

A API de Rigging permite que você adicione programaticamente um esqueleto (armature) a modelos humanoides 3D, vinculando a malha a ele para que estejam prontos para animação. Para aplicar animações a um personagem com rigging, consulte a API de Animação.

Por favor, note que o rigging programático atualmente só funciona bem com assets humanoides padrão (bipedes) com membros e estrutura corporal claramente definidos neste momento.


POST/openapi/v1/rigging

Criar uma Tarefa de Rigging

Este endpoint permite criar uma nova tarefa de rigging para um modelo 3D específico. Após a conclusão bem-sucedida, ele fornece um personagem rigado em formatos padrão e, opcionalmente, animações básicas de caminhada/corrida.

Atualmente, a auto-rigging não é adequada para os seguintes modelos:

  • Malhas sem textura
  • Assets não humanoides
  • Assets humanoides com estrutura de membros e corpo indefinida

Parâmetros

  • Name
    input_task_id
    Type
    string
    Obrigatório
    Description

    A tarefa de entrada que precisa ser rigada. Atualmente, suportamos modelos humanoides texturizados.

  • Name
    model_url
    Type
    string
    Obrigatório
    Description

    Por favor, forneça um modelo 3D para o Meshy rigar através de uma URL publicamente acessível ou Data URI. Atualmente, suportamos arquivos GLB humanoides texturizados (formato .glb).

  • Name
    height_meters
    Type
    number
    padrão 1.7
    Description

    A altura aproximada do modelo do personagem em metros. Isso ajuda na escala e precisão do rigging. Deve ser um número positivo.

  • Name
    texture_image_url
    Type
    string
    Description

    A imagem de textura de cor base do modelo com UV desdobrado. URL publicamente acessível ou Data URI. Atualmente, suportamos formatos .png.

Retornos

A propriedade result da resposta contém o id da tarefa de rigging recém-criada.

Modos de Falha

  • Name
    400 - Bad Request
    Description

    A solicitação foi inaceitável. Causas comuns:

    • Parâmetro ausente: Ou model_url ou input_task_id deve ser fornecido.
    • Formato de modelo inválido: O model_url aponta para um arquivo com uma extensão não suportada (apenas .glb suportado).
    • URL inacessível: O model_url não pôde ser baixado.
    • Tarefa de entrada inválida: O input_task_id não se refere a uma tarefa de API válida.
    • Contagem de faces excedida: O modelo de entrada tem mais de 300.000 faces. Por favor, use a API de Remesh para reduzir a contagem de faces antes do rigging.
  • Name
    401 - Unauthorized
    Description

    Falha na autenticação. Por favor, verifique sua chave de API.

  • Name
    402 - Payment Required
    Description

    Créditos insuficientes para realizar esta tarefa.

  • Name
    422 - Unprocessable Entity
    Description

    Falha na estimativa de pose. O modelo fornecido pode não ser um personagem humanoide válido.

  • Name
    429 - Too Many Requests
    Description

    Você excedeu seu limite de taxa.

Request

POST
/openapi/v1/rigging
# Rig a model from a URL
curl https://api.meshy.ai/openapi/v1/rigging \
  -X POST \
  -H "Authorization: Bearer ${YOUR_API_KEY}" \
  -H 'Content-Type: application/json' \
  -d '{
    "model_url": "YOUR_MODEL_URL_OR_DATA_URI",
    "height_meters": 1.8
  }'

Response

{
  "result": "018b314a-a1b5-716d-c222-2f1776f7f579"
}

GET/openapi/v1/rigging/:id

Recuperar uma Tarefa de Rigging

Este endpoint permite que você recupere uma tarefa de rigging dado um id de tarefa válido. Consulte O Objeto de Tarefa de Rigging para ver quais propriedades estão incluídas.

Parâmetros

  • Name
    id
    Type
    path
    Description

    Identificador único para a tarefa de rigging a ser recuperada.

Retornos

A resposta contém o objeto de Tarefa de Rigging. Verifique a seção O Objeto de Tarefa de Rigging para detalhes.

Request

GET
/openapi/v1/rigging/018b314a-a1b5-716d-c222-2f1776f7f579
curl https://api.meshy.ai/openapi/v1/rigging/018b314a-a1b5-716d-c222-2f1776f7f579 
  -H "Authorization: Bearer ${YOUR_API_KEY}"

Response

{
  "id": "018b314a-a1b5-716d-c222-2f1776f7f579",
  "type": "rig",
  "status": "SUCCEEDED",
  "created_at": 1747032400453,
  "progress": 100,
  "started_at": 1747032401314,
  "finished_at": 1747032418417,
  "expires_at": 1747291618417,
  "task_error": {

    "message": ""

  },

  "consumed_credits": 5,
  "result": {
    "rigged_character_fbx_url": "https://assets.meshy.ai/0630d47c-84b8-4d37-bc02-69e45d9272c1/tasks/018b314a-a1b5-716d-c222-2f1776f7f579/output/Character_output.fbx?Expires=...",
    "rigged_character_glb_url": "https://assets.meshy.ai/0630d47c-84b8-4d37-bc02-69e45d9272c1/tasks/018b314a-a1b5-716d-c222-2f1776f7f579/output/Character_output.glb?Expires=...",
    "basic_animations": {
      "walking_glb_url": "https://assets.meshy.ai/0630d47c-84b8-4d37-bc02-69e45d9272c1/tasks/018b314a-a1b5-716d-c222-2f1776f7f579/output/Animation_Walking_withSkin.glb?Expires=...",
      "walking_fbx_url": "https://assets.meshy.ai/0630d47c-84b8-4d37-bc02-69e45d9272c1/tasks/018b314a-a1b5-716d-c222-2f1776f7f579/output/Animation_Walking_withSkin.fbx?Expires=...",
      "walking_armature_glb_url": "https://assets.meshy.ai/0630d47c-84b8-4d37-bc02-69e45d9272c1/tasks/018b314a-a1b5-716d-c222-2f1776f7f579/output/Animation_Walking_withSkin_armature.glb?Expires=...",
      "running_glb_url": "https://assets.meshy.ai/0630d47c-84b8-4d37-bc02-69e45d9272c1/tasks/018b314a-a1b5-716d-c222-2f1776f7f579/output/Animation_Running_withSkin.glb?Expires=...",
      "running_fbx_url": "https://assets.meshy.ai/0630d47c-84b8-4d37-bc02-69e45d9272c1/tasks/018b314a-a1b5-716d-c222-2f1776f7f579/output/Animation_Running_withSkin.fbx?Expires=...",
      "running_armature_glb_url": "https://assets.meshy.ai/0630d47c-84b8-4d37-bc02-69e45d9272c1/tasks/018b314a-a1b5-716d-c222-2f1776f7f579/output/Animation_Running_withSkin_armature.glb?Expires=..."
    }
  },
  "preceding_tasks": 0
}

DELETE/openapi/v1/rigging/:id

Excluir uma Tarefa de Rigging

Este endpoint exclui permanentemente uma tarefa de rigging, incluindo todos os modelos e dados associados. Esta ação é irreversível.

Parâmetros de Caminho

  • Name
    id
    Type
    path
    Description

    O ID da tarefa de rigging a ser excluída.

Status da Tarefa

Uma tarefa que ainda está PENDING é excluída e os créditos consumidos no momento da criação são reembolsados.

Uma tarefa que já está IN_PROGRESS não pode ser excluída: a requisição é rejeitada com 409 Conflict e a tarefa continua em execução. Créditos de uma tarefa que o worker já iniciou não são reembolsáveis, portanto excluí-la no meio da execução custaria tanto os créditos quanto o resultado. Aguarde até que ela alcance SUCCEEDED, FAILED ou CANCELED, e então a exclua.

Uma tarefa em um estado terminal (SUCCEEDED, FAILED ou CANCELED) é excluída sem reembolso.

Retornos

Retorna 200 OK em caso de sucesso, ou 409 Conflict quando a tarefa está IN_PROGRESS.

Request

DELETE
/openapi/v1/rigging/018b314a-a1b5-716d-c222-2f1776f7f579
curl --request DELETE \
  --url https://api.meshy.ai/openapi/v1/rigging/018b314a-a1b5-716d-c222-2f1776f7f579 \
  -H "Authorization: Bearer ${YOUR_API_KEY}"

Response

// 200 OK on success, with an empty body.
//
// 409 Conflict when the task is IN_PROGRESS — the task is left running:
{
  "message": "Task is IN_PROGRESS and cannot be deleted. Credits for a task the worker has already started are not refundable; wait for it to reach SUCCEEDED, FAILED or CANCELED, then delete it."
}

GET/openapi/v1/rigging

Listar Tarefas de Rigging

Retorna uma lista paginada das tarefas de rigging do chamador, da mais recente para a mais antiga. Paginação padrão via page_num e page_size.

Note que as tarefas criadas através da API são gerenciadas através da API — elas não aparecem em Meus Assets do aplicativo web. Use este endpoint para encontrar uma tarefa cujo ID você não possui mais.

Request

GET
/openapi/v1/rigging
curl "https://api.meshy.ai/openapi/v1/rigging?page_num=1&page_size=20" \
-H "Authorization: Bearer ${YOUR_API_KEY}"

GET/openapi/v1/rigging/:id/stream

Transmitir uma Tarefa de Rigging

Este endpoint transmite atualizações em tempo real para uma tarefa de Rigging usando Server-Sent Events (SSE).

Parâmetros

  • Name
    id
    Type
    path
    Description

    Identificador único para a tarefa de Rigging a ser transmitida.

Retornos

Retorna uma transmissão de Os Objetos de Tarefa de Rigging como Server-Sent Events.

Para tarefas PENDING ou IN_PROGRESS, a transmissão de resposta incluirá apenas os campos necessários de progress e status.

Request

GET
/openapi/v1/rigging/018b314a-a1b5-716d-c222-2f1776f7f579/stream
curl -N https://api.meshy.ai/openapi/v1/rigging/018b314a-a1b5-716d-c222-2f1776f7f579/stream 
-H "Authorization: Bearer ${YOUR_API_KEY}"

Response Stream

// Error event example
event: error
data: {
  "status_code": 404,
  "message": "Task not found"
}

// Message event examples illustrate task progress.
// For PENDING or IN_PROGRESS tasks, the response stream will not include all fields.
event: message
data: {
  "id": "018b314a-a1b5-716d-c222-2f1776f7f579",
  "progress": 0,
  "status": "PENDING"
}

event: message
data: {
  "id": "018b314a-a1b5-716d-c222-2f1776f7f579",
  "progress": 50,
  "status": "IN_PROGRESS"
}

event: message
data: { // Example of a SUCCEEDED task stream item, mirroring The Rigging Task Object structure
  "id": "018b314a-a1b5-716d-c222-2f1776f7f579",
  "type": "rig",
  "status": "SUCCEEDED",
  "created_at": 1747032400453,
  "progress": 100,
  "started_at": 1747032401314,
  "finished_at": 1747032418417,
  "expires_at": 1747291618417,
  "task_error": {

    "message": ""

  },

  "consumed_credits": 5,
  "result": {
    "rigged_character_fbx_url": "https://assets.meshy.ai/.../Character_output.fbx?...",
    "rigged_character_glb_url": "https://assets.meshy.ai/.../Character_output.glb?...",
    "basic_animations": {
      "walking_glb_url": "https://assets.meshy.ai/.../Animation_Walking_withSkin.glb?...",
      "walking_fbx_url": "https://assets.meshy.ai/.../Animation_Walking_withSkin.fbx?...",
      "walking_armature_glb_url": "https://assets.meshy.ai/.../Animation_Walking_withSkin_armature.glb?...",
      "running_glb_url": "https://assets.meshy.ai/.../Animation_Running_withSkin.glb?...",
      "running_fbx_url": "https://assets.meshy.ai/.../Animation_Running_withSkin.fbx?...",
      "running_armature_glb_url": "https://assets.meshy.ai/.../Animation_Running_withSkin_armature.glb?..."
    }
  },
  "preceding_tasks": 0
}

O Objeto de Tarefa de Rigging

O objeto de Tarefa de Rigging representa a unidade de trabalho para rigging de um personagem.

Propriedades

  • Name
    id
    Type
    string
    Description

    Identificador único para a tarefa.

  • Name
    type
    Type
    string
    Description

    Tipo da tarefa de Rigging. O valor é rig.

  • Name
    status
    Type
    string
    Description

    Status da tarefa. Valores possíveis: PENDING, IN_PROGRESS, SUCCEEDED, FAILED, CANCELED.

  • Name
    progress
    Type
    integer
    Description

    Progresso da tarefa (0-100). 0 se não iniciada, 100 se concluída com sucesso.

  • Name
    created_at
    Type
    timestamp
    Description

    Carimbo de data/hora (milissegundos desde a época) quando a tarefa foi criada.

  • Name
    started_at
    Type
    timestamp
    Description

    Carimbo de data/hora (milissegundos desde a época) quando a tarefa começou a ser processada. 0 se não iniciada.

  • Name
    finished_at
    Type
    timestamp
    Description

    Carimbo de data/hora (milissegundos desde a época) quando a tarefa foi concluída. 0 se não concluída.

  • Name
    expires_at
    Type
    timestamp
    Description

    Carimbo de data/hora (milissegundos desde a época) quando os assets de resultado da tarefa expiram e podem ser excluídos.

  • Name
    task_error
    Type
    object
    Description

    Detalhes do erro para tarefas falhas. Veja Erros para a referência completa do objeto task_error.

  • Name
    consumed_credits
    Type
    integer
    Description

    O número de créditos consumidos por esta tarefa. Presente quando o status da tarefa é PENDING, IN_PROGRESS ou SUCCEEDED. Retorna 0 para tarefas FAILED (créditos são reembolsados em caso de falha).

  • Name
    result
    Type
    object
    Description

    Contém as URLs dos assets de saída se a tarefa SUCCEEDED, null caso contrário.

    • Name
      rigged_character_fbx_url
      Type
      string
      Description

      URL para download do personagem rigged no formato FBX.

    • Name
      rigged_character_glb_url
      Type
      string
      Description

      URL para download do personagem rigged no formato GLB.

    • Name
      basic_animations
      Type
      object (optional)
      Description

      Contém URLs para animações padrão. (por exemplo, se generate_basic_animations foi implicitamente verdadeiro ou habilitado por padrão).

      • Name
        walking_glb_url
        Type
        string
        Description
        URL para download da animação de caminhada no formato GLB (com skin).
      • Name
        walking_fbx_url
        Type
        string
        Description
        URL para download da animação de caminhada no formato FBX (com skin).
      • Name
        walking_armature_glb_url
        Type
        string
        Description
        URL para download da armature da animação de caminhada no formato GLB.
      • Name
        running_glb_url
        Type
        string
        Description
        URL para download da animação de corrida no formato GLB (com skin).
      • Name
        running_fbx_url
        Type
        string
        Description
        URL para download da animação de corrida no formato FBX (com skin).
      • Name
        running_armature_glb_url
        Type
        string
        Description
        URL para download da armature da animação de corrida no formato GLB.
  • Name
    preceding_tasks
    Type
    integer
    Description

    A contagem de tarefas precedentes na fila. Significativo apenas se o status for PENDING.

Exemplo de Objeto de Tarefa de Rigging

{
  "id": "018b314a-a1b5-716d-c222-2f1776f7f579",
  "type": "rig",
  "status": "SUCCEEDED",
  "created_at": 1747032400453,
  "progress": 100,
  "started_at": 1747032401314,
  "finished_at": 1747032418417,
  "expires_at": 1747291618417,
  "task_error": {

    "message": ""

  },

  "consumed_credits": 5,
  "result": {
    "rigged_character_fbx_url": "https://assets.meshy.ai/0630d47c-84b8-4d37-bc02-69e45d9272c1/tasks/018b314a-a1b5-716d-c222-2f1776f7f579/output/Character_output.fbx?Expires=...",
    "rigged_character_glb_url": "https://assets.meshy.ai/0630d47c-84b8-4d37-bc02-69e45d9272c1/tasks/018b314a-a1b5-716d-c222-2f1776f7f579/output/Character_output.glb?Expires=...",
    "basic_animations": {
      "walking_glb_url": "https://assets.meshy.ai/0630d47c-84b8-4d37-bc02-69e45d9272c1/tasks/018b314a-a1b5-716d-c222-2f1776f7f579/output/Animation_Walking_withSkin.glb?Expires=...",
      "walking_fbx_url": "https://assets.meshy.ai/0630d47c-84b8-4d37-bc02-69e45d9272c1/tasks/018b314a-a1b5-716d-c222-2f1776f7f579/output/Animation_Walking_withSkin.fbx?Expires=...",
      "walking_armature_glb_url": "https://assets.meshy.ai/0630d47c-84b8-4d37-bc02-69e45d9272c1/tasks/018b314a-a1b5-716d-c222-2f1776f7f579/output/Animation_Walking_withSkin_armature.glb?Expires=...",
      "running_glb_url": "https://assets.meshy.ai/0630d47c-84b8-4d37-bc02-69e45d9272c1/tasks/018b314a-a1b5-716d-c222-2f1776f7f579/output/Animation_Running_withSkin.glb?Expires=...",
      "running_fbx_url": "https://assets.meshy.ai/0630d47c-84b8-4d37-bc02-69e45d9272c1/tasks/018b314a-a1b5-716d-c222-2f1776f7f579/output/Animation_Running_withSkin.fbx?Expires=...",
      "running_armature_glb_url": "https://assets.meshy.ai/0630d47c-84b8-4d37-bc02-69e45d9272c1/tasks/018b314a-a1b5-716d-c222-2f1776f7f579/output/Animation_Running_withSkin_armature.glb?Expires=..."
    }
  },
  "preceding_tasks": 0
}