---
title: "POST /models"
method: POST
path: "/models"
tags: ["Models"]
---

# POST /models

`POST /models`

Create Records for models and receive the needed signed uploadUrl to upload the model files and initiate ingestion.

Current Limitations:
-  Filetypes Supported: '.3ds', '.asm', '.catpart', '.catproduct', '.glb', '.iges', '.igs', '.obj', '.par', '.prt', '.sldasm', '.sldprt', '.stl', '.step', '.stp', '.x_b', '.x_t',
-  Versioned Creo files are also supported. For example `part.prt.1` or `assembly.asm.2`.
-  Maximum 100 Models can be created at once.
-  The `folderName` used in the `filePath` must be the `name` of a `Folder` that already exists.
-  Each `filePath` must be unique for each model.
-  `filePath` can not exceed 1024 bytes (this is roughly 1024 characters, unless unicode characters are included, which consume more bytes)
-  `filePath` can not contain any of the following characters: `['\n', '\r', '*', ':', '"', '<', '>', '|', '#', '[', ']', '?', '\\'];
-  No duplicates of a model can be created within the same folder.

Assemblies can be created just like any other supported file, but all required subparts must be uploaded to the same folder (preferably beforehand to avoid unnecessary automatic reprocessing).

The model file can be uploaded via a `PUT` request to the <upload url> including the file and the supplied headers.

Example using `curl` command:

```
curl -X PUT --upload-file file.stl -H '<header1-name>: <header1-value>' -H '<header2-name>: <header2-value>' <upload-url>
```

After completing the upload, the model will be processed behind the scenes and be ready to match once it is in the `finished` state.

## Query parameters

- `createMissingFolders` boolean
- `collection` string

## Headers

- `X-PHYSNA-TENANTID` string

## Request body

- object — A list of models to create
  - `models` CreateModelRequest[], required
    - `filePath` string, required
    - `name` string
    - `metadata` CreateModelMetadata[]
      - `metadataKeyId` number, double, required
      - `value` string, required

## Response `200`

Ok

- CreateModelsResponse
  - `models` object[], required
    - `uploadInfo` UploadUrlInfo, required
      - `uploadUrl` string, required
      - `headers` object, required
      - `fileSizeRequirements` object, required
        - `maxSizeInBytes` number, double, required
        - `minSizeInBytes` number, double, required
    - `model` ModelWithMetadata, required
      - `createdAt` string, required
      - `deletedAt` string
      - `fileName` string, required
      - `fileType` string, required
      - `folderId` number, double, required
      - `id` string, required
      - `isAssembly` boolean, required
      - `name` string, required
      - `ownerId` string, required
      - `state` string, required
      - `thumbnail` string
      - `units` string, required
      - `collections` PickCollectionIdOrName[]
        - `id` string, required
        - `name` string
      - `labels` Label[]
        - `displayName` string, required
        - `source` string, required
        - `createdAt` string, date-time, required
        - `rejected` boolean
      - `geometry` ModelGeometry — Model geometry of ingested model, including the model's bounding box lengths, it's surface area, and volume.
        - `obbMinLength` number, double, required
        - `obbMidLength` number, double, required
        - `obbMaxLength` number, double, required
        - `surfaceArea` number, double, required
        - `modelVolume` number, double, required
      - `metadata` Metadata[], required
        - `modelId` string, required
        - `metadataKeyId` number, double, required
        - `name` string, nullable, required
        - `value` string, required
  - `collection` union
    - CreateCollectionResponseBody
      - `collectionId` string, required
      - `affected` number, double, required
    - AddToCollectionResponseBody
      - `collectionId` string, required
      - `affected` number, double, required

---

[API](https://skmtc.dev/physna/apis/physna-public-api.md) · [All operations](https://skmtc.dev/physna/apis/physna-public-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/physna/physna-public-api/revisions/18b6af4c004d/schema)
