Analyze Printability API

Suriin ang isang 3D na modelo para sa FDM printability — watertightness, volume, butas, non-manifold edges, at degenerate faces.


POST/openapi/v1/print/analyze

Gumawa ng Analyze Printability Task

Ang endpoint na ito ay lumilikha ng bagong analyze-printability task. Sinusuri ng task ang isang 3D model at nag-uulat ng mga printability metrics nito.

Kung ang input task ay mayroon nang naka-cache na printability, ang ibinalik na task ay agad na handa at ang unang GET dito ay ibabalik ang resulta ng pagsusuri nang hindi dumadaan sa worker.

Mga Parameter

  • Name
    input_task_id
    Type
    string
    Kinakailangan
    Description

    Ang ID ng isang nagtagumpay na task na pagmamay-ari mo. Sinusuportahang mga uri ng task: Image to 3D, Multi-Image to 3D, Text to 3D, Remesh, at Retexture. Ang task ay dapat gumamit ng Meshy 6 o mas bago (kasama ang Meshy 7) at dapat may status na SUCCEEDED.

  • Name
    model_url
    Type
    string
    Kinakailangan
    Description

    URL ng isang 3D model na susuriin. Sinusuportahang mga format: .glb, .gltf, .obj, .fbx, .stl. Pinakamataas na laki ng file: 100 MB. Dapat gumamit ng http, https, o isang data: URL (ang mga data URL ay lumalampas sa mga extension check).

Mga Ibinabalik

Ang result na property ng tugon ay naglalaman ng id ng bagong likhang analyze-printability task.

Mga Paraan ng Pagkabigo

  • Name
    400 - Bad Request
    Description

    Ang kahilingan ay hindi katanggap-tanggap. Karaniwang mga sanhi:

    • Nawawalang parameter: wala sa input_task_id o model_url ang ibinigay.
    • Di-wastong UUID: ang input_task_id ay hindi wastong UUID.
    • Di-wastong model URL: ang model_url ay mali ang pagkakabuo, gumagamit ng hindi suportadong scheme, o may hindi suportadong file extension.
    • Masyadong malaking model file: ang katawan ng model_url ay lumampas sa 100 MB.
    • Task hindi nagtagumpay: ang tinutukoy na task ay nasa pending pa, nasa progress, o nabigo.
  • Name
    401 - Unauthorized
    Description

    Nabigo ang authentication. Paki-check ang iyong API key.

  • Name
    403 - Forbidden
    Description

    Umiiral ang task ngunit pagmamay-ari ito ng ibang user.

  • Name
    404 - Not Found
    Description

    Karaniwang mga sanhi:

    • Ang task ay hindi umiiral o natanggal na.
    • Ang task ay gumagamit ng model na mas luma sa Meshy 6, o ang mode nito ay hindi gumagawa ng 3D asset.
    • Ang pangunahing model file ay hindi na magagamit sa storage.
  • Name
    429 - Too Many Requests
    Description

    Lumampas ka sa iyong pending-task quota o rate limit.

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

Kunin ang isang Analyze Printability Task

Ang endpoint na ito ay kumukuha ng isang analyze-printability task sa pamamagitan ng ID nito.

Mga Parameter

  • Name
    id
    Type
    path
    Description

    Ang ID ng analyze-printability task na kukunin.

Mga Ibinabalik

Ang Analyze Printability Task Object. Ang printability na field ay null hanggang sa maabot ng task ang SUCCEEDED.

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
}

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

Burahin ang Analyze Printability Task

Ang endpoint na ito ay permanenteng bubura ng isang analyze-printability task at ang naka-cache na resulta nito. Ang aksyong ito ay hindi na mababawi.

Mga Parameter ng Path

  • Name
    id
    Type
    path
    Description

    Ang ID ng analyze-printability task na buburahin.

Mga Ibinabalik

Nagbabalik ng 200 OK kapag matagumpay.

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

// Returns 200 Ok on success.

GET/openapi/v1/print/analyze

Listahan ng Analyze Printability Tasks

Ang endpoint na ito ay nagbibigay-daan sa iyo na makuha ang listahan ng mga analyze-printability tasks.

Mga Parameter

Opsyonal na mga katangian

  • Name
    page_num
    Type
    integer
    Description

    Numero ng pahina para sa pagination. Nagsisimula at default sa 1.

  • Name
    page_size
    Type
    integer
    Description

    Limitasyon ng laki ng pahina. Default sa 10 na item. Ang maximum na pinapayagan ay 50 na item.

  • Name
    sort_by
    Type
    string
    Description

    Field na gagamitin para sa pag-aayos. Mga magagamit na halaga:

    • +created_at: Ayusin ayon sa oras ng paglikha sa pataas na pagkakasunod-sunod.
    • -created_at: Ayusin ayon sa oras ng paglikha sa pababang pagkakasunod-sunod.

Mga Ibinabalik

Nagbabalik ng isang listahan na may pagination ng Analyze Printability Task Objects.

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

I-stream ang isang Analyze Printability Task

