Creative Lab Collapsible Fidget API
Zamień zdjęcie w składaną zabawkę fidget typu print-in-place za pomocą jednego zadania. Sylwetka obiektu zamienia się w zagnieżdżone koncentryczne pierścienie, które składają się płasko i ponownie się rozciągają. Zabawka drukowana jest w jednym kawałku, bez konieczności montażu.
POST /openapi/creative-lab/fidget-collapsible/v1
W przeciwieństwie do innych endpointów Creative Lab, ten nie ma oddzielnych etapów prototypu i budowy. Nie ma obrazów kandydujących do wyboru, więc jedno zadanie zamienia zdjęcie w model 3D.
Żądanie nie zawiera też ustawień geometrii. Aplikacja webowa pozwala ustawić rozmiar, liczbę warstw, szerokość przerwy, grubość ścianki, głębokość wytłoczenia oraz wybrzuszenie. Każde zadanie API korzysta z tych samych wartości domyślnych.
Utwórz zadanie Collapsible Fidget
Generuje model collapsible fidget na podstawie zdjęcia. Pola zadania opisano w Obiekcie zadania Collapsible Fidget.
Każde zadanie kosztuje 6 kredytów i wymaga płatnego planu.
Request
curl https://api.meshy.ai/openapi/creative-lab/fidget-collapsible/v1 \
-X POST \
-H "Authorization: Bearer ${YOUR_API_KEY}" \
-H 'Content-Type: application/json' \
-d '{
"image_url": "<your publicly accessible image url or base64-encoded data URI>"
}'
Response
{
"result": "018a210d-8ba4-705c-b111-1f1776f7f578"
}
Parametry
- Name
- image_url
- Type
- string
- Wymagane
- Description
Zdjęcie, które ma zostać zamienione w collapsible fidget, podane jako publicznie dostępny URL lub Data URI (
data:image/jpeg;base64,<zakodowane w base64 dane obrazu>).Obraz musi być plikiem JPG, JPEG, PNG lub WebP o rozmiarze maksymalnie 20 MB.
Sylwetka obiektu staje się pierścieniami, dlatego najlepiej sprawdza się obiekt z jednym wyraźnym, zamkniętym konturem. Zbyt rozbudowane tło, kilka oddzielnych obiektów lub bardzo cienkie kształty mogą pozostawić zbyt mało miejsca na zagnieżdżone ścianki. W takim przypadku zadanie kończy się niepowodzeniem.
- Name
- name
- Type
- string
- Description
Nazwa zadania, maksymalnie 100 znaków. Jest zwracana w polu
namezadania, a Meshy nie grawiruje jej na modelu. Dłuższa nazwa zwraca400.
Zwraca
Pole result zawiera ID nowego zadania. Pobierz zadanie lub przesyłaj je strumieniowo, aż status przyjmie wartość SUCCEEDED. Następnie pobierz plik STL gotowy do druku z model_urls.stl. Aby najpierw podejrzeć model, pobierz plik GLB z model_urls.glb, jeśli jest dostępny.
Tryby niepowodzenia
- Name
400 - Bad Request- Description
Żądanie nie może zostać wykonane. Na przykład:
- Brakuje
image_url. - Obraz nie jest plikiem JPG, JPEG, PNG ani WebP.
- Obraz jest zbyt mały, przekracza 20 MB lub przekracza maksymalną liczbę pikseli.
- Meshy nie może pobrać obrazu, na przykład ponieważ URL zwraca
404lub upłynął limit czasu. - Data URI nie zawiera prawidłowego kodu base64.
- Obraz został oznaczony jako NSFW.
Komunikat błędu wskazuje, jaki problem wykryto. Popraw żądanie i wyślij je ponownie.
- Brakuje
- Name
401 - Unauthorized- Description
Brakuje klucza API lub jest on nieprawidłowy. Sprawdź nagłówek
Authorization.
- Name
402 - Payment Required- Description
Zastosowanie ma jedna z poniższych sytuacji:
- Konto nie ma wystarczającej liczby kredytów.
- Klucz API, obszar roboczy lub członek zespołu osiągnął swój limit kredytów.
- Konto korzysta z darmowego planu.
Sprawdź swoje kredyty i plan, a następnie spróbuj ponownie.
- Name
403 - Forbidden- Description
Twój zespół ma włączone IP Filtering, a Meshy oznaczyło obraz jako naruszający prawa własności intelektualnej osób trzecich. Wyślij obraz, do którego masz prawa.
- Name
429 - Too Many Requests- Description
Osiągnięto jeden z poniższych limitów:
- Wysłano więcej żądań, niż pozwala na to limit szybkości. Odczekaj kilka sekund, a następnie spróbuj ponownie. Zobacz Limity szybkości.
- Zbyt wiele Twoich zadań oczekuje w kolejce lub jest w trakcie wykonywania. Poczekaj, aż niektóre się zakończą, a następnie spróbuj ponownie.
- Przy planie bez limitu, ale bez pozostałych kredytów, osiągnięto liczbę zadań, które mogą działać bez kredytów. Poczekaj, aż zadanie się zakończy, lub dodaj kredyty.
- Name
500 - Internal Server Error- Description
Meshy napotkało błąd serwera, na przykład dlatego, że nie udało się przeprowadzić sprawdzenia własności intelektualnej obrazu. Meshy nie tworzy zadania i zwraca wszelkie pobrane kredyty. Spróbuj ponownie wysłać żądanie.
Pobierz zadanie Collapsible Fidget
Zwraca zadanie Collapsible Fidget. Zwracane są wyłącznie zadania utworzone za pomocą tego punktu końcowego. Zadanie utworzone za pomocą innego punktu końcowego Creative Lab lub w aplikacji webowej zwraca 404.
Pola opisano w sekcji Obiekt zadania Collapsible Fidget.
Request
curl https://api.meshy.ai/openapi/creative-lab/fidget-collapsible/v1/018a210d-8ba4-705c-b111-1f1776f7f578 \
-H "Authorization: Bearer ${YOUR_API_KEY}"
Response
{
"id": "018a210d-8ba4-705c-b111-1f1776f7f578",
"type": "creative-lab-fidget-collapsible",
"name": "",
"status": "SUCCEEDED",
"progress": 100,
"created_at": 1729123456000,
"started_at": 1729123460000,
"finished_at": 1729123512000,
"expires_at": 1729382712000,
"preceding_tasks": 0,
"task_error": null,
"consumed_credits": 6,
"model_urls": {
"glb": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/model.glb?Expires=***",
"stl": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/model.stl?Expires=***"
}
}
Parametry
- Name
- id
- Type
- path
- Description
ID zadania z odpowiedzi tworzącej zadanie.
Zwraca
Obiekt zadania Collapsible Fidget.
Przypadki niepowodzenia
- Name
400 - Bad Request- Description
idnie jest prawidłowym ID zadania. Wyślij IDresultz odpowiedzi tworzącej zadanie.
- Name
403 - Forbidden- Description
Twój zespół ma włączone Filtrowanie IP, a Meshy oznaczyło obraz zadania jako naruszający prawa własności intelektualnej osób trzecich. Zespoły korzystające z planu Enterprise nie otrzymują tego błędu. Utwórz zadanie na podstawie obrazu, do którego masz prawa użytkowania.
- Name
404 - Not Found- Description
Żadne zadanie Collapsible Fidget o tym ID nie należy do Twojego konta lub zadanie nie zostało utworzone za pomocą tego punktu końcowego. Sprawdź ID.
- Name
500 - Internal Server Error- Description
Meshy nie mogło przeprowadzić weryfikacji praw własności intelektualnej. Ponów żądanie.
Usuń zadanie Collapsible Fidget
Anuluje zadanie Collapsible Fidget. Anulowanie zadania o statusie PENDING zwraca jego kredyty. Zadanie o statusie IN_PROGRESS jest anulowane bez zwrotu, ponieważ worker już je rozpoczął. Zadania o statusie końcowym (SUCCEEDED, FAILED lub CANCELED) nie można anulować.
Request
curl --request DELETE \
--url https://api.meshy.ai/openapi/creative-lab/fidget-collapsible/v1/018a210d-8ba4-705c-b111-1f1776f7f578 \
-H "Authorization: Bearer ${YOUR_API_KEY}"
Response
// Returns 204 No Content on success (empty body).
Parametry ścieżki
- Name
- id
- Type
- path
- Description
ID zadania do anulowania.
Zwraca
204 No Content z pustym ciałem odpowiedzi.
Tryby błędów
- Name
400 - Bad Request- Description
Zachodzi jeden z poniższych przypadków:
idnie jest prawidłowym ID zadania. Wyślij IDresultz odpowiedzi tworzenia.- Zadanie ma już status końcowy (
SUCCEEDED,FAILEDlubCANCELED), więc nie można go anulować.
- Name
404 - Not Found- Description
Żadne zadanie Collapsible Fidget o tym ID nie należy do Twojego konta lub zadanie nie zostało utworzone za pomocą tego punktu końcowego. Sprawdź ID.
Strumieniuj zadanie Collapsible Fidget
Strumieniuje aktualizacje zadania Collapsible Fidget jako zdarzenia Server-Sent Events (SSE). Jeśli zadanie nie istnieje lub nie zostało utworzone za pomocą tego punktu końcowego, strumień wysyła jedno zdarzenie error ze status_code: 404 i zostaje zamknięty.
Request
curl -N https://api.meshy.ai/openapi/creative-lab/fidget-collapsible/v1/018a210d-8ba4-705c-b111-1f1776f7f578/stream \
-H "Authorization: Bearer ${YOUR_API_KEY}"
Response Stream
// Error event example (task not found, or not created through this endpoint)
event: error
data: {
"status_code": 404,
"message": "Task not found"
}
// Message event examples illustrate task progress.
// Every frame is the full task object; fields not yet populated are null / empty.
// The following PENDING frame is shortened to the fields that change.
event: message
data: {
"id": "018a210d-8ba4-705c-b111-1f1776f7f578",
"progress": 0,
"status": "PENDING"
}
event: message
data: {
"id": "018a210d-8ba4-705c-b111-1f1776f7f578",
"type": "creative-lab-fidget-collapsible",
"status": "SUCCEEDED",
"progress": 100,
"created_at": 1729123456000,
"started_at": 1729123460000,
"finished_at": 1729123512000,
"expires_at": 1729382712000,
"task_error": null,
"consumed_credits": 6,
"model_urls": {
"glb": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/model.glb?Expires=***",
"stl": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/model.stl?Expires=***"
}
}
Parametry
- Name
- id
- Type
- path
- Description
ID zadania z odpowiedzi utworzenia.
Zwraca
Strumień obiektów zadania Collapsible Fidget. Każde zdarzenie zawiera pełny obiekt zadania, dokładnie taki, jaki zwraca Pobierz zadanie Collapsible Fidget. Dopóki zadanie ma status PENDING lub IN_PROGRESS, jego pola wyjściowe są wciąż puste (null, [] lub {}), a finished_at ma wartość null.
Jeśli IP Filtering zablokuje wynik zadania, strumień wysyła w jego miejsce jedno zdarzenie error, zawierające status_code, który zostałby zwrócony przez żądanie get.
Listowanie zadań Collapsible Fidget
Zwraca Twoje zadania Collapsible Fidget, stronami po kolei. Uwzględniane są tylko zadania utworzone za pomocą tego punktu końcowego.
Request
curl https://api.meshy.ai/openapi/creative-lab/fidget-collapsible/v1?page_size=10 \
-H "Authorization: Bearer ${YOUR_API_KEY}"
Response
[
{
"id": "018a210d-8ba4-705c-b111-1f1776f7f578",
"type": "creative-lab-fidget-collapsible",
"name": "",
"status": "SUCCEEDED",
"progress": 100,
"created_at": 1729123456000,
"started_at": 1729123460000,
"finished_at": 1729123512000,
"expires_at": 1729382712000,
"preceding_tasks": 0,
"task_error": null,
"consumed_credits": 6,
"model_urls": {
"glb": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/model.glb?Expires=***",
"stl": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/model.stl?Expires=***"
}
}
]
Parametry zapytania
- Name
- page_num
- Type
- integer
- domyślne 1
- Description
Strona do zwrócenia, od
1do255.0zwraca pierwszą stronę. Wartość spoza zakresu0do255zwraca400.
- Name
- page_size
- Type
- integer
- domyślne 10
- Description
Liczba zadań na stronę, do
100. Wartość od101do255zwraca 100 zadań, a0używa wartości domyślnej. Wartość spoza zakresu0do255zwraca400.
- Name
- sort_by
- Type
- string
- domyślne -created_at
- Description
Kolejność sortowania.
Dostępne wartości:
-created_at: najpierw najnowsze+created_at: najpierw najstarsze
Zwraca
Tablicę obiektów zadania Collapsible Fidget.
Obiekt zadania Collapsible Fidget
Zadanie Collapsible Fidget zamienia zdjęcie w model składanego fidgeta do druku bez montażu (print-in-place). Jest to zadanie jednoetapowe, więc nie ma zadania prototypowego, z którego mogłoby się wywodzić. Odpowiedź nie zawiera sylwetki, którą Meshy tworzy po drodze.
Właściwości
Example Collapsible Fidget Task Object
{
"id": "018a210d-8ba4-705c-b111-1f1776f7f578",
"type": "creative-lab-fidget-collapsible",
"name": "",
"status": "SUCCEEDED",
"progress": 100,
"created_at": 1729123456000,
"started_at": 1729123460000,
"finished_at": 1729123512000,
"expires_at": 1729382712000,
"preceding_tasks": 0,
"task_error": null,
"consumed_credits": 6,
"model_urls": {
"glb": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/model.glb?Expires=***",
"stl": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/model.stl?Expires=***"
}
}
- Name
- id
- Type
- string
- Description
ID zadania. Nie polegaj na jego formacie.
- Name
- type
- Type
- string
- Description
Typ zadania, zawsze
creative-lab-fidget-collapsible.
- Name
- name
- Type
- string
- Description
Wartość
namewysłana podczas tworzenia zadania lub"", jeśli jej nie wysłano.
- Name
- status
- Type
- string
- Description
Status zadania.
Dostępne wartości:
PENDING: oczekuje w kolejceIN_PROGRESS: generowanie wynikuSUCCEEDED: zakończone, z wynikiemFAILED: zakończone, z powodem wtask_errorCANCELED: zakończone, bez wyniku
- Name
- progress
- Type
- integer
- Description
Procent wykonanej pracy, od
0do100. Wynosi0do czasu rozpoczęcia zadania i100, gdy zakończy się powodzeniem.
- Name
- created_at
- Type
- timestamp
- Description
Czas utworzenia zadania, w milisekundach Unix.
- Name
- started_at
- Type
- timestamp
- Description
Czas, w którym worker rozpoczął zadanie, w milisekundach Unix. Do tego momentu
null.
- Name
- finished_at
- Type
- timestamp
- Description
Czas, w którym zadanie osiągnęło status końcowy, w milisekundach Unix. Do tego momentu
null.
- Name
- expires_at
- Type
- timestamp
- Description
Czas wygaśnięcia wyniku zadania, w milisekundach Unix. Przypada 3 dni po
finished_at, lub 3 dni pocreated_at, dopóki zadanie się nie zakończy. W przypadku kont Enterprise, które przechowują wyniki API bezterminowo, jest to około 100 lat później. Zobacz Przechowywanie zasobów.
- Name
- preceding_tasks
- Type
- integer
- Description
Pozycja zadania w kolejce, gdy ma status
PENDING.1oznacza, że rozpocznie się jako następne.0po opuszczeniu kolejki przez zadanie, oraz zawsze0w wynikach list.
- Name
- task_error
- Type
- object
- Description
Powód niepowodzenia zadania.
null, chyba żestatustoFAILED. Zobacz Błędy.
- Name
- consumed_credits
- Type
- integer
- Description
Liczba kredytów pobranych za zadanie, po uwzględnieniu ewentualnego zwrotu. Żądanie, które zwraca błąd, nie jest obciążane opłatą. Nieudane zadanie ma wartość
0, ponieważ Meshy zwraca za nie kredyty. Anulowanie zwraca kredyty za zadanie tylko wtedy, gdy ma ono statusPENDING. Jeśli Meshy nie może odczytać opłaty, odpowiedź typu get lub stream pomija to pole, a żądanie listy zwraca500. W takim przypadku ponów żądanie.
- Name
- model_urls
- Type
- object
- Description
Adresy URL do pobrania modelu 3D, puste do momentu powodzenia zadania. Zadanie zakończone sukcesem zawsze ma
stl, aglbma tylko wtedy, gdy Meshy wyrenderowało podgląd.- Name
stl- Type
- string
- Description
Adres URL do pobrania pliku STL, czyli pliku przeznaczonego do druku. Można go otworzyć bezpośrednio w slicerze.
- Name
glb- Type
- string
- Description
Adres URL do pobrania pliku GLB umożliwiającego podgląd modelu w przeglądarce 3D. Jego kolory służą wyłącznie do podglądu. Plik STL nie ma koloru, więc wydrukowany fidget przyjmuje kolor filamentu.
Jeśli Meshy nie może wyrenderować podglądu,
model_urlsnie zawiera kluczaglb, więc sprawdź jego obecność przed odczytem. Zadanie ze statusemSUCCEEDEDzawsze mastl.