lowpoly sera retiré le 30 oct. 2026. Changez de modèle avant ces dates pour éviter les erreurs de requête. Voir toutes les dépréciations

API Remaillage

Reconstruisez le maillage d'un modèle 3D avec une nouvelle topology et un nouveau nombre de faces, et exportez-le dans les formats de votre choix. Le modèle peut provenir d'une autre tâche Meshy, telle que Image en 3D ou Texte en 3D, ou d'un fichier de modèle.


POST/openapi/v1/remesh

Créer une tâche de Remaillage

Crée une tâche de Remaillage. La tâche s'exécute en arrière-plan. Pour connaître la durée habituelle d'une tâche, consultez Temps de traitement.

Request

POST
/openapi/v1/remesh
# Basic remesh with custom formats and resize
curl https://api.meshy.ai/openapi/v1/remesh \
-X POST \
-H "Authorization: Bearer ${YOUR_API_KEY}" \
-H 'Content-Type: application/json' \
-d '{
    "input_task_id": "018a210d-8ba4-705c-b111-1f1776f7f578",
    "target_formats": ["glb", "fbx"],
    "topology": "quad",
    "target_polycount": 50000,
    "resize_height": 1.0,
    "origin_at": "bottom"
  }'

# Quad remesh with auto-size
curl https://api.meshy.ai/openapi/v1/remesh \
-X POST \
-H "Authorization: Bearer ${YOUR_API_KEY}" \
-H 'Content-Type: application/json' \
-d '{
    "input_task_id": "018a210d-8ba4-705c-b111-1f1776f7f578",
    "target_formats": ["glb", "fbx"],
    "topology": "quad",
    "target_polycount": 50000,
    "auto_size": true
  }'

Response

{
  "result": "0193bfc5-ee4f-73f8-8525-44b398884ce9"
}

