lowpoly akan dihentikan pada 30 Okt 2026. Tukar model sebelum tarikh-tarikh ini untuk mengelakkan ralat permintaan. Lihat semua penamatan

API Ukiran timbul

Tukar satu foto menjadi model 3D ukiran timbul dan peta kedalaman 16-bit, untuk pencetakan 3D, pengukiran laser, dan pengukiran CNC.


POST/openapi/v1/relief

Create a Relief task

Mencipta tugas Ukiran timbul. Tugas ini menukarkan foto kepada model bas-relief. Apabila berjaya, tugas ini menghasilkan model sebagai fail GLB dan fail STL, peta kedalaman skala kelabu 16-bit, dan imej pratonton. Untuk mendapatkan hanya peta kedalaman, tetapkan should_generate_model kepada false.

Tugas ini berjalan di latar belakang.

Tugas Ukiran timbul tidak boleh menjadi input bagi endpoint lain, seperti Remesh, Tukar, atau Auto Split. Permintaan tersebut mengembalikan 403.

Request

POST
/openapi/v1/relief
# Simple request: a low relief, 60 mm on its longer side
curl https://api.meshy.ai/openapi/v1/relief \
-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>"
  }'

# Advanced request: a deep 120 mm relief with a thicker base, curved from side to side
curl https://api.meshy.ai/openapi/v1/relief \
-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>",
    "variant": "high",
    "size_mm": 120,
    "carving_depth_mm": 10,
    "base_thickness_mm": 3,
    "bend_mode": "convex",
    "bend_angle": 90
  }'

Response

{
  "result": "0199c3d2-5a7e-7b14-9e2f-3c8d1a6b4f20"
}

Parameter

  • Name
    image_url
    Type
    string
    Diperlukan
    Description

    Foto untuk ditukar menjadi ukiran timbul, sebagai URL awam atau Data URI (data:image/png;base64,...).

    Imej mestilah fail JPG, JPEG, PNG, atau WebP bersaiz maksimum 20 MB, dan sekurang-kurangnya 32 × 32 piksel. Sisi lebih panjangnya boleh menjadi paling banyak kira-kira 16 kali sisi lebih pendeknya. Imej lain mengembalikan 400. Meshy mengisi kawasan lut sinar dengan warna hitam sebelum membina ukiran timbul.

  • Name
    variant
    Type
    string
    lalai low
    Description

    Gaya ukiran timbul. Ia membentuk peta kedalaman dan menetapkan carving_depth_mm lalai.

    Nilai yang tersedia:

    • high: ukiran lebih dalam, untuk kepingan cetak 3D.
    • low: ukiran cetek, untuk ukiran laser, ukiran CNC, dan plak nipis.

    Menghantar null atau "" adalah sama seperti meninggalkannya. Sebarang nilai lain mengembalikan 400.

  • Name
    should_generate_model
    Type
    boolean
    lalai true
    Description

    Sama ada untuk membina model ukiran timbul. Tetapkan kepada false untuk tugas peta-kedalaman-sahaja, tanpa model dan tanpa imej pratonton. Meshy tetap menyemak parameter saiz, ukiran, asas, lengkungan, dan resolusi, tetapi tidak menggunakannya. Ia tidak mengubah kos kredit.

  • Name
    size_mm
    Type
    number
    lalai 60
    Description

    Panjang sisi lebih panjang foto pada model, diukur rata sebelum sebarang lengkungan, dari 20 hingga 250 milimeter. Dengan remove_base, model boleh menjadi lebih kecil.

  • Name
    carving_mode
    Type
    string
    lalai emboss
    Description

    Sama ada subjek menonjol dari plat atau diukir ke dalamnya.

    Nilai yang tersedia:

    • emboss: bahagian yang lebih dekat pada foto menonjol.
    • engrave: kedalaman diterbalikkan, jadi bahagian yang lebih dekat diukir ke dalam.

    Peta kedalaman adalah sama dalam kedua-dua mod.

  • Name
    carving_depth_mm
    Type
    number
    lalai 6 (high), 3 (low)
    Description

    Seberapa dalam ukiran timbul diukir, dari 0 hingga 60 milimeter. Dengan remove_base ditetapkan kepada true, 0 meninggalkan model kosong. Tugas tetap berjaya dan dikenakan 20 kredit, dan fail GLB serta STL-nya tidak mempunyai geometri.

  • Name
    remove_base
    Type
    boolean
    lalai false
    Description

    Sama ada untuk memotong latar belakang dan tidak membina plat asas. Apabila true, removal_threshold menetapkan apa yang dikira sebagai latar belakang. Meshy menyemak removal_threshold dalam kedua-dua keadaan.

