API de Texto para Movimento

Gere clipes de movimento de personagens a partir de descrições em linguagem natural. Descreva uma ação — "um personagem acenando", "um zumbi cambaleando para frente" — e receba um clipe de movimento bruto que você pode redirecionar para personagens com rig em seu próprio pipeline ou ferramentas DCC.

A saída é um clipe de movimento independente: ele não requer, nem está vinculado a, um modelo de personagem. Para fazer o rig de um personagem primeiro, consulte a API de Rigging. Para aplicar um clipe gerado ao seu personagem com rig, passe o id da tarefa como motion_task_id para a API de Animação — aplique-o dentro da janela de 3 dias de retenção de recursos.


POST/openapi/v1/text-to-motion

Create a Text to Motion Task

Este endpoint cria uma nova tarefa para gerar um clipe de movimento a partir de um prompt em texto.

Uma tarefa com mode prime custa 10 créditos e é gerada com nosso modelo de movimento de mais alta qualidade. Uma tarefa com mode swift custa 3 créditos e é gerada mais rapidamente com nosso modelo de movimento econômico.

Parâmetros

  • Name
    prompt
    Type
    string
    Obrigatório
    Description

    Uma descrição em linguagem natural do movimento a ser gerado. Máximo de 400 caracteres.

  • Name
    mode
    Type
    string
    padrão prime
    Description

    O mode de geração de movimento. Valores disponíveis: prime, swift. prime produz a mais alta qualidade e gera saída em FBX; swift é mais rápido e barato e gera saída em BVH.

  • Name
    duration
    Type
    number
    Obrigatório
    Description

    A duração alvo do clipe de movimento em segundos. Entre 2 e 10, em passos de 0.5 (por exemplo, 2, 2.5, 3, … 10).

Retornos

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

Modos de Falha

  • Name
    400 - Bad Request
    Description

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

    • Prompt ausente ou vazio: prompt está ausente, em branco ou tem mais de 400 caracteres.
    • Mode inválido: mode não é prime nem swift.
    • Duração inválida: duration está ausente, fora do intervalo 210, ou não está em um passo de 0.5 segundo.
  • Name
    401 - Unauthorized
    Description

    A autenticação falhou. Verifique sua chave de API.

  • Name
    402 - Payment Required
    Description

    Créditos insuficientes para realizar esta tarefa.

  • Name
    403 - Forbidden
    Description

    O prompt foi sinalizado pela moderation de conteúdo.

  • Name
    429 - Too Many Requests
    Description

    Você excedeu seu limite de taxa.

Request

POST
/openapi/v1/text-to-motion
# Generate a motion clip with required params only
curl https://api.meshy.ai/openapi/v1/text-to-motion \
  -X POST \
  -H "Authorization: Bearer ${YOUR_API_KEY}" \
  -H 'Content-Type: application/json' \
  -d '{
    "prompt": "a character waving",
    "duration": 3
  }'

# Generate a fast, economical clip with Swift mode
curl https://api.meshy.ai/openapi/v1/text-to-motion \
  -X POST \
  -H "Authorization: Bearer ${YOUR_API_KEY}" \
  -H 'Content-Type: application/json' \
  -d '{
    "prompt": "a character waving",
    "mode": "swift",
    "duration": 4.5
  }'

Response

{
  "result": "018c425b-b2c6-727e-d333-3c1887i9h791"
}

GET/openapi/v1/text-to-motion/:id

Recuperar uma Tarefa de Texto para Movimento

Este endpoint permite recuperar uma tarefa de Texto para Movimento a partir de um id de tarefa válido. Consulte O Objeto de Tarefa de Texto para Movimento para ver quais propriedades estão incluídas.

Parâmetros

  • Name
    id
    Type
    path
    Description

    Identificador único da tarefa de Texto para Movimento a ser recuperada.

Retorno

