Skip to content

Meshy V7 Text to 3D

Integrate

Model id meshy/v7/text-to-3d
# Run the model; wait up to 20 s for the finished result in the same call
curl -X POST "https://api.doitong.com/v1/run/meshy/v7/text-to-3d?wait=20" \
  -H "Authorization: Bearer $DOITONG_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "prompt": "A red fox trots through fresh snow at sunrise, soft golden light, shallow depth of field"
  }'

# Still "queued" or "running"? Poll with the id from the response:
curl "https://api.doitong.com/v1/requests/REQUEST_ID?wait=20" \
  -H "Authorization: Bearer $DOITONG_API_KEY"

Files like the example: $1.20 1,200 API credits your files are measured before the run Run it on this page

Get API key
Meshy Text to 3D #stylized#transform

Text-to-3D with Meshy 7: preview or full mode, 2k geometry, PBR, rigging and animation options

Meshy · 3D

Your first result goes here

Build a request below and run it with your API key. Outputs are copied to our storage, kept forever or 7 days for free.

Build a request

Controls are generated from the model schema. The code and the price update as you change them.

•required 88 / 600

Description of the object to represent as a 3D model, limited to 600 characters.

mode default full

Generation mode: 'preview' outputs geometry without textures, while 'full' outputs a textured model by combining preview and refine.

geometry_resolution

Mesh geometry resolution; the supported Meshy-7 options are standard and 2k.

Advanced texture_prompt · texture_image_url · model_type · topology · symmetry_mode · pose_mode · target_polycount · rigging_height_meters · animation_action_id · seed · should_remesh · enable_pbr · is_a_t_pose · enable_prompt_expansion · enable_safety_checker · ultra_mode
0 / 600

Guide texturing with an extra text prompt in 'full' mode; other modes do not use it.

Drop a file, or

2D reference image for texture generation, applied only in 'full' mode.

model_type default standard

3D mesh mode: choose 'lowpoly' for a low-poly result optimized for cleaner polygons; in this mode Meshy ignores topology, target_polycount, and should_remesh. For a conventional high-detail result choose 'standard', or choose 'smart-topology' to use Meshy-T2 during the geometry (preview) step and obtain clean parts generated separately from the outset.

topology default triangle

Model topology choice between Triangle for geometric detail and Quad for surface smoothness.

symmetry_mode default auto

Symmetry setting applied while generating the model.

pose_mode default

Leave the string empty to avoid specifying the generated model's pose, or request an A-pose with 'a-pose' or a T-pose with 't-pose'.

default 30000

Polygon-count target, capped at 15,000 when model_type is 'smart-topology'. Omitting the target in that mode selects Meshy's lower default of 4,000.

default 1.7

Provide an estimated character height in meters when enable_rigging is true; otherwise, this value has no effect.

default 92

Meshy library animation preset ID, with available actions listed at https://docs.meshy.ai/en/api/animation-library. Validation and use apply only when enable_animation is true: values outside [0, 696] are rejected with a 422, and "Idle" corresponds to `0`.

Reuse this seed together with an unchanged prompt to usually reproduce an earlier result.

POST /run/meshy/v7/text-to-3d?wait=20 quote → $1.20
# Run the model; wait up to 20 s for the finished result in the same call
curl -X POST "https://api.doitong.com/v1/run/meshy/v7/text-to-3d?wait=20" \
  -H "Authorization: Bearer $DOITONG_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "prompt": "A red fox trots through fresh snow at sunrise, soft golden light, shallow depth of field"
  }'

# Still "queued" or "running"? Poll with the id from the response:
curl "https://api.doitong.com/v1/requests/REQUEST_ID?wait=20" \
  -H "Authorization: Bearer $DOITONG_API_KEY"

Run this request

Your key stays in this browser: it is sent only to the Doitong API and saved (localStorage) only if you tick Remember. Get an API key

About Meshy V7 Text to 3D

Generates a 3D model from a `prompt` of up to 600 characters, with optional `enable_prompt_expansion`. `mode` returns either untextured geometry or a textured model. Choose standard, lowpoly or smart-topology via `model_type`, set `target_polycount` from 100 to 300000, and pick standard or 2k `geometry_resolution`. Rigging and animation presets can be added for humanoid characters.

Parameters