Paramètres

  • Name
    input_task_id
    Type
    string
    Requis
    Description

    Requis sauf si vous envoyez model_url. L'ID de la tâche dont vous souhaitez remailler le modèle, par exemple une tâche Texte en 3D, Image en 3D, Retexturisation ou Remaillage. La tâche doit avoir été créée par vous via l'API et avoir le statut SUCCEEDED.

  • Name
    model_url
    Type
    string
    Requis
    Description

    Requis sauf si vous envoyez input_task_id. Le modèle à remailler, sous forme d'URL publique ou de Data URI. Si vous envoyez les deux, Meshy utilise input_task_id.

    Le modèle doit être un fichier GLB, glTF, OBJ, FBX ou STL d'au plus 400 Mo provenant d'une URL http ou https, ou de 100 Mo au maximum en tant que Data URI. Pour un Data URI, utilisez le MIME type application/octet-stream.

    Un fichier de plus de 100 Mo doit également respecter ces règles :

    • Un fichier GLB, glTF, FBX ou OBJ peut avoir au maximum 10 000 000 faces. Meshy compte les faces en triangles, donc un quadrilatère compte pour 2, et un maillage dessiné plusieurs fois compte une fois par copie.
    • Un fichier FBX doit être au format binaire FBX 7.1 ou plus récent.
    • Un fichier GLB ou glTF ne doit pas utiliser la compression Draco.
  • Name
    target_formats
    Type
    string[]
    défaut ["glb"]
    Description

    Les formats de fichiers à générer.

    Valeurs disponibles :

    • glb
    • fbx
    • obj
    • usdz
    • blend
    • stl
    • 3mf
  • Name
    topology
    Type
    string
    défaut triangle
    Description

    Le type de face du modèle remaillé.

    Valeurs disponibles :

    • quad : un maillage à dominance de quadrilatères
    • triangle : un maillage triangulaire décimé
  • Name
    target_polycount
    Type
    integer
    défaut 30000
    Description

    Le nombre de faces visé, de 100 à 300000. Le résultat peut différer de la cible, selon la géométrie du modèle. Une valeur hors de la plage renvoie 400.

  • Name
    decimation_mode
    Type
    integer
    Description

    Nombre de faces adaptatif, par niveau. Lorsque vous le définissez, Meshy ignore target_polycount.

    Valeurs disponibles :

    • 1 : ultra
    • 2 : élevé
    • 3 : moyen
    • 4 : faible
  • Name
    resize_height
    Type
    number
    ⚠ obsolète
    défaut 0
    Description

    Utilisez plutôt l'API Resize. La hauteur à laquelle redimensionner le modèle, en mètres. Envoyez au plus un des paramètres resize_height, resize_longest_side et auto_size.

  • Name
    resize_longest_side
    Type
    number
    ⚠ obsolète
    défaut 0
    Description

    Utilisez plutôt l'API Resize. La longueur à laquelle redimensionner le côté le plus long de la boîte englobante du modèle, en mètres. Envoyez au plus un des paramètres resize_height, resize_longest_side et auto_size.

  • Name
    auto_size
    Type
    boolean
    ⚠ obsolète
    défaut false
    Description

    Utilisez plutôt l'API Resize. Indique s'il faut estimer la hauteur réelle de l'objet avec la vision par IA et redimensionner le modèle en conséquence. Envoyez au plus un des paramètres resize_height, resize_longest_side et auto_size.

  • Name
    origin_at
    Type
    string
    ⚠ obsolète
    défaut bottom
    Description

    Utilisez plutôt l'API Resize. L'emplacement de l'origine du modèle, bottom ou center. La valeur par défaut s'applique lorsque vous envoyez resize_height, resize_longest_side ou auto_size. Sans l'un d'eux, Meshy ne déplace l'origine que si vous envoyez origin_at.

  • Name
    convert_format_only
    Type
    boolean
    ⚠ obsolète
    Description

    Utilisez plutôt l'API Convert. Indique s'il faut seulement convertir le modèle vers target_formats. Lorsque la valeur est true, Meshy ignore topology, target_polycount, decimation_mode, resize_height, resize_longest_side et auto_size, mais vérifie quand même leurs valeurs, donc une valeur invalide renvoie 400. Avec convert_format_only: true, un target_formats vide ou null renvoie 400.

  • Name
    alpha_thumbnail
    Type
    boolean
    défaut false
    Description

    Indique s'il faut également générer un aperçu avec un arrière-plan transparent (RGBA), renvoyé dans alpha_thumbnail_url lorsque vous récupérez la tâche. thumbnail_url ne change pas.

Retours

Le champ result de la réponse contient l'ID de la nouvelle tâche de Remaillage.

Modes d'échec

  • Name
    400 - Bad Request
    Description

    La requête ne peut pas s'exécuter. Le message d'erreur indique le problème rencontré. Par exemple :

    • Paramètre manquant : Ni model_url ni input_task_id n'ont été envoyés.
    • Tâche d'entrée invalide : input_task_id ne correspond pas à une tâche API réussie, ou son modèle d'IA ne prend pas en charge le remaillage.
    • Format de modèle invalide : Le fichier model_url a une extension non prise en charge.
    • URL inaccessible : Meshy ne peut pas télécharger le fichier model_url.
    • Fichier modèle trop volumineux : Le fichier model_url dépasse 400 Mo depuis une URL http ou https, ou dépasse 100 Mo en tant que Data URI.
    • Trop de faces : Le fichier model_url dépasse 100 Mo et a plus de 10 000 000 faces. Réduisez le nombre de faces, puis renvoyez le fichier.
    • FBX ASCII de plus de 100 Mo : Le fichier model_url est un FBX ASCII de plus de 100 Mo. Envoyez-le en FBX binaire ou en GLB.
    • Fichier modèle illisible : Le fichier model_url dépasse 100 Mo, et Meshy ne peut pas lire son en-tête. Par exemple, il s'agit d'un GLB ou glTF compressé avec Draco, ou d'un FBX binaire antérieur à 7.1.
    • En-tête de modèle trop complexe : Le fichier model_url dépasse 100 Mo, et son en-tête contient trop de maillages, nœuds ou enregistrements à vérifier. Réduisez le nombre d'objets dans le fichier, puis renvoyez-le.
    • Topologie invalide : topology n'est ni quad ni triangle.
    • Paramètres mutuellement exclusifs : La requête contient plus d'un des paramètres auto_size, resize_height et resize_longest_side. N'en envoyez qu'un seul.

    Corrigez la requête, puis renvoyez-la. Voir Erreurs.

  • Name
    401 - Unauthorized
    Description

    La clé API est manquante ou invalide. Vérifiez l'en-tête Authorization.

  • Name
    402 - Payment Required
    Description

    Par exemple :

    • Crédits insuffisants : Le compte n'a pas assez de crédits pour cette tâche, ou le compte a atteint une limite de crédits. Vérifiez votre solde de crédits, puis réessayez.
    • Plan gratuit : La création d'une tâche nécessite un plan payant. Mettez à niveau votre plan dans vos paramètres d'abonnement, puis réessayez.
  • Name
    403 - Forbidden
    Description

    input_task_id correspond à un modèle en bas-relief, que ce point de terminaison ne peut pas remailler. Le message est This model type does not support this operation. Envoyez un autre modèle.

  • Name
    404 - Not Found
    Description

    input_task_id ne correspond à aucune de vos tâches. Vérifiez l'ID de la tâche, puis renvoyez la requête.

  • Name
    429 - Too Many Requests
    Description

    Vous avez dépassé votre limite de débit. Attendez, puis réessayez. Voir Limites de débit.