Ang endpoint na ito ay nag-i-stream ng mga real-time na update para sa isang analyze-printability task gamit ang Server-Sent Events (SSE).

Mga Parameter

  • Name
    id
    Type
    path
    Description

    Natatanging identifier para sa analyze-printability task na i-stream.

Mga Ibinabalik

Nagbabalik ng stream ng Analyze Printability Task Objects bilang Server-Sent Events.

Para sa mga PENDING o IN_PROGRESS na mga task, ang response stream ay maglalaman lamang ng kinakailangang mga field na progress at status. Ang printability block ay ipinapadala lamang kapag ang task ay umabot na sa 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.
// 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
}

Ang Analyze Printability Task Object

  • Name
    id
    Type
    string
    Description

    Natatanging pagkakakilanlan para sa gawain. Habang gumagamit kami ng k-sortable UUID para sa mga task id bilang detalye ng implementasyon, hindi ka dapat gumawa ng anumang mga pagpapalagay tungkol sa format ng id.

  • Name
    type
    Type
    string
    Description

    Uri ng analyze-printability na gawain. Ang halaga ay print-analyze.

  • Name
    status
    Type
    string
    Description

    Katayuan ng gawain. Ang mga posibleng halaga ay isa sa PENDING, IN_PROGRESS, SUCCEEDED, FAILED, CANCELED.

  • Name
    progress
    Type
    integer
    Description

    Pag-unlad ng gawain. Kung ang gawain ay hindi pa nasisimulan, ang property na ito ay magiging 0. Kapag ang gawain ay nagtagumpay na, ito ay magiging 100.

  • Name
    preceding_tasks
    Type
    integer
    Description

    Ang bilang ng mga naunang gawain.

  • Name
    created_at
    Type
    timestamp
    Description

    Timestamp kung kailan nilikha ang gawain, sa milliseconds.

  • Name
    started_at
    Type
    timestamp
    Description

    Timestamp kung kailan nasimulan ang gawain, sa milliseconds. Kung ang gawain ay hindi pa nasisimulan, ang property na ito ay magiging 0.

  • Name
    finished_at
    Type
    timestamp
    Description

    Timestamp kung kailan natapos ang gawain, sa milliseconds. Kung ang gawain ay hindi pa natatapos, ang property na ito ay magiging 0.

  • Name
    expires_at
    Type
    timestamp
    Description

    Timestamp kung kailan mag-e-expire ang resulta ng gawain mula sa sistema, sa milliseconds. 0 kung ang gawain ay hindi pa natatapos.

  • Name
    task_error
    Type
    object
    Description

    Impormasyon ng error kung ang gawain ay nabigo. Ang property na ito ay null kung ang gawain ay hindi nabigo. Tingnan ang Errors para sa karagdagang detalye.

    • Name
      message
      Type
      string
      Description

      Mensahe ng error na naglalarawan kung ano ang nagkamali.

  • Name
    printability
    Type
    object
    Description

    Resulta ng pagsusuri ng printability. null hanggang ang gawain ay umabot sa SUCCEEDED.

    • Name
      _version
      Type
      string
      Description

      Bersyon ng schema ng resulta ng printability. Sa kasalukuyan ay v1.

    • Name
      status
      Type
      string
      Description

      Pangkalahatang katayuan. Isa sa:

      • healthy: walang mga error at walang mga babala.
      • warning: may hindi bababa sa isang babala, walang mga error.
      • error: may hindi bababa sa isang error.
      • unknown: hindi ma-analyze ang modelo.
    • Name
      issue_count
      Type
      integer
      Description

      Kabuuang bilang ng mga isyu, katumbas ng error_count + warning_count.

    • Name
      error_count
      Type
      integer
      Description

      Bilang ng mga isyu sa antas ng error. Ang mga error ay lumilitaw kapag ang modelo ay hindi watertight, may non-positive volume, o may non-manifold edges.

    • Name
      warning_count
      Type
      integer
      Description

      Bilang ng mga isyu sa antas ng babala. Ang mga babala ay lumilitaw kapag ang modelo ay naglalaman ng degenerate faces o butas.

    • Name
      metrics
      Type
      object
      Description

      Raw geometry metrics na ibinalik ng evaluator.

      • Name
        is_watertight
        Type
        boolean
        Description

        true kapag ang mesh ay walang boundary edges (i.e., sarado).

      • Name
        volume
        Type
        number
        Description

        Dami ng modelo sa cubic meters.

      • Name
        non_manifold_edges
        Type
        integer
        Description

        Bilang ng non-manifold edges.

      • Name
        degenerate_faces
        Type
        integer
        Description

        Bilang ng degenerate faces (zero-area o invalid faces).

      • Name
        holes
        Type
        integer
        Description

        Bilang ng mga butas (boundary loops) sa mesh.

    • Name
      evaluated_at
      Type
      timestamp
      Description

      Timestamp kung kailan nakalkula ang pagsusuri, sa milliseconds mula epoch.

  • Name
    consumed_credits
    Type
    integer
    Description

    Palaging 0. Ang endpoint na ito ay libre.

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
}