---
updatedAt: 2026-05-27T10:18:53.000Z
agentTools:
  projectIndex: https://gethapn.readme.io/llms.txt
---

# Upserts an asset profile

Upserts an asset profile.


# OpenAPI definition

```json
{
  "openapi": "3.0.3",
  "info": {
    "description": "The Hapn API is an HTTP interface for managing devices, accounts, and cloud data.",
    "version": "1.0.0",
    "title": "Hapn API",
    "termsOfService": "https://gethapn.com/terms",
    "contact": {
      "name": "Dev",
      "email": "developer@gethapn.com",
      "url": "http://gethapn.com"
    },
    "license": {
      "name": "Apache 2.0",
      "url": "http://www.apache.org/licenses/LICENSE-2.0.html"
    }
  },
  "servers": [
    {
      "url": "https://api.iotgps.io/v1",
      "description": "Prod"
    },
    {
      "url": "https://api-dev.iotgps.io/v1",
      "description": "Dev"
    }
  ],
  "paths": {
    "/asset-profile/{imei}": {
      "post": {
        "summary": "Upserts an asset profile",
        "tags": [
          "Asset Profile"
        ],
        "operationId": "upsert-asset-profile",
        "description": "Upserts an asset profile.\n",
        "parameters": [
          {
            "name": "imei",
            "in": "path",
            "required": true,
            "description": "The IMEI",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpsertAssetProfileBody"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Asset profile upsert result",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/SuccessResponse"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "result": {
                          "$ref": "#/components/schemas/AssetProfile"
                        }
                      }
                    }
                  ]
                },
                "examples": {
                  "example-1": {
                    "value": {
                      "success": true,
                      "message": "ok",
                      "result": {
                        "name": "Asset 1",
                        "make": "Make 1",
                        "model": "Model 1",
                        "serialNumber": "1234567890",
                        "year": 2021,
                        "type": {
                          "id": 1,
                          "name": "Asset Type 1",
                          "category": {
                            "id": 1,
                            "name": "Vehicle"
                          }
                        },
                        "status": "Active",
                        "assetStatus": {
                          "status": "Active",
                          "label": "Active",
                          "description": "Assets that are currently in operation and available for use",
                          "color": "#0BD272"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "500": {
            "$ref": "#/components/responses/Error"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "UpsertAssetProfileBody": {
        "description": "Upsert asset profile body",
        "type": "object",
        "x-examples": {
          "example-1": {
            "name": "Asset 1",
            "make": "Make 1",
            "model": "Model 1",
            "serialNumber": "1234567890",
            "year": 2021,
            "assetProfileTypeId": 1,
            "status": "Active"
          }
        },
        "title": "Upsert asset profile body",
        "properties": {
          "name": {
            "type": "string",
            "description": "The asset profile name"
          },
          "make": {
            "type": "string",
            "description": "The asset profile make"
          },
          "model": {
            "type": "string",
            "description": "The asset profile model"
          },
          "serialNumber": {
            "type": "string",
            "description": "The asset profile serial number"
          },
          "year": {
            "type": "number",
            "description": "The asset profile year"
          },
          "assetProfileTypeId": {
            "type": "number",
            "description": "The asset profile type identifier"
          },
          "status": {
            "type": "string",
            "description": "The asset profile status",
            "enum": [
              "Active",
              "Inactive",
              "Out of service"
            ]
          }
        },
        "required": [
          "name"
        ]
      },
      "SuccessResponse": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean"
          },
          "message": {
            "type": "string"
          },
          "result": {
            "type": "object"
          }
        },
        "required": [
          "message",
          "success"
        ],
        "x-examples": {
          "example-1": {
            "value": {
              "success": true,
              "message": "ok",
              "result": {
                "imei": "12345"
              }
            }
          }
        }
      },
      "ErrorResponse": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean"
          },
          "message": {
            "type": "string"
          }
        },
        "required": [
          "success",
          "message"
        ],
        "x-examples": {
          "example-1": {
            "value": {
              "success": false,
              "message": "Unauthorized"
            }
          }
        }
      },
      "AssetProfileType": {
        "title": "Asset profile type",
        "description": "An asset profile type",
        "type": "object",
        "x-examples": {
          "example-1": {
            "id": 1,
            "name": "Car",
            "category": {
              "id": 1,
              "name": "Vehicle"
            }
          }
        },
        "properties": {
          "id": {
            "type": "number",
            "description": "The asset profile type identifier"
          },
          "name": {
            "type": "string",
            "description": "The asset profile type name"
          },
          "category": {
            "type": "object",
            "properties": {
              "id": {
                "type": "number",
                "description": "The asset profile category identifier"
              },
              "name": {
                "type": "string",
                "description": "The asset profile category name"
              }
            }
          }
        },
        "required": [
          "id",
          "name"
        ]
      },
      "AssetProfile": {
        "title": "Asset profile",
        "description": "An asset profile",
        "type": "object",
        "x-examples": {
          "example-1": {
            "name": "Asset 1",
            "make": "Make 1",
            "model": "Model 1",
            "serialNumber": "1234567890",
            "year": 2021,
            "type": {
              "id": 1,
              "name": "Car",
              "category": {
                "id": 1,
                "name": "Vehicle"
              }
            },
            "status": "Active"
          }
        },
        "properties": {
          "name": {
            "type": "string",
            "description": "The asset profile name"
          },
          "make": {
            "type": "string",
            "description": "The asset profile make"
          },
          "model": {
            "type": "string",
            "description": "The asset profile model"
          },
          "serialNumber": {
            "type": "string",
            "description": "The asset profile serial number"
          },
          "year": {
            "type": "number",
            "description": "The asset profile year"
          },
          "type": {
            "$ref": "#/components/schemas/AssetProfileType"
          },
          "status": {
            "type": "string",
            "description": "The asset profile status. This value correspond to the status field of one of the custom status objects."
          },
          "assetStatus": {
            "$ref": "#/components/schemas/AssetProfileCustomStatus",
            "description": "The asset profile status. This is one of the custom status objects defined in the system.",
            "example": {
              "status": "Active",
              "label": "Active",
              "description": "Assets that are currently in operation and available for use",
              "color": "#0BD272"
            }
          }
        },
        "required": [
          "name",
          "type",
          "status"
        ]
      },
      "AssetProfileCustomStatus": {
        "title": "Asset profile custom status",
        "description": "An asset profile custom status",
        "type": "object",
        "x-examples": {
          "example-1": {
            "status": "Active",
            "label": "Active",
            "description": "Assets that are currently in operation and available for use",
            "color": "#0BD272"
          }
        },
        "properties": {
          "status": {
            "type": "string",
            "description": "The asset profile custom status"
          },
          "label": {
            "type": "string",
            "description": "The asset profile custom status label"
          },
          "description": {
            "type": "string",
            "description": "The asset profile custom status description"
          },
          "color": {
            "type": "string",
            "description": "The asset profile custom status color"
          }
        },
        "required": [
          "status",
          "label",
          "description",
          "color"
        ]
      }
    },
    "responses": {
      "Unauthorized": {
        "description": "Unauthorized",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ErrorResponse"
            },
            "examples": {
              "example-1": {
                "value": {
                  "success": false,
                  "message": "Unauthorized"
                }
              }
            }
          }
        }
      },
      "Error": {
        "description": "Server error",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ErrorResponse"
            },
            "examples": {
              "example-1": {
                "value": {
                  "success": false,
                  "message": "Error"
                }
              }
            }
          }
        }
      }
    },
    "securitySchemes": {
      "OAuth2": {
        "type": "oauth2",
        "flows": {
          "clientCredentials": {
            "tokenUrl": "https://auth.usehapn.com/oauth2/token",
            "scopes": {}
          }
        }
      }
    }
  },
  "security": [
    {
      "OAuth2": []
    }
  ]
}
```