GET/openapi/v1/remesh/:id

Récupérer une tâche de Remaillage

Renvoie une tâche de Remaillage à partir de son ID.

Request

GET
/openapi/v1/remesh/a43b5c6d-7e8f-901a-234b-567c890d1e2f
curl https://api.meshy.ai/openapi/v1/remesh/a43b5c6d-7e8f-901a-234b-567c890d1e2f \
-H "Authorization: Bearer ${YOUR_API_KEY}"

Response

{
  "id": "0193bfc5-ee4f-73f8-8525-44b398884ce9",
  "type": "remesh",
  "model_urls": {
      "glb": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/model.glb?Expires=***",
      "fbx": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/model.fbx?Expires=***",
      "obj": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/model.obj?Expires=***",
      "usdz": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/model.usdz?Expires=***",
      "blend": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/model.blend?Expires=***",
      "stl": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/model.stl?Expires=***"
},
  "progress": 100,
  "status": "SUCCEEDED",
  "created_at": 1699999999000,
  "started_at": 1700000000000,
  "finished_at": 1700000001000,
  "task_error": null,
}

Paramètres

  • Name
    id
    Type
    path
    Description

    L'ID de la tâche provenant de la réponse de création.

Retours

L'objet tâche de Remaillage.


DELETE/openapi/v1/remesh/:id

Supprimer une tâche de remaillage

Supprime définitivement une tâche de remaillage, y compris ses modèles et ses données. Vous ne pouvez pas annuler une suppression.

Request

DELETE
/openapi/v1/remesh/a43b5c6d-7e8f-901a-234b-567c890d1e2f
curl --request DELETE \
  --url https://api.meshy.ai/openapi/v1/remesh/a43b5c6d-7e8f-901a-234b-567c890d1e2f \
  -H "Authorization: Bearer ${YOUR_API_KEY}"

Response

// 200 OK on success, with an empty body.
//
// 409 Conflict when the task is IN_PROGRESS. The task keeps running:
{
  "message": "Task is IN_PROGRESS and cannot be deleted. Credits for a task the worker has already started are not refundable; wait for it to reach SUCCEEDED, FAILED or CANCELED, then delete it."
}

Paramètres de chemin

  • Name
    id
    Type
    path
    Description

    L'ID de la tâche à supprimer.

Statut de la tâche

La suppression d'une tâche PENDING rembourse les crédits utilisés lors de sa création.