Hanya berlaku apabila remove_base = true
  • Name
    removal_threshold
    Type
    number
    lalai 0.01
    Description

    Kedalaman di bawah mana Meshy memotong latar belakang, dari 0.01 hingga 1, di mana peta kedalaman berjalan dari 0 hingga 1. Nilai yang tinggi boleh memotong keseluruhan ukiran timbul dan meninggalkan model kosong, yang tetap berjaya dan dikenakan caj.

  • Name
    base_thickness_mm
    Type
    number
    lalai 1, or 0 with remove_base
    Description

    Ketebalan plat asas, dari 0.1 hingga 10 milimeter. Apabila remove_base ialah true, tinggalkan atau hantar 0.

  • Name
    bend_mode
    Type
    string
    lalai off
    Description

    Sama ada untuk melengkungkan ukiran timbul, dan ke arah mana. Apabila bukan off, bend_axis dan bend_angle membentuk lengkungan tersebut. Meshy menyemaknya dalam kedua-dua keadaan.

    Nilai yang tersedia:

    • off: ukiran timbul rata.
    • convex: bahagian hadapan menonjol ke luar.
    • concave: bahagian hadapan melengkung ke dalam.
Hanya berlaku apabila bend_mode = convex or concave
  • Name
    bend_axis
    Type
    string
    lalai xz
    Description

    Tepi mana yang dilengkungkan.

    Nilai yang tersedia:

    • xz: tepi kiri dan kanan.
    • yz: tepi atas dan bawah.
  • Name
    bend_angle
    Type
    number
    lalai 60
    Description

    Lengkok yang dirangkumi oleh lengkungan, dari 0 hingga 360 darjah. Di bawah 1, ukiran timbul kekal rata.

  • Name
    mesh_resolution
    Type
    integer
    lalai 1024
    Description

    Bilangan titik jejaring sepanjang sisi lebih panjang foto, dari 512 hingga 2048. Nilai yang lebih tinggi mengekalkan perincian yang lebih halus dan menghasilkan fail yang lebih besar. Pada lalai 1024, fail GLB adalah kira-kira 40 hingga 50 MB dan fail STL kira-kira 80 hingga 105 MB. Foto berbentuk segi empat sama memberikan saiz yang lebih besar. Pada 2048, ia kira-kira 150 MB dan 300 MB. Lengkungan menjadikannya lebih besar: fail STL boleh mencapai kira-kira 800 MB pada 2048.

Pulangan

202 Accepted, dengan ID tugas Ukiran timbul baharu dalam result.

