> For the complete documentation index, see [llms.txt](https://docs.archisketch.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.archisketch.com/guide/dev-en/api-sdk/api-integration/3d-product-integration/modeling.md).

# Register Modeling

Modeling is the first step in registering a partner's 3D model files with Archisketch. The generated modeling ID will be used later for component creation.

You must include the `X-API-KEY` in the header of all API requests. Refer to the "How to Use the API" guide for instructions on how to issue it.

```http
X-API-KEY: {x-api-key}
```

## Create Modeling

* Endpoint: `POST /api/v1/modelings`
* Request Format: `multipart/form-data`

{% stepper %}
{% step %}

### Step 1: Prepare Files

Prepare the 3D model file and the modeling name you wish to upload.

| Field         | Type    | Required | Description                              |
| ------------- | ------- | -------- | ---------------------------------------- |
| name          | string  | ✅        | Modeling name                            |
| file          | file    | ✅        | 3D model file                            |
| isPersonal    | boolean |          | Whether it belongs to a personal library |
| startModeling | boolean |          | Whether to start rendering immediately   |
| {% endstep %} |         |          |                                          |

{% step %}

### Step 2: Send Request

```http
POST /api/v1/modelings
Content-Type: multipart/form-data
X-API-KEY: {x-api-key}

name=Sofa_Modeling
file=@sofa.glb
```

{% endstep %}

{% step %}

### Step 3: Check Response

Upon successful creation, the modeling details are returned.

```json
{
  "result": "SUCCESS",
  "data": {
    "id": "mdl_abc123",
    "name": "Sofa_Modeling",
    "userId": "usr_xyz",
    "renderingStatus": "WAITING",
    "dimension": {
      "mmWidth": 900,
      "mmDepth": 800,
      "mmHeight": 750,
      "inchWidth": 35.4,
      "inchDepth": 31.5,
      "inchHeight": 29.5
    },
    "images": [],
    "file": {
      "id": "ast_001",
      "name": "sofa.glb",
      "url": "https://..."
    },
    "createdAt": "2026-04-04T10:00:00Z",
    "updatedAt": "2026-04-04T10:00:00Z"
  }
}
```

> 📌 Note: Please save the `data.id` value. It will be used as the `modelingId` in the next step, [Component Creation](/guide/dev-en/api-sdk/api-integration/3d-product-integration/component.md).

{% hint style="info" %}
If the `renderingStatus` is `WAITING`, rendering is not yet complete. Once rendering is completed, the output results will be populated in `renderAsset`.
{% endhint %}
{% endstep %}
{% endstepper %}

## Get Modeling

* Endpoint: `GET /api/v1/modelings/{id}`

Retrieve the status and information of a created modeling asset.

```http
GET /api/v1/modelings/mdl_abc123
X-API-KEY: {x-api-key}
```

* The response structure is identical to that of the Create Modeling API.

## Update Modeling File

* Endpoint: `PATCH /api/v1/modelings/{id}/file`
* Request Format: `multipart/form-data`

Replace the 3D file of an existing modeling asset.

| Field         | Type    | Required | Description                            |
| ------------- | ------- | -------- | -------------------------------------- |
| file          | file    | ✅        | New 3D model file                      |
| startModeling | boolean |          | Whether to start rendering immediately |

```http
PATCH /api/v1/modelings/mdl_abc123/file
Content-Type: multipart/form-data
X-API-KEY: {x-api-key}

file=@sofa_v2.glb
```
