Meshy V7.1 Text To 3d API Documentation

Meshy V7.1 Text To 3d API Documentation

Playground

Try it on WaveSpeedAI!

Meshy 7.1 Text-to-3D turns text prompts into textured, PBR-ready 3D models with up to 4K geometry resolution for sharper surface detail, plus configurable topology, rigging, and animation for game assets, product visualization, 3D printing, and production workflows. Ready-to-use REST inference API, best performance, no coldstarts, affordable pricing.

Features

Meshy 7.1 Text to 3D generates a 3D model directly from a text prompt. Meshy 7.1 focuses on geometric detail: with geometry_resolution set to 2k or 4k, it produces much finer surfaces and sharper silhouettes than standard geometry. Choose preview for untextured geometry or full for a textured model.


Why Choose This?

  • Finer geometric detail geometry_resolution goes up to 4k, capturing small surface details and cleaner silhouettes — useful for close-up renders and 3D printing.

  • Texture control Generate textured models, enable PBR maps, or guide textures with a prompt or reference image.

  • Production geometry controls Adjust topology, target polygon count, symmetry, and remeshing.

  • Optional rigging and animation Rig humanoid characters and apply animation presets in the same request.

  • Multiple export formats GLB output with FBX, OBJ, and USDZ exports when available.


Parameters

ParameterRequiredDescription
promptYesDescribe the object to generate. Length: 1–600 characters.
modeNopreview returns untextured geometry; full returns a textured model. Default: full.
model_typeNostandard, lowpoly, or smart-topology. Default: standard.
topologyNoMesh topology: quad or triangle. Default: triangle.
target_polycountNoTarget polygon count. Range: 100–300000. Default: 30000. smart-topology accepts at most 15000.
should_remeshNoEnable remeshing for cleaner topology. Default: true.
symmetry_modeNooff, auto, or on. Default: auto.
enable_pbrNoGenerate metallic, roughness, and normal maps in full mode. Default: false.
pose_modeNoOptional humanoid pose: a-pose or t-pose. Leave unselected for no specific pose.
texture_promptNoOptional text guidance for texture generation in full mode. Maximum length: 600 characters.
texture_imageNoOptional image used to guide texture generation in full mode.
geometry_resolutionNostandard, 2k, or 4k. Higher values generate finer geometric detail. Default: standard.
enable_riggingNoAutomatically rig a humanoid character. Default: false.
rigging_height_metersNoApproximate character height in meters when rigging is enabled. Default: 1.7.
enable_animationNoApply an animation preset. Requires enable_rigging. Default: false.
animation_action_idNoAnimation preset ID. Range: 0–696. Default: 92.
seedNoRandom seed for reproducible results. Leave empty for a random seed.

Pricing

ConfigurationCost
Preview geometry (mode: preview)$0.96
Full textured model$1.44
2k geometry resolution+$0.24
4k geometry resolution+$0.48
Auto-rigging+$0.24
Animation preset+$0.144

Example Costs

ConfigurationCost
Preview geometry (mode: preview)$0.96
Full textured model$1.44
Full textured model + 4K geometry$1.92
Full textured model + auto-rigging$1.68
Full textured model + 4K geometry + auto-rigging + animation$2.304

Other parameters do not add separate charges.


Pro Tips

  • Use 4k geometry for hero assets, close-up renders, and 3D printing; use standard for quick iteration.
  • Higher geometry resolution applies to standard geometry; lowpoly and smart-topology ignore it.
  • Use texture_prompt to describe materials such as metal, leather, ceramic, fabric, or plastic.
  • Enable rigging only for humanoid characters; animation requires rigging.
  • Use preview mode to check shape before paying for a full textured run.

Authentication

For authentication details, please refer to the Authentication Guide.

API Endpoints

Submit Task & Query Result

set -euo pipefail

export WAVESPEED_API_KEY="your-api-key"

REQUEST_BODY=$(cat <<'JSON'
{
  "prompt": "A cinematic ocean wave at sunrise, highly detailed",
  "mode": "full",
  "model_type": "standard",
  "topology": "triangle",
  "target_polycount": 30000,
  "should_remesh": true,
  "symmetry_mode": "auto",
  "enable_pbr": false,
  "pose_mode": "a-pose",
  "geometry_resolution": "standard",
  "enable_rigging": false,
  "rigging_height_meters": 1.7,
  "enable_animation": false,
  "animation_action_id": 92
}
JSON
)

# 1. Submit the prediction.
SUBMIT_RESPONSE=$(curl --silent --show-error --fail-with-body \
  -X POST "https://api.wavespeed.ai/api/v3/meshy/v7.1/text-to-3d" \
  -H "Authorization: Bearer ${WAVESPEED_API_KEY}" \
  -H "Content-Type: application/json" \
  -d "${REQUEST_BODY}")