Mod kegagalan

  • Name
    400 - Bad Request
    Description

    Permintaan tidak dapat dijalankan. Mesej ralat menyatakan masalah yang ditemui. Contohnya:

    • Parameter hilang: image_url tidak dihantar.
    • Parameter tidak sah: Satu parameter mempunyai jenis yang salah, berada di luar julatnya, atau bukan salah satu nilai yang tersedia. Contohnya, variant bukan high atau low, atau mesh_resolution bukan integer dari 512 hingga 2048.
    • Ketebalan asas: base_thickness_mm bukan 0 dengan remove_base ditetapkan kepada true, atau di bawah 0.1 tanpanya.
    • URL tidak dapat dicapai: Meshy tidak dapat memuat turun imej image_url, contohnya kerana URL mengembalikan 404 atau tamat masa.
    • Imej tidak sah: Imej bukan fail JPG, JPEG, PNG, atau WebP, melebihi 20 MB, lebih kecil daripada 32 × 32 piksel, mempunyai terlalu banyak piksel, atau tidak dapat dibaca.
    • Nisbah bidang melampau: Sisi lebih panjang imej lebih daripada kira-kira 16 kali sisi lebih pendeknya.

    Betulkan permintaan, kemudian hantar semula. Meshy tidak mengenakan caj untuknya. Lihat Ralat.

  • Name
    401 - Unauthorized
    Description

    Kunci API hilang atau tidak sah. Semak header Authorization.

  • Name
    402 - Payment Required
    Description

    Contohnya:

    • Kredit tidak mencukupi: Akaun tidak mempunyai kredit yang mencukupi untuk tugas ini, atau akaun telah mencapai had kredit. Semak baki kredit anda, kemudian cuba semula.
    • Pelan percuma: Mencipta tugas memerlukan pelan berbayar. Naik taraf pelan anda dalam tetapan langganan anda, kemudian cuba semula.
  • Name
    403 - Forbidden
    Description

    Moderation kandungan menyekat imej tersebut. Meshy tidak mengenakan caj untuk permintaan ini. Hantar imej lain.

  • Name
    429 - Too Many Requests
    Description

    Salah satu had berikut telah dicapai:

    • Anda menghantar terlalu banyak permintaan. Tunggu, kemudian cuba semula. Lihat Had kadar.
    • Terlalu banyak tugas anda sedang dalam baris gilir atau berjalan. Tunggu sehingga sesetengahnya selesai, kemudian cuba semula.
    • Pada pelan tanpa had tanpa baki kredit, anda telah mencapai bilangan tugas yang boleh berjalan tanpa kredit. Tunggu sehingga satu tugas selesai, atau tambah kredit.

Jika semakan keselamatan menolak imej semasa tugas berjalan, tugas gagal dengan task_error.type ditetapkan kepada invalid_input dan task_error.code ditetapkan kepada provider_content_refused. Meshy memulangkan semula kredit tugas tersebut. Hantar imej lain. Lihat Ralat.


GET/openapi/v1/relief/:id

Dapatkan tugas Ukiran timbul

Mengembalikan tugas Ukiran timbul mengikut ID-nya.

Request

GET
/openapi/v1/relief/0199c3d2-5a7e-7b14-9e2f-3c8d1a6b4f20
curl https://api.meshy.ai/openapi/v1/relief/0199c3d2-5a7e-7b14-9e2f-3c8d1a6b4f20 \
-H "Authorization: Bearer ${YOUR_API_KEY}"

Response

{
  "id": "0199c3d2-5a7e-7b14-9e2f-3c8d1a6b4f20",
  "type": "relief",
  "model_urls": {
    "glb": "https://assets.meshy.ai/***/tasks/0199c3d2-5a7e-7b14-9e2f-3c8d1a6b4f20/output/model.glb?Expires=***",
    "stl": "https://assets.meshy.ai/***/tasks/0199c3d2-5a7e-7b14-9e2f-3c8d1a6b4f20/output/model.stl?Expires=***"
  },
  "depth_map_url": "https://assets.meshy.ai/***/tasks/0199c3d2-5a7e-7b14-9e2f-3c8d1a6b4f20/output/depth.png?Expires=***",
  "thumbnail_url": "https://assets.meshy.ai/***/tasks/0199c3d2-5a7e-7b14-9e2f-3c8d1a6b4f20/output/preview.png?Expires=***",
  "progress": 100,
  "status": "SUCCEEDED",
  "created_at": 1699999999000,
  "started_at": 1700000000000,
  "finished_at": 1700000060000,
  "expires_at": 1700259260000,
  "task_error": null,
  "consumed_credits": 20
}

Parameter

  • Name
    id
    Type
    path
    Description

    ID tugas daripada respons pembuatan (create).

Hasil Kembali

Objek tugas Ukiran timbul.


DELETE/openapi/v1/relief/:id

Padam tugas Ukiran timbul

Memadam tugas Ukiran timbul secara kekal, termasuk model, peta kedalaman, dan datanya. Anda tidak boleh membatalkan pemadaman.

Request