NameType DefaultAllowed Description
promptrequired
Typestring
≤ 600 characters
Description of the object to represent as a 3D model, limited to 600 characters.
modeoptional
Typeenum
Defaultfull
previewfull
Generation mode: 'preview' outputs geometry without textures, while 'full' outputs a textured model by combining preview and refine.
seedoptional
Typeinteger | null
Reuse this seed together with an unchanged prompt to usually reproduce an earlier result.
model_typeoptional
Typeenum
Defaultstandard
standardlowpolysmart-topology
3D mesh mode: choose 'lowpoly' for a low-poly result optimized for cleaner polygons; in this mode Meshy ignores topology, target_polycount, and should_remesh. For a conventional high-detail result choose 'standard', or choose 'smart-topology' to use Meshy-T2 during the geometry (preview) step and obtain clean parts generated separately from the outset.
topologyoptional
Typeenum
Defaulttriangle
quadtriangle
Model topology choice between Triangle for geometric detail and Quad for surface smoothness.
target_polycountoptional
Typeinteger
Default30000
100 – 300,000
Polygon-count target, capped at 15,000 when model_type is 'smart-topology'. Omitting the target in that mode selects Meshy's lower default of 4,000.
should_remeshoptional
Typeboolean
Defaulttrue
Skip remeshing and receive the raw triangular mesh by setting this to false; otherwise, enable the remesh phase.
symmetry_modeoptional
Typeenum
Defaultauto
offautoon
Symmetry setting applied while generating the model.
enable_pbroptional
Typeboolean
Defaultfalse
Controls generation of metallic, roughness, and normal PBR maps alongside the base color.
is_a_t_poseoptional
Typeboolean
Defaultfalse
T-pose generation switch activated by true; deprecated in favor of pose_mode.
pose_modeoptional
Typeenum
Default
a-poset-pose
Leave the string empty to avoid specifying the generated model's pose, or request an A-pose with 'a-pose' or a T-pose with 't-pose'.
enable_prompt_expansionoptional
Typeboolean
Defaultfalse
Allow a large language model to enrich the prompt with details. Enabling this expansion leaves the prompt's meaning unchanged.
texture_promptoptional
Typestring | null
≤ 600 characters
Guide texturing with an extra text prompt in 'full' mode; other modes do not use it.
texture_image_urloptional
Typeurl · image
2D reference image for texture generation, applied only in 'full' mode.
enable_riggingoptional
Typeboolean
Defaultfalse
Automatic humanoid rigging, most effective for humanoid models whose limbs are clearly distinguishable. Enabling it rigs the generated model and supplies basic animations for walking and running.
rigging_height_metersoptional
Typenumber
Default1.7
> 0
Provide an estimated character height in meters when enable_rigging is true; otherwise, this value has no effect.
enable_animationoptional
Typeboolean
Defaultfalse
Whether the rigged model receives a preset animation, which requires enable_rigging to be true.
animation_action_idoptional
Typeinteger
Default92
Meshy library animation preset ID, with available actions listed at https://docs.meshy.ai/en/api/animation-library. Validation and use apply only when enable_animation is true: values outside [0, 696] are rejected with a 422, and "Idle" corresponds to `0`.
enable_safety_checkeroptional
Typeboolean
Defaulttrue
Preprocessing safety-check switch: true makes an input safety check a prerequisite to processing.
geometry_resolutionoptional
Typeenum
standard2k
Mesh geometry resolution; the supported Meshy-7 options are standard and 2k.
ultra_modeoptional
Typeboolean
Defaultfalse
Deprecated option superseded by geometry_resolution, which wins if both are supplied; use geometry_resolution='2k' instead.
required

File parameters take a public https:// URL, a data: URI up to 10 MB, or the file_url of an upload. Files

Output

