API Redimensionner

L'API Redimensionner vous permet de redimensionner des modèles 3D existants aux dimensions réelles. Vous pouvez spécifier une hauteur exacte, une contrainte sur le côté le plus long, ou laisser l'IA estimer automatiquement la taille appropriée.


POST/openapi/v1/resize

Créer une tâche de redimensionnement

Ce point de terminaison crée une nouvelle tâche de redimensionnement.

Paramètres

  • Name
    input_task_id
    Type
    string
    Requis
    Description

    L'ID d'une tâche Meshy terminée dont vous souhaitez redimensionner le modèle. La tâche doit avoir un statut SUCCEEDED. Le format de sortie sera GLB.

  • Name
    model_url
    Type
    string
    Requis
    Description

    Une URL accessible publiquement ou une Data URI pointant vers un fichier de modèle 3D. Formats pris en charge : .glb, .gltf, .obj, .fbx, .stl. Pour les Data URI, utilisez le MIME type : application/octet-stream. Le format de sortie conservera le format d'origine du modèle d'entrée.

  • Name
    resize_height
    Type
    number
    Description

    Redimensionne le modèle à une hauteur spécifique mesurée en mètres.

  • Name
    resize_longest_side
    Type
    number
    Description

    Redimensionne le modèle de sorte que son côté le plus long corresponde à cette valeur, mesurée en mètres. Le rapport d'aspect est préservé.

  • Name
    auto_size
    Type
    boolean
    Description

    Lorsque défini sur true, le service utilise la vision par IA pour estimer automatiquement la hauteur réelle de l'objet et redimensionner le modèle en conséquence. L'origine sera par défaut bottom sauf si origin_at est explicitement défini.

  • Name
    origin_at
    Type
    string
    défaut bottom
    Description

    Position de l'origine après le redimensionnement.

    Valeurs disponibles : bottom, center.

Retours

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

Modes d'échec

  • 400 - Bad Request

La requête était inacceptable. Causes courantes :

  • Paramètre manquant : model_url ou input_task_id doit être fourni.
  • Mode de redimensionnement manquant : Au moins l'un de resize_height, resize_longest_side, ou auto_size doit être spécifié.
  • Paramètres mutuellement exclusifs : resize_height, resize_longest_side, et auto_size ne peuvent pas être combinés.
  • Tâche d'entrée invalide : input_task_id doit faire référence à une tâche réussie.
  • Format de modèle invalide : model_url pointe vers un fichier avec une extension non prise en charge.
  • URL inaccessible : model_url n'a pas pu être téléchargé.
  • 401 - Unauthorized

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

  • 402 - Payment Required

Crédits insuffisants pour effectuer cette tâche.

  • 429 - Too Many Requests

Vous avez dépassé votre limite de débit.

Request

POST
/openapi/v1/resize
# Simple: resize to a specific height
curl https://api.meshy.ai/openapi/v1/resize \
-X POST \
-H "Authorization: Bearer ${YOUR_API_KEY}" \
-H 'Content-Type: application/json' \
-d '{
    "input_task_id": "018a210d-8ba4-705c-b111-1f1776f7f578",
    "resize_height": 1.8
  }'

# Advanced: resize longest side with custom origin
curl https://api.meshy.ai/openapi/v1/resize \
-X POST \
-H "Authorization: Bearer ${YOUR_API_KEY}" \
-H 'Content-Type: application/json' \
-d '{
    "model_url": "https://example.com/model.glb",
    "resize_longest_side": 2.0,
    "origin_at": "center"
  }'

Response

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

GET/openapi/v1/resize/:id

Récupérer une tâche de redimensionnement

Ce point de terminaison récupère une tâche de redimensionnement par son ID.

Paramètres

  • Name
    id
    Type
    path
    Description

    L'ID de la tâche de redimensionnement à récupérer.

Retours

L'objet de la tâche de redimensionnement.

Request

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

Response

{
  "id": "0193bfc5-ee4f-73f8-8525-44b398884ce9",
  "type": "resize",
  "model_urls": {
      "glb": "https://assets.meshy.ai/.../model.glb?Expires=..."
  },
  "progress": 100,
  "status": "SUCCEEDED",
  "created_at": 1699999999000,
  "started_at": 1700000000000,
  "finished_at": 1700000001000,
  "task_error": null,
  "consumed_credits": 1
}

DELETE/openapi/v1/resize/:id

Supprimer une tâche de redimensionnement

Ce point de terminaison supprime définitivement une tâche de redimensionnement, y compris tous les modèles et données associés. Cette action est irréversible.

Paramètres de chemin

  • Name
    id
    Type
    path
    Description

    L'ID de la tâche de redimensionnement à supprimer.