DELETE
/openapi/v1/relief/0199c3d2-5a7e-7b14-9e2f-3c8d1a6b4f20
curl --request DELETE \
  --url https://api.meshy.ai/openapi/v1/relief/0199c3d2-5a7e-7b14-9e2f-3c8d1a6b4f20 \
  -H "Authorization: Bearer ${YOUR_API_KEY}"

Response

// 200 OK on success, with an empty body.
//
// 409 Conflict when the task is IN_PROGRESS. The task keeps running:
{
  "message": "Task is IN_PROGRESS and cannot be deleted. Credits for a task the worker has already started are not refundable; wait for it to reach SUCCEEDED, FAILED or CANCELED, then delete it."
}

Parameter laluan

  • Name
    id
    Type
    path
    Description

    ID tugas yang hendak dipadam.

Status tugas

Memadam tugas PENDING akan memulangkan kredit yang digunakan semasa anda membuatnya.

Tugas IN_PROGRESS tidak boleh dipadam. Permintaan itu akan mengembalikan 409 Conflict, dan tugas itu terus berjalan. Meshy tidak memulangkan kredit untuk tugas yang telah bermula, jadi memadamnya akan membuat anda rugi kedua-dua kredit dan hasilnya. Tunggu sehingga ia mencapai SUCCEEDED atau FAILED, kemudian padamkannya.

Memadam tugas SUCCEEDED tidak memulangkan kreditnya. Tugas FAILED sudah dipulangkan kreditnya apabila ia gagal.

Pemulangan

200 OK apabila tugas dipadam, atau 409 Conflict apabila tugas sedang IN_PROGRESS.


GET/openapi/v1/relief

Senaraikan tugas Ukiran timbul

Mengembalikan senarai tugas Ukiran timbul anda.

Request

GET
/openapi/v1/relief
curl https://api.meshy.ai/openapi/v1/relief?page_size=10 \
-H "Authorization: Bearer ${YOUR_API_KEY}"

Response

[
  {
    "id": "0199c3d2-5a7e-7b14-9e2f-3c8d1a6b4f20",
    "type": "relief",
    "model_urls": {
      "glb": "https://assets.meshy.ai/***/tasks/0199c3d2-5a7e-7b14-9e2f-3c8d1a6b4f20/output/model.glb?Expires=***",
      "stl": "https://assets.meshy.ai/***/tasks/0199c3d2-5a7e-7b14-9e2f-3c8d1a6b4f20/output/model.stl?Expires=***"
    },
    "depth_map_url": "https://assets.meshy.ai/***/tasks/0199c3d2-5a7e-7b14-9e2f-3c8d1a6b4f20/output/depth.png?Expires=***",
    "thumbnail_url": "https://assets.meshy.ai/***/tasks/0199c3d2-5a7e-7b14-9e2f-3c8d1a6b4f20/output/preview.png?Expires=***",
    "progress": 100,
    "status": "SUCCEEDED",
    "created_at": 1699999999000,
    "started_at": 1700000000000,
    "finished_at": 1700000060000,
    "expires_at": 1700259260000,
    "task_error": null,
    "consumed_credits": 20
  }
]

Parameter

  • Name
    page_num
    Type
    integer
    Description

    Nombor halaman yang hendak dikembalikan. Bermula pada dan lalai kepada 1.

  • Name
    page_size
    Type
    integer
    Description

    Bilangan tugas setiap halaman, sehingga 100. Lalai kepada 10. Meshy menganggap nilai dari 101 hingga 255 sebagai 100, dan nilai yang lebih besar akan mengembalikan 400.

  • Name
    sort_by
    Type
    string
    Description

    Susunan isihan.

    Nilai yang tersedia:

    • +created_at: paling lama dahulu
    • -created_at: paling baharu dahulu

Mengembalikan

Senarai berhalaman objek tugas Ukiran timbul.


GET/openapi/v1/relief/:id/stream

Strim tugas Ukiran timbul

Menstrim kemas kini tugas Ukiran timbul sebagai Server-Sent Events (SSE).

Request

