← All Docs

CSV Import & Export

Bulk import subnets and addresses from CSV files, or export your data for reporting and backup.

Exporting Data

IPCraft offers two separate exports: Export Subnets exports your network definitions (CIDRs, folders, VLANs, VRFs, locations, gateways, DNS settings), while Export Addresses exports the individual IP address assignments within those subnets (IPs, hostnames, MACs, statuses, owners). Think of subnets as the containers and addresses as the items inside them.

Export Subnets

In the sidebar under Data, click Export CSV and select Subnets. A CSV file will download containing all your subnets with human-readable names for folders, VLANs, VRFs, and locations (not UUIDs).

To export a single folder, call the export API with the folder_id query parameter.

Subnet export columns:

ColumnDescription
networkCIDR notation (e.g., 10.0.0.0/24)
nameSubnet name
descriptionSubnet description
folderFolder name
vlanVLAN number
vrfVRF name
locationLocation name
gatewayDefault gateway IP
dns_primaryPrimary DNS server
dns_secondarySecondary DNS server
is_poolWhether this is an IP pool
scan_enabledWhether scanning is enabled
trackedWhether IP usage is tracked (false = container subnet)
custom_fieldsCustom fields as a JSON object (blank when unset)

Export Addresses

You can export addresses in two ways:

  • Per-subnet: Click the Export button in the address list header when viewing a specific subnet
  • All addresses: In the sidebar under Data, click Export CSV and select Addresses

Address export columns:

ColumnDescription
ipIP address
subnetParent subnet CIDR
vrfVRF name of the parent subnet (blank when the subnet has no VRF)
hostnameHostname or FQDN
mac_addressMAC address
descriptionDescription
statusStatus (assigned, reserved, d-dhcp, m-dhcp, gateway)
ownerOwner or team
ptr_recordPTR (reverse DNS) record
custom_fieldsCustom fields as a JSON object
Tip: Exported CSVs use the exact format needed for re-import. You can export, edit in a spreadsheet, and re-import — duplicates will be automatically skipped, and every column (including scan_enabled and tracked) round-trips.

Importing Subnets

Quick Start

  1. Click Import CSV in the sidebar under Data
  2. Select "Subnets" as the import type
  3. Upload your CSV file (or download a template first)
  4. Review the auto-detected column mapping and adjust if needed
  5. Preview the validated data and fix any errors
  6. Click Import to create the subnets

Required Columns

Only network is required. The network must be in CIDR notation (e.g., 10.0.0.0/24).

Alternatively, you can provide the network address in one column and the subnet mask or prefix length in a separate column. IPCraft will automatically combine them.

Supported CIDR Formats

  • 10.0.0.0/24 — standard CIDR notation (preferred)
  • Network column 10.0.0.0 + Netmask column 255.255.255.0
  • Network column 10.0.0.0 + Prefix Length column 24

Optional Columns

ColumnNotes
nameSubnet name/label
descriptionFree-text description
folderFolder name — auto-created if it doesn't exist
vlanVLAN number (1-4094) — auto-created if it doesn't exist
vrfVRF name — auto-created if it doesn't exist
locationLocation name — auto-created if it doesn't exist
gatewayDefault gateway IP address
dns_primaryPrimary DNS server
dns_secondarySecondary DNS server
is_pooltrue/false, yes/no, 1/0
scan_enabledtrue/false, yes/no, 1/0
trackedtrue/false, yes/no, 1/0 — defaults to true when the column is absent or blank; false marks a container subnet
Auto-creation: Folders, VLANs, VRFs, and locations referenced in your CSV will be automatically created if they don't already exist. This makes migration from other tools seamless.

Duplicate Handling

If a subnet with the same CIDR in the same VRF already exists, it will be skipped (not errored). This means you can safely re-import the same CSV without creating duplicates.

Importing Addresses

Required Columns

  • ip — the IP address to assign
  • subnet — the CIDR of the parent subnet (must already exist in IPCraft)
Important: Subnets must exist before importing addresses. Import your subnets first, then import addresses.

Subnets in VRFs

The same CIDR can exist in several VRFs, so an address row can name its parent subnet's VRF in an optional vrf column. The address export always writes it. VRF names match case-insensitively, and a VRF that doesn't contain the row's subnet is a row error (address imports never create VRFs).

When vrf is blank or the column is missing, as in files exported before it was added, the row goes to the subnet with that CIDR outside any VRF. If there is no such subnet and exactly one VRF has the CIDR, the row goes there. If several VRFs have it, the row is rejected until you fill in vrf.

Status Values

IPCraft accepts many common status synonyms and normalizes them automatically:

Your CSV valueMaps to
active, in use, used, static, assignedassigned
reservedreserved
dhcp, dynamicd-dhcp
manual dhcpm-dhcp
gateway, gw, routergateway
free, available, unused, unassigned, down, offline, deprecatedRow skipped (don't import empty addresses)

Anything else that isn't recognized defaults to assigned.

MAC Address Formats

All common MAC address formats are accepted and automatically normalized:

  • 00:11:22:33:44:55 (colon-delimited)
  • 00-11-22-33-44-55 (hyphen-delimited)
  • 0011.2233.4455 (Cisco format)
  • 001122334455 (no delimiters)

Column Name Flexibility

IPCraft automatically detects common column name variations. You don't need to rename your CSV headers to match exactly. For example, all of these will be recognized as the IP address column:

  • ip, IP Address, ipaddress, ip_addr, host_ip

If auto-detection gets it wrong, you can manually adjust the column mapping in step 2 of the import wizard.

Tips & Troubleshooting

File Requirements

  • CSV, TSV, or TXT files up to 10MB
  • First row must be column headers
  • Maximum 1,000 rows per request, the same bulk limit as every bulk action. The import wizard sends larger files in batches of 1,000 automatically, and each batch is logged as its own activity entry listing every row it created
  • Each batch also sends one subnet.created or address.created webhook event, not one per row: data.created is the count, data.networks or data.ips lists every row it created, and resource_id is the batch’s ID

Plan Limits

Import operations respect your plan's resource limits. If importing would exceed your subnet, address, or folder limit, those rows will show an error. Successfully imported rows are not rolled back — you'll get a partial import with a clear summary of what succeeded and what didn't.

Round-Trip Export/Import

The export format is designed to be directly re-importable. You can export your data, edit it in Excel or Google Sheets, and re-import it. Existing items will be skipped as duplicates, and new items will be created.

Download Templates

Click the "Download template" link in the import dialog to get a ready-made CSV with the correct headers and example data for subnets or addresses.