GET /requests/req_8k2m4q7x1z9c3v5b6n0p2r4t
{
  "id": "req_8k2m4q7x1z9c3v5b6n0p2r4t",
  "object": "request",
  "model": "meshy/v7/text-to-3d",
  "status": "succeeded",
  "created_at": "2026-10-20T12:00:00Z",
  "started_at": "2026-10-20T12:00:02Z",
  "completed_at": "2026-10-20T12:00:09Z",
  "queue_position": null,
  "cost": {
    "credits": 1200,
    "usd": "1.20",
    "charged": 1200,
    "refunded": 0
  },
  "input": {
    "prompt": "A red fox trots through fresh snow at sunrise, soft golden light, shallow depth of field"
  },
  "output": {
    "animation_glb": {
      "url": "https://content.doitong.com/dev-api/2026/10/20/req_8k2m4q7x1z9c3v5b6n0p2r4t/0-output.jpeg",
      "content_type": "image/jpeg",
      "file_name": "0-output.jpeg",
      "file_size": 1843200
    },
    "animation_fbx": {
      "url": "https://content.doitong.com/dev-api/2026/10/20/req_8k2m4q7x1z9c3v5b6n0p2r4t/0-output.jpeg",
      "content_type": "image/jpeg",
      "file_name": "0-output.jpeg",
      "file_size": 1843200
    },
    "model_glb": {
      "url": "https://content.doitong.com/dev-api/2026/10/20/req_8k2m4q7x1z9c3v5b6n0p2r4t/0-output.jpeg",
      "content_type": "image/jpeg",
      "file_name": "0-output.jpeg",
      "file_size": 1843200
    },
    "thumbnail": {
      "url": "https://content.doitong.com/dev-api/2026/10/20/req_8k2m4q7x1z9c3v5b6n0p2r4t/0-output.jpeg",
      "content_type": "image/jpeg",
      "file_name": "0-output.jpeg",
      "file_size": 1843200
    },
    "model_urls": {
      "glb": {
        "url": "https://content.doitong.com/dev-api/2026/10/20/req_8k2m4q7x1z9c3v5b6n0p2r4t/0-output.jpeg",
        "content_type": "image/jpeg",
        "file_name": "0-output.jpeg",
        "file_size": 1843200
      },
      "fbx": {
        "url": "https://content.doitong.com/dev-api/2026/10/20/req_8k2m4q7x1z9c3v5b6n0p2r4t/0-output.jpeg",
        "content_type": "image/jpeg",
        "file_name": "0-output.jpeg",
        "file_size": 1843200
      },
      "obj": {
        "url": "https://content.doitong.com/dev-api/2026/10/20/req_8k2m4q7x1z9c3v5b6n0p2r4t/0-output.jpeg",
        "content_type": "image/jpeg",
        "file_name": "0-output.jpeg",
        "file_size": 1843200
      },
      "usdz": {
        "url": "https://content.doitong.com/dev-api/2026/10/20/req_8k2m4q7x1z9c3v5b6n0p2r4t/0-output.jpeg",
        "content_type": "image/jpeg",
        "file_name": "0-output.jpeg",
        "file_size": 1843200
      },
      "blend": {
        "url": "https://content.doitong.com/dev-api/2026/10/20/req_8k2m4q7x1z9c3v5b6n0p2r4t/0-output.jpeg",
        "content_type": "image/jpeg",
        "file_name": "0-output.jpeg",
        "file_size": 1843200
      },
      "stl": {
        "url": "https://content.doitong.com/dev-api/2026/10/20/req_8k2m4q7x1z9c3v5b6n0p2r4t/0-output.jpeg",
        "content_type": "image/jpeg",
        "file_name": "0-output.jpeg",
        "file_size": 1843200
      }
    },
    "texture_urls": [
      {
        "base_color": {
          "url": "https://content.doitong.com/dev-api/2026/10/20/req_8k2m4q7x1z9c3v5b6n0p2r4t/0-output.jpeg",
          "content_type": "image/jpeg",
          "file_name": "0-output.jpeg",
          "file_size": 1843200
        },
        "metallic": {
          "url": "https://content.doitong.com/dev-api/2026/10/20/req_8k2m4q7x1z9c3v5b6n0p2r4t/0-output.jpeg",
          "content_type": "image/jpeg",
          "file_name": "0-output.jpeg",
          "file_size": 1843200
        },
        "normal": {
          "url": "https://content.doitong.com/dev-api/2026/10/20/req_8k2m4q7x1z9c3v5b6n0p2r4t/0-output.jpeg",
          "content_type": "image/jpeg",
          "file_name": "0-output.jpeg",
          "file_size": 1843200
        },
        "roughness": {
          "url": "https://content.doitong.com/dev-api/2026/10/20/req_8k2m4q7x1z9c3v5b6n0p2r4t/0-output.jpeg",
          "content_type": "image/jpeg",
          "file_name": "0-output.jpeg",
          "file_size": 1843200
        }
      }
    ],
    "seed": 42,
    "prompt": "A rustic, antique wooden treasure chest with a curved, domed lid, constructed from weathered, dark brown planks exhibiting prominent wood grain and subtle distress. It's heavily reinforced with broad, dark grey, oxidized metal bands secured by numerous circular rivets. Ornate, dark iron decorative elements featuring swirling foliate patterns and dragon motifs adorn the corners and lid. A prominent, circular, intricately carved metal lock plate with a central keyhole dominates the front, flanked by two large, dark metallic pull rings.",
    "actual_prompt": "string",
    "rigged_character_glb": {
      "url": "https://content.doitong.com/dev-api/2026/10/20/req_8k2m4q7x1z9c3v5b6n0p2r4t/0-output.jpeg",
      "content_type": "image/jpeg",
      "file_name": "0-output.jpeg",
      "file_size": 1843200
    },
    "rigged_character_fbx": {
      "url": "https://content.doitong.com/dev-api/2026/10/20/req_8k2m4q7x1z9c3v5b6n0p2r4t/0-output.jpeg",
      "content_type": "image/jpeg",
      "file_name": "0-output.jpeg",
      "file_size": 1843200
    },
    "basic_animations": {
      "walking_glb": {
        "url": "https://content.doitong.com/dev-api/2026/10/20/req_8k2m4q7x1z9c3v5b6n0p2r4t/0-output.jpeg",
        "content_type": "image/jpeg",
        "file_name": "0-output.jpeg",
        "file_size": 1843200
      },
      "walking_fbx": {
        "url": "https://content.doitong.com/dev-api/2026/10/20/req_8k2m4q7x1z9c3v5b6n0p2r4t/0-output.jpeg",
        "content_type": "image/jpeg",
        "file_name": "0-output.jpeg",
        "file_size": 1843200
      },
      "walking_armature_glb": {
        "url": "https://content.doitong.com/dev-api/2026/10/20/req_8k2m4q7x1z9c3v5b6n0p2r4t/0-output.jpeg",
        "content_type": "image/jpeg",
        "file_name": "0-output.jpeg",
        "file_size": 1843200
      },
      "running_glb": {
        "url": "https://content.doitong.com/dev-api/2026/10/20/req_8k2m4q7x1z9c3v5b6n0p2r4t/0-output.jpeg",
        "content_type": "image/jpeg",
        "file_name": "0-output.jpeg",
        "file_size": 1843200
      },
      "running_fbx": {
        "url": "https://content.doitong.com/dev-api/2026/10/20/req_8k2m4q7x1z9c3v5b6n0p2r4t/0-output.jpeg",
        "content_type": "image/jpeg",
        "file_name": "0-output.jpeg",
        "file_size": 1843200
      },
      "running_armature_glb": {
        "url": "https://content.doitong.com/dev-api/2026/10/20/req_8k2m4q7x1z9c3v5b6n0p2r4t/0-output.jpeg",
        "content_type": "image/jpeg",
        "file_name": "0-output.jpeg",
        "file_size": 1843200
      }
    },
    "rig_task_id": "string"
  },
  "outputs": [
    {
      "type": "file",
      "url": "https://content.doitong.com/dev-api/2026/10/20/req_8k2m4q7x1z9c3v5b6n0p2r4t/0-output.jpeg",
      "content_type": "image/jpeg",
      "file_size": 1843200,
      "stored": true
    }
  ],
  "error": null,
  "metrics": {
    "inference_seconds": 6.8
  },
  "urls": {
    "self": "https://api.doitong.com/v1/requests/req_8k2m4q7x1z9c3v5b6n0p2r4t",
    "cancel": "https://api.doitong.com/v1/requests/req_8k2m4q7x1z9c3v5b6n0p2r4t/cancel"
  }
}
Your files, your choiceEvery outputs[].url is a copy on our storage: kept forever (paid per GB-month) or 7 days for free, by your account setting or ?storage=.
Same shape on every modeltype, url, content_type, width, height and duration, for images, video and audio alike. output is the model’s own result object.
Fields of output
animation_glb
object {url, content_type, file_name, file_size} | nullAnimation result containing the 3D model as GLB; the response omits this result unless enable_animation is true.
animation_fbx
object {url, content_type, file_name, file_size} | nullAnimation result containing the 3D model as FBX; the response omits this result unless enable_animation is true.
model_glb
object {url, content_type, file_name, file_size}GLB file containing the generated 3D object.
thumbnail
object {url, content_type, file_name, file_size} | nullThumbnail showing a preview of the generated model.
model_urls
object {glb, fbx, obj, usdz, blend, stl}Links to the 3D model in various formats.
texture_urls
array of object {base_color, metallic, normal, roughness}Texture files represented as an array of objects.
seed
integer | nullSeed value used during generation.
prompt
stringText prompt supplied for generation.
actual_prompt
string | nullPrompt actually applied to generation when prompt expansion was enabled.
rigged_character_glb
object {url, content_type, file_name, file_size} | nullRigging result delivered as a GLB character file; absent from the response unless enable_rigging is true.
rigged_character_fbx
object {url, content_type, file_name, file_size} | nullRigging result delivered as an FBX character file; absent from the response unless enable_rigging is true.
basic_animations
object {walking_glb, walking_fbx, walking_armature_glb, running_glb, running_fbx, running_armature_glb} | nullBasic walk and run animations, included only if enable_rigging is true.
rig_task_id
string | nullIdentifier for the rigging task; included only if enable_rigging is true.

More models: Text to 3D

For AI agents: this page as Markdown is at https://doitong.com/developers/models/meshy/v7/text-to-3d.md. All models and guides: https://doitong.com/developers/llms.txt