How do I import assets from a CSV file?
Quick answer
Section titled “Quick answer”Under Import & Export, download the sample CSV, fill it in with
your assets, and upload it again. Only the columns asset_type and
name are required; all other columns are optional. Notory checks each
row individually, skips invalid ones, and imports the rest. Column
headers must match the field names (asset_type, serial_number, … —
not “Type” or “Serial number”).
Prerequisites
Section titled “Prerequisites”Import is included in the Basic plan. Keep in mind your license’s asset limit.
-
Download the template. Open the Import & Export section (route /data) and click “Download example CSV”. The template contains all supported columns and one sample row — so you can see the exact field names.
Screenshot pendingimport-export-csv-01Import area with the 'Download example CSV' button and the upload fieldThe import area with template download and file upload. -
Fill in the CSV. Enter your assets. A minimal, valid example:
assets-import.csv asset_type,name,serial_number,manufacturer,model,status,location,departmenthardware,ThinkPad T14 – Vertrieb,PF-3X9K2L,Lenovo,T14 Gen 4,active,Büro München / Raum 2.14,Vertriebnetwork,Core-Switch 01,SG-88213,Cisco,Catalyst 9300,active,Rechenzentrum / Rack A1,ITsoftware,Adobe Photoshop,,Adobe,2026,active,,Marketingasset_type(required): one ofhardware,software,network,certificate,license,peripheral.name(required): must not be empty.status(optional): defaults toactive.
-
Upload the file. Drag the CSV into the upload field (“Drag and drop a file here, or click to browse”) or select it. The preview shows the detected rows.
-
Start the import. Click “Start Import”. When it’s done, Notory reports how many records were imported and how many were skipped.
Screenshot pendingimport-export-csv-02Import result showing the number of imported and skipped recordsThe import result: imported and skipped records.
First, download the template (shows all importable columns):
curl -H "Authorization: Bearer inv_dein_token" \ https://demo.notory.io/api/v1/assets/import/template.csv \ --output asset-import-template.csvThen upload the filled-in CSV as a file upload (multipart/form-data,
field file):
curl -X POST https://demo.notory.io/api/v1/assets/import \ -H "Authorization: Bearer inv_dein_token" \ -F "file=@assets-import.csv"Response HTTP 200 with the number of successfully created assets:
{ "message": "Successfully imported 2 assets", "data": { "count": 2 }}Notory recognizes CSV by the .csv extension. Invalid rows don’t count — in
the example, a third row was skipped because it failed validation.
Possible errors: 401 (token missing/invalid). Individual faulty rows do
not result in an error code — they’re silently skipped.
What happens behind the scenes?
Section titled “What happens behind the scenes?”- Row-by-row validation: Each row is checked against the asset schema. If it fails, only that row is skipped (logged), and the rest goes through. The response states the number of successfully imported assets.
- Required fields:
asset_type(a valid type value) andname(not empty). If they’re missing or invalid, the row is discarded. - Watch out for empty cells in typed columns: Optional date
(
purchase_date,warranty_expiry), number (purchase_cost), and choice (status,data_classification) columns don’t tolerate empty strings. It’s better to leave such columns out entirely rather than leave the cell empty — otherwise the whole row can be skipped. Empty text fields (e.g.serial_number) are unproblematic. - Column names = field names: The header row must use the technical
field names (
asset_type,serial_number, …). Unknown columns are ignored — so you can also re-import a previously exported file (theidcolumn is ignored in that case). - No duplicate check: Every valid row is created as a new asset. If you import the same file twice, you get duplicates — there’s no matching by name or serial number.
- Encoding: UTF-8 is expected; a leading BOM is automatically removed. Umlauts in values are fine.
Related topics
Section titled “Related topics”- How do I import and export data?
- Import & export via JSON
- Export your inventory for a backup
- How do I create an asset? — field meanings in detail