Neuvernetzung-API

Die Neuvernetzung-API ermöglicht es Ihnen, bestehende 3D-Modelle, die von anderen Meshy-APIs (wie Bild zu 3D oder Text zu 3D) erzeugt wurden, einer Neuvernetzung zu unterziehen und in verschiedene Formate zu exportieren. Dieser Abschnitt enthält Details zur Verwendung der Neuvernetzung-API.


POST/openapi/v1/remesh

Eine Neuvernetzungsaufgabe erstellen

Dieser Endpunkt erstellt eine neue Neuvernetzungsaufgabe.

Parameter

  • Name
    input_task_id
    Type
    string
    Erforderlich
    Description

    Die ID der abgeschlossenen Bild-zu-3D- oder Text-zu-3D-Aufgabe, die Sie neu vernetzen möchten. Diese Aufgabe muss eine der folgenden sein: Text zu 3D Preview, Text zu 3D Refine, Bild zu 3D oder Neutexturierung. Zudem muss sie den Status SUCCEEDED haben.

  • Name
    model_url
    Type
    string
    Erforderlich
    Description

    Bitte stellen Sie Meshy ein 3D-Modell zur Neuvernetzung über eine öffentlich zugängliche URL oder einen Data URI bereit. Unterstützte Formate: .glb, .gltf, .obj, .fbx, .stl.

    Für Data URIs verwenden Sie den MIME-Typ: application/octet-stream.

  • Name
    target_formats
    Type
    string[]
    Standard ["glb"]
    Description

    Eine Liste von Zielformaten für das neu vernetzte Modell. Wenn nicht angegeben, wird nur GLB generiert.

    Verfügbare Werte: glb, fbx, obj, usdz, blend, stl, 3mf.

  • Name
    topology
    Type
    string
    Standard triangle
    Description

    Geben Sie die topology des generierten Modells an.

    Verfügbare Werte:

    • quad: Erzeugt ein überwiegend aus Quads bestehendes Netz.
    • triangle: Erzeugt ein dezimiertes Dreiecksnetz.
  • Name
    target_polycount
    Type
    integer
    Standard 30,000
    Description

    Geben Sie die Zielanzahl der Polygone im generierten Modell an. Die tatsächliche Anzahl der Polygone kann je nach Komplexität der Geometrie vom Zielwert abweichen.

    Der gültige Wertebereich variiert je nach Nutzerstufe:

    • 100 bis 300.000 (einschließlich)
  • Name
    decimation_mode
    Type
    integer
    Description

    Aktivieren Sie die adaptive Dezimierung durch Festlegen einer Polygonanzahl-Stufe. Wenn gesetzt, wird target_polycount ignoriert.

    Verfügbare Werte:

    • 1: Adaptiv — ultra-hohe Polygonanzahl.
    • 2: Adaptiv — hohe Polygonanzahl.
    • 3: Adaptiv — mittlere Polygonanzahl.
    • 4: Adaptiv — niedrige Polygonanzahl.
  • Name
    resize_height
    Type
    number
    veraltet
    Standard 0
    Description

    Ändert die Größe des Modells auf eine bestimmte Höhe in Metern. Wir empfehlen, stattdessen die dedizierte Resize API zu verwenden.

  • Name
    resize_longest_side
    Type
    number
    veraltet
    Standard 0
    Description

    Ändert die Größe des Modells so, dass die längste Bounding-Box-Dimension dem angegebenen Wert in Metern entspricht. Wir empfehlen, stattdessen die dedizierte Resize API zu verwenden.

  • Name
    auto_size
    Type
    boolean
    veraltet
    Standard false
    Description

    Wenn auf true gesetzt, verwendet der Dienst KI-basierte Bildanalyse, um automatisch die reale Höhe des Objekts zu schätzen und die Größe des Modells entsprechend anzupassen. Wir empfehlen, stattdessen die dedizierte Resize API zu verwenden.

Gilt nur wenn auto_size = true
  • Name
    origin_at
    Type
    string
    veraltet
    Standard bottom
    Description

    Position des Ursprungs. Wir empfehlen, stattdessen die dedizierte Resize API zu verwenden.

    Verfügbare Werte: bottom, center.

  • Name
    convert_format_only
    Type
    boolean
    veraltet
    Description

    Wenn true, ändert der Dienst nur das Format der Eingabemodell-Datei und ignoriert andere Eingaben wie topology, resize_height und target_polycount. Wir empfehlen, stattdessen die dedizierte Convert API zu verwenden.

  • Name
    alpha_thumbnail
    Type
    boolean
    Standard false
    Description

    Wenn auf true gesetzt, rendert die Aufgabe zusätzlich eine Version der Vorschau mit transparentem Hintergrund (RGBA) und gibt sie in der GET-Antwort als alpha_thumbnail_url zurück. Das bestehende Feld thumbnail_url bleibt unverändert.

