> ## 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 Multi-Image to 3D

> The Meshy 7.1 Multi-Image to 3D API reconstructs a 3D model from 1–4 views of the same object, with up to 2K geometry, topology control, 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 Multi-Image to 3D reconstructs one 3D model from up to four views of the same object, such as front, side and back photos. Extra angles give the model more information about hidden sides than a single image can. Use it for product scans, props and character turnarounds.

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/multi-image-to-3d** — Multi-view image-to-3D with Meshy 7.1 from 1–4 images.

## Features

* Multi-view image-to-3D from 1–4 images of the same object.
* Textured by default; set `should_texture: false` for geometry only.
* Geometry detail up to `2k`.
* Triangle or quad topology and a target polygon count up to 300,000.
* PBR maps, texture guidance by text or image.
* Optional humanoid rigging and animation presets.

## Required parameters

* `image_urls` (string\[]): 1–4 views of the same object, as public HTTP(S) URLs or `data:image/...` URIs. Use different angles (front, side, back, three-quarter) with consistent lighting.

## Optional parameters

* `should_texture` (boolean): Texture the model. Default `true`; `false` returns geometry only.
* `topology` (string): `triangle` or `quad`. Default `triangle`.
* `target_polycount` (integer): `100`–`300000`. Default `30000`.
* `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` or `2k`.
* `enable_pbr` (boolean): Add metallic, roughness and normal maps to the base color texture. Default `false`. Requires `should_texture: true`.
* `texture_prompt` (string): Text guidance for the texture, up to 600 characters. Requires `should_texture: true`.
* `texture_image_url` (string): Image that guides the texture (public HTTP(S) URL or `data:image/...` URI). Requires `should_texture: true`.
* `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 model from three views**: front, side and back photos of a chair with `geometry_resolution: 2k` and PBR maps.
* **Geometry only**: two views of a vase with `should_texture: false`, quad topology and a `callback_url`.

## Notes

* Multi-image does not support `4k` geometry or `model_type`; use [Meshy 7.1 Image to 3D](https://docs.vidgo.ai/api-manual/3d-series/meshy-v7-1-image-to-3d.md) for `4k` or Smart Topology from a single image.
* With `should_texture: false`, sending `enable_pbr: true`, `texture_prompt` or `texture_image_url` returns 400.
* `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 `prompt`, `mode`, `seed` or `model_type`, return 400.
* Credits are reserved at submission: a base charge per model, plus extra for texturing (`should_texture: true`, 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-multi-image-to-3d.json POST /api/generate/submit
openapi: 3.0.0
info:
  title: Vidgo API - Meshy 7.1 Multi-Image to 3D
  description: >-
    The Meshy 7.1 Multi-Image to 3D API reconstructs a 3D model from 1–4 views
    of the same object, with up to 2K geometry, topology control, 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 Multi-Image to 3D
      description: >-
        Send only the `input` fields listed for this model. Any other field,
        including `prompt`, `mode`, `seed` or `model_type`, returns 400.
        `image_urls` takes 1–4 public HTTP(S) URLs or `data:image/...` URIs.
      operationId: submit_meshy_v7_1_multi_image_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/multi-image-to-3d`.
                  example: meshy/v7.1/multi-image-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:
                    - image_urls
                  properties:
                    image_urls:
                      type: array
                      items:
                        type: string
                        format: uri
                      minItems: 1
                      maxItems: 4
                      example:
                        - https://example.com/chair-front.png
                        - https://example.com/chair-side.png
                      description: >-
                        1–4 views of the same object (for example front, side,
                        back), as public HTTP(S) URLs or `data:image/...` URIs.
                    should_texture:
                      type: boolean
                      default: true
                      description: >-
                        Texture the model. Set `false` for geometry only; then
                        `enable_pbr`, `texture_prompt` and `texture_image_url`
                        are rejected. Texturing adds to the price.
                    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`.
                    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
                      description: >-
                        Geometry detail level: `standard` or `2k`. Multi-image
                        does not offer `4k`. 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. Requires `should_texture: true`.
                    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.
                        Requires `should_texture: true`.
                    texture_image_url:
                      type: string
                      format: uri
                      description: >-
                        Public HTTP(S) URL (or `data:image/...` URI) of an image
                        that guides the texture. Requires `should_texture:
                        true`.
                    enable_safety_checker:
                      type: boolean
                      default: true
                      description: Run the upstream safety checker.
                  additionalProperties: false
                  description: Generation parameters.
            examples:
              three_views:
                summary: Textured model from three views
                value:
                  model: meshy/v7.1/multi-image-to-3d
                  input:
                    image_urls:
                      - https://example.com/chair-front.png
                      - https://example.com/chair-side.png
                      - https://example.com/chair-back.png
                    geometry_resolution: 2k
                    enable_pbr: true
              geometry_only:
                summary: Geometry only with callback
                value:
                  model: meshy/v7.1/multi-image-to-3d
                  callback_url: https://your-domain.com/callback
                  input:
                    image_urls:
                      - https://example.com/vase-front.png
                      - https://example.com/vase-top.png
                    should_texture: false
                    topology: quad
                    target_polycount: 20000
      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.