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

API Analisis Kebolehcetakan

Analisis model 3D untuk kebolehcetakan — kekedapan air, isi padu, lubang, tepi non-manifold, dan muka degenerat. Secara pilihan, anda juga boleh menyemak ketebalan dinding pada saiz yang anda rancang untuk mencetak.


POST/openapi/v1/print/analyze

Create an Analyze Printability Task

Endpoint ini mencipta tugas analisis kebolehcetakan yang baharu. Tugas ini menilai model 3D dan melaporkan metrik kebolehcetakannya.

Tugas ini berjalan di latar belakang. Untuk tempoh biasa yang diambil, lihat Processing Times.

Jika tugas input sudah mempunyai kebolehcetakan yang dicache, tugas yang dikembalikan akan sedia serta-merta dan GET pertama ke atasnya akan mengembalikan hasil analisis tanpa melalui worker.

Untuk turut memeriksa ketebalan dinding pada saiz yang anda rancang untuk cetak, hantar printer_type, saiz cetakan, atau kedua-duanya. Hasilnya dikembalikan dalam printability.thin_walls. Memeriksa ketebalan dinding mengambil masa lebih lama, jadi tugas biasanya tidak sedia serta-merta, walaupun model itu pernah dianalisis sebelum ini.

Parameter

  • Name
    model_url
    Type
    string
    Diperlukan
    Description

    URL model 3D untuk dianalisis. Format yang disokong: .glb, .gltf, .obj, .fbx, .stl. Gunakan URL http atau https, atau URL data: base64 untuk GLB (data:model/gltf-binary;base64,...) atau glTF (data:model/gltf+json;base64,...). Fail .obj, .fbx dan .stl mesti dihantar sebagai URL http atau https.

    Saiz fail maksimum: 400 MB untuk URL http atau https, 100 MB untuk URI data:.

    Fail GLB, glTF, FBX atau OBJ melebihi 100 MB boleh mempunyai paling banyak 10,000,000 muka. Muka dikira sebagai segi tiga: segi empat dikira sebagai 2, dan jejaring yang dilukis lebih daripada sekali dikira sekali bagi setiap salinan. Melebihi 100 MB, fail FBX mesti berupa binary FBX 7.1 atau lebih baharu, dan fail GLB atau glTF tidak boleh menggunakan pemampatan Draco.

    URL muat turun Meshy (assets.meshy.ai/…?Expires=…&Signature=…) ditandatangani dan akan berhenti berfungsi pada expires_at tugas tersebut; mengambil semula tugas itu tidak akan memperbaharuinya. Untuk model yang dijana dengan Meshy, hantar input_task_id sebaliknya. Ia berfungsi selagi tugas sumber dikekalkan (lihat Asset Retention). Untuk menggunakan semula model selepas itu, muat turun ia sebelum expires_at dan hantar salinan anda sendiri.

  • Name
    printer_type
    Type
    string
    Description

    Pencetak yang anda rancang untuk digunakan. Ia menetapkan ketebalan dinding minimum untuk pemeriksaan ketebalan dinding. Lalai kepada fdm apabila anda menghantar saiz cetakan tanpanya.

    Nilai yang tersedia:

    • fdm: filamen, dinding minimum 1.0 mm.
    • sla: resin, dinding minimum 0.8 mm.
    • full_color: warna penuh, dinding minimum 2.0 mm.
  • Name
    intended_print_height_mm
    Type
    number
    Description

    Tinggi cetakan, dalam milimeter. Julat: [1, 1000]. Dibundarkan kepada milimeter terdekat. Hanya untuk input GLB.

  • Name
    intended_print_longest_side_mm
    Type
    number
    Description

    Panjang sisi terpanjang cetakan, dalam milimeter. Julat: [1, 1000]. Dibundarkan kepada milimeter terdekat. Berfungsi dengan setiap format input.

Hasil Dikembalikan

Sifat result bagi respons mengandungi id tugas analisis kebolehcetakan yang baharu dicipta.