Rückgabewerte

Die Eigenschaft result der Antwort enthält die id der neu erstellten Neuvernetzungsaufgabe.

Fehlermodi

  • Name
    400 - Bad Request
    Description

    Die Anfrage war nicht akzeptabel. Häufige Ursachen:

    • Fehlender Parameter: Es muss entweder model_url oder input_task_id angegeben werden.
    • Ungültige Eingabeaufgabe: input_task_id muss sich auf eine erfolgreiche Aufgabe eines unterstützten Modells beziehen.
    • Ungültiges Modellformat: model_url verweist auf eine Datei mit nicht unterstützter Erweiterung.
    • Nicht erreichbare URL: model_url konnte nicht herunterladen werden.
    • Ungültige topology: Der Parameter topology ist ungültig.
    • Sich gegenseitig ausschließende Parameter: auto_size und resize_height können nicht beide gesetzt werden.
  • Name
    401 - Unauthorized
    Description

    Die Authentifizierung ist fehlgeschlagen. Bitte überprüfen Sie Ihren API-Schlüssel.

  • Name
    402 - Payment Required
    Description

    Unzureichende Credits, um diese Aufgabe auszuführen.

  • Name
    429 - Too Many Requests
    Description

    Sie haben Ihre Ratenbegrenzung überschritten.

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"
}

GET/openapi/v1/remesh/:id

Einen Neuvernetzungs-Task abrufen

Dieser Endpunkt ruft einen Neuvernetzungs-Task anhand seiner ID ab.

Parameter

  • Name
    id
    Type
    path
    Description

    Die ID des abzurufenden Neuvernetzungs-Tasks.

Rückgabe

Das Remesh-Task-Objekt.

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,
}

DELETE/openapi/v1/remesh/:id

Eine Neuvernetzungsaufgabe löschen

Dieser Endpunkt löscht eine Neuvernetzungsaufgabe dauerhaft, einschließlich aller zugehörigen Modelle und Daten. Diese Aktion ist unumkehrbar.

Pfadparameter

  • Name
    id
    Type
    path
    Description

    Die ID der zu löschenden Neuvernetzungsaufgabe.

Aufgabenstatus

Eine Aufgabe, die sich noch im Status PENDING befindet, wird gelöscht, und die bei der Erstellung verbrauchten Credits werden erstattet.

Eine Aufgabe, die sich bereits IN_PROGRESS befindet, kann nicht gelöscht werden: Die Anfrage wird mit 409 Conflict abgelehnt, und die Aufgabe läuft weiter. Credits für eine Aufgabe, die der Worker bereits gestartet hat, sind nicht erstattungsfähig, sodass ein Löschen mitten im Ablauf Sie sowohl die Credits als auch das Ergebnis kosten würde. Warten Sie, bis sie den Status SUCCEEDED, FAILED oder CANCELED erreicht, und löschen Sie sie dann.

Eine Aufgabe in einem Endzustand (SUCCEEDED, FAILED oder CANCELED) wird ohne Erstattung gelöscht.

Rückgabewerte

Gibt bei Erfolg 200 OK zurück, oder 409 Conflict, wenn sich die Aufgabe im Status IN_PROGRESS befindet.

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 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/remesh

Liste der Neuvernetzungs-Aufgaben abrufen

Dieser Endpunkt ermöglicht es Ihnen, eine Liste von Neuvernetzungs-Aufgaben abzurufen.

Parameter

  • Name
    page_num
    Type
    integer
    Standard 1
    Description

    Seitennummer für die Paginierung.

  • Name
    page_size
    Type
    integer
    Standard 10
    Description

    Begrenzung der Seitengröße. Maximal erlaubt sind 100 Elemente.

  • Name
    sort_by
    Type
    string
    Description

    Feld, nach dem sortiert werden soll.

    Verfügbare Werte:

    • +created_at: Sortierung nach Erstellungszeitpunkt in aufsteigender Reihenfolge.
    • -created_at: Sortierung nach Erstellungszeitpunkt in absteigender Reihenfolge.

Rückgabewerte

Gibt eine paginierte Liste von Neuvernetzungs-Aufgabenobjekten zurück.

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
  }
]

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

Streamen einer Neuvernetzungs-Aufgabe

Dieser Endpunkt streamt Echtzeit-Updates für eine Neuvernetzungs-Aufgabe mithilfe von Server-Sent Events (SSE).

