lowpoly zostanie wycofany 30 paź 2026. Zmień model przed tymi datami, aby uniknąć błędów żądań. Zobacz wszystkie wycofania

API Konwertuj

Konwertuj model 3D do innych formatów plików, z zadania Meshy lub z pliku modelu.


POST/openapi/v1/convert

Utwórz zadanie Konwertuj

Tworzy zadanie Konwertuj. Zadanie jest wykonywane w tle. Informacje o tym, jak długo zwykle trwa zadanie, znajdziesz w sekcji Czasy przetwarzania.

Request

POST
/openapi/v1/convert
curl https://api.meshy.ai/openapi/v1/convert \
-X POST \
-H "Authorization: Bearer ${YOUR_API_KEY}" \
-H 'Content-Type: application/json' \
-d '{
    "input_task_id": "018a210d-8ba4-705c-b111-1f1776f7f578",
    "target_formats": ["fbx", "stl"]
  }'

Response

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

Parametry

  • Name
    input_task_id
    Type
    string
    Wymagane
    Description

    Wymagane, chyba że wyślesz model_url. ID zadania, które wygenerowało model 3D, na przykład zadania Tekst na 3D, Obraz na 3D, Remesh, Zmień rozmiar lub Reteksturowanie. Zadanie musi pochodzić z API i mieć status SUCCEEDED.

  • Name
    model_url
    Type
    string
    Wymagane
    Description

    Wymagane, chyba że wyślesz input_task_id. Model do konwersji, jako publiczny URL lub Data URI. Jeśli wyślesz oba, Meshy użyje input_task_id.

    Model musi być plikiem GLB, glTF, OBJ, FBX lub STL o rozmiarze maksymalnie 400 MB z adresu URL http lub https, lub 100 MB jako Data URI. Dla Data URI użyj typu MIME application/octet-stream.

    Plik przekraczający 100 MB musi też spełniać następujące zasady:

    • Plik GLB, glTF, FBX lub OBJ może mieć maksymalnie 10 000 000 ścianek. Meshy liczy ścianki jako trójkąty, więc czworokąt liczy się jako 2, a siatka narysowana więcej niż raz liczy się raz na kopię.
    • Plik FBX musi być binarnym FBX w wersji 7.1 lub nowszej.
    • Plik GLB lub glTF nie może używać kompresji Draco.
  • Name
    target_formats
    Type
    string[]
    Wymagane
    Description

    Formaty plików do wygenerowania. Podaj przynajmniej jeden. Brakująca lub pusta lista zwraca 400.

    Dostępne wartości:

    • glb
    • fbx
    • obj
    • usdz
    • blend
    • stl
    • 3mf

Zwraca

Pole result odpowiedzi zawiera ID nowego zadania Konwertuj.

