API Analisis Kemampuan Cetak

Menganalisis model 3D untuk kemampuan cetak FDM — kedap air, volume, lubang, tepi non-manifold, dan permukaan degenerasi.


POST/openapi/v1/print/analyze

Buat Tugas Analisis Kemampuan Cetak

Endpoint ini membuat tugas analisis kemampuan cetak baru. Tugas ini mengevaluasi model 3D dan melaporkan metrik kemampuan cetaknya.

Jika tugas input sudah memiliki kemampuan cetak yang di-cache, tugas yang dikembalikan akan segera siap dan GET pertama padanya akan mengembalikan hasil analisis tanpa melalui pekerja.

Parameter

  • Name
    input_task_id
    Type
    string
    Wajib
    Description

    ID dari tugas yang berhasil yang Anda miliki. Jenis tugas yang didukung: Gambar ke 3D, Multi-Gambar ke 3D, Teks ke 3D, Remesh, dan Retexture. Tugas harus menggunakan Meshy 6 atau lebih baru (termasuk Meshy 7) dan harus memiliki status SUCCEEDED.

  • Name
    model_url
    Type
    string
    Wajib
    Description

    URL dari model 3D untuk dianalisis. Format yang didukung: .glb, .gltf, .obj, .fbx, .stl. Ukuran file maksimum: 100 MB. Harus menggunakan URL http, https, atau data: (URL data melewati pemeriksaan ekstensi).

Mengembalikan

Properti result dari respons berisi id dari tugas analisis kemampuan cetak yang baru dibuat.

Mode Kegagalan

  • Name
    400 - Bad Request
    Description

    Permintaan tidak dapat diterima. Penyebab umum:

    • Parameter hilang: baik input_task_id maupun model_url tidak disediakan.
    • UUID tidak valid: input_task_id bukan UUID yang valid.
    • URL model tidak valid: model_url salah bentuk, menggunakan skema yang tidak didukung, atau memiliki ekstensi file yang tidak didukung.
    • File model terlalu besar: isi model_url melebihi 100 MB.
    • Tugas tidak berhasil: tugas yang dirujuk masih tertunda, dalam progress, atau gagal.
  • Name
    401 - Unauthorized
    Description

    Autentikasi gagal. Silakan periksa kunci API Anda.

  • Name
    403 - Forbidden
    Description

    Tugas ada tetapi dimiliki oleh pengguna lain.

  • Name
    404 - Not Found
    Description

    Penyebab umum:

    • Tugas tidak ada atau telah dihapus.
    • Tugas menggunakan model yang lebih lama dari Meshy 6, atau modenya tidak menghasilkan aset 3D.
    • File model dasar tidak lagi tersedia di penyimpanan.
  • Name
    429 - Too Many Requests
    Description

    Anda telah melebihi kuota tugas tertunda atau batas laju 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"
  }'

Response

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

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

Mengambil Tugas Analisis Kemampuan Cetak

Endpoint ini mengambil tugas analisis kemampuan cetak berdasarkan ID-nya.

Parameter

  • Name
    id
    Type
    path
    Description

    ID dari tugas analisis kemampuan cetak yang akan diambil.

Mengembalikan

Objek Tugas Analisis Kemampuan Cetak. Field kemampuan cetak adalah null sampai tugas mencapai SUCCEEDED.

Permintaan

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}"

Respon

{
  "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
}

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

Hapus Tugas Analisis Kemampuan Cetak

Endpoint ini secara permanen menghapus tugas analisis kemampuan cetak dan hasil cache-nya. Tindakan ini tidak dapat dibatalkan.

Parameter Jalur

  • Name
    id
    Type
    path
    Description

    ID dari tugas analisis kemampuan cetak yang akan dihapus.

Mengembalikan

Mengembalikan 200 OK jika berhasil.

Permintaan

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}"

Respon

// Returns 200 Ok on success.

GET/openapi/v1/print/analyze

Daftar Tugas Analisis Kemampuan Cetak

Endpoint ini memungkinkan Anda untuk mengambil daftar tugas analisis kemampuan cetak.

Parameter

Atribut opsional

  • Name
    page_num
    Type
    integer
    Description

    Nomor halaman untuk paginasi. Dimulai dan default ke 1.

  • Name
    page_size
    Type
    integer
    Description

    Batas ukuran halaman. Default ke 10 item. Maksimum yang diizinkan adalah 50 item.

  • Name
    sort_by
    Type
    string
    Description

    Bidang untuk diurutkan. Nilai yang tersedia:

    • +created_at: Urutkan berdasarkan waktu pembuatan dalam urutan naik.
    • -created_at: Urutkan berdasarkan waktu pembuatan dalam urutan turun.

Mengembalikan

Mengembalikan daftar dengan paginasi dari Objek Tugas Analisis Kemampuan Cetak.

Permintaan

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

Respon

