---
title: "plm imports"
description: "Manage import jobs"
---

{/* AUTO-GENERATED by packages/cli/scripts/generate-docs.ts — do not edit by hand. */}
## plm imports

Manage import jobs

**Usage**

```bash
plm imports
```

**Subcommands**

- [`template`](#plm-imports-template)
- [`validate`](#plm-imports-validate)
- [`start`](#plm-imports-start)
- [`status`](#plm-imports-status)
- [`errors`](#plm-imports-errors)
- [`list`](#plm-imports-list) — List past import jobs

<details>
<summary>Agent-readable summary</summary>

```json
{
  "command": "plm imports",
  "description": "Manage import jobs",
  "arguments": [],
  "options": [],
  "subcommands": [
    "template",
    "validate",
    "start",
    "status",
    "errors",
    "list"
  ]
}
```

</details>

### plm imports template

**Usage**

```bash
plm imports template <type>
```

**Options**

- `--out <path>` **required** — output path for template
- `--format <fmt>` — output format _(default: `"json"`)_

<details>
<summary>Agent-readable summary</summary>

```json
{
  "command": "plm imports template",
  "description": null,
  "arguments": [
    {
      "name": "type",
      "required": true,
      "variadic": false,
      "description": ""
    }
  ],
  "options": [
    {
      "flags": "--out <path>",
      "description": "output path for template",
      "required": true,
      "default": null
    },
    {
      "flags": "--format <fmt>",
      "description": "output format",
      "required": false,
      "default": "json"
    }
  ],
  "subcommands": []
}
```

</details>

### plm imports validate

**Usage**

```bash
plm imports validate <file>
```

**Options**

- `--type <type>` — entity type: parts | bom | eco (plurals accepted) _(default: `"parts"`)_
- `--format <fmt>` — output format _(default: `"json"`)_

<details>
<summary>Agent-readable summary</summary>

```json
{
  "command": "plm imports validate",
  "description": null,
  "arguments": [
    {
      "name": "file",
      "required": true,
      "variadic": false,
      "description": ""
    }
  ],
  "options": [
    {
      "flags": "--type <type>",
      "description": "entity type: parts | bom | eco (plurals accepted)",
      "required": false,
      "default": "parts"
    },
    {
      "flags": "--format <fmt>",
      "description": "output format",
      "required": false,
      "default": "json"
    }
  ],
  "subcommands": []
}
```

</details>

### plm imports start

**Usage**

```bash
plm imports start <file>
```

**Options**

- `--type <type>` — entity type: parts | bom | eco (plurals accepted) _(default: `"parts"`)_
- `--skip-duplicates, --skipDuplicates` — skip rows whose primary key already exists
- `--update-existing, --updateExisting` — update existing rows on key collision (otherwise skip)
- `--dry-run, --dryRun` — run the full pipeline without writing anything
- `--auto-create-parts, --autoCreateParts` — auto-create missing parts referenced by a BOM import (BOM only)
- `--bom-name, --bomName <name>` — BOM name for the target assembly (sent as constant value bom_name; Altium-style xlsx)
- `--constant <pair>` — fields constant across all rows but not in the source spreadsheet, repeatable. Format: key=value (e.g. --constant parent_part_id=PCBA0001-01) _(default: `[]`)_
- `--no-wait` — return the job id without waiting for completion
- `--format <fmt>` — output format _(default: `"json"`)_

<details>
<summary>Agent-readable summary</summary>

```json
{
  "command": "plm imports start",
  "description": null,
  "arguments": [
    {
      "name": "file",
      "required": true,
      "variadic": false,
      "description": ""
    }
  ],
  "options": [
    {
      "flags": "--type <type>",
      "description": "entity type: parts | bom | eco (plurals accepted)",
      "required": false,
      "default": "parts"
    },
    {
      "flags": "--skip-duplicates, --skipDuplicates",
      "description": "skip rows whose primary key already exists",
      "required": false,
      "default": null
    },
    {
      "flags": "--update-existing, --updateExisting",
      "description": "update existing rows on key collision (otherwise skip)",
      "required": false,
      "default": null
    },
    {
      "flags": "--dry-run, --dryRun",
      "description": "run the full pipeline without writing anything",
      "required": false,
      "default": null
    },
    {
      "flags": "--auto-create-parts, --autoCreateParts",
      "description": "auto-create missing parts referenced by a BOM import (BOM only)",
      "required": false,
      "default": null
    },
    {
      "flags": "--bom-name, --bomName <name>",
      "description": "BOM name for the target assembly (sent as constant value bom_name; Altium-style xlsx)",
      "required": false,
      "default": null
    },
    {
      "flags": "--constant <pair>",
      "description": "fields constant across all rows but not in the source spreadsheet, repeatable. Format: key=value (e.g. --constant parent_part_id=PCBA0001-01)",
      "required": false,
      "default": []
    },
    {
      "flags": "--no-wait",
      "description": "return the job id without waiting for completion",
      "required": false,
      "default": null
    },
    {
      "flags": "--format <fmt>",
      "description": "output format",
      "required": false,
      "default": "json"
    }
  ],
  "subcommands": []
}
```

</details>

### plm imports status

**Usage**

```bash
plm imports status <importId>
```

**Options**

- `--format <fmt>` — output format _(default: `"json"`)_

<details>
<summary>Agent-readable summary</summary>

```json
{
  "command": "plm imports status",
  "description": null,
  "arguments": [
    {
      "name": "importId",
      "required": true,
      "variadic": false,
      "description": ""
    }
  ],
  "options": [
    {
      "flags": "--format <fmt>",
      "description": "output format",
      "required": false,
      "default": "json"
    }
  ],
  "subcommands": []
}
```

</details>

### plm imports errors

**Usage**

```bash
plm imports errors <importId>
```

**Options**

- `--format <fmt>` — output format _(default: `"json"`)_

<details>
<summary>Agent-readable summary</summary>

```json
{
  "command": "plm imports errors",
  "description": null,
  "arguments": [
    {
      "name": "importId",
      "required": true,
      "variadic": false,
      "description": ""
    }
  ],
  "options": [
    {
      "flags": "--format <fmt>",
      "description": "output format",
      "required": false,
      "default": "json"
    }
  ],
  "subcommands": []
}
```

</details>

### plm imports list

List past import jobs

**Usage**

```bash
plm imports list
```

**Options**

- `-f, --filter <kv...>` — e.g., limit=50 status=completed
- `--format <fmt>` — output format _(default: `"json"`)_

<details>
<summary>Agent-readable summary</summary>

```json
{
  "command": "plm imports list",
  "description": "List past import jobs",
  "arguments": [],
  "options": [
    {
      "flags": "-f, --filter <kv...>",
      "description": "e.g., limit=50 status=completed",
      "required": false,
      "default": null
    },
    {
      "flags": "--format <fmt>",
      "description": "output format",
      "required": false,
      "default": "json"
    }
  ],
  "subcommands": []
}
```

</details>