GET
/openapi/v1/relief/0199c3d2-5a7e-7b14-9e2f-3c8d1a6b4f20/stream
curl -N https://api.meshy.ai/openapi/v1/relief/0199c3d2-5a7e-7b14-9e2f-3c8d1a6b4f20/stream \
-H "Authorization: Bearer ${YOUR_API_KEY}"

Response Stream

// Error event example
event: error
data: {
  "status_code": 404,
  "message": "Task not found"
}

// Message event examples illustrate task progress (other task fields omitted here for brevity;
// each frame is the full task object).
event: message
data: {
  "id": "0199c3d2-5a7e-7b14-9e2f-3c8d1a6b4f20",
  "progress": 0,
  "status": "PENDING"
}

event: message
data: {
  "id": "0199c3d2-5a7e-7b14-9e2f-3c8d1a6b4f20",
  "type": "relief",
  "model_urls": {
    "glb": "https://assets.meshy.ai/***/tasks/0199c3d2-5a7e-7b14-9e2f-3c8d1a6b4f20/output/model.glb?Expires=***",
    "stl": "https://assets.meshy.ai/***/tasks/0199c3d2-5a7e-7b14-9e2f-3c8d1a6b4f20/output/model.stl?Expires=***"
  },
  "depth_map_url": "https://assets.meshy.ai/***/tasks/0199c3d2-5a7e-7b14-9e2f-3c8d1a6b4f20/output/depth.png?Expires=***",
  "thumbnail_url": "https://assets.meshy.ai/***/tasks/0199c3d2-5a7e-7b14-9e2f-3c8d1a6b4f20/output/preview.png?Expires=***",
  "progress": 100,
  "status": "SUCCEEDED",
  "created_at": 1699999999000,
  "started_at": 1700000000000,
  "finished_at": 1700000060000,
  "expires_at": 1700259260000,
  "task_error": null,
  "consumed_credits": 20
}

Parameter

  • Name
    id
    Type
    path
    Description

    ID tugas daripada respons penciptaan.

Hasil

Satu strim objek tugas Ukiran timbul sebagai Server-Sent Events.

Setiap acara message mengandungi objek tugas penuh, sama seperti yang dikembalikan oleh Dapatkan tugas Ukiran timbul. Semasa tugas berstatus PENDING atau IN_PROGRESS, medan yang berubah antara acara ialah progress, status, started_at, dan preceding_tasks (hanya wujud semasa terdapat tugas lain yang mendahului tugas ini). model_urls, depth_map_url, dan thumbnail_url akan mendapat nilainya apabila tugas mencapai status SUCCEEDED. Tugas yang hanya menghasilkan peta kedalaman (depth-map-only) akan mengekalkan model_urls sebagai {} dan thumbnail_url yang kosong.

Acara error hanya mengandungi status_code dan message, jadi semak nama acara sebelum anda membaca status.


Objek tugas Ukiran timbul

Objek tugas Ukiran timbul menerangkan satu ukiran timbul yang dihasilkan daripada foto. model_urls, depth_map_url, dan thumbnail_url sentiasa hadir, dan kosong sehingga tugas berjaya.

The Relief Task Object

{
  "id": "0199c3d2-5a7e-7b14-9e2f-3c8d1a6b4f20",
  "type": "relief",
  "model_urls": {
    "glb": "https://assets.meshy.ai/***/tasks/0199c3d2-5a7e-7b14-9e2f-3c8d1a6b4f20/output/model.glb?Expires=***",
    "stl": "https://assets.meshy.ai/***/tasks/0199c3d2-5a7e-7b14-9e2f-3c8d1a6b4f20/output/model.stl?Expires=***"
  },
  "depth_map_url": "https://assets.meshy.ai/***/tasks/0199c3d2-5a7e-7b14-9e2f-3c8d1a6b4f20/output/depth.png?Expires=***",
  "thumbnail_url": "https://assets.meshy.ai/***/tasks/0199c3d2-5a7e-7b14-9e2f-3c8d1a6b4f20/output/preview.png?Expires=***",
  "progress": 100,
  "status": "SUCCEEDED",
  "created_at": 1699999999000,
  "started_at": 1700000000000,
  "finished_at": 1700000060000,
  "expires_at": 1700259260000,
  "task_error": null,
  "consumed_credits": 20
}