Une tâche IN_PROGRESS ne peut pas être supprimée. La requête renvoie 409 Conflict, et la tâche continue de s'exécuter. Meshy ne rembourse pas une tâche qui a démarré, donc la supprimer vous coûterait à la fois les crédits et le résultat. Attendez qu'elle atteigne le statut SUCCEEDED, FAILED ou CANCELED, puis supprimez-la.

La suppression d'une tâche dans un statut final (SUCCEEDED, FAILED ou CANCELED) ne rembourse pas ses crédits.

Retours

200 OK lorsque la tâche est supprimée, ou 409 Conflict lorsque la tâche est IN_PROGRESS.


GET/openapi/v1/remesh

Lister les tâches de Remaillage

Renvoie une liste de vos tâches de Remaillage.

Request

GET
/openapi/v1/remesh
curl https://api.meshy.ai/openapi/v1/remesh?page_size=10 \
-H "Authorization: Bearer ${YOUR_API_KEY}"

Response

[
  {
    "id": "0193bfc5-ee4f-73f8-8525-44b398884ce9",
    "type": "remesh",
    "model_urls": {
      "glb": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/model.glb?Expires=***",
      "fbx": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/model.fbx?Expires=***",
      "obj": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/model.obj?Expires=***",
      "usdz": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/model.usdz?Expires=***",
      "blend": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/model.blend?Expires=***",
      "stl": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/model.stl?Expires=***"
    },
    "progress": 100,
    "status": "SUCCEEDED",
    "created_at": 1699999999000,
    "started_at": 1700000000000,
    "finished_at": 1700000001000,
    "task_error": null
  }
]

Paramètres

  • Name
    page_num
    Type
    integer
    défaut 1
    Description

    Le numéro de page à renvoyer.

  • Name
    page_size
    Type
    integer
    défaut 10
    Description

    Le nombre de tâches par page, jusqu'à 100.

  • Name
    sort_by
    Type
    string
    Description

    L'ordre de tri.

    Valeurs disponibles :

    • +created_at : du plus ancien au plus récent
    • -created_at : du plus récent au plus ancien

Renvoie

Une liste paginée d'objets de tâche de Remaillage.


GET/openapi/v1/remesh/:id/stream

Diffuser en continu une tâche de Remaillage

Diffuse les mises à jour d'une tâche de Remaillage sous forme de Server-Sent Events (SSE).

Request

GET
/openapi/v1/remesh/a43b5c6d-7e8f-901a-234b-567c890d1e2f/stream
curl -N https://api.meshy.ai/openapi/v1/remesh/a43b5c6d-7e8f-901a-234b-567c890d1e2f/stream \
-H "Authorization: Bearer ${YOUR_API_KEY}"

Response Stream

// Error event example
event: error
data: {
  "status_code": 404,
  "message": "Task not found"
}

// Message event examples illustrate task progress.
// These examples are shortened. Each event holds the full task object.
event: message
data: {
  "id": "0193bfc5-ee4f-73f8-8525-44b398884ce9",
  "progress": 0,
  "status": "PENDING"
}

event: message
data: {
  "id": "0193bfc5-ee4f-73f8-8525-44b398884ce9",
  "type": "remesh",
  "model_urls": {
    "glb": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/model.glb?Expires=***",
    "fbx": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/model.fbx?Expires=***",
    "obj": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/model.obj?Expires=***",
    "usdz": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/model.usdz?Expires=***",
    "blend": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/model.blend?Expires=***",
    "stl": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/model.stl?Expires=***"
  },
  "progress": 100,
  "status": "SUCCEEDED",
  "created_at": 1699999999000,
  "started_at": 1700000000000,
  "finished_at": 1700000001000,
  "task_error": null,
}

Paramètres

  • Name
    id
    Type
    path
    Description

    L'ID de la tâche provenant de la réponse de création.

Retours

Un flux d'objets de tâche de Remaillage sous forme de Server-Sent Events.

Chaque événement contient l'objet de tâche complet, selon le même format que celui retourné par le point de terminaison Get. Tant que la tâche est PENDING ou IN_PROGRESS, ses champs de résultat n'ont pas encore de valeurs.