TASK=$(printf '%s' "${SUBMIT_RESPONSE}" | jq 'if type == "object" and has("data") then .data else . end')
PREDICTION_ID=$(printf '%s' "${TASK}" | jq -r '.id // empty')
if [ -z "${PREDICTION_ID}" ]; then
  printf 'Submission response did not contain a prediction id
' >&2
  exit 1
fi
RESULT_URL="https://api.wavespeed.ai/api/v3/predictions/${PREDICTION_ID}/result"

# 2. Poll until the prediction finishes.
while true; do
  RESPONSE=$(curl --silent --show-error --fail-with-body \
    "${RESULT_URL}" \
    -H "Authorization: Bearer ${WAVESPEED_API_KEY}")
  RESULT=$(printf '%s' "${RESPONSE}" | jq 'if type == "object" and has("data") then .data else . end')
  STATUS=$(printf '%s' "${RESULT}" | jq -r '.status // empty')

  case "${STATUS}" in
    completed) printf '%s\n' "${RESULT}" | jq '.outputs'; break ;;
    failed|cancelled|timeout|deleted) printf '%s\n' "${RESULT}" | jq . >&2; exit 1 ;;
    *) sleep 2 ;;
  esac
done

Parameters

Task Submission Parameters

Request Parameters

ParameterTypeRequiredDefaultRangeDescription
promptstringYes-Describe the object to generate as a 3D model.
modestringNofullpreview, fullPreview returns untextured geometry; full returns a textured model.
model_typestringNostandardstandard, lowpoly, smart-topologyGeometry generation mode. Smart topology supports up to 15,000 target polygons.
topologystringNotrianglequad, triangleMesh topology for remeshed output.
target_polycountintegerNo30000100 ~ 300000Target polygon count. Smart topology accepts at most 15,000.
should_remeshbooleanNotrue-Enable remeshing for cleaner topology.
symmetry_modestringNoautooff, auto, onControls symmetry during model generation.
enable_pbrbooleanNofalse-Generate metallic, roughness, and normal maps in full mode.
pose_modestringNo-a-pose, t-poseOptional humanoid pose. Leave unselected for no specific pose.
texture_promptstringNo--Optional text guidance for texture generation in full mode.
texture_imagestringNo--Optional image to guide texture generation in full mode.
geometry_resolutionstringNostandardstandard, 2k, 4kGeometry resolution. `standard` is the default; `2k`/`4k` generate denser, finer surface detail (up to 4K) at extra cost. Only applies to `standard` geometry.
enable_riggingbooleanNofalse-Automatically rig a suitable humanoid character.
rigging_height_metersnumberNo1.70.01 ~ ∞Approximate character height in meters when rigging is enabled.
enable_animationbooleanNofalse-Apply an animation preset. Requires enable_rigging.
animation_action_idintegerNo920 ~ 696Meshy animation preset ID, used only when animation is enabled.
seedintegerNo--Random seed for reproducible results. Use -1 for a random seed.

Response Parameters

ParameterTypeDescription
codeintegerHTTP status code (e.g., 200 for success)
messagestringStatus message (e.g., “success”)
data.idstringUnique identifier for the prediction, Task Id
data.modelstringModel ID used for the prediction
data.outputsarrayOutput values, usually URL strings; some models return text strings or structured result objects (empty when status is not completed)
data.urlsobjectObject containing related API endpoints
data.statusstringTask status. completed is successful; failed, cancelled, timeout, and deleted are failure terminal statuses.
data.created_atstringISO timestamp of when the request was created (e.g., “2023-04-01T12:34:56.789Z”)
data.errorstringError message (empty if no error occurred)
data.timingsobjectObject containing timing details
data.timings.inferenceintegerInference time in milliseconds

Result Request Parameters

ParameterTypeRequiredDefaultDescription
idstringYes-Task ID

Result Response Parameters

ParameterTypeDescription
codeintegerHTTP status code (e.g., 200 for success)
messagestringStatus message (e.g., “success”)
dataobjectThe prediction data object containing all details
data.idstringUnique identifier for the prediction
data.modelstringModel ID used for the prediction
data.outputsarray<string | object>Array of generated outputs (empty when status is not completed). Items are usually URL strings, but may be text strings or structured result objects, depending on the model.
data.urlsobjectObject containing related API endpoints
data.statusstringStatus: completed is successful; failed, cancelled, timeout, and deleted are failure terminal statuses
data.created_atstringISO timestamp of when the request was created
data.errorstringError message (empty if no error occurred)
data.timingsobjectObject containing timing details
data.timings.inferenceintegerInference time in milliseconds
© 2026 WaveSpeedAI. All rights reserved.