Gawing 3D-printable na keychain medallion ang isang source photo — isang badge-shaped na
kulay na depth relief — sa dalawang yugto: ang prototype ay gumagawa ng kulay na
concept image mula sa iyong input photo, pagkatapos ang build ay ginagawang relief
3D model ang concept image na ito. Ang dalawang yugto ay konektado sa pamamagitan ng
input_task_id.
Bumuo ng iisang kinulayang concept image mula sa pinagmulang larawan. Ang naibalik na task ID ang ipapasa mo bilang input_task_id sa build endpoint. Sumangguni sa
The Keychain Prototype Task Object
para sa hugis ng response.
Mga Parameter
Name
image_url
Type
string
Kinakailangan
Description
Pinagmulang larawan na kokopyahan ni Meshy ang kulay para gawing concept image na handa nang gawing keychain. Kasalukuyan naming sinusuportahan ang mga format na .jpg, .jpeg, .png, at .webp.
May dalawang paraan para magbigay ng larawan:
URL na accessible sa publiko: Isang URL na naaabot mula sa pampublikong internet.
Data URI: Isang base64-encoded na data URI ng larawan. Halimbawa ng data URI: data:image/jpeg;base64,<your base64-encoded image data>.
Name
name
Type
string
Description
Opsyonal na pangalan ng task para sa layuning ipakita lamang. Maximum na 100 characters.
Nagbibigay ito ng label sa task sa iyong dashboard at listahan ng mga task. Hindi ito ang nakaukit sa keychain — gamitin ang name_text para roon.
Name
name_text
Type
string
Description
Tekstong iuukit sa keychain, tulad ng pangalan ng alagang hayop o ng isang tao. Maximum na 10 characters, binibilang bilang Unicode characters sa halip na bytes, kaya ang isang 10-character na pangalang Chinese, Japanese, o Korean ay tinatanggap. Iwan itong walang laman para makagawa ng keychain na walang ukit.
Ang nakapaligid na whitespace ay tinatanggal at ang mga hindi nakikitang character sa pag-format ay inaalis bago gamitin ang teksto. Ang resultang value ay ibinabalik bilang name_text sa prototype task object, para makumpirma mo nang eksakto kung ano ang iuukit bago magbayad para sa yugto ng build.
Ang pag-ukit ay ginagawa dito, sa yugto ng prototype. Ang yugto ng build ay awtomatikong nagmamana nito at hindi tumatanggap ng sarili nitong name_text.
Kapag ang teksto ay hindi plain ASCII, ipadala ang request body bilang UTF-8 at itakda ang Content-Type: application/json; charset=utf-8. May ilang HTTP client — kasama na ang Invoke-RestMethod ng Windows PowerShell — na nag-e-encode ng body bilang ISO-8859-1 bilang default, na tahimik na ginagawang ? ang bawat non-Latin character bago ito makarating sa Meshy. Hindi ito madidistingo ng API mula sa ukit na talagang hiningi mo.
Name
remove_background
Type
boolean
default false
Description
Kapag itinakda sa true, ang prototype image ay ibinabalik bilang transparent RGBA PNG na tinanggalan ng background, para maisama mo ang subject sa anumang background.
Kinokontrol lamang nito ang larawang ibinabalik ng endpoint na ito. Ito ay hiwalay sa build option na may parehong pangalan (default true), na kumokontrol sa pagtanggal ng background bago ang reliefing.
Mga Ibinabalik
Ang property na result ng response ay naglalaman ng task id ng bagong ginawang keychain prototype task. I-poll ang Get a Task endpoint o mag-subscribe sa stream hanggang maabot ng task ang SUCCEEDED, pagkatapos ay ipasa ang ID na iyon sa build endpoint bilang input_task_id.
Mga Paraan ng Pagkabigo
Name
400 - Bad Request
Description
Hindi katanggap-tanggap ang request. Karaniwang mga sanhi:
Kulang na parameter: Kinakailangan ang image_url.
Di-wastong format ng larawan: Ang ibinigay na image_url ay hindi isang suportadong format (.jpg, .jpeg, .png, .webp).
Wala sa saklaw ang dimensyon ng larawan: Masyadong maliit ang larawan, lumalampas sa maximum na sukat ng file, o lumalampas sa maximum na bilang ng pixel.
Hindi maabot na URL: Hindi ma-download ang image_url (404 o timeout).
Di-wastong Data URI: Sira ang base64 string.
Masyadong mahaba ang ukit: Ang name_text ay mas mahaba sa 10 characters. Tinatanggihan ang request sa halip na paikliin, kaya hinding-hindi ka sisingilin para sa keychain na may inukit na pinaikling pangalan.
Na-flag na content: Ang input na larawan ay na-flag ng NSFW o intellectual property moderation, o ang ukit na name_text ay na-flag ng NSFW moderation. Ang ukit ay sinusuri lamang para sa NSFW content — ang pagsusuri sa intellectual property ay para sa larawan.
Name
401 - Unauthorized
Description
Nabigo ang authentication. Pakisuri ang iyong API key.
Name
402 - Payment Required
Description
Hindi sapat na credits para isagawa ang task na ito.
Name
429 - Too Many Requests
Description
Nalagpasan mo na ang iyong rate limit.
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 with a source photo, then generate the prototype image used by the keychain build stage.
Bumuo ng panghuling 3D-printable keychain medallion mula sa isang matagumpay na (succeeded) prototype task. Pinapatakbo ng build ang isang depth-map relief pipeline sa colorized concept image ng prototype at naghahatid ng iisang mesh artifact sa format na hiniling mo. Sumangguni sa
The Keychain Build Task Object para sa hugis ng response.
Mga Parameter
Name
input_task_id
Type
string
Kinakailangan
Description
Ang task ID ng isang prototype task na nilikha sa parehong OpenAPI endpoint na ito. Dapat ay ginawa ang prototype gamit ang parehong API key, dapat ay umabot na ito sa SUCCEEDED, at dapat ay nakagawa ito ng eksaktong isang candidate image.
Ang mga prototype task na nilikha sa pamamagitan ng webapp ay hindi tinatanggap — tanging tinatanggap ng build endpoint ang mga prototype task na ginawa ng POST /openapi/creative-lab/keychain/v1/prototype at tinatanggihan ang anumang ibang pinagmulan na may 404.
Name
name
Type
string
Description
Opsyonal na pangalan ng task para sa layuning pagpapakita. Maximum na 100 characters.
options
Opsyonal na mga parameter para sa pagtatama ng relief heometriya. Bawat field ay may makatwirang default — ipadala lamang ang mga gusto mong i-override.
Name
badge_shape
Type
string
default circle
Description
Anyo ng balangkas ng keychain medallion. Mga magagamit na value:
circle (default)
rounded-rect
hexagon
shield
star
Name
size_mm
Type
number
default 40
Description
Haba ng gilid ng nakapaligid na parisukat ng keychain, sa milimetro. Saklaw: (0, 400].
Name
relief_height_mm
Type
number
default 2.2
Description
Pinakamataas na taas ng relief mula sa base, sa milimetro. Saklaw: [0, 20].
Name
relief_offset_mm
Type
number
default 0
Description
Vertical offset na ilalapat sa relief bago ang extrusion, sa milimetro. Saklaw: [0, 20].
Name
base_thickness_mm
Type
number
default 0.1
Description
Kapal ng patag na base plate sa likod ng relief, sa milimetro. Saklaw: [0, 20].
Name
has_closed_back
Type
boolean
default true
Description
Kung ang likod ng medallion ay nakasarado bilang isang closed surface. Itakda sa false para sa bukas na shell.
Name
relief_curve
Type
string
default linear
Description
Transfer curve na nagmamapa ng mga value ng depth-map sa taas ng relief. Mga magagamit na value:
linear (default)
gamma
s-curve
Name
curve_param
Type
number
default 1.0
Description
Parameter ng hugis para sa transfer curve (may kahulugan lamang kapag ang relief_curve ay gamma). Saklaw: (0, 10].
Name
invert_depth
Type
boolean
default false
Description
Baliktarin ang interpretasyon ng depth-map upang ang mas madidilim na bahagi ay maging mas mataas na relief.
Name
smoothing
Type
number
default 0.24
Description
Antas ng smoothing na ilalapat sa depth map bago ang relief extraction. Saklaw: [0, 10].
Name
relief_scale
Type
number
default 1.0
Description
Vertical scale multiplier na ilalapat sa ibabaw ng relief_height_mm. Saklaw: (0, 10].
Name
depth_threshold
Type
number
default 0.1
Description
Low-pass threshold para sa mga value ng depth-map; anumang mas mababa dito ay kina-clamp sa zero. Saklaw: [0, 1].
Name
remove_background
Type
boolean
default true
Description
Awtomatikong tanggalin ang background ng concept image ng prototype bago ang pag-relief.
Ito ay hiwalay sa parameter ng prototype na may parehong pangalan (default false), na kumokontrol kung ang mismong imahe ng prototype ay ibabalik na may transparency.
Name
export_resolution
Type
integer
default 512
Description
Resolusyon ng mesh na gagamitin para sa export. Saklaw: [64, 2048].
output
Opsyonal na pumipili ng wire-format. Default sa glb.
Name
format
Type
string
default glb
Description
Artifact bundle na ibinabalik ng build. Mga magagamit na value:
glb (default) — nagbabalik ng iisang model.glb sa ilalim ng model_urls.glb.
obj — nag-zi-zip ng model.obj + model.mtl + texture.png at ibinabalik ang bundle sa ilalim ng model_urls.obj.
zip — nag-zi-zip ng bawat artifact na inilalabas ng generator at ibinabalik ang bundle sa ilalim ng model_urls.bundle_zip.
Mga Ibabalik (Returns)
Ang result property ng response ay naglalaman ng task id ng bagong likhang keychain build task. I-poll ang Get a Task endpoint o mag-subscribe sa stream hanggang umabot ang task sa SUCCEEDED, pagkatapos ay i-download ang artifact mula sa iisang entry sa model_urls.
Mga Paraan ng Pagkabigo (Failure Modes)
Name
400 - Bad Request
Description
Hindi katanggap-tanggap ang request. Mga karaniwang sanhi:
Kulang na parameter: Kailangan ang input_task_id.
Di-wastong UUID: Ang input_task_id ay hindi isang wastong UUID.
Hindi matagumpay ang parent: Ang tinutukoy na prototype task ay hindi pa umabot sa SUCCEEDED.
Walang kandidato: Matagumpay ang prototype task ngunit walang nagawang candidate image.
Options wala sa saklaw: Isa sa mga field ng options ay nasa labas ng pinapayagang saklaw o enum set nito.
Name
401 - Unauthorized
Description
Nabigo ang authentication. Pakisuri ang iyong API key.
Name
402 - Payment Required
Description
Hindi sapat na credits upang isagawa ang task na ito.
Name
404 - Not Found
Description
Ang tinutukoy na prototype task ay hindi umiiral, pag-aari ng ibang user, o nilikha sa pamamagitan ng webapp (tanging mga prototype task na API-mode ang nagkakadena sa build).
Kunin ang detalye ng isang prototype o build task gamit ang wastong task id. Ang URL path
ay dapat tumugma sa stage ng task — kapag ang isang build task ay kinuha gamit ang
/prototype/:id, ito ay magbabalik ng 404, at ito rin ang mangyayari sa kabaligtaran.
Kanselahin ang isang keychain task. Kung ang task ay PENDING pa rin, ang
credits na ginamit sa oras ng paggawa ay ire-refund. Ang mga task na
IN_PROGRESS na ay kinakansela nang walang refund (maaaring ginagamit na
ng worker ang resources). Ang mga task na nakarating na sa isang terminal
na estado (SUCCEEDED, FAILED, CANCELED) ay hindi na maaaring kanselahin.
Dapat tumugma ang URL path sa stage ng task — ang DELETE sa
/prototype/:buildId ay magbabalik ng 404.
Path Parameters
Name
id
Type
path
Description
Natatanging identifier para sa keychain task na kakanselahin.
Returns
Nagbabalik ng 204 No Content kung matagumpay, na may walang laman na body.
Failure Modes
Name
400 - Bad Request
Description
Ang task ay nasa terminal na estado na at hindi na maaaring kanselahin.
Name
404 - Not Found
Description
Hindi umiiral ang task, pag-aari ito ng ibang user, o hindi tumutugma ang stage nito sa URL path.
I-stream ang mga real-time update para sa isang keychain task sa pamamagitan ng Server-Sent Events (SSE).
Ang URL path ay dapat tumugma sa stage ng task — ang pagbukas ng stream sa
/prototype/:buildId/stream ay maglalabas ng iisang event: error na payload na may
status_code: 404 at isasara ang stream.
Mga Parameter
Name
id
Type
path
Description
Natatanging identifier ng keychain task na i-stream.
Ibinabalik
Nagbabalik ng stream ng Keychain Prototype
o Keychain Build na mga task object bilang
Server-Sent Events. Bawat frame ay may dalang kumpletong task object para sa stage na iyon — ang parehong hugis na
ibinabalik ng Get endpoint — kaya habang ang task ay PENDING o IN_PROGRESS, ang
mga output field ay hindi pa lang napopopulate (null, [] o {}) at
ang finished_at ay null.
// 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=***" }}
Kumuha ng paginated na listahan ng iyong mga keychain task para sa isang yugto (stage). Ang URL
path ang pumipili ng yugto — ang /prototype ay nagbabalik ng mga prototype task; ang /build
ay nagbabalik ng mga build task. Ang mga task mula sa kabilang yugto ay hindi kasama sa alinman
sa dalawang tugon.
Path Parameters
Name
stage
Type
path
Kinakailangan
Description
Alinman sa prototype o build. Ang koleksyon ay nagbabalik lamang ng mga task
na ang yugto ay tumutugma sa URL — ang pagkuha sa /prototype ay hindi kailanman nagbabalik ng
mga build task at vice versa.
Query Parameters
Name
page_num
Type
integer
default 1
Description
Numero ng pahina para sa pagination.
Name
page_size
Type
integer
default 10
Description
Limitasyon sa bilang ng item bawat pahina. Ang pinakamataas na pinapayagan ay 100 na item.
Name
sort_by
Type
string
default -created_at
Description
Field na gagamitin sa pag-sort. Mga magagamit na value:
+created_at: Isaayos ayon sa oras ng paglikha nang paakyat (ascending).
-created_at: Isaayos ayon sa oras ng paglikha nang pababa (descending).
Ang Keychain Prototype Task object ay isang yunit ng trabaho na sinusubaybayan ng Meshy upang
gumawa ng kinulayang concept image mula sa isang pinagmulang larawan. Ang output ng
yugtong ito ay naka-chain papunta sa yugto ng build
sa pamamagitan ng input_task_id.
Mga Property
Name
id
Type
string
Description
Natatanging identifier para sa task. Bagama't gumagamit kami ng k-sortable UUID para sa mga task id bilang detalye ng implementasyon, hindi ka dapat gumawa ng anumang pagpapalagay tungkol sa format ng id.
Name
type
Type
string
Description
Uri ng task. Ang value ay creative-lab-keychain-prototype.
Name
name
Type
string
Description
Ang pangalan ng task na ibinigay noong ginawa ang task. Empty string kung walang pangalang ibinigay.
Name
name_text
Type
string
Description
Ang ukit na inilapat sa keychain na ito, matapos alisin ang mga blangko sa dulo at ang mga hindi nakikitang character sa pag-format. Wala ito kapag ginawa ang task nang walang name_text. Ihambing ito sa pinadala mo upang tiyakin na nakaligtas ang teksto sa pag-encode ng iyong HTTP client.
Name
status
Type
string
Description
Status ng task. Ang mga posibleng value ay isa sa PENDING, IN_PROGRESS, SUCCEEDED, FAILED, CANCELED.
Name
progress
Type
integer
Description
Progress ng task. Kung hindi pa nasisimulan ang task, ang property na ito ay magiging 0. Kapag nagtagumpay na ang task, ito ay magiging 100.
Name
created_at
Type
timestamp
Description
Timestamp kung kailan ginawa ang task, sa milliseconds.
Ang isang timestamp ay kumakatawan sa bilang ng milliseconds na lumipas simula Enero 1, 1970 UTC, kasunod ng
pamantayang RFC 3339.
Halimbawa, ang Biyernes, Setyembre 1, 2023 12:00:00 PM GMT ay kinakatawan bilang 1693569600000. Nalalapat ito
sa lahat ng timestamp sa Meshy API.
Name
started_at
Type
timestamp
Description
Timestamp kung kailan sinimulan ang task, sa milliseconds. Kung hindi pa nasisimulan ang task, ang property na ito ay magiging 0.
Name
finished_at
Type
timestamp
Description
Timestamp kung kailan natapos ang task, sa milliseconds. Kung hindi pa tapos ang task, ang property na ito ay magiging 0.
Name
expires_at
Type
timestamp
Description
Timestamp kung kailan mag-e-expire ang resulta ng task, sa milliseconds.
Name
preceding_tasks
Type
integer
Description
Ang bilang ng mga naunang task.
Ang value ng field na ito ay makabuluhan lamang kung ang status ng task ay PENDING.
Name
task_error
Type
object
Description
Mga detalye ng error para sa mga nabigong task. Tingnan ang Errors para sa kumpletong reference ng task_error object.
Name
consumed_credits
Type
integer
Description
Ang bilang ng credits na nagamit ng task na ito. Nakikita kapag ang status ng task ay PENDING, IN_PROGRESS, o SUCCEEDED. Nagbabalik ng 0 para sa mga FAILED na task (naibabalik ang credits kapag nabigo).
Name
image_urls
Type
array of strings
Description
Mga URL na maaaring i-download para sa mga kandidatong concept image na nabuo ng prototype task na ito. Sa kasalukuyan, palaging nagbabalik ang API ng eksaktong isang kandidato; ang field ay isang array upang ang mga susunod na rebisyon ay makapagpakita ng maraming kandidato nang hindi sinisira ang backward compatibility.
Ang Keychain Build Task object ay isang yunit ng trabaho na sinusubaybayan ng Meshy
upang bumuo ng pangwakas na 3D keychain mesh mula sa isang matagumpay na prototype task. Ang
build ay nagpapatakbo ng depth-map relief pipeline sa concept image ng prototype at
naglalathala ng iisang mesh artifact sa format na hiniling ng caller.
Mga Property
Name
id
Type
string
Description
Natatanging identifier para sa task.
Name
type
Type
string
Description
Uri ng task. Ang value ay creative-lab-keychain-build.
Name
name
Type
string
Description
Ang pangalan ng task na ibinigay noong nilikha ang task. Blangkong string kung walang ibinigay na pangalan.
Name
status
Type
string
Description
Status ng task. Ang posibleng mga value ay isa sa PENDING, IN_PROGRESS, SUCCEEDED, FAILED, CANCELED.
Name
progress
Type
integer
Description
Progress ng task. Kung hindi pa nasisimulan ang task, ang property na ito ay magiging 0. Kapag matagumpay na ang task, ito ay magiging 100.
Name
created_at
Type
timestamp
Description
Timestamp kung kailan nilikha ang task, sa milliseconds.
Name
started_at
Type
timestamp
Description
Timestamp kung kailan sinimulan ang task, sa milliseconds.
Name
finished_at
Type
timestamp
Description
Timestamp kung kailan natapos ang task, sa milliseconds.
Name
expires_at
Type
timestamp
Description
Timestamp kung kailan mag-e-expire ang resulta ng task, sa milliseconds.
Name
preceding_tasks
Type
integer
Description
Ang bilang ng mga nauunang task. May kabuluhan lamang kapag ang status ay PENDING.
Name
task_error
Type
object
Description
Detalye ng error para sa mga nabigong task. Tingnan ang Errors para sa buong reference ng task_error object.
Name
consumed_credits
Type
integer
Description
Ang bilang ng credits na nagamit ng task na ito. Nagbabalik ng 0 para sa mga task na FAILED (ibinabalik ang credits kung mabigo).
Name
model_urls
Type
object
Description
Mga URL na maaaring i-download para sa nabuong artifact, naka-key ayon sa pangalan ng artifact. Palaging naglalaman ng eksaktong isang entry — ang format na hiniling sa pamamagitan ng output.format ng build request. Ang key ay tumutugma sa hiniling na format:
Name
glb
Type
string
Description
URL na maaaring i-download para sa GLB file. Naroroon kapag ang output.format ay glb (ang default).
Name
obj
Type
string
Description
URL na maaaring i-download para sa isang zip bundle na naglalaman ng model.obj, model.mtl, at texture.png. Naroroon kapag ang output.format ay obj.
Name
bundle_zip
Type
string
Description
URL na maaaring i-download para sa isang zip bundle ng bawat artifact na inilalabas ng generator. Naroroon kapag ang output.format ay zip.