Create Information with a CSV File (Users and Devices)
You can create and update the users and devices you manage in bulk by using a CSV file (a comma-separated text file). You can also register them to organizations, device tags, and templates at the same time.
You can create the CSV file with a text editor, spreadsheet software, or similar tools.
For devices that use ADE (formerly DEP), see Create Device Information Using a CSV File (with ADE (formerly DEP)).
CSV File Specifications
- The first row is the header (item names). Do not include spaces in item names.
- Entries are case-sensitive, except for Identifier (identifier). (Example:
DEVICE01anddevice01are treated as the same.) - The file you upload must have the .csv extension.
If you leave an optional column blank when updating, the registered value is cleared (except for Code and ExpirationDays). For details, see Handling of Blank Values.
List of Items
"Header" indicates whether the column is required in the header row. The three columns on the right indicate whether a value is required for each use.
| Header Item Name | Description | Header | Users and Devices | Devices Only | Users Only |
|---|---|---|---|---|---|
| UserName | An ID that uniquely identifies the user. Displayed as "User ID" on the screen. | Required | Required | Blank | Required |
| Name | The user's full name. Displayed as "User Name" on the screen. | Required | Optional | Blank | Optional |
| EmailAddress | The user's email address | Required | Optional | Blank | Optional |
| SendVPPInvitationEmail | Use this only when distributing VPP apps per user. If you specify 1 when creating or updating a user, a VPP invitation email is sent to the address in EmailAddress. | Can be omitted | Optional | Blank | Optional |
| UserDescription | Any information for the user | Required | Optional | Blank | Optional |
| Organizations | The organization ID of the organization to which the user belongs. The organization must be created in advance. To specify more than one, separate them with |. | Can be omitted | Optional | Optional | Optional |
| Identifier | An identifier that uniquely identifies the device. Displayed as "Identifier" on the screen. Cannot be changed after creation. | Required | Required | Required | Blank |
| Template | The template to associate with the device. The template must be created in advance. | Can be omitted | Optional | Optional | Blank |
| Code | The code used for enrollment (Note: see below) | Required | Optional | Optional | Blank |
| OS | Specify one of ios, android, windows, or macos in lowercase. Can be specified only at creation and cannot be updated. | Required | Required | Required | Blank |
| DeviceTags | The names of the device tags to set for the device. The device tags must be created in advance. To specify more than one, separate them with |. | Can be omitted | Optional | Optional | Blank |
| WifiMac | The Wi-Fi MAC address that restricts which devices can enroll (iOS and Android only) | Required | Optional | Optional | Blank |
| IMEI | The IMEI that restricts which devices can enroll (iOS and Android only) | Required | Optional | Optional | Blank |
| MEID | The MEID that restricts which devices can enroll (iOS and Android only) | Required | Optional | Optional | Blank |
| UDID | The UDID that restricts which devices can enroll (iOS only) | Required | Optional | Optional | Blank |
| Serial | The serial number that restricts which devices can enroll (Windows only). To specify the serial number of an ADE device, see Create Device Information Using a CSV File (with ADE (formerly DEP)). | Required | Optional | Optional | Blank |
| ExpirationDays | The number of days until the enrollment expiration date. Displayed as "Enrollment Expiration Date" on the screen, as the date and time that many days after the import time (Note: see below). | Required | Optional | Optional | Blank |
| DisplayName | A nickname or similar name for the device. Displayed as "Name" on the screen. | Required | Optional | Optional | Blank |
| Description | Any information for the device. Displayed as "Description" on the screen. | Required | Optional | Optional | Blank |
| RegistrationEmail | The destination address for the enrollment email. An enrollment email is sent every time you save or update with a value entered. | Required | Optional | Optional | Blank |
Note: Code and ExpirationDays handle blank values differently from the other columns. See the following table.
Handling of Blank Values
| Column | If blank at creation | If blank at update |
|---|---|---|
| Code | A random code is generated automatically | The registered code is kept |
| ExpirationDays | Automatically set to 7 days later | The registered expiration date is kept |
| Any other optional column | No value is registered | The registered value is cleared |
Whether You Can Update Depending on Enrollment Status
| Enrollment Status | Columns you can update |
|---|---|
| Waiting to enroll, Expired | All columns except OS |
| Enrolled | Columns other than OS, Code, WifiMac, IMEI, MEID, UDID, ExpirationDays, and RegistrationEmail |
| Unregistered | Cannot be updated (you must register a new device) |
Update by Using an Exported CSV
To update registered information, the easiest way is to export a CSV file by clicking Export on the CONFIG → Device screen and selecting Registered Devices, edit the file, and then import it. For the export procedure, see Export Registered Information.
Note the following when you edit the file.
- ExpirationDays is exported as a date and time (example:
2026-04-09 05:35:22). When you import, rewrite it as a number of days or leave it blank. If you leave it blank, the registered expiration date is kept. - The DEPMethod column is for devices that use ADE (formerly DEP). For details, see Create Device Information Using a CSV File (with ADE (formerly DEP)).
- If you leave the value of a column you are not updating blank, the registered value is cleared. Leave the exported values as they are.
CSV File Samples
UserName,Name,EmailAddress,UserDescription,Identifier,Template,Code,OS,WifiMac,IMEI,MEID,UDID,Serial,ExpirationDays,DisplayName,Description,RegistrationEmail
user0001,Test User 1,user0001@example.com,User description 1,apple001,,,ios,,,,,,,iOS Device 1,,
user0002,Test User 2,user0002@example.com,User description 2,apple002,,,ios,,,,,,,iOS Device 2,,
user0003,Test User 3,user0003@example.com,User description 3,google001,,,android,,,,,,,Android Device 1,,
user0004,Test User 4,user0004@example.com,User description 4,google002,,,android,,,,,,,Android Device 2,,
user0005,Test User 5,user0005@example.com,User description 5,ms001,,,windows,,,,,,,Windows Device 1,,
user0006,Test User 6,user0006@example.com,User description 6,ms002,,,windows,,,,,,,Windows Device 2,,
UserName,Name,EmailAddress,UserDescription,Identifier,Template,Code,OS,WifiMac,IMEI,MEID,UDID,Serial,ExpirationDays,DisplayName,Description,RegistrationEmail
,,,,apple001,,,ios,,,,,,,iOS Device 1,,
,,,,apple002,,,ios,,,,,,,iOS Device 2,,
,,,,google001,,,android,,,,,,,Android Device 1,,
,,,,google002,,,android,,,,,,,Android Device 2,,
,,,,ms001,,,windows,,,,,,,Windows Device 1,,
,,,,ms002,,,windows,,,,,,,Windows Device 2,,
UserName,Name,EmailAddress,UserDescription,Identifier,Template,Code,OS,WifiMac,IMEI,MEID,UDID,Serial,ExpirationDays,DisplayName,Description,RegistrationEmail
user0001,Test User 1,user0001@example.com,User description 1,,,,,,,,,,,,,
user0002,Test User 2,user0002@example.com,User description 2,,,,,,,,,,,,,
user0003,Test User 3,user0003@example.com,User description 3,,,,,,,,,,,,,
UserName,Name,EmailAddress,SendVPPInvitationEmail,UserDescription,Identifier,Template,Code,OS,WifiMac,IMEI,MEID,UDID,Serial,ExpirationDays,DisplayName,Description,RegistrationEmail
user0001,Test User 1,user0001@example.com,1,User description 1,apple001,,,ios,,,,,,,iOS Device 1,,
user0002,Test User 2,user0002@example.com,1,User description 2,apple002,,,ios,,,,,,,iOS Device 2,,
Upload a CSV File
Use the same screen to import even when you create only users.
- Click Import on the CONFIG → Device screen.

- Drag and drop the CSV file, or click the frame and select the CSV file.

- Click Save.
- When the confirmation message appears, click OK.

- This import is added to the import history at the bottom of the screen with
Status = PENDING. Wait a moment, and then refresh the browser.

- When the import is complete,
Statuschanges toSUCCESS. If it isERROR, check the details of the error in the result CSV.
Click theResulticon to download the result CSV.

How to Read the Result CSV
The result CSV contains information about the rows that had errors.
| Column | Description |
|---|---|
| LineNumber | The line number in the CSV file where the error occurred |
| Status | The processing result (example: error) |
| Messages | The details of the error |
Main error messages
| Message | Cause and solution |
|---|---|
Required column "(column name)" was not provided | A required column is missing from the header row. Even if you are not entering a value, keep the column and leave its value blank. |
Check the Import History
The import history at the bottom of the import screen shows the results of past imports.

(1) Click the icon to download a past import result again
(2) You can select the number of items displayed in the history list from 20 (default), 50, and 100
(3) If the history has multiple pages, you can move between pages
(4) You can select the check boxes in the history list and delete entries