API de Réparer l'imprimabilité

Réparer un modèle 3D pour l'imprimabilité FDM — corriger les arêtes non-manifold, les faces dégénérées, les trous et d'autres problèmes de topology afin que le maillage soit prêt à être imprimé.


POST/openapi/v1/print/repair

Créer une tâche de réparation de l'imprimabilité

Ce point de terminaison crée une nouvelle tâche de réparation de l'imprimabilité. La tâche exécute une réparation de topology sur un modèle 3D et renvoie une version étanche, prête à être imprimée.

Le format de sortie correspond au format d'entrée. Si vous soumettez un .stl via model_url, le model_urls.stl de la réponse contiendra le maillage réparé et les autres champs de format seront vides. Le chemin input_task_id lit toujours le GLB de la tâche source, donc la sortie est .glb.

Paramètres

  • Name
    model_url
    Type
    string
    Requis
    Description

    URL d'un modèle 3D à réparer. Formats pris en charge : .glb, .gltf, .obj, .fbx, .stl. Taille maximale du fichier : 100 Mo. Doit utiliser http, https, ou une URL data: (les URLs de données contournent les vérifications d'extension).

  • Name
    alpha_thumbnail
    Type
    boolean
    défaut false
    Description

    Lorsqu'il est réglé sur true, la tâche rend également une version à fond transparent (RGBA) de l'aperçu et la renvoie comme alpha_thumbnail_url dans la réponse GET. Le champ thumbnail_url existant reste inchangé.

Retours

La propriété result de la réponse contient l'id de la nouvelle tâche de réparation de l'imprimabilité créée.

Modes d'échec

  • Name
    400 - Bad Request
    Description

    La requête était inacceptable. Causes courantes :

    • Paramètre manquant : ni input_task_id ni model_url n'ont été fournis.
    • UUID invalide : input_task_id n'est pas un UUID valide.
    • URL de modèle invalide : model_url est mal formé, utilise un schéma non pris en charge, ou a une extension de fichier non prise en charge.
    • Fichier de modèle trop grand : le corps de model_url a dépassé 100 Mo.
    • Tâche non réussie : la tâche référencée est toujours en attente, en cours, ou a échoué.
    • GLB manquant : la tâche référencée n'a pas d'asset GLB à réparer.
  • Name
    401 - Unauthorized
    Description

    L'authentification a échoué. Veuillez vérifier votre clé API.

  • Name
    402 - Payment Required
    Description

    Causes courantes :

    • Plan gratuit : la création de tâche nécessite un plan payant. Mettez à niveau sur la page d'abonnement.
    • Crédits insuffisants : la limite de crédits de l'espace de travail a été atteinte.
  • Name
    404 - Not Found
    Description

    La tâche référencée n'existe pas ou est détenue par un autre utilisateur.

  • Name
    429 - Too Many Requests
    Description

    Vous avez dépassé votre quota de tâches en attente ou votre limite de débit.

Request

POST
/openapi/v1/print/repair
# Repair an existing task
curl https://api.meshy.ai/openapi/v1/print/repair \
-X POST \
-H "Authorization: Bearer ${YOUR_API_KEY}" \
-H 'Content-Type: application/json' \
-d '{
    "input_task_id": "018a210d-8ba4-705c-b111-1f1776f7f578"
  }'

# Or repair a model URL directly
curl https://api.meshy.ai/openapi/v1/print/repair \
-X POST \
-H "Authorization: Bearer ${YOUR_API_KEY}" \
-H 'Content-Type: application/json' \
-d '{
    "model_url": "https://example.com/model.stl"
  }'

Response

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

GET/openapi/v1/print/repair/:id

Récupérer une tâche de réparation d'imprimabilité

Ce point de terminaison récupère une tâche de réparation d'imprimabilité par son ID.

Paramètres

  • Name
    id
    Type
    path
    Description

    L'ID de la tâche de réparation d'imprimabilité à récupérer.

Retours

L'Objet de la tâche de réparation d'imprimabilité. Le bloc model_urls est vide jusqu'à ce que la tâche atteigne SUCCEEDED. Seul le champ model_urls correspondant au format d'entrée est rempli.

Requête

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

Réponse

{
  "id": "0193bfc5-ee4f-73f8-8525-44b398884ce9",
  "type": "print-repair",
  "status": "SUCCEEDED",
  "progress": 100,
  "created_at": 1699999999000,
  "started_at": 1700000000000,
  "finished_at": 1700000030000,
  "expires_at": 1715725401000,
  "task_error": null,
  "model_urls": {
    "glb": "",
    "gltf": "",
    "fbx": "",
    "obj": "",
    "stl": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/model.stl?Expires=***",
    "usdz": "",
    "3mf": "",
    "mtl": ""
  },
  "thumbnail_url": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/preview.png?Expires=***",
  "texture_urls": [],
  "consumed_credits": 10
}