Mod Kegagalan

  • Name
    400 - Bad Request
    Description

    Permintaan tidak dapat diterima. Punca biasa:

    • Parameter hilang: kedua-dua input_task_id dan model_url tidak diberikan.
    • UUID tidak sah: input_task_id bukan UUID yang sah.
    • URL model tidak sah: model_url tidak sah bentuknya, menggunakan skema yang tidak disokong, atau mempunyai sambungan fail yang tidak disokong.
    • Fail model terlalu besar: badan model_url melebihi 400 MB (URL http atau https) atau 100 MB (URI data:).
    • Terlalu banyak muka: model_url ialah fail GLB, glTF, FBX atau OBJ melebihi 100 MB dengan lebih daripada 10,000,000 muka. Kurangkan bilangan muka, kemudian hantar fail itu semula.
    • ASCII FBX melebihi 100 MB: model_url ialah ASCII FBX melebihi 100 MB. Hantar ia sebagai binary FBX atau GLB.
    • Fail model tidak boleh dibaca: model_url melebihi 100 MB dan pengepalanya tidak dapat dibaca, contohnya GLB atau glTF yang dimampatkan dengan Draco, atau binary FBX yang lebih lama daripada 7.1.
    • Pengepala model terlalu kompleks: model_url melebihi 100 MB dan pengepalanya mempunyai terlalu banyak jejaring, nod atau rekod untuk diperiksa. Kurangkan bilangan objek dalam fail itu, kemudian hantar ia semula.
    • Fail model tidak dapat dimuat turun: model_url mengembalikan ralat, paling kerap kerana URL muat turun Meshy yang ditandatangani telah luput. Mengambil semula tugas itu mengembalikan URL yang sama dengan tempoh luput yang sama, jadi hantar salinan anda sendiri bagi fail itu, atau gunakan input_task_id selagi tugas sumber masih dikekalkan.
    • Tugas tidak berjaya: tugas yang dirujuk masih tertangguh, sedang berjalan, atau gagal.
    • Saiz cetakan tidak sah: intended_print_height_mm atau intended_print_longest_side_mm berada di luar [1, 1000], atau kedua-duanya dihantar.
    • Jenis pencetak tidak diketahui: printer_type bukan fdm, sla, atau full_color.
    • Tinggi pada model bukan GLB: intended_print_height_mm dihantar dengan model_url yang bukan .glb. Gunakan intended_print_longest_side_mm sebaliknya.
    • Tidak dapat menetapkan saiz model ini mengikut tinggi: pada tinggi yang diminta (atau lalai 150 mm), sisi terpanjang model akan berada di luar [1, 1000] mm, model itu rata, atau saiznya tidak dapat ditentukan. Gunakan intended_print_longest_side_mm sebaliknya. Untuk model_url .glb dan sesetengah tugas input_task_id, ini hanya ditemui selepas tugas bermula, dan tugas itu berakhir FAILED sebaliknya.
    • Saiz STL tidak boleh digunakan: printer_type dihantar tanpa saiz, dan sisi terpanjang .stl itu sendiri tidak dapat dibaca atau berada di luar [1, 1000] mm. Hantar intended_print_longest_side_mm.
  • Name
    401 - Unauthorized
    Description

    Pengesahan gagal. Sila semak kunci API anda.

  • Name
    404 - Not Found
    Description

    Punca biasa:

    • Tugas tersebut tidak wujud, telah dipadamkan, atau dimiliki oleh pengguna lain.
    • Tugas tersebut menggunakan model yang lebih lama daripada Meshy 6, atau modenya tidak menghasilkan aset 3D.
    • Fail model asas tidak lagi tersedia dalam storan.
  • Name
    429 - Too Many Requests
    Description

    Anda telah melebihi kuota tugas tertangguh atau had kadar anda.

Request

POST
/openapi/v1/print/analyze
# Analyze an existing task
curl https://api.meshy.ai/openapi/v1/print/analyze \
-X POST \
-H "Authorization: Bearer ${YOUR_API_KEY}" \
-H 'Content-Type: application/json' \
-d '{
    "input_task_id": "018a210d-8ba4-705c-b111-1f1776f7f578"
  }'

# Or analyze a model URL directly
curl https://api.meshy.ai/openapi/v1/print/analyze \
-X POST \
-H "Authorization: Bearer ${YOUR_API_KEY}" \
-H 'Content-Type: application/json' \
-d '{
    "model_url": "https://example.com/model.glb"
  }'

# Also check wall thickness for a 100 mm tall SLA print
curl https://api.meshy.ai/openapi/v1/print/analyze \
-X POST \
-H "Authorization: Bearer ${YOUR_API_KEY}" \
-H 'Content-Type: application/json' \
-d '{
    "input_task_id": "018a210d-8ba4-705c-b111-1f1776f7f578",
    "printer_type": "sla",
    "intended_print_height_mm": 100
  }'