Tryby błędów

  • Name
    400 - Bad Request
    Description

    Żądanie nie może zostać wykonane. Komunikat błędu wskazuje, jaki problem został znaleziony. Na przykład:

    • Brakujący parametr: Nie wysłano ani model_url, ani input_task_id.
    • Brakujące target_formats: target_formats jest nieobecne lub nie zawiera żadnego formatu.
    • Nieprawidłowe zadanie wejściowe: input_task_id nie jest udanym zadaniem API zawierającym plik modelu.
    • Nieprawidłowy format modelu: Plik model_url ma nieobsługiwane rozszerzenie.
    • Niedostępny URL: Meshy nie może pobrać pliku z model_url.
    • Plik modelu zbyt duży: Plik model_url przekracza 400 MB z adresu URL http lub https, lub przekracza 100 MB jako Data URI.
    • Zbyt wiele ścianek: Plik model_url przekracza 100 MB i ma więcej niż 10 000 000 ścianek. Zmniejsz liczbę ścianek, a następnie wyślij plik ponownie.
    • ASCII FBX powyżej 100 MB: Plik model_url to ASCII FBX przekraczający 100 MB. Wyślij go jako binarny FBX lub GLB.
    • Nieodczytywalny plik modelu: Plik model_url przekracza 100 MB, a Meshy nie może odczytać jego nagłówka. Na przykład jest to GLB lub glTF skompresowany Draco, lub binarny FBX starszy niż 7.1.
    • Nagłówek modelu zbyt złożony: Plik model_url przekracza 100 MB, a jego nagłówek ma zbyt wiele siatek, węzłów lub rekordów do sprawdzenia. Zmniejsz liczbę obiektów w pliku, a następnie wyślij go ponownie.

    Popraw żądanie, a następnie wyślij je ponownie. Zobacz Błędy.

  • Name
    401 - Unauthorized
    Description

    Brak klucza API lub jest on nieprawidłowy. Sprawdź nagłówek Authorization.

  • Name
    402 - Payment Required
    Description

    Na przykład:

    • Niewystarczające kredyty: Konto nie ma wystarczającej liczby kredytów na to zadanie lub konto osiągnęło limit kredytów. Sprawdź saldo kredytów, a następnie spróbuj ponownie.
    • Plan darmowy: Utworzenie zadania wymaga płatnego planu. Zaktualizuj swój plan w ustawieniach subskrypcji, a następnie spróbuj ponownie.
  • Name
    403 - Forbidden
    Description

    input_task_id to model płaskorzeźby, którego ten punkt końcowy nie może konwertować. Komunikat to This model type does not support this operation. Wyślij inny model.

  • Name
    404 - Not Found
    Description

    input_task_id nie pasuje do żadnego z Twoich zadań. Sprawdź ID zadania, a następnie wyślij żądanie ponownie.

  • Name
    429 - Too Many Requests
    Description

    Przekroczono limit szybkości. Poczekaj, a następnie spróbuj ponownie. Zobacz Limity szybkości.


GET/openapi/v1/convert/:id

Pobierz zadanie Convert

Zwraca zadanie Convert na podstawie jego ID.

Request

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

Response

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

Parametry

  • Name
    id
    Type
    path
    Description

    ID zadania z odpowiedzi tworzącej zadanie.

Zwraca

Obiekt zadania Convert.


DELETE/openapi/v1/convert/:id

Usuń zadanie Convert

Trwale usuwa zadanie Convert, wraz z jego modelami i danymi. Nie możesz cofnąć usunięcia.

Request

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

Parametry ścieżki

  • Name
    id
    Type
    path
    Description

    ID zadania do usunięcia.

Status zadania

Usunięcie zadania o statusie PENDING zwraca kredyty użyte przy jego tworzeniu.

Zadania o statusie IN_PROGRESS nie można usunąć. Żądanie zwraca 409 Conflict, a zadanie kontynuuje działanie. Meshy nie zwraca kredytów za zadanie, które już się rozpoczęło, więc usunięcie go kosztowałoby Cię zarówno kredyty, jak i wynik. Poczekaj, aż osiągnie status SUCCEEDED, FAILED lub CANCELED, a następnie je usuń.

Usunięcie zadania w statusie końcowym (SUCCEEDED, FAILED lub CANCELED) nie zwraca jego kredytów.

Zwraca

200 OK, gdy zadanie zostało usunięte, lub 409 Conflict, gdy zadanie ma status IN_PROGRESS.


GET/openapi/v1/convert

Lista zadań konwersji

Zwraca listę Twoich zadań konwersji.

Request

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

Response

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

Parametry

  • Name
    page_num
    Type
    integer
    domyślne 1
    Description

    Numer strony do zwrócenia, maksymalnie 255. Większa wartość zwróci 400.

  • Name
    page_size
    Type
    integer
    domyślne 10
    Description

    Liczba zadań na stronę, maksymalnie 100.

  • Name
    sort_by
    Type
    string
    Description

    Kolejność sortowania.

    Dostępne wartości:

    • +created_at: od najstarszych
    • -created_at: od najnowszych

Zwracane dane

Stronicowana lista obiektów zadania konwersji.


GET/openapi/v1/convert/:id/stream

Strumieniuj zadanie Konwertuj

Strumieniuje aktualizacje zadania Konwertuj jako Server-Sent Events (SSE).

