API de Texto a Movimiento

Genera clips de movimiento de personajes a partir de descripciones en lenguaje natural. Describe una acción — "un personaje saludando", "un zombi avanzando torpemente" — y recibe un clip de movimiento en bruto que puedes retargetear en personajes rigged en tu propia cadena de producción o herramientas DCC.

La salida es un clip de movimiento independiente: no requiere, y no está adjunta a, un modelo de personaje. Para riggear primero un personaje, consulta la API de rigging.


POST/openapi/v1/text-to-motion

Crear una Tarea de Texto a Movimiento

Este endpoint crea una nueva tarea para generar un clip de movimiento a partir de un prompt de texto.

Una tarea con mode prime cuesta 10 créditos y se genera con nuestro modelo de movimiento de la más alta calidad. Una tarea con mode swift cuesta 3 créditos y se genera más rápido con nuestro modelo de movimiento económico.

Parámetros

  • Name
    prompt
    Type
    string
    Requerido
    Description

    Una descripción en lenguaje natural del movimiento a generar. Máximo 400 caracteres.

  • Name
    mode
    Type
    string
    predeterminado prime
    Description

    El modo de generación de movimiento. Valores disponibles: prime, swift. prime produce la más alta calidad y entrega FBX; swift es más rápido y más económico y entrega BVH.

  • Name
    duration
    Type
    number
    Requerido
    Description

    La duración objetivo del clip de movimiento en segundos. Entre 2 y 10, en pasos de 0.5 (por ejemplo 2, 2.5, 3, … 10).

Retornos

La propiedad result de la respuesta contiene el id de la tarea de Texto a Movimiento recién creada.

Modos de Fallo

  • Name
    400 - Bad Request
    Description

    La solicitud fue inaceptable. Causas comunes:

    • Prompt faltante o vacío: El prompt falta, está en blanco, o tiene más de 400 caracteres.
    • Modo inválido: El mode no es prime o swift.
    • Duración inválida: La duration falta, está fuera del rango 210, o no es un paso de 0.5 segundos.
  • Name
    401 - Unauthorized
    Description

    La autenticación falló. Verifique su clave de API.

  • Name
    402 - Payment Required
    Description

    Créditos insuficientes para realizar esta tarea.

  • Name
    403 - Forbidden
    Description

    El prompt fue marcado por la moderation de contenido.

  • Name
    429 - Too Many Requests
    Description

    Ha excedido su límite de tasa.

Request

POST
/openapi/v1/text-to-motion
# Generar un clip de movimiento solo con parámetros requeridos
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
  }'

# Generar un clip rápido y económico con modo Swift
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 una Tarea de Texto a Motion

Este endpoint te permite recuperar una tarea de Texto a Motion dado un id de tarea válido. Consulta El Objeto de la Tarea de Texto a Motion para ver qué propiedades están incluidas.

Parámetros

  • Name
    id
    Type
    path
    Description

    Identificador único para la tarea de Texto a Motion a recuperar.

Devuelve

La respuesta contiene el objeto de la Tarea de Texto a Motion. Consulta la sección El Objeto de la Tarea de Texto a Motion para más detalles.

Solicitud

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}"

Respuesta