Response

{
  "result": "0193bfc5-ee4f-73f8-8525-44b398884ce9"
}

GET/openapi/v1/print/analyze/:id

Dapatkan Tugasan Analisis Kebolehcetakan

Endpoint ini mendapatkan tugasan analisis kebolehcetakan mengikut ID-nya.

Parameter

  • Name
    id
    Type
    path
    Description

    ID tugasan analisis kebolehcetakan yang hendak didapatkan.

Nilai Pulangan

Objek Tugasan Analisis Kebolehcetakan. Medan printability adalah null sehingga tugasan mencapai SUCCEEDED. Apabila ketebalan dinding diperiksa, printability turut merangkumi intended_print dan thin_walls.

Request

GET
/openapi/v1/print/analyze/a43b5c6d-7e8f-901a-234b-567c890d1e2f
curl https://api.meshy.ai/openapi/v1/print/analyze/a43b5c6d-7e8f-901a-234b-567c890d1e2f \
-H "Authorization: Bearer ${YOUR_API_KEY}"

Response

{
  "id": "0193bfc5-ee4f-73f8-8525-44b398884ce9",
  "type": "print-analyze",
  "status": "SUCCEEDED",
  "progress": 100,
  "created_at": 1699999999000,
  "started_at": 1700000000000,
  "finished_at": 1700000001000,
  "expires_at": 1715725401000,
  "task_error": null,
  "printability": {
    "_version": "v1",
    "status": "warning",
    "issue_count": 1,
    "error_count": 0,
    "warning_count": 1,
    "metrics": {
      "is_watertight": true,
      "volume": 1.316167354292668,
      "non_manifold_edges": 0,
      "degenerate_faces": 43242,
      "holes": 0
    },
    "evaluated_at": 1700000001000
  },
  "consumed_credits": 0
}

Response (wall thickness checked)

{
  "id": "0193bfc5-ee4f-73f8-8525-44b398884ce9",
  "type": "print-analyze",
  "status": "SUCCEEDED",
  "progress": 100,
  "created_at": 1699999999000,
  "started_at": 1700000000000,
  "finished_at": 1700000012000,
  "expires_at": 1715725412000,
  "task_error": null,
  "printability": {
    "_version": "v1",
    "status": "error",
    "issue_count": 2,
    "error_count": 1,
    "warning_count": 1,
    "metrics": {
      "is_watertight": true,
      "volume": 1.316167354292668,
      "non_manifold_edges": 0,
      "degenerate_faces": 43242,
      "holes": 0
    },
    "intended_print": {
      "printer_type": "sla",
      "height_mm": 100,
      "longest_side_mm": 118,
      "wall_thickness_mm": 0.8,
      "dimensions_mm": [118, 72.41, 99.87]
    },
    "thin_walls": {
      "thin_area_ratio": 0.083,
      "has_thin_walls": true,
      "status": "error"
    },
    "evaluated_at": 1700000012000
  },
  "consumed_credits": 0
}

DELETE/openapi/v1/print/analyze/:id

Padam Tugas Analisis Kebolehcetakan

Endpoint ini memadam secara kekal tugas analisis kebolehcetakan dan hasil cache-nya. Tindakan ini tidak boleh dibatalkan.

Parameter Laluan

  • Name
    id
    Type
    path
    Description

    ID bagi tugas analisis kebolehcetakan yang hendak dipadam.

Status Tugas

Tugas yang masih PENDING akan dipadam dan kredit yang digunakan semasa penciptaan akan dikembalikan.

Tugas yang sudah IN_PROGRESS tidak boleh dipadam: permintaan akan ditolak dengan 409 Conflict dan tugas tersebut terus berjalan. Kredit bagi tugas yang telah dimulakan oleh worker tidak boleh dikembalikan, jadi memadamnya semasa ia sedang berjalan akan menyebabkan anda kehilangan kredit dan hasil tersebut sekali gus. Tunggu sehingga ia mencapai SUCCEEDED, FAILED atau CANCELED, kemudian padamkannya.

Tugas yang berada dalam keadaan terminal (SUCCEEDED, FAILED atau CANCELED) akan dipadam tanpa bayaran balik.

Pulangan

Mengembalikan 200 OK apabila berjaya, atau 409 Conflict apabila tugas berstatus IN_PROGRESS.

Request

