---
title: "Create new asset"
method: POST
path: "/assets"
tags: ["Assets"]
---

# Create new asset

`POST /assets`

## Query parameters

- `skipWebhook` boolean

## Headers

- `x-organization-id` integer

## Request body

- object
  - `name` string, required
  - `description` string, nullable
  - `barcode` string, nullable — String encoded barcode
  - `criticalityId` integer, nullable — ID of the criticality of the asset
  - `parentId` integer, nullable — ID of the parent asset
  - `locationId` integer, nullable — ID of the location where the asset is located
  - `teamIds` integer[] — List of teams responsible for the asset
  - `assetTypes` string[] — List of asset types
  - `extraFields` object — Custom Fields on the entity. The object keys are the exact Custom Field labels, including spaces or special characters. (ie: "My Custom Field")
  - `vendorIds` number[] — Vendor IDs
  - `serialNumber` string, nullable — Serial number of the asset
  - `depreciation` object, nullable — Depreciation information of the asset
    - `id` number — Global ID of the asset depreciation.
    - `accumulatedDepreciation` number, nullable — Accumulated depreciation of the asset.
    - `annualDepreciation` number, nullable — Annual depreciation of the asset.
    - `depreciationStartDate` string, date-time, nullable — Date at which the asset depreciation started.
    - `currentBookValue` number, nullable — Current book value of the asset.
    - `purchasePrice` number, nullable — Purchase price of the asset.
    - `purchaseDate` string, date-time, nullable — Date & time at which the asset was purchased.
    - `salvageValue` number, nullable — Salvage value of the asset.
    - `usefulLifeYears` number, nullable — Useful life of the asset in years.
    - `yearsDepreciated` number, nullable — Years depreciated of the asset.
    - `createdAt` string, date-time, nullable — Date & time at which the asset depreciation was created.
    - `archivedAt` string, date-time, nullable — Date & time at which the asset depreciation was archived.
  - `externalId` string, nullable — External ID for this asset, unique per organization.
  - `manufacturer` object, nullable — Manufacturer information for the asset. Set to null to clear manufacturer and model.
    - `id` integer, nullable — ID of an existing manufacturer. If provided, the manufacturer must be either global or belong to your organization. If not provided, the manufacturer will be looked up by name.
    - `name` string, nullable — Name of the manufacturer. Required if id is not provided. When searching by name, the manufacturer must be either global or belong to your organization.
  - `model` object, nullable — Model information for the asset. Set to null to clear model.
    - `id` integer, nullable — ID of an existing model. If provided, the model must be linked to the specified manufacturer and be either global or belong to your organization. If not provided, the model will be looked up by name.
    - `name` string, nullable — Name of the model. Required if id is not provided. When searching by name, the model must be linked to the specified manufacturer and be either global or belong to your organization.

## Response `201`

Successfully created asset

- object
  - `id` integer, required — Global ID of the asset

## Other responses

- `400` — OrganizationId was not provided
- `401` — Invalid token
- `409` — Conflict with existing asset

---

[API](https://skmtc.net/getmaintainx/apis/maintainx-api.md) · [All operations](https://skmtc.net/getmaintainx/apis/maintainx-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/getmaintainx/maintainx-api/revisions/ef9153fcac7c/schema)
