---
updatedAt: 2026-06-15T13:51:20.000Z
agentTools:
  siteIndex: https://developer.jamf.com/llms.txt
  projectIndex: https://developer.jamf.com/jamf-pro/llms.txt
---

# Create one or more new Inventory Preload records using CSV


Create one or more new Inventory Preload records using CSV.
A CSV template can be downloaded from /v2/inventory-preload/csv-template.
Serial number and device type are required. All other fields are optional.
When a matching serial number exists in the Inventory Preload data, the record will be overwritten with the CSV data.
If the CSV file contains a new username and an email address is provided, the new user is created in Jamf Pro.
If the CSV file contains an existing username, the following user-related fields are updated in Jamf Pro.
Full Name,
Email Address,
Phone Number,
Position.
This endpoint does not do full validation of each record in the CSV data.
To do full validation, use the `/v2/inventory-preload/csv-validate` endpoint first.


> 📋 **Required privileges:**
> - Create Inventory Preload Records
> - Update Inventory Preload Records
> - Create User
> - Update User

# OpenAPI definition

```json
{
  "openapi": "3.0.1",
  "info": {
    "title": "Jamf Pro API",
    "termsOfService": "https://www.jamf.com/developer-resources/api-license-agreement",
    "version": "11.32.0"
  },
  "servers": [
    {
      "url": "https://yourServer.jamfcloud.com/api"
    }
  ],
  "x-readme": {
    "samples-languages": [
      "curl",
      "swift",
      "ruby",
      "python"
    ],
    "explorer-enabled": false
  },
  "security": [
    {
      "Bearer": []
    },
    {
      "ApiClient": []
    },
    {
      "BasicAuth": [
        "/v1/auth/token"
      ]
    }
  ],
  "paths": {
    "/v2/inventory-preload/csv": {
      "post": {
        "tags": [
          "inventory-preload"
        ],
        "summary": "Create one or more new Inventory Preload records using CSV\n",
        "description": "Create one or more new Inventory Preload records using CSV.\nA CSV template can be downloaded from /v2/inventory-preload/csv-template.\nSerial number and device type are required. All other fields are optional.\nWhen a matching serial number exists in the Inventory Preload data, the record will be overwritten with the CSV data.\nIf the CSV file contains a new username and an email address is provided, the new user is created in Jamf Pro.\nIf the CSV file contains an existing username, the following user-related fields are updated in Jamf Pro.\nFull Name,\nEmail Address,\nPhone Number,\nPosition.\nThis endpoint does not do full validation of each record in the CSV data.\nTo do full validation, use the `/v2/inventory-preload/csv-validate` endpoint first.\n\n\n> 📋 **Required privileges:**\n> - Create Inventory Preload Records\n> - Update Inventory Preload Records\n> - Create User\n> - Update User",
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "required": [
                  "file"
                ],
                "properties": {
                  "file": {
                    "type": "string",
                    "description": "The CSV file to upload",
                    "example": "serial number,device type,full name\nserial123,Computer,Test Name\n"
                  }
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/HrefResponse"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Validation Failed",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InventoryPreloadCsvValidationError"
                }
              }
            }
          }
        },
        "x-required-privileges": [
          "Create Inventory Preload Records",
          "Update Inventory Preload Records",
          "Create User",
          "Update User"
        ]
      }
    }
  },
  "components": {
    "schemas": {
      "ApiErrorCause": {
        "required": [
          "field"
        ],
        "type": "object",
        "properties": {
          "code": {
            "type": "string",
            "description": "Error-specific code that can be used to identify localization string, etc.",
            "example": "8675309"
          },
          "field": {
            "type": "string",
            "description": "Name of the field that caused the error.",
            "example": "Name"
          },
          "description": {
            "type": "string",
            "description": "A general description of error for troubleshooting/debugging. Generally this text should not be displayed to a user; instead refer to errorCode and it's localized text",
            "example": "I've just picked up a fault in the AE35 unit. It's going to go 100% failure in 72 hours"
          },
          "id": {
            "type": "string",
            "description": "id of object with error. Optional.",
            "nullable": true,
            "example": "3"
          }
        }
      },
      "HrefResponse": {
        "type": "object",
        "properties": {
          "id": {
            "minLength": 1,
            "type": "string",
            "example": "1"
          },
          "href": {
            "type": "string",
            "example": "https://yourJamfProUrl.jamf/api/v1/resource/1"
          }
        }
      },
      "InventoryPreloadCsvValidationError": {
        "type": "object",
        "properties": {
          "httpStatus": {
            "type": "integer",
            "description": "HTTP status of the response",
            "example": 400
          },
          "errors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/InventoryPreloadCsvValidationErrorCause"
            }
          }
        }
      },
      "InventoryPreloadCsvValidationErrorCause": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ApiErrorCause"
          },
          {
            "type": "object",
            "properties": {
              "value": {
                "type": "string",
                "example": "abcdefghijklmnopqrstuwxyzabcdefghijklmnopqrstuwxyzabcdefghijklmnopqrstuwxyz"
              },
              "serialNumber": {
                "type": "string",
                "example": "R7QFDE2YCFN4"
              },
              "line": {
                "type": "integer",
                "example": 5
              },
              "fieldSize": {
                "type": "integer",
                "example": 60
              },
              "deviceType": {
                "type": "string",
                "example": "Computer"
              }
            }
          }
        ]
      }
    },
    "securitySchemes": {
      "Bearer": {
        "type": "http",
        "scheme": "bearer",
        "bearerFormat": "JWT"
      },
      "BasicAuth": {
        "type": "http",
        "description": "Basic auth is used only for obtaining bearer tokens from the /v1/auth/token endpoint",
        "scheme": "basic"
      },
      "ApiClient": {
        "type": "oauth2",
        "description": "Jamf Pro API Roles and Clients provide a client ID and secret for obtaining access tokens using the OAuth2 client_credentials grant type",
        "flows": {
          "clientCredentials": {
            "tokenUrl": "/api/v1/oauth/token",
            "scopes": {}
          }
        }
      }
    }
  }
}
```