Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Meshy 6 3D API with APIDot

Build with the Meshy 6 3D API using APIDot: cURL, Node.js, request variants, pricing, and production notes in one GitHub repo.

Try on APIDot | Get API Key | API Docs | Pricing | Main Examples

Why this repo exists

Meshy 6 3D API for generating textured 3D assets from prompts, one reference image, or 1-4 object reference images with mesh, PBR texture, and common export formats.

This repository turns that APIDot workflow into runnable server-side examples: a verified cURL request, a native Node.js example, request variants, pricing context, and production integration guardrails.

Overview

Meshy 6 3D is available on APIDot through three public model IDs: meshy-6-text-to-3d, meshy-6-image-to-3d, and meshy-6-multi-image-to-3d. Text-to-3D requests require input.prompt; image requests require input.image_urls, with exactly one image for single image-to-3D and 1-4 images for multi-image-to-3D.

Capabilities

  • Use meshy-6-text-to-3d for prompt-driven concept assets and include object type, style, material, and intended use.
  • Use meshy-6-image-to-3d only with exactly one clear object image.
  • Use meshy-6-multi-image-to-3d with 1-4 images that show the same object from different angles.
  • Set topology, target_polycount, remeshing, and symmetry intentionally when downstream mesh shape matters.
  • Store the returned task_id immediately so polling, retries, and callback handling stay idempotent.

Common use cases

  • Product and marketing asset generation
  • Backend media workflow prototypes
  • Creative testing and prompt iteration
  • Production integrations that need stable API examples

Pricing on APIDot

Catalog price: Starting at 60 credits per generation | text-to-3D, image-to-3D, and multi-image-to-3D: 60 credits ($0.300).

Tier Model Resolution Credits APIDot listed price fal.ai listed price
text-to-3D generation meshy-6-text-to-3d - 60 $0.3 $0.8
image-to-3D generation meshy-6-image-to-3d - 60 $0.3 $0.8
multi-image-to-3D generation meshy-6-multi-image-to-3d - 60 $0.3 $1.2

This README uses pricing data currently published in the APIDot model catalog. Check the APIDot model page before high-volume production runs.

Quick start

cp .env.example .env
# Edit .env and set APIDOT_API_KEY
cd node
npm start

The same request shape is available as a copy-paste cURL example in curl/generate.md.

API workflow

flowchart LR
    A[Submit generation request] --> B[Receive data.task_id]
    B --> C{Delivery mode}
    C -->|Polling| D[Check task status]
    C -->|Webhook| E[Receive callback_url event]
    D --> F[Read result URL from finished task]
    E --> F
Loading

Use polling for local tests and webhook delivery for production queues. Store data.task_id before the first status check so retries, callbacks, and result URLs can be reconciled safely.

Minimal API request

Submit to APIDot:

POST https://api.apidot.ai/api/generate/submit
Authorization: Bearer <APIDOT_API_KEY>
Content-Type: application/json

Primary payload:

{
  "model": "meshy-6-text-to-3d",
  "input": {
    "prompt": "A worn leather explorer backpack with brass buckles, canvas straps, realistic stitching, game-ready asset",
    "mode": "full",
    "topology": "triangle",
    "target_polycount": 30000,
    "should_remesh": true,
    "symmetry_mode": "auto",
    "enable_pbr": true,
    "enable_prompt_expansion": true,
    "enable_safety_checker": true
  }
}

Generate 3D assets with Meshy 6 through APIDot's unified async submit endpoint.

Model IDs and request variants

Text to 3D

{
  "model": "meshy-6-text-to-3d",
  "callback_url": "https://your-domain.com/callback",
  "input": {
    "prompt": "A worn leather explorer backpack with brass buckles, canvas straps, realistic stitching, game-ready asset",
    "mode": "full",
    "topology": "triangle",
    "target_polycount": 30000,
    "should_remesh": true,
    "symmetry_mode": "auto",
    "enable_pbr": true,
    "enable_prompt_expansion": true,
    "enable_safety_checker": true
  }
}

