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

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.


POST/openapi/creative-lab/fidget-collapsible/v1

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

POST
/openapi/creative-lab/fidget-collapsible/v1
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 name zadania, a Meshy nie grawiruje jej na modelu. Dłuższa nazwa zwraca 400.

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 404 lub 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.

  • 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.


GET/openapi/creative-lab/fidget-collapsible/v1/:id

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

GET
/openapi/creative-lab/fidget-collapsible/v1/018a210d-8ba4-705c-b111-1f1776f7f578
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

    id nie jest prawidłowym ID zadania. Wyślij ID result z 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.


DELETE/openapi/creative-lab/fidget-collapsible/v1/:id

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

DELETE
/openapi/creative-lab/fidget-collapsible/v1/018a210d-8ba4-705c-b111-1f1776f7f578
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:

    • id nie jest prawidłowym ID zadania. Wyślij ID result z odpowiedzi tworzenia.
    • Zadanie ma już status końcowy (SUCCEEDED, FAILED lub CANCELED), 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.


GET/openapi/creative-lab/fidget-collapsible/v1/:id/stream

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

GET
/openapi/creative-lab/fidget-collapsible/v1/018a210d-8ba4-705c-b111-1f1776f7f578/stream
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.


GET/openapi/creative-lab/fidget-collapsible/v1

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

GET
/openapi/creative-lab/fidget-collapsible/v1
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 1 do 255. 0 zwraca pierwszą stronę. Wartość spoza zakresu 0 do 255 zwraca 400.

  • Name
    page_size
    Type
    integer
    domyślne 10
    Description

    Liczba zadań na stronę, do 100. Wartość od 101 do 255 zwraca 100 zadań, a 0 używa wartości domyślnej. Wartość spoza zakresu 0 do 255 zwraca 400.

  • 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ść name wysł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 kolejce
    • IN_PROGRESS: generowanie wyniku
    • SUCCEEDED: zakończone, z wynikiem
    • FAILED: zakończone, z powodem w task_error
    • CANCELED: zakończone, bez wyniku
  • Name
    progress
    Type
    integer
    Description

    Procent wykonanej pracy, od 0 do 100. Wynosi 0 do czasu rozpoczęcia zadania i 100, 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 po created_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. 1 oznacza, że rozpocznie się jako następne. 0 po opuszczeniu kolejki przez zadanie, oraz zawsze 0 w wynikach list.

  • Name
    task_error
    Type
    object
    Description

    Powód niepowodzenia zadania. null, chyba że status to FAILED. 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 status PENDING. Jeśli Meshy nie może odczytać opłaty, odpowiedź typu get lub stream pomija to pole, a żądanie listy zwraca 500. 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, a glb ma 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_urls nie zawiera klucza glb, więc sprawdź jego obecność przed odczytem. Zadanie ze statusem SUCCEEDED zawsze ma stl.