L'objet tâche Remaillage

Un objet tâche Remaillage décrit un remaillage d'un modèle 3D. Il contient le statut, la progression et les fichiers du modèle lorsque la tâche réussit.

Propriétés

Example Remesh Task Object

{
  "id": "0193bfc5-ee4f-73f8-8525-44b398884ce9",
  "type": "remesh",
  "model_urls": {
      "glb": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/model.glb?Expires=***",
      "fbx": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/model.fbx?Expires=***",
      "obj": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/model.obj?Expires=***",
      "usdz": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/model.usdz?Expires=***",
      "blend": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/model.blend?Expires=***",
      "stl": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/model.stl?Expires=***"
  },
  "progress": 100,
  "status": "SUCCEEDED",
  "preceding_tasks": 0,
  "created_at": 1699999999000,
  "started_at": 1700000000000,
  "finished_at": 1700000001000,
  "task_error": {

    "message": ""

  },

  "consumed_credits": 5
}
  • Name
    id
    Type
    string
    Description

    L'ID de la tâche. Traitez-le comme une chaîne opaque et ne vous fiez pas à son format.

  • Name
    type
    Type
    string
    Description

    Le type de tâche, toujours remesh.

  • Name
    model_urls
    Type
    object
    Description

    URLs de téléchargement pour le modèle remaillé, une par format de fichier. Un format que la tâche n'a pas généré n'a pas de clé, plutôt qu'une chaîne vide.

    • Name
      glb
      Type
      string
      Description

      Le fichier GLB.

    • Name
      fbx
      Type
      string
      Description

      Le fichier FBX.

    • Name
      obj
      Type
      string
      Description

      Le fichier OBJ.

    • Name
      usdz
      Type
      string
      Description

      Le fichier USDZ.

    • Name
      blend
      Type
      string
      Description

      Le fichier Blender.

    • Name
      stl
      Type
      string
      Description

      Le fichier STL.

    • Name
      3mf
      Type
      string
      Description

      Le fichier 3MF. Présent uniquement lorsque target_formats inclut 3mf.

  • Name
    thumbnail_url
    Type
    string
    Description

    URL de téléchargement pour une image d'aperçu du modèle remaillé.

  • Name
    alpha_thumbnail_url
    Type
    string
    Description

    URL de téléchargement pour une version de thumbnail_url avec un fond transparent (RGBA). Présent uniquement lorsque vous avez créé la tâche avec alpha_thumbnail: true et que Meshy a rendu l'aperçu transparent.

  • Name
    progress
    Type
    integer
    Description

    La part de la tâche déjà effectuée, en pourcentage. C'est 0 jusqu'à ce que la tâche démarre et 100 lorsqu'elle réussit.

  • Name
    status
    Type
    string
    Description

    Le statut de la tâche, l'un de PENDING, IN_PROGRESS, SUCCEEDED ou FAILED.

  • Name
    preceding_tasks
    Type
    integer
    Description

    Le nombre de tâches qui précèdent celle-ci dans la file d'attente. La valeur n'est pertinente que tant que la tâche est PENDING.

  • Name
    created_at
    Type
    timestamp
    Description

    Horodatage de création de la tâche, en millisecondes Unix.

  • Name
    started_at
    Type
    timestamp
    Description

    Horodatage de démarrage de la tâche, en millisecondes Unix. C'est 0 jusqu'à ce que la tâche démarre.

  • Name
    finished_at
    Type
    timestamp
    Description

    Horodatage de fin de la tâche, en millisecondes Unix. C'est 0 jusqu'à ce que la tâche se termine.

  • Name
    task_error
    Type
    object
    Description

    Les détails de l'erreur lorsque la tâche échoue. Voir Erreurs.

  • Name
    consumed_credits
    Type
    integer
    Description

    Le nombre de crédits que la tâche a utilisés. Présent lorsque le statut est PENDING, IN_PROGRESS ou SUCCEEDED. C'est 0 pour une tâche FAILED, car Meshy rembourse les crédits lorsqu'une tâche échoue.