Depth map only

{
  "id": "0199c3d2-6b8f-7c25-8f3a-4d9e2b7c5a31",
  "type": "relief",
  "model_urls": {},
  "depth_map_url": "https://assets.meshy.ai/***/tasks/0199c3d2-6b8f-7c25-8f3a-4d9e2b7c5a31/output/depth.png?Expires=***",
  "thumbnail_url": "",
  "progress": 100,
  "status": "SUCCEEDED",
  "created_at": 1699999999000,
  "started_at": 1700000000000,
  "finished_at": 1700000030000,
  "expires_at": 1700259230000,
  "task_error": null,
  "consumed_credits": 20
}
  • Name
    id
    Type
    string
    Description

    ID tugas. Anggapnya sebagai rentetan legap, dan jangan bergantung pada formatnya.

  • Name
    type
    Type
    string
    Description

    Jenis tugas, sentiasa relief.

  • Name
    model_urls
    Type
    object
    Description

    URL muat turun untuk model ukiran timbul. Fail boleh menjadi besar; mesh_resolution menyenaraikan saiz biasa.

    • Name
      glb
      Type
      string
      Description

      Fail GLB, tanpa tekstur. Unitnya adalah meter. Tiada bagi tugas khusus peta kedalaman sahaja.

    • Name
      stl
      Type
      string
      Description

      Model yang sama sebagai fail STL binari. Unitnya adalah milimeter, jadi ia dibuka pada saiz sebenar ukiran timbul, dengan Z menghala ke atas. Tiada bagi tugas khusus peta kedalaman sahaja.

  • Name
    depth_map_url
    Type
    string
    Description

    URL muat turun untuk peta kedalaman skala kelabu 16-bit yang menjadi asas ukiran timbul. Piksel yang lebih cerah adalah lebih tinggi. Nilai tersebut adalah ketinggian relatif, bukan milimeter. Perisian ukiran laser dan CNC boleh menggunakannya sebagai peta ketinggian. Saiz fail adalah kira-kira 1 hingga 2 MB. Kosong jika tiada.

  • Name
    thumbnail_url
    Type
    string
    Description

    URL muat turun untuk imej pratonton model ukiran timbul. Kosong jika tiada yang dirender, termasuk bagi tugas khusus peta kedalaman sahaja.

  • Name
    progress
    Type
    integer
    Description

    Sejauh mana tugas telah selesai, dalam peratusan. Ia adalah 0 sehingga tugas bermula dan 100 apabila ia berjaya.

  • Name
    status
    Type
    string
    Description

    Status tugas, salah satu daripada PENDING, IN_PROGRESS, SUCCEEDED, atau FAILED.

  • Name
    preceding_tasks
    Type
    integer
    Description

    Bilangan tugas yang mendahului tugas ini dalam baris gilir. Medan ini ditinggalkan apabila nilainya 0, jadi ia hanya muncul semasa terdapat tugas yang mendahului tugas ini.

  • Name
    created_at
    Type
    timestamp
    Description

    Masa tugas dicipta, dalam milisaat Unix.

  • Name
    started_at
    Type
    timestamp
    Description

    Masa tugas bermula, dalam milisaat Unix. Ia adalah 0 sehingga tugas bermula.

  • Name
    finished_at
    Type
    timestamp
    Description

    Masa tugas selesai, dalam milisaat Unix. Ia adalah 0 sehingga tugas selesai.

  • Name
    expires_at
    Type
    timestamp
    Description

    Masa keputusan tugas tamat tempoh, dalam milisaat Unix. Ia adalah 0 sehingga tugas selesai.

  • Name
    task_error
    Type
    object
    Description

    Butiran ralat apabila tugas gagal. Lihat Ralat.

  • Name
    consumed_credits
    Type
    integer
    Description

    Bilangan kredit yang digunakan oleh tugas: 20, atau 0 untuk tugas FAILED, yang akan dikembalikan semula oleh Meshy.