Zet een bronfoto om in een 3D-printbare sleutelhanger-medaille — een badge-vormig
gekleurd dieptereliëf — in twee fasen: prototype genereert een gekleurde
conceptafbeelding op basis van uw invoerfoto, waarna build die conceptafbeelding
omzet in een reliëf 3D-model. De twee fasen zijn gekoppeld via input_task_id.
Genereer één ingekleurde conceptafbeelding op basis van de bronfoto. Het
geretourneerde task-ID is wat je als input_task_id doorgeeft aan de build
endpoint. Raadpleeg
The Keychain Prototype Task Object
voor de vorm van de respons.
Parameters
Name
image_url
Type
string
Verplicht
Description
Bronfoto die Meshy inkleurt tot een sleutelhanger-klare conceptafbeelding. 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 publieke 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
name
Type
string
Description
Optionele tasknaam voor weergavedoeleinden. Maximaal 100 tekens.
Dit labelt de taak in je dashboard en tasklijsten. Het wordt niet gegraveerd op de sleutelhanger — gebruik daarvoor name_text.
Name
name_text
Type
string
Description
Tekst om op de sleutelhanger te graveren, zoals de naam van een huisdier of persoon. Maximaal 10 tekens, geteld als Unicode-tekens in plaats van bytes, zodat een 10 tekens lange Chinese, Japanse of Koreaanse naam wordt geaccepteerd. Laat dit veld leeg om een sleutelhanger zonder gravure te produceren.
Omringende witruimte wordt verwijderd en onzichtbare opmaaktekens worden verwijderd voordat de tekst wordt gebruikt. De resulterende waarde wordt geretourneerd als name_text op het prototype task object, zodat je precies kunt bevestigen wat er gegraveerd zal worden voordat je betaalt voor de buildfase.
De gravure wordt hier toegepast, in de prototypefase. De buildfase erft deze automatisch en accepteert geen eigen name_text.
Als de tekst geen platte ASCII bevat, stuur de request body dan als UTF-8 en stel Content-Type: application/json; charset=utf-8 in. Sommige HTTP-clients — waaronder Windows PowerShell's Invoke-RestMethod — coderen de body standaard als ISO-8859-1, wat elk niet-Latijns teken stilzwijgend omzet naar ? voordat het Meshy bereikt. De API kan dit niet onderscheiden van een gravure die je daadwerkelijk hebt aangevraagd.
Name
remove_background
Type
boolean
standaard false
Description
Wanneer ingesteld op true, wordt de prototypeafbeelding geretourneerd als een transparante RGBA-PNG met de achtergrond verwijderd, zodat je het onderwerp op elke achtergrond kunt composeren.
Dit heeft alleen invloed op de afbeelding die deze endpoint retourneert. Het staat los van de gelijknamige buildoptie (standaard true), die achtergrondverwijdering vóór het reliëfproces regelt.
Returns
De result-property van de respons bevat het task-id van de nieuw aangemaakte keychain prototype task. Poll de Get a Task endpoint of abonneer je op de stream totdat de task de status SUCCEEDED bereikt, en geef dat ID vervolgens als input_task_id door aan de build endpoint.
Faalmodi
Name
400 - Bad Request
Description
Het verzoek was onaanvaardbaar. Veelvoorkomende oorzaken:
Ontbrekende parameter: image_url is verplicht.
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 misvormd.
Gravure te lang: name_text is langer dan 10 tekens. Het verzoek wordt geweigerd in plaats van afgekapt, zodat je nooit wordt gefactureerd voor een sleutelhanger met een verkorte naam.
Content gemarkeerd: de invoerafbeelding werd gemarkeerd door NSFW- of intellectuele-eigendom-moderation, of de name_text-gravure werd gemarkeerd door NSFW-moderation. De gravure wordt alleen gescreend op NSFW-content — screening op intellectuele eigendom is alleen van toepassing op de afbeelding.
Name
401 - Unauthorized
Description
Authenticatie is 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/keychain/v1/prototype
# Stage 1: generate a colorized keychain concept imagecurlhttps://api.meshy.ai/openapi/creative-lab/keychain/v1/prototype \-XPOST \-H"Authorization: Bearer ${YOUR_API_KEY}" \-H'Content-Type: application/json; charset=utf-8' \-d'{ "image_url": "<your publicly accessible image url or base64-encoded data URI>", "name_text": "Luna" }'
Response
{"result":"018a210d-8ba4-705c-b111-1f1776f7f578"}
Prototype example
Start met een bronfoto en genereer vervolgens de prototypeafbeelding die door de keychain-buildfase wordt gebruikt.
Genereer de uiteindelijke, 3D-printbare sleutelhangermedaille op basis van een geslaagde
prototypetaak. De build voert een depth-map-reliëfpipeline uit op de
gekleurde conceptafbeelding van het prototype en levert één mesh-artefact
in het door u gevraagde formaat. Raadpleeg
Het Keychain Build Task Object voor de
vorm van de response.
Parameters
Name
input_task_id
Type
string
Verplicht
Description
De task ID van een prototypetaak die is aangemaakt via dezelfde OpenAPI-endpoint. Het prototype moet zijn aangemaakt met dezelfde API-sleutel, moet SUCCEEDED hebben bereikt en moet exact één kandidaatafbeelding hebben opgeleverd.
Prototypetaken die via de webapp zijn aangemaakt worden niet geaccepteerd — de build-endpoint accepteert uitsluitend prototypetaken die zijn geproduceerd door POST /openapi/creative-lab/keychain/v1/prototype en wijst elke andere herkomst af met 404.
Name
name
Type
string
Description
Optionele taaknaam voor weergavedoeleinden. Maximaal 100 tekens.
options
Optionele afstemmingsparameters voor de reliëfgeometrie. Elk veld heeft een verstandige standaardwaarde — stuur alleen de velden die u wilt overschrijven.
Name
badge_shape
Type
string
standaard circle
Description
Omtreksilhouet van de sleutelhangermedaille. Beschikbare waarden:
circle (standaard)
rounded-rect
hexagon
shield
star
Name
size_mm
Type
number
standaard 40
Description
Zijlengte van het begrenzende vierkant van de sleutelhanger, in millimeter. Bereik: (0, 400].
Name
relief_height_mm
Type
number
standaard 2.2
Description
Maximale reliëfhoogte boven de basis, in millimeter. Bereik: [0, 20].
Name
relief_offset_mm
Type
number
standaard 0
Description
Verticale verschuiving die vóór de extrusie op het reliëf wordt toegepast, in millimeter. Bereik: [0, 20].
Name
base_thickness_mm
Type
number
standaard 0.1
Description
Dikte van de vlakke basisplaat achter het reliëf, in millimeter. Bereik: [0, 20].
Name
has_closed_back
Type
boolean
standaard true
Description
Of de achterkant van de medaille wordt afgesloten als een gesloten oppervlak. Zet op false voor een open schaal.
Name
relief_curve
Type
string
standaard linear
Description
Overdrachtscurve die depth-map-waarden naar reliëfhoogte omzet. Beschikbare waarden:
linear (standaard)
gamma
s-curve
Name
curve_param
Type
number
standaard 1.0
Description
Vormparameter voor de overdrachtscurve (alleen relevant wanneer relief_curve gelijk is aan gamma). Bereik: (0, 10].
Name
invert_depth
Type
boolean
standaard false
Description
Keer de interpretatie van de depth map om, zodat donkerdere gebieden een hoger reliëf krijgen.
Name
smoothing
Type
number
standaard 0.24
Description
Sterkte van de gladstrijking die op de depth map wordt toegepast voordat het reliëf wordt geëxtraheerd. Bereik: [0, 10].
Name
relief_scale
Type
number
standaard 1.0
Description
Verticale schaalvermenigvuldiger die boven op relief_height_mm wordt toegepast. Bereik: (0, 10].
Name
depth_threshold
Type
number
standaard 0.1
Description
Low-pass-drempel voor depth-map-waarden; alles daaronder wordt afgekapt naar nul. Bereik: [0, 1].
Name
remove_background
Type
boolean
standaard true
Description
Verwijder automatisch de achtergrond van de conceptafbeelding van het prototype vóór het reliëferen.
Dit staat los van de gelijknamige prototypeparameter (standaard false), die bepaalt of de prototypeafbeelding zelf met transparantie wordt geretourneerd.
Name
export_resolution
Type
integer
standaard 512
Description
Meshresolutie die voor de export wordt gebruikt. Bereik: [64, 2048].
output
Optionele selector voor het uitvoerformaat. Standaard glb.
Name
format
Type
string
standaard glb
Description
Artefactbundel die door de build wordt geretourneerd. Beschikbare waarden:
glb (standaard) — retourneert één model.glb onder model_urls.glb.
obj — zipt model.obj + model.mtl + texture.png en retourneert de bundel onder model_urls.obj.
zip — zipt elk artefact dat de generator produceert en retourneert de bundel onder model_urls.bundle_zip.
Retourwaarden
De result-eigenschap van de response bevat de task id van de nieuw aangemaakte sleutelhanger-buildtaak. Poll de Get a Task-endpoint of abonneer u op de stream totdat de taak SUCCEEDED bereikt, en download vervolgens het artefact uit het enige item in model_urls.
Faalmodi
Name
400 - Bad Request
Description
Het verzoek was onaanvaardbaar. Veelvoorkomende oorzaken:
Ontbrekende parameter: input_task_id is vereist.
Ongeldige UUID: De input_task_id is geen geldige UUID.
Bovenliggende taak niet geslaagd: De verwezen prototypetaak heeft SUCCEEDED nog niet bereikt.
Geen kandidaat: De prototypetaak is geslaagd, maar heeft geen kandidaatafbeelding opgeleverd.
Options buiten bereik: Een van de options-velden viel buiten het toegestane bereik of de toegestane enum-set.
Name
401 - Unauthorized
Description
Authenticatie mislukt. Controleer uw API-sleutel.
Name
402 - Payment Required
Description
Onvoldoende credits om deze taak uit te voeren.
Name
404 - Not Found
Description
De verwezen prototypetaak bestaat niet, behoort tot een andere gebruiker, of is aangemaakt via de webapp (alleen prototypetaken in API-mode kunnen worden doorgeschakeld naar een build).
Haal een prototype- of buildtaak op aan de hand van een geldige taak-id. Het URL-pad
moet overeenkomen met de fase van de taak — een buildtaak die wordt opgehaald via
/prototype/:id retourneert 404, en omgekeerd.
Annuleer een sleutelhangertaak. Als de taak nog PENDING is, worden de
credits die bij het aanmaken zijn verbruikt, terugbetaald. Taken die al
IN_PROGRESS zijn, worden geannuleerd zonder terugbetaling (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 geeft 404 terug.
Padparameters
Name
id
Type
path
Description
Unieke identificatie voor de te annuleren sleutelhangertaak.
Retourwaarden
Geeft 204 No Content terug bij succes, met een lege body.
Foutmodi
Name
400 - Bad Request
Description
De taak heeft al een eindstatus bereikt en kan niet worden geannuleerd.
Name
404 - Not Found
Description
De taak bestaat niet, behoort tot een andere gebruiker, of de fase komt niet overeen met het URL-pad.
Stream real-time updates voor een sleutelhanger-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 geeft één event: error payload met
status_code: 404 en sluit de stream.
Parameters
Name
id
Type
path
Description
Unieke identifier voor de sleutelhanger-taak die gestreamd moet worden.
Retourwaarden
Retourneert een stream van Keychain Prototype
of Keychain Build taakobjecten als
Server-Sent Events. Elk frame bevat het volledige taakobject voor die fase — dezelfde vorm die het
Get-endpoint retourneert — dus terwijl de taak PENDING of IN_PROGRESS is, zijn de
outputvelden simpelweg nog niet ingevuld (null, [] of {}) en is
finished_atnull.
// Error event example (wrong stage or task not found)event: errordata: {"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 PENDING frame below is abbreviated to the fields that change.event: messagedata: {"id": "019c320e-9a8f-7a1c-9c11-2a1876f8a9bb","progress": 0,"status": "PENDING"}event: messagedata: {"id": "019c320e-9a8f-7a1c-9c11-2a1876f8a9bb","type": "creative-lab-keychain-build","status": "SUCCEEDED","progress": 100,"created_at": 1729123500000,"started_at": 1729123510000,"finished_at": 1729123535000,"expires_at": 1729382735000,"task_error": null,"consumed_credits": 20,"model_urls": {"glb":"https://assets.meshy.ai/***/tasks/019c320e-9a8f-7a1c-9c11-2a1876f8a9bb/output/model.glb?Expires=***" }}
Haal een gepagineerde lijst op van uw sleutelhanger-taken voor één stage. Het URL-pad
selecteert de stage — /prototype retourneert prototype-taken; /build
retourneert build-taken. Taken van de andere stage worden niet opgenomen in
beide antwoorden.
Path Parameters
Name
stage
Type
path
Verplicht
Description
Ofwel prototype of build. De collectie retourneert alleen taken
waarvan de stage overeenkomt met de URL — het ophalen van /prototype retourneert nooit
build-taken en omgekeerd.
Query Parameters
Name
page_num
Type
integer
standaard 1
Description
Paginanummer voor paginering.
Name
page_size
Type
integer
standaard 10
Description
Paginagroottelimiet. Het maximaal toegestane aantal is 100 items.
Name
sort_by
Type
string
standaard -created_at
Description
Veld om op te sorteren. Beschikbare waarden:
+created_at: Sorteer op aanmaaktijd in oplopende volgorde.
-created_at: Sorteer op aanmaaktijd in aflopende volgorde.
Het Keychain Prototype Task-object is een werkeenheid die Meshy bijhoudt om
een gekleurde conceptafbeelding te genereren uit een bronfoto. De output van
deze fase wordt via input_task_id doorgeschakeld naar
de buildfase.
Eigenschappen
Name
id
Type
string
Description
Unieke identifier voor de taak. Hoewel we als implementatiedetail een k-sorteerbare UUID gebruiken voor taak-id's, mag je geen aannames doen over het formaat van de id.
Name
type
Type
string
Description
Type van de taak. De waarde is creative-lab-keychain-prototype.
Name
name
Type
string
Description
De taaknaam die is opgegeven bij het aanmaken van de taak. Lege string als er geen naam is opgegeven.
Name
name_text
Type
string
Description
De gravure die op deze sleutelhanger is toegepast, na het bijsnijden en verwijderen van onzichtbare opmaaktekens. Afwezig wanneer de taak is aangemaakt zonder name_text. Vergelijk dit met wat je hebt verzonden om te bevestigen dat de tekst de codering van je HTTP-client heeft overleefd.
Name
status
Type
string
Description
Status van de taak. Mogelijke waarden zijn 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 geeft het aantal milliseconden weer dat is verstreken sinds 1 januari 1970 UTC, volgens
de RFC 3339-standaard.
Vrijdag 1 september 2023 12:00:00 PM GMT wordt bijvoorbeeld weergegeven als 1693569600000. Dit geldt
voor alle tijdstempels in de 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 relevant als de taakstatus PENDING is.
Name
task_error
Type
object
Description
Foutdetails voor mislukte taken. Zie Fouten voor de volledige referentie van het task_error-object.
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 een mislukking).
Name
image_urls
Type
array of strings
Description
Downloadbare URL's voor de conceptafbeeldingskandidaten 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 Keychain Build Task-object is een werkeenheid die Meshy bijhoudt om
de uiteindelijke 3D-sleutelhanger-mesh te genereren uit een geslaagde prototype-taak. De
build voert een depth-map-reliëfpipeline uit op de conceptafbeelding van het prototype en
publiceert één mesh-artefact in het formaat dat de aanroeper heeft aangevraagd.
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-keychain-build.
Name
name
Type
string
Description
De taaknaam die is opgegeven bij het aanmaken van de taak. Lege tekenreeks als er geen naam is opgegeven.
Name
status
Type
string
Description
Status van de taak. Mogelijke waarden zijn PENDING, IN_PROGRESS, SUCCEEDED, FAILED, CANCELED.
Name
progress
Type
integer
Description
Voortgang 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 relevant wanneer de status PENDING is.
Name
task_error
Type
object
Description
Foutdetails voor mislukte taken. Zie Fouten voor de volledige referentie van het task_error-object.
Name
consumed_credits
Type
integer
Description
Het aantal credits dat door deze taak is verbruikt. Geeft 0 terug voor FAILED-taken (credits worden bij mislukking terugbetaald).
Name
model_urls
Type
object
Description
Downloadbare URL's voor het gegenereerde artefact, gesleuteld op artefactnaam. Bevat altijd precies één item — het formaat dat is aangevraagd via output.format in het buildverzoek. De sleutel komt overeen met het aangevraagde formaat:
Name
glb
Type
string
Description
Downloadbare URL naar het GLB-bestand. Aanwezig wanneer output.formatglb was (de standaardwaarde).
Name
obj
Type
string
Description
Downloadbare URL naar een zip-bundel met model.obj, model.mtl en texture.png. Aanwezig wanneer output.formatobj was.
Name
bundle_zip
Type
string
Description
Downloadbare URL naar een zip-bundel van elk artefact dat de generator produceert. Aanwezig wanneer output.formatzip was.