---
title: "Convert - STEP to glTF (.glb)"
method: POST
path: "/api/v1/convert/step-to-gltf"
tags: ["Convert"]
---

# Convert - STEP to glTF (.glb)

`POST /api/v1/convert/step-to-gltf`

Simple STEP → glTF conversion using a previously uploaded file. Requires the 'convert' API key scope. Returns 202 with a task ID.

## Request body

- StepToGltfBody — Convert a STEP file to glTF format with default settings. Upload the STEP file first, then pass its ID here.
  - `stepFileId` string, required — ID of the previously uploaded STEP file (returned by the file upload endpoint)
  - `meshPrecision` number — Mesh tessellation precision (lower = finer). Range: [0.0001, 10]
  - `meshAngle` number — Mesh angular deflection in radians. Range: [0.01, π]
  - `meshRelative` boolean — Use size-aware relative deflection per face. When true, meshPrecision is a fraction of each edge's length. Set to false for absolute deflection in model units.
  - `internalVerticesMode` boolean — Add interior vertices for better curved face fidelity (slower, set false for speed).
  - `controlSurfaceDeflection` boolean — Extra post-pass refining triangles that bulge beyond the deflection (slower, set false for speed).

## Response `202`

Task accepted

- TaskAcceptedResponse — HTTP 202 response when a task is accepted for async processing
  - `ok` true, required
  - `data` TaskCreatedResult, required — Returned when a CAD task is accepted. Poll the statusUrl to track progress.
    - `taskId` string, uuid, required — Unique task identifier - use this to poll for status and retrieve results
    - `status` 'queued', required — Initial task status (always 'queued' upon creation)
    - `statusUrl` string, required — Relative URL to poll for task status updates

## Other responses

- `400` — Validation error
- `403` — Insufficient scope
- `500` — Server error

## Changes

- **2026-05-24** `b08f35b461c9` — 2 info
  - added the new optional request property `controlSurfaceDeflection`
  - added the new optional request property `internalVerticesMode`
- **2026-05-22** `57c0552c7891` — 2 info
  - added the new optional request property `meshAngle`
  - added the new optional request property `meshRelative`
- **2026-05-04** `43c3bc84d7c1` — 1 info
  - the `meshPrecision` request property's min was decreased from `0.01` to `0.00`
- **2026-04-30** `bef883f8a334` — 1 breaking, 12 info
  - the `stepFileId` request property's minLength was increased from `0` to `1`
  - api operation id `convertStepToGltf` removed and replaced with ``
  - the `stepFileId` request property type/format was generalized from `string`/`uuid` to `string`/``
  - added the non-success response with the status `403`
  - …9 more
- **2026-04-17** `5eb4ed0f33c7` — 7 breaking, 7 warning, 4 info
  - the `meshPrecision` request property's min was increased to `0.01`
  - the `stepFileId` request property type/format changed from `string`/`` to `string`/`uuid`
  - the response property `data` became optional for the status `202`
  - the response property `ok` became optional for the status `202`
  - …14 more

[Change history](https://skmtc.dev/bitbybit-dev/apis/bitbybit-cad-cloud-api/changes/api/v1/convert/step-to-gltf/post.md)

---

[API](https://skmtc.dev/bitbybit-dev/apis/bitbybit-cad-cloud-api.md) · [All operations](https://skmtc.dev/bitbybit-dev/apis/bitbybit-cad-cloud-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/bitbybit-dev/bitbybit-cad-cloud-api/revisions/1135d4473bc2/schema)