Statut de la tâche

Une tâche encore PENDING est supprimée et les crédits consommés au moment de la création sont remboursés.

Une tâche déjà IN_PROGRESS ne peut pas être supprimée : la requête est rejetée avec 409 Conflict et la tâche continue de s'exécuter. Les crédits d'une tâche que le worker a déjà commencée ne sont pas remboursables, donc la supprimer en cours d'exécution vous ferait perdre à la fois les crédits et le résultat. Attendez qu'elle atteigne l'état SUCCEEDED, FAILED ou CANCELED, puis supprimez-la.

Une tâche dans un état terminal (SUCCEEDED, FAILED ou CANCELED) est supprimée sans remboursement.

Retours

Retourne 200 OK en cas de succès, ou 409 Conflict lorsque la tâche est IN_PROGRESS.

Request

DELETE
/openapi/v1/resize/:id
curl --request DELETE \
  --url https://api.meshy.ai/openapi/v1/resize/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 is left 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."
}

GET/openapi/v1/resize

Lister les tâches de redimensionnement

Ce point de terminaison vous permet de récupérer une liste de tâches de redimensionnement.

Paramètres

  • Name
    page_num
    Type
    integer
    défaut 1
    Description

    Numéro de page pour la pagination.

  • Name
    page_size
    Type
    integer
    défaut 10
    Description

    Limite de taille de page. Le maximum autorisé est de 100 éléments.

  • Name
    sort_by
    Type
    string
    Description

    Champ à utiliser pour le tri. Valeurs disponibles :

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

Retours

Renvoie une liste paginée d'Objets de tâche de redimensionnement.

Request

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

Response

[
  {
    "id": "0193bfc5-ee4f-73f8-8525-44b398884ce9",
    "type": "resize",
    "model_urls": {
      "glb": "https://assets.meshy.ai/.../model.glb?Expires=..."
    },
    "progress": 100,
    "status": "SUCCEEDED",
    "created_at": 1699999999000,
    "started_at": 1700000000000,
    "finished_at": 1700000001000,
    "task_error": null,
    "consumed_credits": 1
  }
]

GET/openapi/v1/resize/:id/stream

Diffuser une tâche de redimensionnement en flux

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

Paramètres

  • Name
    id
    Type
    path
    Description

    Identifiant unique de la tâche de redimensionnement à diffuser.

Retours

Renvoie un flux d'objets de tâche de redimensionnement sous forme de Server-Sent Events.

Pour les tâches PENDING ou IN_PROGRESS, le flux de réponse n'inclura que les champs progress et status nécessaires.

Request

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

Response Stream

// Message event examples illustrate task progress.
event: message
data: {
  "id": "0193bfc5-ee4f-73f8-8525-44b398884ce9",
  "progress": 0,
  "status": "PENDING"
}

event: message
data: {
  "id": "0193bfc5-ee4f-73f8-8525-44b398884ce9",
  "type": "resize",
  "model_urls": {
    "glb": "https://assets.meshy.ai/.../model.glb?Expires=..."
  },
  "progress": 100,
  "status": "SUCCEEDED",
  "created_at": 1699999999000,
  "started_at": 1700000000000,
  "finished_at": 1700000001000,
  "task_error": null,
  "consumed_credits": 1
}

L'objet Resize Task

L'objet Resize Task représente une tâche de redimensionnement.

Propriétés

  • id · string

Identifiant unique de la tâche.

  • type · string

Type de la tâche. La valeur est resize.

  • model_urls · object

URL téléchargeable pour le fichier de modèle redimensionné. Lors de l'utilisation d'input_task_id, la sortie est toujours au format GLB. Lors de l'utilisation de model_url, la sortie conserve le format d'origine.

  • progress · integer

progress de la tâche (0-100).

  • status · string

Statut de la tâche. Valeurs possibles : PENDING, IN_PROGRESS, SUCCEEDED, FAILED, CANCELED.

  • preceding_tasks · integer

Le nombre de tâches précédentes. Pertinent uniquement lorsque le statut est PENDING.

  • created_at · timestamp

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

  • started_at · timestamp

horodatage du démarrage de la tâche, en millisecondes. 0 si elle n'a pas démarré.

  • finished_at · timestamp

horodatage de la fin de la tâche, en millisecondes. 0 si elle n'est pas terminée.

  • task_error · object

Objet d'erreur si la tâche a échoué. Voir Erreurs pour plus de détails.

  • consumed_credits · integer

Le nombre de crédits consommés par cette tâche (1 crédit par tâche de redimensionnement). Retourne 0 pour les tâches FAILED.