Parameter

  • Name
    id
    Type
    path
    Description

    Eindeutige Kennung der zu streamenden Neuvernetzungs-Aufgabe.

Rückgabewerte

Gibt einen Stream von Neuvernetzungs-Aufgabenobjekten als Server-Sent Events zurück.

Bei Aufgaben mit dem Status PENDING oder IN_PROGRESS enthält der Antwort-Stream nur die notwendigen Felder progress und status.

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.
// For PENDING or IN_PROGRESS tasks, the response stream will not include all fields.
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,
}

Das Remesh-Task-Objekt

Das Remesh-Task-Objekt repräsentiert eine Arbeitseinheit, die Meshy verwendet, um ein bestehendes 3D-Modell neu zu vernetzen und in verschiedene Formate zu exportieren. Das Objekt verfügt über die folgenden Eigenschaften:

Eigenschaften

  • Name
    id
    Type
    string
    Description

    Eindeutige Kennung für den Task. Obwohl wir als Implementierungsdetail eine k-sortierbare UUID für Task-IDs verwenden, sollten Sie keine Annahmen über das Format der ID treffen.

  • Name
    type
    Type
    string
    Description

    Typ des Remesh-Tasks. Der Wert ist remesh.

  • Name
    model_urls
    Type
    object
    Description

    Herunterladbare URL zur texturierten 3D-Modelldatei, die von Meshy generiert wurde. Die Eigenschaft für ein Format wird ausgelassen, wenn das Format nicht generiert wurde, anstatt einen leeren String zurückzugeben.

    • Name
      glb
      Type
      string
      Description

      Herunterladbare URL zur GLB-Datei.

    • Name
      fbx
      Type
      string
      Description

      Herunterladbare URL zur FBX-Datei.

    • Name
      obj
      Type
      string
      Description

      Herunterladbare URL zur OBJ-Datei.

    • Name
      usdz
      Type
      string
      Description

      Herunterladbare URL zur USDZ-Datei.

    • Name
      blend
      Type
      string
      Description

      Herunterladbare URL zur Blender-Datei.

    • Name
      stl
      Type
      string
      Description

      Herunterladbare URL zur STL-Datei.

    • Name
      3mf
      Type
      string
      Description

      Herunterladbare URL zur 3MF-Datei. Nur vorhanden, wenn 3mf über target_formats angefordert wurde.

  • Name
    thumbnail_url
    Type
    string
    Description

    Herunterladbare URL zu einem Vorschaubild, das aus dem neu vernetzten Modell gerendert wurde.

  • Name
    alpha_thumbnail_url
    Type
    string
    Description

    Herunterladbare URL zu einer Version von thumbnail_url mit transparentem Hintergrund (RGBA). Nur vorhanden, wenn der Task mit alpha_thumbnail: true erstellt wurde und die transparente Vorschau erfolgreich gerendert wurde; andernfalls wird dieses Feld ausgelassen.

  • Name
    progress
    Type
    integer
    Description

    Fortschritt des Tasks. Wenn der Task noch nicht gestartet wurde, ist diese Eigenschaft 0. Sobald der Task erfolgreich abgeschlossen wurde, wird dieser Wert 100.

  • Name
    status
    Type
    string
    Description

    Status des Tasks. Mögliche Werte sind PENDING, IN_PROGRESS, SUCCEEDED, FAILED.

  • Name
    preceding_tasks
    Type
    integer
    Description

    Die Anzahl der vorangehenden Tasks.

  • Name
    created_at
    Type
    timestamp
    Description

    Zeitstempel, wann der Task erstellt wurde, in Millisekunden.

  • Name
    started_at
    Type
    timestamp
    Description

    Zeitstempel, wann der Task gestartet wurde, in Millisekunden. Wenn der Task noch nicht gestartet wurde, ist diese Eigenschaft 0.

  • Name
    finished_at
    Type
    timestamp
    Description

    Zeitstempel, wann der Task abgeschlossen wurde, in Millisekunden. Wenn der Task noch nicht abgeschlossen ist, ist diese Eigenschaft 0.

  • Name
    task_error
    Type
    object
    Description

    Fehlerdetails für fehlgeschlagene Tasks. Siehe Fehler für die vollständige Referenz des task_error-Objekts.

  • Name
    consumed_credits
    Type
    integer
    Description

    Die Anzahl der von diesem Task verbrauchten Credits. Vorhanden, wenn der Task-Status PENDING, IN_PROGRESS oder SUCCEEDED ist. Gibt 0 für FAILED-Tasks zurück (Credits werden bei einem Fehlschlag zurückerstattet).

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
}