Zet een tekstprompt of een bronfoto om in een 3D-printbare lampenkap in twee
fasen: prototype genereert een gestileerd matwit conceptbeeld, waarna
build dat conceptbeeld omzet in een holle STL-lampenkap (optioneel
gekoppeld aan een basisschijf voor een lichtbronarmatuur). De twee fasen zijn gekoppeld
via input_task_id.
Genereer één matwit conceptbeeld voor de lampenkap — ofwel
vanuit een tekstprompt (text-to-3D) of vanuit een referentiefoto (image-to-3D).
De geretourneerde taak-ID is wat je als input_task_id doorgeeft aan de build-
endpoint. Raadpleeg
Het Lamp Prototype Task-object
voor de responsvorm.
Parameters
Precies één van text of image_url is vereist. Beide doorgeven, of geen van beide, retourneert 400.
Name
text
Type
string
Verplicht
Description
Tekstprompt die het gewenste onderwerp van de lampenkap beschrijft. Vereist wanneer image_url is weggelaten. Maximaal 800 tekens.
Name
image_url
Type
string
Verplicht
Description
Bronfoto die Meshy gebruikt als visuele referentie voor de lampenkap. Vereist wanneer text is weggelaten. We ondersteunen momenteel de formaten .jpg, .jpeg, .png en .webp.
Er zijn twee manieren om de afbeelding aan te leveren:
Publiek toegankelijke URL: Een URL die toegankelijk is vanaf het openbare internet.
Data URI: Een base64-gecodeerde Data URI van de afbeelding. Voorbeeld van een Data URI: data:image/jpeg;base64,<your base64-encoded image data>.
Name
image_subject
Type
string
standaard character
Description
Hint voor de onderwerpcategorie voor het image-to-3D-pad. Beschikbare waarden:
character (standaard) — enkel personage-/objectonderwerp (figurine, dier, mascotte, enz.).
Optionele taaknaam voor weergavedoeleinden. Maximaal 100 tekens.
Retourneert
De eigenschap result van de respons bevat de taak-id van de nieuw gemaakte lamp-prototypetaak. Poll de Get a Task-endpoint of abonneer je op de stream totdat de taak SUCCEEDED bereikt, en geef die ID vervolgens door aan de build endpoint als input_task_id.
Foutmodi
Name
400 - Bad Request
Description
Het verzoek was onaanvaardbaar. Veelvoorkomende oorzaken:
Ontbrekende parameter: Precies één van text of image_url is vereist.
Beide opgegeven: Het doorgeven van zowel text als image_url wordt geweigerd — ze sluiten elkaar wederzijds uit.
Ongeldig afbeeldingsformaat: De opgegeven image_url heeft geen ondersteund formaat (.jpg, .jpeg, .png, .webp).
Afbeeldingsafmetingen buiten bereik: De afbeelding is te klein, overschrijdt de maximale bestandsgrootte of overschrijdt het maximale aantal pixels.
Onbereikbare URL: De image_url kon niet worden gedownload (404 of timeout).
Ongeldige Data URI: De base64-string is onjuist gevormd.
Inhoud gemarkeerd: De invoerafbeelding is gemarkeerd door NSFW- of intellectuele-eigendoms-moderation.
Tekst te lang: text overschrijdt 800 tekens.
Ongeldige image_subject: Niet een van character / landscape.
Name
401 - Unauthorized
Description
Authenticatie mislukt. Controleer je API-sleutel.
Name
402 - Payment Required
Description
Onvoldoende credits om deze taak uit te voeren.
Name
429 - Too Many Requests
Description
Je hebt je rate limit overschreden.
Request
POST
/openapi/creative-lab/lamp/v1/prototype
# Stage 1 (image-to-3D): generate a matte-white lampshade concept imagecurl https://api.meshy.ai/openapi/creative-lab/lamp/v1/prototype \ -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>", "image_subject": "character" }'# Stage 1 (text-to-3D): generate from a text promptcurl https://api.meshy.ai/openapi/creative-lab/lamp/v1/prototype \ -X POST \ -H "Authorization: Bearer ${YOUR_API_KEY}" \ -H 'Content-Type: application/json' \ -d '{ "text": "a stylized owl perched on a tree branch under moonlight" }'
Response
{"result":"018a210d-8ba4-705c-b111-1f1776f7f578"}
Prototype example
Start with a source photo, then generate the prototype image used by the lamp build stage.
Genereer de uiteindelijke 3D-printbare lampenkap vanuit een geslaagde prototype-
taak. De build voert een image-to-3D-pipeline uit op de conceptafbeelding
van het prototype en verwerkt de mesh daarna via de lampprocessor om deze uit te
hollen, de bovenkant af te vlakken, optioneel een basis uit te snijden, en (wanneer een fixture-preset is
gekozen) een aparte basisschijf voor de lichtbron te leveren. Raadpleeg
Het lamp-buildtaakobject voor de
responsstructuur.
Parameters
Name
input_task_id
Type
string
Verplicht
Description
De taak-ID van een prototypetaak die via dezelfde OpenAPI endpoint is gemaakt. Het prototype moet met dezelfde API-sleutel zijn gemaakt, moet SUCCEEDED hebben bereikt en moet precies één kandidaatafbeelding hebben geproduceerd.
Prototypetaken die via de webapp zijn gemaakt, worden niet geaccepteerd — de build-endpoint accepteert alleen prototypetaken die zijn geproduceerd door POST /openapi/creative-lab/lamp/v1/prototype en weigert elke andere bron met 404.
Name
name
Type
string
Description
Optionele taaknaam voor weergavedoeleinden. Maximaal 100 tekens.
options
Optionele afstelparameters voor de geometrie van de lampenkap. Elk veld heeft een zinvolle standaardwaarde — stuur alleen de velden die je wilt overschrijven.
Name
diameter_mm
Type
number
standaard 80
Description
Beoogde maximale afmeting van de bounding box van de lampenkap, in millimeters. De mesh wordt uniform geschaald om te passen. Bereik: [50, 400].
Name
thickness_mm
Type
number
standaard 1.5
Description
Wanddikte van de holle lampenkap, in millimeters. Bereik: (0, 10].
Name
cut_amount_percent
Type
number
standaard 35
Description
Percentage van de hoogte van de lampenkap dat aan de bovenkant wordt afgevlakt, zodat de print op het bed kan staan. Bereik: [1, 100].
Name
light_source_preset
Type
string
standaard bambu_mh001_60mm
Description
Fixture-preset voor de lichtbron die bepaalt of (en welke) basisschijf naast de lampenkap wordt geleverd. Beschikbare waarden:
bambu_mh001_60mm (standaard) — levert een basisschijf van 60 mm, op maat voor een compatibele lichtbron-fixture. Resultaat bevat model_urls.base_stl.
none — geen fixture, geen basisschijf. model_urls.base_stl wordt weggelaten.
Name
fixture_offset_x_mm
Type
number
standaard 0
Description
Horizontale X-as-offset van de fixture-uitsparing ten opzichte van het midden van de lampenkap, in millimeters. Alleen relevant wanneer light_source_preset ≠ none. Bereik: [-80, 80].
Name
fixture_offset_z_mm
Type
number
standaard 0
Description
Verticale Z-as-offset van de fixture-uitsparing ten opzichte van de onderkant van de lampenkap, in millimeters. Bereik: [-80, 80].
Name
rotate_x_deg
Type
number
standaard 0
Description
Rotatie rond de X-as die vóór verwerking op de geïmporteerde mesh wordt toegepast, in graden. Bereik: [-360, 360].
Name
rotate_y_deg
Type
number
standaard 0
Description
Rotatie rond de Y-as die vóór verwerking op de geïmporteerde mesh wordt toegepast, in graden. Bereik: [-360, 360].
Name
rotate_z_deg
Type
number
standaard 0
Description
Rotatie rond de Z-as die vóór verwerking op de geïmporteerde mesh wordt toegepast, in graden. Bereik: [-360, 360].
Name
include_result_json
Type
boolean
standaard false
Description
Wanneer true en output.formatzip is, wordt de result.json van de lampprocessor (met gemeten mesh-metrieken + de vastgestelde optieset) in de bundel opgenomen. Genegeerd wanneer output.formatstl is.
output
Optionele selector voor het wire-format. Standaard ingesteld op stl.
Name
format
Type
string
standaard stl
Description
Artifactbundel die door de build wordt geretourneerd. Beschikbare waarden:
stl (standaard) — retourneert de lampenkap als model_urls.lamp_stl, plus model_urls.base_stl wanneer light_source_preset ≠ none.
zip — verpakt elk artifact dat de processor levert (lamp.stl, optioneel base.stl, optioneel result.json) in één zipbestand en retourneert dit onder model_urls.bundle_zip.
Retourneert
De eigenschap result van de respons bevat de taak-id van de nieuw gemaakte lamp-buildtaak. Poll de Een taak ophalen endpoint of abonneer je op de stream totdat de taak SUCCEEDED bereikt, en download vervolgens de artifacts uit model_urls.
Foutmodi
Name
400 - Bad Request
Description
De aanvraag was niet acceptabel. Veelvoorkomende oorzaken:
Ontbrekende parameter: input_task_id is vereist.
Ongeldige UUID: De input_task_id is geen geldige UUID.
Bovenliggende taak niet geslaagd: De gerefereerde prototypetaak heeft SUCCEEDED nog niet bereikt.
Geen kandidaat: De prototypetaak is geslaagd maar heeft geen kandidaatafbeelding geproduceerd.
Opties buiten bereik: Een van de options-velden viel buiten het toegestane bereik of de toegestane enum-set.
Name
401 - Unauthorized
Description
Authenticatie mislukt. Controleer je API-sleutel.
Name
402 - Payment Required
Description
Onvoldoende credits om deze taak uit te voeren.
Name
404 - Not Found
Description
De gerefereerde prototypetaak bestaat niet, behoort toe aan een andere gebruiker of is via de webapp gemaakt (alleen prototypetaken in API-mode kunnen doorgaan naar build).
Haal een prototype- of build-taak op met een geldige taak-id. Het URL-pad
moet overeenkomen met de fase van de taak — een build-taak die via
/prototype/:id wordt opgehaald, retourneert 404, en omgekeerd.
Annuleer een lamptaak. Als de taak nog steeds PENDING is, worden de bij het aanmaken verbruikte credits
terugbetaald. Taken die al IN_PROGRESS zijn, worden
zonder terugbetaling geannuleerd (de worker verbruikt mogelijk al bronnen).
Taken die al een eindstatus hebben bereikt (SUCCEEDED, FAILED,
CANCELED) kunnen niet worden geannuleerd.
Het URL-pad moet overeenkomen met de fase van de taak — DELETE op
/prototype/:buildId retourneert 404.
Padparameters
Name
id
Type
path
Description
Unieke identifier voor de lamptaak die moet worden geannuleerd.
Retourneert
Retourneert 204 No Content bij succes met een lege body.
Foutmodi
Name
400 - Bad Request
Description
De taak bevindt zich al in een eindstatus en kan niet worden geannuleerd.
Name
404 - Not Found
Description
De taak bestaat niet, behoort toe aan een andere gebruiker, of de fase ervan komt niet overeen met het URL-pad.
Stream realtime-updates voor een lamp-taak via Server-Sent Events (SSE).
Het URL-pad moet overeenkomen met de fase van de taak — het openen van een stream op
/prototype/:buildId/stream verzendt een enkele event: error-payload met
status_code: 404 en sluit de stream.
Parameters
Name
id
Type
path
Description
Unieke identifier voor de lamp-taak om te streamen.
Retourneert
Retourneert een stream van lamp-prototype
of lamp-build taakobjecten als
Server-Sent Events. Voor PENDING- of IN_PROGRESS-taken bevat de response-
stream alleen de noodzakelijke velden progress en status.
// Error event example (wrong stage or task not found)event: errordata: {"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: messagedata: {"id": "019c320e-9a8f-7a1c-9c11-2a1876f8a9bb","progress": 0,"status": "PENDING"}event: messagedata: {"id": "019c320e-9a8f-7a1c-9c11-2a1876f8a9bb","type": "creative-lab-lamp-build","status": "SUCCEEDED","progress": 100,"created_at": 1729123500000,"started_at": 1729123510000,"finished_at": 1729123535000,"expires_at": 1729382735000,"task_error": null,"consumed_credits": 30,"model_urls": {"lamp_stl":"https://assets.meshy.ai/***/tasks/019c320e-9a8f-7a1c-9c11-2a1876f8a9bb/output/lamp.stl?Expires=***","base_stl":"https://assets.meshy.ai/***/tasks/019c320e-9a8f-7a1c-9c11-2a1876f8a9bb/output/base.stl?Expires=***" }}
Haal een gepagineerde lijst op van je lamp-taken voor één enkele fase. Het URL-
pad selecteert de fase — /prototype retourneert prototype-taken; /build
retourneert build-taken. Taken uit de andere fase worden in geen van beide
responses opgenomen.
Padparameters
Name
stage
Type
path
Verplicht
Description
Ofwel prototype of build. De collectie retourneert alleen taken
waarvan de fase overeenkomt met de URL — het ophalen van /prototype retourneert nooit
build-taken en omgekeerd.
Queryparameters
Name
page_num
Type
integer
standaard 1
Description
Paginanummer voor paginering.
Name
page_size
Type
integer
standaard 10
Description
Limiet voor paginagrootte. Het maximaal toegestane aantal is 50 items.
Name
sort_by
Type
string
standaard -created_at
Description
Veld waarop moet worden gesorteerd. Beschikbare waarden:
+created_at: Sorteer op aanmaaktijd in oplopende volgorde.
-created_at: Sorteer op aanmaaktijd in aflopende volgorde.
Het lamp-prototypetaakobject is een werkeenheid die Meshy bijhoudt om
een gestileerde matwitte conceptafbeelding te genereren op basis van een tekst-prompt
of een bronfoto. De uitvoer van deze fase wordt via input_task_id gekoppeld aan
de bouwfase.
Eigenschappen
Name
id
Type
string
Description
Unieke identificatie voor de taak. Hoewel we een k-sorteerbare UUID gebruiken voor taak-id's als implementatiedetail, mag je geen aannames doen over de indeling van de id.
Name
type
Type
string
Description
Type van de taak. De waarde is creative-lab-lamp-prototype.
Name
name
Type
string
Description
De taaknaam die is opgegeven toen de taak werd aangemaakt. Lege string als er geen naam is opgegeven.
Name
status
Type
string
Description
Status van de taak. Mogelijke waarden zijn een van PENDING, IN_PROGRESS, SUCCEEDED, FAILED, CANCELED.
Name
progress
Type
integer
Description
Progress van de taak. Als de taak nog niet is gestart, is deze eigenschap 0. Zodra de taak is geslaagd, wordt dit 100.
Name
created_at
Type
timestamp
Description
Tijdstempel van wanneer de taak is aangemaakt, in milliseconden.
Een tijdstempel vertegenwoordigt het aantal milliseconden dat is verstreken sinds 1 januari 1970 UTC, volgens
de RFC 3339-standaard.
Bijvoorbeeld: vrijdag 1 september 2023 12:00:00 PM GMT wordt weergegeven als 1693569600000. Dit is van toepassing
op alle tijdstempels in Meshy API.
Name
started_at
Type
timestamp
Description
Tijdstempel van wanneer de taak is gestart, in milliseconden. Als de taak nog niet is gestart, is deze eigenschap 0.
Name
finished_at
Type
timestamp
Description
Tijdstempel van wanneer de taak is voltooid, in milliseconden. Als de taak nog niet is voltooid, is deze eigenschap 0.
Name
expires_at
Type
timestamp
Description
Tijdstempel van wanneer het taakresultaat verloopt, in milliseconden.
Name
preceding_tasks
Type
integer
Description
Het aantal voorafgaande taken.
De waarde van dit veld is alleen betekenisvol als de taakstatus PENDING is.
Name
task_error
Type
object
Description
Foutdetails voor mislukte taken. Zie Fouten voor de volledige task_error-objectreferentie.
Name
consumed_credits
Type
integer
Description
Het aantal credits dat door deze taak is verbruikt. Aanwezig wanneer de taakstatus PENDING, IN_PROGRESS of SUCCEEDED is. Retourneert 0 voor FAILED-taken (credits worden terugbetaald bij mislukking).
Name
image_urls
Type
array of strings
Description
Downloadbare URL's voor de kandidaat-conceptafbeeldingen die door deze prototypetaak zijn gegenereerd. Momenteel retourneert de API altijd precies één kandidaat; het veld is een array zodat toekomstige revisies meerdere kandidaten kunnen tonen zonder een breaking change.
Het lamp Build Task-object is een werkeenheid die Meshy bijhoudt om
de uiteindelijke 3D-printbare lampenkap te genereren op basis van een geslaagde prototype-taak.
De build voert een beeld-naar-3D-concept + textuur-pijplijn uit op de
conceptafbeelding van het prototype en verwerkt de mesh daarna na via de lamp-processor om
deze uit te hollen, af te vlakken en (optioneel) een armatuurbasis uit te snijden.
Eigenschappen
Name
id
Type
string
Description
Unieke identificatie voor de taak.
Name
type
Type
string
Description
Type van de taak. De waarde is creative-lab-lamp-build.
Name
name
Type
string
Description
De taaknaam die is opgegeven toen de taak werd aangemaakt. Lege tekenreeks als er geen naam is opgegeven.
Name
status
Type
string
Description
Status van de taak. Mogelijke waarden zijn een van PENDING, IN_PROGRESS, SUCCEEDED, FAILED, CANCELED.
Name
progress
Type
integer
Description
progress van de taak. Als de taak nog niet is gestart, is deze eigenschap 0. Zodra de taak is geslaagd, wordt dit 100.
Name
created_at
Type
timestamp
Description
tijdstempel van wanneer de taak is aangemaakt, in milliseconden.
Name
started_at
Type
timestamp
Description
tijdstempel van wanneer de taak is gestart, in milliseconden.
Name
finished_at
Type
timestamp
Description
tijdstempel van wanneer de taak is voltooid, in milliseconden.
Name
expires_at
Type
timestamp
Description
tijdstempel van wanneer het taakresultaat verloopt, in milliseconden.
Name
preceding_tasks
Type
integer
Description
Het aantal voorafgaande taken. Alleen betekenisvol wanneer de status PENDING is.
Name
task_error
Type
object
Description
Foutdetails voor mislukte taken. Zie Fouten voor de volledige objectreferentie van task_error.
Name
consumed_credits
Type
integer
Description
Het aantal credits dat door deze taak is verbruikt. Retourneert 0 voor FAILED-taken (credits worden bij mislukking terugbetaald).
Name
model_urls
Type
object
Description
Downloadbare URL's voor de gegenereerde artefacten, geïndexeerd op artefactnaam. De set sleutels hangt af van output.format en options.light_source_preset:
Name
lamp_stl
Type
string
Description
Downloadbare URL naar de lampenkap lamp.stl. Aanwezig wanneer output.formatstl was (de standaardwaarde).
Name
base_stl
Type
string
Description
Downloadbare URL naar de armatuurbasis base.stl. Aanwezig wanneer output.formatstl was enoptions.light_source_preset niet none was. Weggelaten wanneer de armatuurvoorinstelling none was.
Name
bundle_zip
Type
string
Description
Downloadbare URL naar een zip-bundel van elk artefact dat de processor uitvoert (lamp.stl, optioneel base.stl, en — wanneer options.include_result_jsontrue is — result.json). Aanwezig wanneer output.formatzip was. Wanneer bundle_zip aanwezig is, worden lamp_stl / base_stl weggelaten.