[
  {
    "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

Streaming Tugas Analisis Kemampuan Cetak

Endpoint ini melakukan streaming pembaruan real-time untuk tugas analisis kemampuan cetak menggunakan Server-Sent Events (SSE).

Parameter

  • Name
    id
    Type
    path
    Description

    Pengenal unik untuk tugas analisis kemampuan cetak yang akan di-stream.

Mengembalikan

Mengembalikan stream dari Objek Tugas Analisis Kemampuan Cetak sebagai Server-Sent Events.

Untuk tugas PENDING atau IN_PROGRESS, stream respons hanya akan menyertakan field progress dan status yang diperlukan. Blok kemampuan cetak dikirim hanya setelah tugas mencapai SUCCEEDED.

Permintaan

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.
// For PENDING or IN_PROGRESS tasks, the response stream will not include all fields.
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 Kemampuan Cetak

  • Name
    id
    Type
    string
    Description

    Pengenal unik untuk tugas. Meskipun kami menggunakan UUID yang dapat diurutkan secara k untuk id tugas sebagai detail implementasi, Anda tidak boleh membuat asumsi apa pun tentang format id tersebut.

  • Name
    type
    Type
    string
    Description

    Jenis tugas analisis-kemampuan-cetak. Nilainya adalah print-analyze.

  • Name
    status
    Type
    string
    Description

    Status dari tugas. Nilai yang mungkin adalah salah satu dari PENDING, IN_PROGRESS, SUCCEEDED, FAILED, CANCELED.

  • Name
    progress
    Type
    integer
    Description

    Kemajuan dari tugas. Jika tugas belum dimulai, properti ini akan bernilai 0. Setelah tugas berhasil, ini akan menjadi 100.

  • Name
    preceding_tasks
    Type
    integer
    Description

    Jumlah tugas sebelumnya.

  • Name
    created_at
    Type
    timestamp
    Description

    Stempel waktu ketika tugas dibuat, dalam milidetik.

  • Name
    started_at
    Type
    timestamp
    Description

    Stempel waktu ketika tugas dimulai, dalam milidetik. Jika tugas belum dimulai, properti ini akan bernilai 0.

  • Name
    finished_at
    Type
    timestamp
    Description

    Stempel waktu ketika tugas selesai, dalam milidetik. Jika tugas belum selesai, properti ini akan bernilai 0.

  • Name
    expires_at
    Type
    timestamp
    Description

    Stempel waktu ketika hasil tugas akan kedaluwarsa dari sistem, dalam milidetik. 0 jika tugas belum selesai.

  • Name
    task_error
    Type
    object
    Description

    Informasi kesalahan jika tugas gagal. Properti ini bernilai null jika tugas tidak gagal. Lihat Kesalahan untuk lebih jelasnya.

    • Name
      message
      Type
      string
      Description

      Pesan kesalahan yang menjelaskan apa yang salah.

  • Name
    printability
    Type
    object
    Description

    Hasil evaluasi kemampuan cetak. null sampai tugas mencapai SUCCEEDED.

    • Name
      _version
      Type
      string
      Description

      Versi skema dari hasil kemampuan cetak. Saat ini v1.

    • Name
      status
      Type
      string
      Description

      Status keseluruhan. Salah satu dari:

      • healthy: tidak ada kesalahan dan tidak ada peringatan.
      • warning: setidaknya ada satu peringatan, tidak ada kesalahan.
      • error: setidaknya ada satu kesalahan.
      • unknown: model tidak dapat dianalisis.
    • Name
      issue_count
      Type
      integer
      Description

      Jumlah total masalah, sama dengan error_count + warning_count.

    • Name
      error_count
      Type
      integer
      Description

      Jumlah masalah tingkat kesalahan. Kesalahan muncul ketika model tidak kedap air, memiliki volume tidak positif, atau memiliki tepi non-manifold.

    • Name
      warning_count
      Type
      integer
      Description

      Jumlah masalah tingkat peringatan. Peringatan muncul ketika model mengandung permukaan degenerasi atau lubang.

    • Name
      metrics
      Type
      object
      Description

      Metrik geometri mentah yang dikembalikan oleh evaluator.

      • Name
        is_watertight
        Type
        boolean
        Description

        true ketika mesh tidak memiliki tepi batas (yaitu, tertutup).

      • Name
        volume
        Type
        number
        Description

        Volume model dalam meter kubik.

      • Name
        non_manifold_edges
        Type
        integer
        Description

        Jumlah tepi non-manifold.

      • Name
        degenerate_faces
        Type
        integer
        Description

        Jumlah permukaan degenerasi (permukaan nol-area atau tidak valid).

      • Name
        holes
        Type
        integer
        Description

        Jumlah lubang (loop batas) dalam mesh.

    • Name
      evaluated_at
      Type
      timestamp
      Description

      Stempel waktu ketika analisis dihitung, dalam milidetik sejak epoch.

  • Name
    consumed_credits
    Type
    integer
    Description

    Selalu 0. Endpoint ini gratis.

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
}