A resposta contém o objeto Text to Motion Task. Consulte a seção O Objeto de Tarefa de Texto para Movimento para mais detalhes.

Request

GET
/openapi/v1/text-to-motion/018c425b-b2c6-727e-d333-3c1887i9h791
curl https://api.meshy.ai/openapi/v1/text-to-motion/018c425b-b2c6-727e-d333-3c1887i9h791 \
  -H "Authorization: Bearer ${YOUR_API_KEY}"

Response

{
  "id": "018c425b-b2c6-727e-d333-3c1887i9h791",
  "type": "text-to-motion",
  "status": "SUCCEEDED",
  "progress": 100,
  "created_at": 1787314497437,
  "started_at": 1787314498012,
  "finished_at": 1787314505881,
  "expires_at": 1787573705881,
  "task_error": null,
  "result": {
    "motion_url": "https://assets.meshy.ai/0630d47c-84b8-4d37-bc02-69e45d9272c1/tasks/018c425b-b2c6-727e-d333-3c1887i9h791/output/clip.fbx?Expires=...",
    "motion_format": "fbx",
    "duration_ms": 3000,
    "mode": "prime"
  },
  "consumed_credits": 10
}

GET/openapi/v1/text-to-motion

Listar Tarefas de Text to Motion

Retorna uma lista paginada das tarefas de Text to Motion do solicitante, das mais recentes para as mais antigas. Paginação padrão via page_num e page_size.

A resposta é um array de objetos de Tarefa de Text to Motion.

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

Request

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

Response

[
  {
    "id": "018c425b-b2c6-727e-d333-3c1887i9h791",
    "type": "text-to-motion",
    "status": "SUCCEEDED",
    "...": "..."
  }
]

GET/openapi/v1/text-to-motion/:id/stream

Fazer streaming de uma tarefa de Text to Motion

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

Parâmetros

  • Name
    id
    Type
    path
    Description

    Identificador único da tarefa de Text to Motion a ser transmitida.

Retornos

Retorna um stream de Objetos de Tarefa Text to Motion como Server-Sent Events.

Todo evento message carrega o objeto de tarefa completo. Enquanto a tarefa estiver PENDING ou IN_PROGRESS, os campos de result ainda estarão vazios ("" / 0) e finished_at / expires_at serão 0; observe status e progress.

Request

GET
/openapi/v1/text-to-motion/018c425b-b2c6-727e-d333-3c1887i9h791/stream
curl -N https://api.meshy.ai/openapi/v1/text-to-motion/018c425b-b2c6-727e-d333-3c1887i9h791/stream \
-H "Authorization: Bearer ${YOUR_API_KEY}"

Response Stream

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

// Message events carry the full task object at every stage; the result
// fields stay empty until the task succeeds.
event: message
data: {
  "id": "018c425b-b2c6-727e-d333-3c1887i9h791",
  "type": "text-to-motion",
  "status": "IN_PROGRESS",
  "progress": 50,
  "created_at": 1787314497437,
  "started_at": 1787314498012,
  "finished_at": 0,
  "expires_at": 0,
  "task_error": null,
  "result": {
    "motion_url": "",
    "motion_format": "",
    "duration_ms": 0,
    "mode": ""
  },
  "consumed_credits": 10
}

event: message
data: { // Example of a SUCCEEDED task stream item, mirroring The Text to Motion Task Object structure
  "id": "018c425b-b2c6-727e-d333-3c1887i9h791",
  "type": "text-to-motion",
  "status": "SUCCEEDED",
  "progress": 100,
  "created_at": 1787314497437,
  "started_at": 1787314498012,
  "finished_at": 1787314505881,
  "expires_at": 1787573705881,
  "task_error": null,
  "result": {
    "motion_url": "https://assets.meshy.ai/.../output/clip.fbx?Expires=...",
    "motion_format": "fbx",
    "duration_ms": 3000,
    "mode": "prime"
  },
  "consumed_credits": 10
}