DELETE
/openapi/v1/print/analyze/a43b5c6d-7e8f-901a-234b-567c890d1e2f
curl --request DELETE \
  --url https://api.meshy.ai/openapi/v1/print/analyze/a43b5c6d-7e8f-901a-234b-567c890d1e2f \
  -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 is left 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."
}

GET/openapi/v1/print/analyze

List Analyze Printability Tasks

Endpoint ini membolehkan anda mendapatkan senarai tugasan Analisis kebolehcetakan.

Parameter

Atribut pilihan

  • Name
    page_num
    Type
    integer
    Description

    Nombor halaman untuk penomboran halaman. Bermula dan lalai kepada 1.

  • Name
    page_size
    Type
    integer
    Description

    Had saiz halaman. Lalai kepada 10 item. Maksimum yang dibenarkan ialah 100 item.

  • Name
    sort_by
    Type
    string
    Description

    Medan untuk disusun. Nilai yang tersedia:

    • +created_at: Susun mengikut masa penciptaan secara menaik.
    • -created_at: Susun mengikut masa penciptaan secara menurun.

Pulangan

Mengembalikan senarai Objek Tugas Analisis kebolehcetakan yang dinomborkan halaman.

Request

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

Response

[
  {
    "id": "0193bfc5-ee4f-73f8-8525-44b398884ce9",
    "type": "print-analyze",
    "status": "SUCCEEDED",
    "progress": 100,
    "preceding_tasks": 0,
    "created_at": 1699999999000,
    "started_at": 1700000000000,
    "finished_at": 1700000001000,
    "expires_at": 1715725401000,
    "task_error": null,
    "printability": {
      "_version": "v1",
      "status": "warning",
      "issue_count": 1,
      "error_count": 0,
      "warning_count": 1,
      "metrics": {
        "is_watertight": true,
        "volume": 1.316167354292668,
        "non_manifold_edges": 0,
        "degenerate_faces": 43242,
        "holes": 0
      },
      "evaluated_at": 1700000001000
    },
    "consumed_credits": 0
  }
]

GET/openapi/v1/print/analyze/:id/stream

Stream an Analyze Printability Task

Endpoint ini menstrim kemas kini masa nyata untuk tugas analisis-kebolehcetakan menggunakan Server-Sent Events (SSE).

Parameter

  • Name
    id
    Type
    path
    Description

    Pengecam unik untuk tugas analisis-kebolehcetakan yang hendak distrim.

Pulangan

Mengembalikan strim Objek Tugas Analisis Kebolehcetakan sebagai Server-Sent Events.

Setiap bingkai membawa objek tugas penuh untuk peringkat tersebut — bentuk yang sama seperti yang dikembalikan oleh endpoint Get — jadi semasa tugas berstatus PENDING atau IN_PROGRESS, medan output hanya belum diisi lagi (null, [] atau {}) dan finished_at adalah null. Blok printability hanya dihantar sebaik sahaja tugas mencapai SUCCEEDED.

Request

GET
/openapi/v1/print/analyze/a43b5c6d-7e8f-901a-234b-567c890d1e2f/stream
curl -N https://api.meshy.ai/openapi/v1/print/analyze/a43b5c6d-7e8f-901a-234b-567c890d1e2f/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.
// 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: message
data: {
  "id": "a43b5c6d-7e8f-901a-234b-567c890d1e2f",
  "progress": 0,
  "status": "PENDING"
}

event: message
data: {
  "id": "a43b5c6d-7e8f-901a-234b-567c890d1e2f",
  "type": "print-analyze",
  "status": "SUCCEEDED",
  "progress": 100,
  "preceding_tasks": 0,
  "created_at": 1699999999000,
  "started_at": 1700000000000,
  "finished_at": 1700000001000,
  "expires_at": 1715725401000,
  "task_error": null,
  "printability": {
    "_version": "v1",
    "status": "warning",
    "issue_count": 1,
    "error_count": 0,
    "warning_count": 1,
    "metrics": {
      "is_watertight": true,
      "volume": 1.316167354292668,
      "non_manifold_edges": 0,
      "degenerate_faces": 43242,
      "holes": 0
    },
    "evaluated_at": 1700000001000
  },
  "consumed_credits": 0
}