DELETE/openapi/v1/print/repair/:id

Supprimer une tâche de Réparer l'imprimabilité

Ce point de terminaison supprime définitivement une tâche de réparer l'imprimabilité et son résultat réparé. Cette action est irréversible.

Paramètres de chemin

  • Name
    id
    Type
    path
    Description

    L'ID de la tâche de réparer l'imprimabilité à supprimer.

Retours

Retourne 200 OK en cas de succès.

Request

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

Response

// Returns 200 Ok on success.

GET/openapi/v1/print/repair

Lister les tâches de Réparer l'imprimabilité

Ce point de terminaison vous permet de récupérer une liste de tâches de réparer l'imprimabilité.

Paramètres

Attributs optionnels

  • Name
    page_num
    Type
    integer
    Description

    Numéro de page pour la pagination. Commence et par défaut à 1.

  • Name
    page_size
    Type
    integer
    Description

    Limite de taille de page. Par défaut à 10 éléments. Maximum autorisé est 50 éléments.

  • Name
    sort_by
    Type
    string
    Description

    Champ pour trier. Valeurs disponibles :

    • +created_at: Trier par ordre croissant de l'heure de création.
    • -created_at: Trier par ordre décroissant de l'heure de création.

Retours

Retourne une liste paginée d'Objets de Tâche de Réparer l'imprimabilité.

Requête

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

Réponse

[
  {
    "id": "0193bfc5-ee4f-73f8-8525-44b398884ce9",
    "type": "print-repair",
    "status": "SUCCEEDED",
    "progress": 100,
    "preceding_tasks": 0,
    "created_at": 1699999999000,
    "started_at": 1700000000000,
    "finished_at": 1700000030000,
    "expires_at": 1715725401000,
    "task_error": null,
    "model_urls": {
      "glb": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/model.glb?Expires=***",
      "gltf": "",
      "fbx": "",
      "obj": "",
      "stl": "",
      "usdz": "",
      "3mf": "",
      "mtl": ""
    },
    "thumbnail_url": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/preview.png?Expires=***",
    "texture_urls": [],
    "consumed_credits": 10
  }
]

GET/openapi/v1/print/repair/:id/stream

Diffuser une tâche de réparation de l'imprimabilité

Ce point de terminaison diffuse des mises à jour en temps réel pour une tâche de réparation de l'imprimabilité en utilisant les Server-Sent Events (SSE).

Paramètres

  • Name
    id
    Type
    path
    Description

    Identifiant unique pour la tâche de réparation de l'imprimabilité à diffuser.

Retours

Retourne un flux d'Objets de Tâche de Réparation de l'Imprimabilité en tant que Server-Sent Events.

Pour les tâches PENDING ou IN_PROGRESS, le flux de réponse inclura uniquement les champs nécessaires progress et status. Le bloc model_urls est envoyé uniquement lorsque la tâche atteint SUCCEEDED.

Request

GET
/openapi/v1/print/repair/a43b5c6d-7e8f-901a-234b-567c890d1e2f/stream
curl -N https://api.meshy.ai/openapi/v1/print/repair/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.
// For PENDING or IN_PROGRESS tasks, the response stream will not include all fields.
event: message
data: {
  "id": "a43b5c6d-7e8f-901a-234b-567c890d1e2f",
  "progress": 0,
  "status": "PENDING"
}

event: message
data: {
  "id": "a43b5c6d-7e8f-901a-234b-567c890d1e2f",
  "type": "print-repair",
  "status": "SUCCEEDED",
  "progress": 100,
  "preceding_tasks": 0,
  "created_at": 1699999999000,
  "started_at": 1700000000000,
  "finished_at": 1700000030000,
  "expires_at": 1715725401000,
  "task_error": null,
  "model_urls": {
    "glb": "https://assets.meshy.ai/***/tasks/a43b5c6d-7e8f-901a-234b-567c890d1e2f/output/model.glb?Expires=***",
    "gltf": "",
    "fbx": "",
    "obj": "",
    "stl": "",
    "usdz": "",
    "3mf": "",
    "mtl": ""
  },
  "thumbnail_url": "https://assets.meshy.ai/***/tasks/a43b5c6d-7e8f-901a-234b-567c890d1e2f/output/preview.png?Expires=***",
  "texture_urls": [],
  "consumed_credits": 10
}