DELETE/openapi/v1/text-to-motion/:id

Excluir uma tarefa de Text to Motion

Este endpoint exclui permanentemente uma tarefa de Text to Motion, incluindo o clipe de movimento gerado. Esta ação é irreversível.

Parâmetros de Caminho

  • Name
    id
    Type
    path
    Description

    O ID da tarefa de Text to Motion a ser excluída.

Retornos

Retorna 200 OK em caso de sucesso.

Request

DELETE
/openapi/v1/text-to-motion/018c425b-b2c6-727e-d333-3c1887i9h791
curl --request DELETE \
  --url https://api.meshy.ai/openapi/v1/text-to-motion/018c425b-b2c6-727e-d333-3c1887i9h791 \
  -H "Authorization: Bearer ${YOUR_API_KEY}"

Response

// Returns 200 Ok on success.

O Objeto Task de Texto para Movimento

O objeto Task de Texto para Movimento representa a unidade de trabalho para gerar um clipe de movimento a partir de um prompt de texto.

Propriedades

  • Name
    id
    Type
    string
    Description

    Identificador único para a tarefa.

  • Name
    type
    Type
    string
    Description

    Tipo da tarefa. O valor é text-to-motion.

  • 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).

  • Name
    created_at
    Type
    timestamp
    Description

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

  • Name
    started_at
    Type
    timestamp
    Description

    Carimbo de data/hora (milissegundos desde a epoch) de quando a tarefa começou a ser processada. 0 se não tiver iniciado.

  • Name
    finished_at
    Type
    timestamp
    Description

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

  • Name
    expires_at
    Type
    timestamp
    Description

    Carimbo de data/hora (milissegundos desde a epoch) de quando os assets resultantes da tarefa expiram. 0 até que a tarefa termine. O clipe gerado é retido por 3 dias após a conclusão da tarefa; faça o download antes que expire.

  • Name
    preceding_tasks
    Type
    integer
    Description

    A contagem de tarefas precedentes na fila. Significativo apenas se o status for PENDING; omitido quando zero.

  • Name
    consumed_credits
    Type
    integer
    Description

    O número de créditos consumidos por esta tarefa. 10 para o mode prime, 3 para o mode swift. Retorna 0 para tarefas FAILED (os créditos são reembolsados em caso de falha).

  • Name
    task_error
    Type
    object
    Description

    Detalhes do erro para tarefas com falha; null a menos que a tarefa tenha FAILED. Consulte Erros para a referência completa do objeto task_error.

  • Name
    result
    Type
    object
    Description

    Contém o clipe de movimento gerado assim que a tarefa atinge SUCCEEDED; até lá, os campos estão presentes, mas vazios ("" / 0).

    • Name
      motion_url
      Type
      string
      Description
      URL para download do clipe de movimento gerado. A URL é ressignada a cada leitura e expira com a janela de retenção da tarefa.
    • Name
      motion_format
      Type
      string
      Description
      Formato do arquivo do clipe: fbx para o mode prime, bvh para o mode swift.
    • Name
      duration_ms
      Type
      integer
      Description
      Duração do clipe gerado em milissegundos.
    • Name
      mode
      Type
      string
      Description
      O mode com o qual o clipe foi gerado: prime ou swift.

Example Text to Motion Task Object

{
  "id": "018c425b-b2c6-727e-d333-3c1887i9h791",
  "type": "text-to-motion",
  "status": "SUCCEEDED",
  "progress": 100,
  "created_at": 1787314497437,
  "started_at": 1787314498012,
  "finished_at": 1787314505881,
  "expires_at": 1787573705881,
  "task_error": null,
  "result": {
    "motion_url": "https://assets.meshy.ai/.../output/clip.fbx?Expires=...",
    "motion_format": "fbx",
    "duration_ms": 3000,
    "mode": "prime"
  },
  "consumed_credits": 10
}