Objek Tugas Analisis Kebolehcetakan

  • Name
    id
    Type
    string
    Description

    Pengecam unik untuk tugas. Walaupun kami menggunakan UUID yang boleh disusun-k untuk id tugas sebagai butiran pelaksanaan, anda tidak seharusnya membuat sebarang andaian tentang format id tersebut.

  • Name
    type
    Type
    string
    Description

    Jenis tugas analisis-kebolehcetakan. Nilainya ialah print-analyze.

  • Name
    status
    Type
    string
    Description

    Status tugas. Nilai yang mungkin ialah salah satu daripada PENDING, IN_PROGRESS, SUCCEEDED, FAILED, CANCELED.

  • Name
    progress
    Type
    integer
    Description

    Progress tugas. Jika tugas belum bermula lagi, sifat ini akan menjadi 0. Setelah tugas berjaya, ini akan menjadi 100.

  • Name
    preceding_tasks
    Type
    integer
    Description

    Bilangan tugas terdahulu.

  • Name
    created_at
    Type
    timestamp
    Description

    Cap masa bila tugas dicipta, dalam milisaat.

  • Name
    started_at
    Type
    timestamp
    Description

    Cap masa bila tugas dimulakan, dalam milisaat. Jika tugas belum bermula lagi, sifat ini akan menjadi 0.

  • Name
    finished_at
    Type
    timestamp
    Description

    Cap masa bila tugas selesai, dalam milisaat. Jika tugas belum selesai lagi, sifat ini akan menjadi 0.

  • Name
    expires_at
    Type
    timestamp
    Description

    Cap masa bila hasil tugas akan luput daripada sistem, dalam milisaat. 0 jika tugas belum selesai lagi.

  • Name
    task_error
    Type
    object
    Description

    Maklumat ralat jika tugas gagal. Sifat ini adalah null jika tugas tidak gagal. Lihat Ralat untuk maklumat lanjut.

    • Name
      message
      Type
      string
      Description

      Mesej ralat yang menerangkan apa yang tidak kena.

  • Name
    printability
    Type
    object
    Description

    Hasil penilaian kebolehcetakan. null sehingga tugas mencapai SUCCEEDED.

    • Name
      _version
      Type
      string
      Description

      Versi skema bagi hasil kebolehcetakan. Pada masa ini v1.

    • Name
      status
      Type
      string
      Description

      Status keseluruhan. Salah satu daripada:

      • healthy: tiada ralat dan tiada amaran.
      • warning: sekurang-kurangnya satu amaran, tiada ralat.
      • error: sekurang-kurangnya satu ralat.
      • unknown: model tidak dapat dianalisis.

      Apabila ketebalan dinding diperiksa, ini adalah yang lebih teruk antara pemeriksaan di atas dan thin_walls.status. Daripada paling teruk hingga paling baik: error, warning, unknown, healthy.

    • Name
      issue_count
      Type
      integer
      Description

      Jumlah bilangan isu, bersamaan dengan error_count + warning_count.

    • Name
      error_count
      Type
      integer
      Description

      Bilangan isu peringkat ralat. Ralat dibangkitkan apabila model tidak kedap air, mempunyai isipadu tidak positif, atau mempunyai tepi non-manifold. Apabila ketebalan dinding diperiksa, dinding yang terlalu nipis (thin_walls.status ialah error) dikira sebagai satu ralat tambahan.

    • Name
      warning_count
      Type
      integer
      Description

      Bilangan isu peringkat amaran. Amaran dibangkitkan apabila model mengandungi muka degenerat atau lubang.

    • Name
      metrics
      Type
      object
      Description

      Metrik geometri mentah yang dikembalikan oleh penilai.

      • Name
        is_watertight
        Type
        boolean
        Description

        true apabila jejaring tidak mempunyai tepi sempadan (iaitu, tertutup).

      • Name
        volume
        Type
        number
        Description

        Isipadu model dalam meter padu.

      • Name
        non_manifold_edges
        Type
        integer
        Description

        Bilangan tepi non-manifold.

      • Name
        degenerate_faces
        Type
        integer
        Description

        Bilangan muka degenerat (muka tanpa kawasan atau tidak sah).

      • Name
        holes
        Type
        integer
        Description

        Bilangan lubang (gelung sempadan) dalam jejaring.

    • Name
      intended_print
      Type
      object
      Description

      Pencetak dan saiz yang digunakan oleh pemeriksaan ketebalan dinding. Hanya wujud apabila ketebalan dinding diperiksa.

      • Name
        printer_type
        Type
        string
        Description

        fdm, sla, atau full_color.

      • Name
        height_mm
        Type
        number
        Description

        Ketinggian cetakan dalam milimeter, jika cetakan disaiz mengikut ketinggian. Jika tidak, null.

      • Name
        longest_side_mm
        Type
        number
        Description

        Sisi terpanjang cetakan dalam milimeter. Apabila disaiz mengikut ketinggian, ia dikira daripada perkadaran model.

      • Name
        wall_thickness_mm
        Type
        number
        Description

        Ketebalan dinding minimum untuk printer_type, dalam milimeter. Dinding yang lebih nipis daripada ini dilaporkan sebagai terlalu nipis.

      • Name
        dimensions_mm
        Type
        array
        Description

        [lebar, kedalaman, ketinggian] cetakan dalam milimeter. Ketinggian boleh berbeza daripada height_mm dengan secebis milimeter. null untuk input bukan-GLB, atau jika saiz model tidak dapat ditentukan.

    • Name
      thin_walls
      Type
      object
      Description

      Hasil ketebalan dinding. Hanya wujud apabila ketebalan dinding diperiksa.

      • Name
        thin_area_ratio
        Type
        number
        Description

        Bahagian permukaan, dari 0 hingga 1, yang lebih nipis daripada intended_print.wall_thickness_mm. null jika model tidak dapat diukur.

      • Name
        has_thin_walls
        Type
        boolean
        Description

        true jika mana-mana bahagian permukaan terlalu nipis. Sudut tajam semata-mata boleh menetapkan ini, jadi gunakan status untuk menentukan sama ada dinding perlu ditebalkan. null jika model tidak dapat diukur.

      • Name
        status
        Type
        string
        Description

        Keputusan ketebalan dinding. Salah satu daripada:

        • healthy: 5% atau kurang permukaan terlalu nipis.
        • error: lebih daripada 5% permukaan terlalu nipis. Untuk menebalkan dinding, hantar id tugas ini kepada Baiki kebolehcetakan sebagai input_task_id (untuk model_url berjenis .stl, .fbx, atau .gltf, hantar fail tersebut sebagai model_url sebaliknya).
        • unknown: model tidak dapat diukur. Jika pemeriksaan ketebalan dinding itu sendiri gagal, tugas berakhir dengan FAILED.
    • Name
      evaluated_at
      Type
      timestamp
      Description

      Cap masa bila analisis dikira, dalam milisaat sejak epoch.

  • Name
    consumed_credits
    Type
    integer
    Description

    Sentiasa 0. Endpoint ini percuma.