{
  "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

Lista de Tareas de Texto a Movimiento

Devuelve una lista paginada de las tareas de Texto a Movimiento del solicitante, ordenadas de más nuevas a más antiguas. Paginación estándar mediante page_num y page_size.

La respuesta es un arreglo de objetos de Tarea de Texto a Movimiento.

Tenga en cuenta que las tareas creadas a través del API se gestionan a través del API: no aparecen en Mis Activos de la aplicación web. Use este endpoint para encontrar una tarea cuyo ID ya no tenga.

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

Transmitir una tarea de Texto a Movimiento

Este endpoint transmite actualizaciones en tiempo real para una tarea de Texto a Movimiento usando Server-Sent Events (SSE).

Parámetros

  • Name
    id
    Type
    path
    Description

    Identificador único para la tarea de Texto a Movimiento a transmitir.

Devuelve

Devuelve un flujo de Los Objetos de Tarea de Texto a Movimiento como Server-Sent Events.

Cada evento message lleva el objeto completo de la tarea. Mientras la tarea está PENDING o IN_PROGRESS, los campos result siguen vacíos ("" / 0) y finished_at / expires_at son 0; observa status y 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

// Ejemplo de evento de error
event: error
data: {
  "status_code": 404,
  "message": "Tarea no encontrada"
}

// Los eventos de mensaje llevan el objeto completo de la tarea en cada etapa; los campos result permanecen vacíos hasta que la tarea tenga éxito.
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: { // Ejemplo de un ítem de flujo de tarea SUCCEEDED, reflejando la estructura del Objeto de Tarea de Texto a Movimiento
  "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

Eliminar una Tarea de Texto a Movimiento

Este endpoint elimina permanentemente una tarea de Texto a Movimiento, incluido el clip de movimiento generado. Esta acción es irreversible.

Parámetros de Ruta

  • Name
    id
    Type
    path
    Description

    El ID de la tarea de Texto a Movimiento a eliminar.

Retornos

Devuelve 200 OK en caso de éxito.

Solicitud

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}"

Respuesta

// Devuelve 200 Ok en caso de éxito.

El Objeto Tarea de Texto a Movimiento

El objeto Tarea de Texto a Movimiento representa la unidad de trabajo para generar un clip de movimiento a partir de un prompt de texto.

Propiedades

  • Name
    id
    Type
    string
    Description

    Identificador único para la tarea.

  • Name
    type
    Type
    string
    Description

    Tipo de la tarea. El valor es text-to-motion.

  • Name
    status
    Type
    string
    Description

    Estado de la tarea. Valores posibles: PENDING, IN_PROGRESS, SUCCEEDED, FAILED, CANCELED.

  • Name
    progress
    Type
    integer
    Description

    Progreso de la tarea (0-100).

  • Name
    created_at
    Type
    timestamp
    Description

    Marca de tiempo (milisegundos desde la época) cuando se creó la tarea.

  • Name
    started_at
    Type
    timestamp
    Description

    Marca de tiempo (milisegundos desde la época) cuando la tarea comenzó a procesarse. 0 si no ha comenzado.

  • Name
    finished_at
    Type
    timestamp
    Description

    Marca de tiempo (milisegundos desde la época) cuando la tarea terminó. 0 si no ha terminado.

  • Name
    expires_at
    Type
    timestamp
    Description

    Marca de tiempo (milisegundos desde la época) cuando los assets resultantes de la tarea expiran. 0 hasta que la tarea finalice. El clip generado se retiene por 3 días después de que la tarea finalice; descárgalo antes de que expire.

  • Name
    preceding_tasks
    Type
    integer
    Description

    El conteo de tareas precedentes en la cola. Significativo solo si el estado es PENDING; se omite cuando es cero.

  • Name
    consumed_credits
    Type
    integer
    Description

    El número de créditos consumidos por esta tarea. 10 para el modo prime, 3 para el modo swift. Devuelve 0 para tareas FAILED (los créditos son reembolsados en caso de fallo).

  • Name
    task_error
    Type
    object
    Description

    Detalles del error para tareas fallidas; null a menos que la tarea haya FAILED. Ver Errores para el objeto completo de referencia task_error.

  • Name
    result
    Type
    object
    Description

    Contiene el clip de movimiento generado una vez que la tarea ha SUCCEEDED; hasta entonces los campos están presentes pero vacíos ("" / 0).

    • Name
      motion_url
      Type
      string
      Description
      URL descargable para el clip de movimiento generado. La URL se re-firma en cada lectura y expira con la ventana de retención de la tarea.
    • Name
      motion_format
      Type
      string
      Description
      Formato de archivo del clip: fbx para el modo prime, bvh para el modo swift.
    • Name
      duration_ms
      Type
      integer
      Description
      Duración del clip generado en milisegundos.
    • Name
      mode
      Type
      string
      Description
      El modo con el que se generó el clip: prime o swift.

Ejemplo de Objeto Tarea de Texto a Movimiento

{
  "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
}