L'objet de la tâche Réparer l'imprimabilité

  • Name
    id
    Type
    string
    Description

    Identifiant unique pour la tâche. Bien que nous utilisions un UUID triable par k pour les identifiants de tâche en tant que détail d'implémentation, vous ne devez pas faire d'hypothèses sur le format de l'identifiant.

  • Name
    type
    Type
    string
    Description

    Type de la tâche de réparation de l'imprimabilité. La valeur est print-repair.

  • Name
    status
    Type
    string
    Description

    Statut de la tâche. Les valeurs possibles sont l'une de PENDING, IN_PROGRESS, SUCCEEDED, FAILED, CANCELED.

  • Name
    progress
    Type
    integer
    Description

    Progression de la tâche. Si la tâche n'est pas encore commencée, cette propriété sera 0. Une fois la tâche réussie, cela deviendra 100.

  • Name
    preceding_tasks
    Type
    integer
    Description

    Le nombre de tâches précédentes.

  • Name
    created_at
    Type
    timestamp
    Description

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

  • Name
    started_at
    Type
    timestamp
    Description

    Horodatage du début de la tâche, en millisecondes. Si la tâche n'est pas encore commencée, cette propriété sera 0.

  • Name
    finished_at
    Type
    timestamp
    Description

    Horodatage de la fin de la tâche, en millisecondes. Si la tâche n'est pas encore terminée, cette propriété sera 0.

  • Name
    expires_at
    Type
    timestamp
    Description

    Horodatage de l'expiration du résultat de la tâche dans le système, en millisecondes. 0 si la tâche n'est pas encore terminée.

  • Name
    task_error
    Type
    object
    Description

    Informations sur l'erreur si la tâche a échoué. Cette propriété est null si la tâche n'a pas échoué. Voir Erreurs pour plus de détails.

    • Name
      message
      Type
      string
      Description

      Message d'erreur décrivant ce qui s'est mal passé.

  • Name
    model_urls
    Type
    object
    Description

    URL téléchargeables vers le modèle 3D réparé. Seul le champ correspondant au format d'entrée est rempli ; les autres champs de format sont des chaînes vides.

    • Name
      glb
      Type
      string
      Description

      URL téléchargeable vers le GLB réparé. Rempli lorsque l'entrée était un GLB ou lorsque input_task_id a été utilisé.

    • Name
      gltf
      Type
      string
      Description

      URL téléchargeable vers le GLTF réparé. Rempli lorsque l'entrée était un téléchargement GLTF.

    • Name
      fbx
      Type
      string
      Description

      URL téléchargeable vers le FBX réparé. Rempli lorsque l'entrée était un téléchargement FBX.

    • Name
      obj
      Type
      string
      Description

      URL téléchargeable vers l'OBJ réparé. Rempli lorsque l'entrée était un téléchargement OBJ.

    • Name
      stl
      Type
      string
      Description

      URL téléchargeable vers le STL réparé. Rempli lorsque l'entrée était un téléchargement STL.

    • Name
      usdz
      Type
      string
      Description

      Réservé pour la sortie USDZ. Toujours une chaîne vide pour les tâches de réparation de l'imprimabilité.

    • Name
      3mf
      Type
      string
      Description

      Réservé pour la sortie 3MF. Toujours une chaîne vide pour les tâches de réparation de l'imprimabilité.

    • Name
      mtl
      Type
      string
      Description

      Réservé pour la sortie MTL. Toujours une chaîne vide pour les tâches de réparation de l'imprimabilité.

  • Name
    thumbnail_url
    Type
    string
    Description

    URL d'une image de prévisualisation rendue à partir du modèle réparé.

  • Name
    alpha_thumbnail_url
    Type
    string
    Description

    URL téléchargeable vers une version à fond transparent (RGBA) de thumbnail_url. Présent uniquement lorsque la tâche a été créée avec alpha_thumbnail: true et que la prévisualisation transparente a été rendue avec succès ; sinon ce champ est omis.

  • Name
    texture_urls
    Type
    array
    Description

    Toujours un tableau vide. La réparation préserve uniquement la géométrie d'entrée et ne refait pas les textures.

  • Name
    consumed_credits
    Type
    integer
    Description

    Le nombre de crédits consommés par cette tâche. 10 une fois que la tâche a atteint SUCCEEDED. Retourne 0 pour les tâches FAILED (les crédits sont remboursés en cas d'échec).

The Repair Printability Task Object

{
  "id": "0193bfc5-ee4f-73f8-8525-44b398884ce9",
  "type": "print-repair",
  "status": "SUCCEEDED",
  "progress": 100,
  "preceding_tasks": 0,
  "created_at": 1699999999000,
  "started_at": 1700000000000,
  "finished_at": 1700000030000,
  "expires_at": 1715725401000,
  "task_error": null,
  "model_urls": {
    "glb": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/model.glb?Expires=***",
    "gltf": "",
    "fbx": "",
    "obj": "",
    "stl": "",
    "usdz": "",
    "3mf": "",
    "mtl": ""
  },
  "thumbnail_url": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/preview.png?Expires=***",
  "texture_urls": [],
  "consumed_credits": 10
}