The Analyze Printability Task Object

{
  "id": "0193bfc5-ee4f-73f8-8525-44b398884ce9",
  "type": "print-analyze",
  "status": "SUCCEEDED",
  "progress": 100,
  "preceding_tasks": 0,
  "created_at": 1699999999000,
  "started_at": 1700000000000,
  "finished_at": 1700000001000,
  "expires_at": 1715725401000,
  "task_error": null,
  "printability": {
    "_version": "v1",
    "status": "warning",
    "issue_count": 1,
    "error_count": 0,
    "warning_count": 1,
    "metrics": {
      "is_watertight": true,
      "volume": 1.316167354292668,
      "non_manifold_edges": 0,
      "degenerate_faces": 43242,
      "holes": 0
    },
    "evaluated_at": 1700000001000
  },
  "consumed_credits": 0
}

The Analyze Printability Task Object (wall thickness checked)

{
  "id": "0193bfc5-ee4f-73f8-8525-44b398884ce9",
  "type": "print-analyze",
  "status": "SUCCEEDED",
  "progress": 100,
  "preceding_tasks": 0,
  "created_at": 1699999999000,
  "started_at": 1700000000000,
  "finished_at": 1700000012000,
  "expires_at": 1715725412000,
  "task_error": null,
  "printability": {
    "_version": "v1",
    "status": "error",
    "issue_count": 2,
    "error_count": 1,
    "warning_count": 1,
    "metrics": {
      "is_watertight": true,
      "volume": 1.316167354292668,
      "non_manifold_edges": 0,
      "degenerate_faces": 43242,
      "holes": 0
    },
    "intended_print": {
      "printer_type": "sla",
      "height_mm": 100,
      "longest_side_mm": 118,
      "wall_thickness_mm": 0.8,
      "dimensions_mm": [118, 72.41, 99.87]
    },
    "thin_walls": {
      "thin_area_ratio": 0.083,
      "has_thin_walls": true,
      "status": "error"
    },
    "evaluated_at": 1700000012000
  },
  "consumed_credits": 0
}