Image to 3D

{
  "model": "meshy-6-image-to-3d",
  "callback_url": "https://your-domain.com/callback",
  "input": {
    "image_urls": [
      "https://example.com/object-front.png"
    ],
    "topology": "triangle",
    "target_polycount": 30000,
    "should_texture": true,
    "enable_pbr": true,
    "enable_safety_checker": true
  }
}

Multi Image to 3D

{
  "model": "meshy-6-multi-image-to-3d",
  "callback_url": "https://your-domain.com/callback",
  "input": {
    "image_urls": [
      "https://example.com/object-front.png",
      "https://example.com/object-side.png"
    ],
    "topology": "triangle",
    "target_polycount": 30000,
    "should_texture": true,
    "enable_pbr": true,
    "enable_safety_checker": true
  }
}

Request parameters

Field Type Required Description
model string yes Target model id. Use meshy-6-text-to-3d, meshy-6-image-to-3d, or meshy-6-multi-image-to-3d.
callback_url string no Optional webhook URL for terminal task updates.
input object yes Container for Meshy 6 3D generation parameters.
input.prompt string no Prompt for meshy-6-text-to-3d. Required for text-to-3D requests.
input.image_urls string[] no Image URLs for image variants. Exactly one URL for meshy-6-image-to-3d; 1-4 URLs for meshy-6-multi-image-to-3d.
input.mode string no Text-to-3D only. Use preview or full.
input.topology string no Mesh topology. Use quad or triangle.
input.target_polycount integer no Target polygon count for the generated mesh.
input.should_texture / input.enable_pbr boolean no Texture and PBR controls. should_texture applies to image models; enable_pbr requests PBR maps when available.
input.enable_rigging / input.enable_animation boolean no Optional rigging and animation preset controls for suitable humanoid assets.

Practical integration notes

  • Keep APIDot API keys in server-side environment variables.
  • Persist selected model, request payload, user ID, and response metadata together.
  • Validate source media URLs before submitting requests that depend on source files.
  • Avoid logging API keys, private prompts, private media URLs, or callback URLs.
  • Store task_id immediately and use polling or callback_url for durable async delivery.

Response and errors

  • code: HTTP-style status code. Successful calls return 200.
  • data.task_id: Async task identifier returned immediately after submission.
  • data.status: Initial task status, typically not_started.

Common error classes:

  • 400 invalid_request: Missing fields or unsupported parameter combinations.
  • 401 authentication_error: Missing, expired, or invalid Bearer API key.
  • 402 insufficient_credits: The current prepaid balance cannot cover the job.
  • 429 rate_limited: Request rate is temporarily above the current allowed limit.

Example response

{
  "code": 200,
  "data": {
    "task_id": "task-unified-example",
    "status": "finished",
    "output": {
      "files": [
        {
          "file_url": "https://example.com/generated-model.glb",
          "file_type": "model"
        }
      ]
    },
    "error_message": null
  }
}

Production notes

  • Keep APIDot API keys in server-side environment variables.
  • Persist selected model, request payload, user ID, and response metadata together.
  • Validate source media URLs before submitting requests that depend on source files.
  • Avoid logging API keys, private prompts, private media URLs, or callback URLs.
  • Retry transient network failures with backoff, but do not retry unchanged invalid payloads.

FAQ

Which model IDs are supported?

Use meshy-6-text-to-3d, meshy-6-image-to-3d, or meshy-6-multi-image-to-3d.

How many images can I send?

meshy-6-image-to-3d requires exactly one image. meshy-6-multi-image-to-3d accepts 1-4 images of the same object.

How do I retrieve the result?

After submit returns task_id, poll /api/generate/status/{task_id} or use callback_url for the terminal task update.

Related links

About

Meshy 6 3D API examples with APIDot: cURL, Node.js, request variants, pricing, and production notes.

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages