API Konwertuj
Konwertuj model 3D do innych formatów plików, z zadania Meshy lub z pliku modelu.
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
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ć statusSUCCEEDED.
- 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żyjeinput_task_id.Model musi być plikiem GLB, glTF, OBJ, FBX lub STL o rozmiarze maksymalnie 400 MB z adresu URL
httplubhttps, lub 100 MB jako Data URI. Dla Data URI użyj typu MIMEapplication/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:
glbfbxobjusdzblendstl3mf
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, aniinput_task_id. - Brakujące
target_formats:target_formatsjest nieobecne lub nie zawiera żadnego formatu. - Nieprawidłowe zadanie wejściowe:
input_task_idnie jest udanym zadaniem API zawierającym plik modelu. - Nieprawidłowy format modelu: Plik
model_urlma nieobsługiwane rozszerzenie. - Niedostępny URL: Meshy nie może pobrać pliku z
model_url. - Plik modelu zbyt duży: Plik
model_urlprzekracza 400 MB z adresu URLhttplubhttps, lub przekracza 100 MB jako Data URI. - Zbyt wiele ścianek: Plik
model_urlprzekracza 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_urlto ASCII FBX przekraczający 100 MB. Wyślij go jako binarny FBX lub GLB. - Nieodczytywalny plik modelu: Plik
model_urlprzekracza 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_urlprzekracza 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.
- Brakujący parametr: Nie wysłano ani
- 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_idto model płaskorzeźby, którego ten punkt końcowy nie może konwertować. Komunikat toThis model type does not support this operation. Wyślij inny model.
- Name
404 - Not Found- Description
input_task_idnie 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.
Pobierz zadanie Convert
Zwraca zadanie Convert na podstawie jego ID.
Request
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
Usuń zadanie Convert
Trwale usuwa zadanie Convert, wraz z jego modelami i danymi. Nie możesz cofnąć usunięcia.
Request
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.
Lista zadań konwersji
Zwraca listę Twoich zadań konwersji.
Request
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óci400.
- 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.
Strumieniuj zadanie Konwertuj
Strumieniuje aktualizacje zadania Konwertuj jako Server-Sent Events (SSE).
Request
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, i100, gdy zakończy się powodzeniem.
- Name
- status
- Type
- string
- Description
Status zadania, jeden z:
PENDING,IN_PROGRESS,SUCCEEDED,FAILEDlubCANCELED.
- 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 URLmetallic,roughness,normal,emissionimetallic_roughness. Wynosinull, 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
1dla zadania Convert. Wynosi0dla zadaniaFAILED.