> ## Documentation Index
> Fetch the complete documentation index at: https://docs.vidgo.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Meshy 7.1 Text to 3D

> The Meshy 7.1 Text to 3D API creates a 3D model from a prompt, in preview or textured mode, with up to 4K geometry, quad topology, PBR maps and rigging.

> [!TIP]
>
> 1. After submission, a `task_id` will be returned. If you provided a `callback_url`, when the task status becomes `finished` or `failed`, a POST request will be sent to the `callback_url`.
> 2. Regardless of whether `callback_url` is provided, you can retrieve the result through the unified [Query Task Status](https://docs.vidgo.ai/api-manual/task-management/status.md) endpoint.

Meshy 7.1 Text to 3D turns a written description into a 3D model. Choose a fast geometry-only `preview` or a textured `full` model, control topology and polygon count for game engines, and optionally rig and animate humanoid characters.

Meshy 7.1 is Meshy's 3D generation model, released with a focus on richer geometric detail. Vidgo exposes it as three model IDs: [Text to 3D](https://docs.vidgo.ai/api-manual/3d-series/meshy-v7-1-text-to-3d.md), [Image to 3D](https://docs.vidgo.ai/api-manual/3d-series/meshy-v7-1-image-to-3d.md) and [Multi-Image to 3D](https://docs.vidgo.ai/api-manual/3d-series/meshy-v7-1-multi-image-to-3d.md).

## Models

* **meshy/v7.1/text-to-3d** — Text-to-3D with Meshy 7.1, preview or textured output.

## Features

* Text-to-3D from a prompt of up to 600 characters.
* `preview` (geometry only) or `full` (textured) mode.
* Geometry detail up to `4k` with `model_type: standard`, or cleaner low-poly meshes with `smart-topology`.
* Triangle or quad topology and a target polygon count.
* PBR maps, texture guidance by text or image.
* Optional humanoid rigging and animation presets.

## Required parameters

* `prompt` (string): The object to create, including shape, materials, colors and style. 1–600 characters, not blank.

## Optional parameters

* `mode` (string): `preview` (geometry only) or `full` (textured). Default `full`.
* `model_type` (string): `standard` or `smart-topology`. Default `standard`.
* `seed` (integer): Seed for repeatable results.
* `enable_prompt_expansion` (boolean): Let the model expand a short prompt. Default `false`.
* `topology` (string): `triangle` or `quad`. Default `triangle`.
* `target_polycount` (integer): `100`–`300000`, default `30000`. With `model_type: smart-topology` the range is `100`–`15000`, default `4000`.
* `should_remesh` (boolean): Remesh the output. Default `true`; `false` keeps the raw triangle mesh.
* `symmetry_mode` (string): `off`, `auto` or `on`. Default `auto`.
* `pose_mode` (string): `""` (no pose), `a-pose` or `t-pose`. Default `""`.
* `geometry_resolution` (string): `standard`, `2k` or `4k`. Only with `model_type: standard`.
* `enable_pbr` (boolean): Add metallic, roughness and normal maps to the base color texture. Default `false`.
* `texture_prompt` (string): Text guidance for the texture, up to 600 characters.
* `texture_image_url` (string): Image that guides the texture (public HTTP(S) URL or `data:image/...` URI).
* `enable_rigging` (boolean): Auto-rig the model as a humanoid character. Default `false`.
* `rigging_height_meters` (number): Character height used for rigging, greater than 0. Default `1.7`.
* `enable_animation` (boolean): Apply an animation preset. Requires `enable_rigging: true`. Default `false`.
* `animation_action_id` (integer): Animation preset ID, `0`–`696`. Default `92`.
* `enable_safety_checker` (boolean): Upstream safety checker. Default `true`.

## Output

Read every item in the `files` array returned by [Query Task Status](https://docs.vidgo.ai/api-manual/task-management/status.md) or the callback. Model assets use `file_type: "3d"` (typically GLB, plus FBX, OBJ, USDZ or STL when available), previews and thumbnails use `file_type: "image"`, and textures, rigged or animated assets and other supporting files may use `file_type: "other"`. Not every format is returned for every task, so do not assume a fixed file list.

## Examples

* **Textured prop**: `mode: full` with quad topology, a 30,000 polygon target and PBR maps.
* **Geometry-only preview**: `mode: preview` with `geometry_resolution: 2k` and a fixed `seed`, useful for checking shapes before texturing.
* **Rigged and animated character**: a full-body character in `t-pose` with `enable_rigging` and `enable_animation`, plus a `callback_url`.

## Notes

* This ID accepts text only. For a photo or concept image, use [Meshy 7.1 Image to 3D](https://docs.vidgo.ai/api-manual/3d-series/meshy-v7-1-image-to-3d.md); for several views of one object, use [Meshy 7.1 Multi-Image to 3D](https://docs.vidgo.ai/api-manual/3d-series/meshy-v7-1-multi-image-to-3d.md).
* `geometry_resolution` with `model_type: smart-topology` returns 400, as does a `target_polycount` above 15,000 with `smart-topology`. `geometry_resolution` sets mesh detail, not texture image size.
* `enable_animation: true` without `enable_rigging: true` returns 400. Rigging works best on clearly limbed humanoid characters in `a-pose` or `t-pose`; check rigs and meshes before using them in production.
* Fields not listed above, such as `image_urls` or `should_texture`, return 400. `model` and `callback_url` belong at the request root, not inside `input`.
* Credits are reserved at submission: a base charge per model, plus extra for texturing (`mode: full`, the default), `enable_rigging` and `enable_animation`. Polycount, topology, `geometry_resolution` and image count do not change the price. A failed task is refunded in full. See the [pricing page](https://vidgo.ai/apis/api-pricing) for current rates.


## OpenAPI

````yaml api-manual/3d-series/meshy-v7-1-text-to-3d.json POST /api/generate/submit
openapi: 3.0.0
info:
  title: Vidgo API - Meshy 7.1 Text to 3D
  description: >-
    The Meshy 7.1 Text to 3D API creates a 3D model from a prompt, in preview or
    textured mode, with up to 4K geometry, quad topology, PBR maps and rigging.
  version: 1.0.0
servers:
  - url: https://api.vidgo.ai
    description: Production server
security:
  - BearerAuth: []
paths:
  /api/generate/submit:
    post:
      tags:
        - 3D Series
      summary: Meshy 7.1 Text to 3D
      description: >-
        Send only the `input` fields listed for this model. Any other field,
        including `image_urls` or `should_texture`, returns 400.
      operationId: submit_meshy_v7_1_text_to_3d
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - model
                - input
              properties:
                model:
                  type: string
                  description: Model ID. Use `meshy/v7.1/text-to-3d`.
                  example: meshy/v7.1/text-to-3d
                callback_url:
                  type: string
                  format: uri
                  nullable: true
                  description: >-
                    Optional public HTTP(S) endpoint that receives a POST when
                    the task becomes `finished` or `failed`. HTTPS is
                    recommended. Omit it, or send `null` or an empty string, to
                    disable callbacks.
                  example: https://your-domain.com/callback
                input:
                  type: object
                  required:
                    - prompt
                  properties:
                    prompt:
                      type: string
                      minLength: 1
                      maxLength: 600
                      example: >-
                        A weathered bronze lantern with a hexagonal glass cage
                        and a curled iron handle
                      description: >-
                        Describe the object: shape, materials, colors and style.
                        1–600 characters, not blank.
                    mode:
                      type: string
                      enum:
                        - preview
                        - full
                      default: full
                      description: >-
                        `preview` returns geometry only; `full` returns a
                        textured model and adds to the price.
                    seed:
                      type: integer
                      description: Seed for repeatable results.
                    model_type:
                      type: string
                      enum:
                        - standard
                        - smart-topology
                      default: standard
                      description: >-
                        Mesh model. `smart-topology` produces cleaner,
                        lower-poly meshes and caps `target_polycount` at 15000;
                        `geometry_resolution` requires `standard`.
                    enable_prompt_expansion:
                      type: boolean
                      default: false
                      description: Let the model expand a short prompt.
                    topology:
                      type: string
                      enum:
                        - triangle
                        - quad
                      default: triangle
                      description: Mesh topology.
                    target_polycount:
                      type: integer
                      minimum: 100
                      maximum: 300000
                      default: 30000
                      description: >-
                        Target polygon count. `100`–`300000` (default `30000`)
                        with `model_type: standard`; `100`–`15000` (default
                        `4000`) with `smart-topology`.
                    should_remesh:
                      type: boolean
                      default: true
                      description: >-
                        Remesh the output. Set `false` to keep the raw triangle
                        mesh.
                    symmetry_mode:
                      type: string
                      enum:
                        - 'off'
                        - auto
                        - 'on'
                      default: auto
                      description: Symmetry handling.
                    pose_mode:
                      type: string
                      enum:
                        - ''
                        - a-pose
                        - t-pose
                      default: ''
                      description: >-
                        Character pose. Empty string means no pose constraint;
                        `a-pose` or `t-pose` suit characters you plan to rig.
                    geometry_resolution:
                      type: string
                      enum:
                        - standard
                        - 2k
                        - 4k
                      description: >-
                        Geometry detail level: `standard`, `2k` or `4k`.
                        Requires `model_type: standard`. It controls mesh
                        detail, not texture size.
                    enable_pbr:
                      type: boolean
                      default: false
                      description: >-
                        Generate PBR maps (metallic, roughness, normal) in
                        addition to base color.
                    enable_rigging:
                      type: boolean
                      default: false
                      description: >-
                        Auto-rig the model as a humanoid character. Adds to the
                        price.
                    enable_animation:
                      type: boolean
                      default: false
                      description: >-
                        Apply the animation preset in `animation_action_id`.
                        Requires `enable_rigging: true`. Adds to the price.
                    rigging_height_meters:
                      type: number
                      default: 1.7
                      description: >-
                        Character height in meters used for rigging. Must be
                        greater than 0.
                    animation_action_id:
                      type: integer
                      minimum: 0
                      maximum: 696
                      default: 92
                      description: Animation preset ID, `0`–`696`.
                    texture_prompt:
                      type: string
                      maxLength: 600
                      description: Text guidance for the texture, up to 600 characters.
                    texture_image_url:
                      type: string
                      format: uri
                      description: >-
                        Public HTTP(S) URL (or `data:image/...` URI) of an image
                        that guides the texture.
                    enable_safety_checker:
                      type: boolean
                      default: true
                      description: Run the upstream safety checker.
                  additionalProperties: false
                  description: Generation parameters.
            examples:
              textured:
                summary: Textured prop (default full mode)
                value:
                  model: meshy/v7.1/text-to-3d
                  input:
                    prompt: >-
                      A weathered bronze lantern with a hexagonal glass cage and
                      a curled iron handle
                    mode: full
                    topology: quad
                    target_polycount: 30000
                    enable_pbr: true
              preview:
                summary: Geometry-only preview
                value:
                  model: meshy/v7.1/text-to-3d
                  input:
                    prompt: A low stone well with a wooden roof and a hanging bucket
                    mode: preview
                    geometry_resolution: 2k
                    seed: 42
              rigged_character:
                summary: Rigged and animated character with callback
                value:
                  model: meshy/v7.1/text-to-3d
                  callback_url: https://your-domain.com/callback
                  input:
                    prompt: >-
                      A cartoon explorer in a khaki jacket, boots and a
                      wide-brim hat, full body
                    mode: full
                    pose_mode: t-pose
                    enable_rigging: true
                    rigging_height_meters: 1.7
                    enable_animation: true
                    animation_action_id: 92
      responses:
        '200':
          description: Task submitted
          content:
            application/json:
              schema:
                type: object
                required:
                  - code
                  - data
                properties:
                  code:
                    type: integer
                    enum:
                      - 200
                    description: HTTP status code.
                  data:
                    type: object
                    required:
                      - task_id
                      - status
                      - created_time
                    properties:
                      task_id:
                        type: string
                        description: >-
                          Task ID. Use it with [Query Task
                          Status](/api-manual/task-management/status).
                      status:
                        type: string
                        enum:
                          - not_started
                        description: Initial task status.
                      created_time:
                        type: string
                        format: date-time
                        description: Time the task was created (ISO 8601).
              example:
                code: 200
                data:
                  task_id: task-unified-1762160000-abc123
                  status: not_started
                  created_time: '2026-11-03T10:30:00'
        '400':
          description: >-
            Invalid input, unsupported field, inaccessible media, or
            insufficient credits
          content:
            application/json:
              schema:
                type: object
                required:
                  - detail
                properties:
                  detail:
                    oneOf:
                      - type: string
                      - type: object
                        additionalProperties: true
                      - type: array
                        items: {}
                    description: Error message.
        '401':
          description: Invalid credentials
          content:
            application/json:
              schema:
                type: object
                required:
                  - detail
                properties:
                  detail:
                    oneOf:
                      - type: string
                      - type: object
                        additionalProperties: true
                      - type: array
                        items: {}
                    description: Error message.
        '403':
          description: Access denied
          content:
            application/json:
              schema:
                type: object
                required:
                  - detail
                properties:
                  detail:
                    oneOf:
                      - type: string
                      - type: object
                        additionalProperties: true
                      - type: array
                        items: {}
                    description: Error message.
        '404':
          description: Unknown or disabled model
          content:
            application/json:
              schema:
                type: object
                required:
                  - detail
                properties:
                  detail:
                    oneOf:
                      - type: string
                      - type: object
                        additionalProperties: true
                      - type: array
                        items: {}
                    description: Error message.
        '408':
          description: Request timed out
          content:
            text/plain:
              schema:
                type: string
              example: Request timeout
        '422':
          description: Invalid JSON or non-object request body
          content:
            application/json:
              schema:
                type: object
                required:
                  - detail
                properties:
                  detail:
                    oneOf:
                      - type: string
                      - type: object
                        additionalProperties: true
                      - type: array
                        items: {}
                    description: Error message.
        '429':
          description: Rate or API key credit limit exceeded
          content:
            application/json:
              schema:
                type: object
                required:
                  - detail
                properties:
                  detail:
                    oneOf:
                      - type: string
                      - type: object
                        additionalProperties: true
                      - type: array
                        items: {}
                    description: Error message.
        '500':
          description: Internal error
          content:
            application/json:
              schema:
                type: object
                required:
                  - detail
                properties:
                  detail:
                    oneOf:
                      - type: string
                      - type: object
                        additionalProperties: true
                      - type: array
                        items: {}
                    description: Error message.
        '502':
          description: Unable to create the upstream generation task
          content:
            application/json:
              schema:
                type: object
                required:
                  - detail
                properties:
                  detail:
                    oneOf:
                      - type: string
                      - type: object
                        additionalProperties: true
                      - type: array
                        items: {}
                    description: Error message.
        '503':
          description: The requested model is temporarily unavailable
          content:
            application/json:
              schema:
                type: object
                required:
                  - detail
                properties:
                  detail:
                    oneOf:
                      - type: string
                      - type: object
                        additionalProperties: true
                      - type: array
                        items: {}
                    description: Error message.
components:
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      bearerFormat: API Key
      description: >-
        All API endpoints require Bearer Token authentication


        Get your API Key:


        Go to **Dashboard → API Key** ([API Key Management
        Page](https://vidgo.ai/apis/dashboard/api-key)) to get your API Key


        Add it to the request header:


        ```

        Authorization: Bearer VIDGO_API_KEY

        ```

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.