Request

GET
/openapi/v1/convert/:id/stream
curl -N https://api.meshy.ai/openapi/v1/convert/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": "convert",
  "model_urls": {
    "fbx": "https://assets.meshy.ai/.../model.fbx?Expires=...",
    "stl": "https://assets.meshy.ai/.../model.stl?Expires=..."
  },
  "progress": 100,
  "status": "SUCCEEDED",
  "created_at": 1699999999000,
  "started_at": 1700000000000,
  "finished_at": 1700000001000,
  "task_error": null,
  "consumed_credits": 1
}

Parametry

  • Name
    id
    Type
    path
    Description

    ID zadania z odpowiedzi tworzącej.

Zwraca

Strumień obiektów zadania Konwertuj jako Server-Sent Events.

Każde zdarzenie zawiera pełny obiekt zadania, w takim samym kształcie, jaki zwraca punkt końcowy Get. Gdy zadanie ma status PENDING lub IN_PROGRESS, jego pola wynikowe nie mają jeszcze wartości.


Obiekt zadania Convert

Obiekt zadania Convert opisuje jedną konwersję formatu modelu 3D. Zawiera status, progress oraz pliki modelu, gdy zadanie zakończy się powodzeniem.

Właściwości

  • Name
    id
    Type
    string
    Description

    ID zadania. Traktuj je jako nieprzezroczysty ciąg znaków i nie polegaj na jego formacie.

  • Name
    type
    Type
    string
    Description

    Typ zadania, zawsze convert.

  • Name
    model_urls
    Type
    object
    Description

    Adresy URL do pobrania przekonwertowanego modelu, po jednym dla każdego formatu pliku. Adresy URL mają tylko formaty znajdujące się w target_formats. Format, o który nie poprosiłeś, nie ma klucza, zamiast pustego ciągu znaków.

  • Name
    progress
    Type
    integer
    Description

    Ile zadania zostało wykonane, w procentach. Wynosi 0, dopóki zadanie się nie rozpocznie, i 100, gdy zakończy się powodzeniem.

  • Name
    status
    Type
    string
    Description

    Status zadania, jeden z: PENDING, IN_PROGRESS, SUCCEEDED, FAILED lub CANCELED.

  • Name
    preceding_tasks
    Type
    integer
    Description

    Liczba zadań znajdujących się przed tym w kolejce. Wartość ma znaczenie tylko wtedy, gdy zadanie ma status PENDING.

  • Name
    created_at
    Type
    timestamp
    Description

    Czas utworzenia zadania, w milisekundach Unix.

  • Name
    started_at
    Type
    timestamp
    Description

    Czas rozpoczęcia zadania, w milisekundach Unix. Wynosi 0, dopóki zadanie się nie rozpocznie.

  • Name
    finished_at
    Type
    timestamp
    Description

    Czas zakończenia zadania, w milisekundach Unix. Wynosi 0, dopóki zadanie się nie zakończy.

  • Name
    expires_at
    Type
    timestamp
    Description

    Czas wygaśnięcia adresów URL do pobrania zadania, w milisekundach Unix. Wynosi 0, dopóki zadanie się nie zakończy.

  • Name
    texture_urls
    Type
    array
    Description

    Adresy URL do pobrania map tekstur modelu, gdy zadanie zakończy się powodzeniem: tablica obiektów, po jednym dla każdego zestawu tekstur. Każdy obiekt ma adres URL base_color, a także może mieć adresy URL metallic, roughness, normal, emission i metallic_roughness. Wynosi null, dopóki zadanie nie zakończy się powodzeniem, i jest pustą tablicą, gdy model nie ma map tekstur.

  • Name
    task_error
    Type
    object
    Description

    Szczegóły błędu, gdy zadanie zakończy się niepowodzeniem. Zobacz Błędy.

  • Name
    consumed_credits
    Type
    integer
    Description

    Liczba kredytów zużytych przez zadanie, która wynosi 1 dla zadania Convert. Wynosi 0 dla zadania FAILED.