media

Start one Meshy 3D task (metered; a paid plan or Voyager Free): text, image or multi-image to 3D, retexture, remesh, UV unwrap, convert, rigging, animations or text to motion.

input is Meshy's request body for operation (docs.meshy.ai); a field naming an earlier task takes that task's task_ id. Answers a queued task; poll its poll_url about every retry_after_ms. Nothing is charged until a poll finds the task finished, and then the task's Meshy credits are billed at cost.

post/media/generate-3d

Request

  • Base URL
    https://api.moda.app/v1
  • URL
    https://api.moda.app/v1/media/generate-3d
  • Auth
    HTTP bearer

Headers

Moda-Version'2026-04-12' | '2026-05-01'
Example:2026-05-01

Calendar-dated API version pin. New integrations should pin 2026-05-01 to opt into the newest response shapes. For back-compat the server also accepts requests with no header and resolves them to the current default (today: 2026-04-12); that default advances on each sunset date. Any unsupported value returns 400 unsupported_version.

Request body

operation'text-to-3d' | 'image-to-3d' | 'multi-image-to-3d' | 'retexture' | 'remesh' | 'uv-unwrap' | 'convert' | 'rigging' | 'animations' | 'text-to-motion' required
inputobject required

Meshy's request body for the operation (docs.meshy.ai). Images and models are https URLs or data URIs; an earlier task is named by its task_ id.

idempotency_keystring nullable

Example request

{
  "operation": "image-to-3d",
  "input": {
    "image_url": "https://example.com/chair.png",
    "target_formats": [
      "glb"
    ]
  }
}

Response

Successful Response

object required

Changes