UiPath Documentation
uipath-cli
latest
false
UiPath CLI user guide

uip ixp projects

Syntax and options for `uip ixp projects`, which creates and manages IXP training projects — model publishing, metrics, and taxonomy import/export.

uip ixp projects creates and manages IXP training projects: the top-level container for a taxonomy, training documents, and trained model versions. See Concepts on the parent page for the taxonomy model and training-loop overview.

Synopsis

uip ixp projects list [-l, --limit <n>] [--offset <n>]
uip ixp projects get <project-name>
uip ixp projects delete <project-name> -y
uip ixp projects update-title <project-name> <new-title>
uip ixp projects update-prompt <project-name> --prompt <text>
uip ixp projects get-taxonomy <project-name>
uip ixp projects import-taxonomy <project-name> <file>
uip ixp projects configure-model <project-name> [--model <version>] [--preprocessing <type>]
uip ixp projects get-metrics <project-name> [-m, --model-version <version>]
uip ixp projects publish <project-name> [-m, --model-version <version>] [--tag live|staging] [-d, --description <text>]
uip ixp projects unpublish <project-name> -m, --model-version <version>
uip ixp projects untag <project-name> --tag live|staging
uip ixp projects list-models <project-name>
uip ixp projects create <name> [folder-path] [-d, --description <text>] [--skip-taxonomy]
uip ixp projects list [-l, --limit <n>] [--offset <n>]
uip ixp projects get <project-name>
uip ixp projects delete <project-name> -y
uip ixp projects update-title <project-name> <new-title>
uip ixp projects update-prompt <project-name> --prompt <text>
uip ixp projects get-taxonomy <project-name>
uip ixp projects import-taxonomy <project-name> <file>
uip ixp projects configure-model <project-name> [--model <version>] [--preprocessing <type>]
uip ixp projects get-metrics <project-name> [-m, --model-version <version>]
uip ixp projects publish <project-name> [-m, --model-version <version>] [--tag live|staging] [-d, --description <text>]
uip ixp projects unpublish <project-name> -m, --model-version <version>
uip ixp projects untag <project-name> --tag live|staging
uip ixp projects list-models <project-name>
uip ixp projects create <name> [folder-path] [-d, --description <text>] [--skip-taxonomy]

uip ixp projects list

List all IXP training projects in the tenant.

Options

ShortLongValueDefaultDescription
-l--limit <number>1-1000050Number of items to return.
--offset <number>0-10000000Number of items to skip.

Example

uip ixp projects list
uip ixp projects list

Data shape (--output json)

{
  "Code": "IxpProjectsList",
  "Data": {
    "Projects": [
      {
        "Id": "3d8f1b67-2c5e-4a09-bf3d-9e1a4c7b820f",
        "Name": "my-invoices",
        "Title": "My Invoices",
        "CreatedAt": "2026-04-01T10:00:00Z",
        "ProjectUrl": "https://cloud.uipath.com/acme/DefaultTenant/reinfer_/ixp/my-invoices/my-invoices"
      }
    ],
    "Total": 1,
    "Offset": 0,
    "Limit": 1
  }
}
{
  "Code": "IxpProjectsList",
  "Data": {
    "Projects": [
      {
        "Id": "3d8f1b67-2c5e-4a09-bf3d-9e1a4c7b820f",
        "Name": "my-invoices",
        "Title": "My Invoices",
        "CreatedAt": "2026-04-01T10:00:00Z",
        "ProjectUrl": "https://cloud.uipath.com/acme/DefaultTenant/reinfer_/ixp/my-invoices/my-invoices"
      }
    ],
    "Total": 1,
    "Offset": 0,
    "Limit": 1
  }
}

The whole response, including Data, is forwarded from the IXP API verbatim — keys keep their native PascalCase here, but see each other verb's note on casing since it varies by endpoint.

uip ixp projects get

Get an IXP training project by name.

Arguments

NameRequiredPurpose
<project-name>yesProject name.

Example

uip ixp projects get my-invoices
uip ixp projects get my-invoices

Data shape (--output json)

{
  "Code": "IxpProjectsGet",
  "Data": {
    "Id": "3d8f1b67-2c5e-4a09-bf3d-9e1a4c7b820f",
    "Name": "my-invoices",
    "Title": "My Invoices",
    "CreatedAt": "2026-04-01T10:00:00Z",
    "ProjectUrl": "https://cloud.uipath.com/acme/DefaultTenant/reinfer_/ixp/my-invoices/my-invoices"
  }
}
{
  "Code": "IxpProjectsGet",
  "Data": {
    "Id": "3d8f1b67-2c5e-4a09-bf3d-9e1a4c7b820f",
    "Name": "my-invoices",
    "Title": "My Invoices",
    "CreatedAt": "2026-04-01T10:00:00Z",
    "ProjectUrl": "https://cloud.uipath.com/acme/DefaultTenant/reinfer_/ixp/my-invoices/my-invoices"
  }
}

uip ixp projects delete

Permanently delete a project — its documents, taxonomy, and trained models. Irreversible; requires --yes.

Arguments

NameRequiredPurpose
<project-name>yesProject name.

Options

ShortLongDescription
-y--yesConfirm this irreversible operation. Required — the CLI never prompts.

Example

uip ixp projects delete my-invoices --yes
uip ixp projects delete my-invoices --yes

Data shape (--output json)

{ "Code": "IxpProjectsDelete", "Data": { "Status": "ok" } }
{ "Code": "IxpProjectsDelete", "Data": { "Status": "ok" } }

uip ixp projects update-title

Update the display title of a project. The proxy keeps the dataset and project titles in sync server-side.

Arguments

NameRequiredPurpose
<project-name>yesProject name.
<new-title>yesNew display title.

Example

uip ixp projects update-title my-invoices "My Invoices"
uip ixp projects update-title my-invoices "My Invoices"

Data shape (--output json)

{
  "Code": "IxpProjectsUpdateTitle",
  "Data": {
    "Id": "3d8f1b67-2c5e-4a09-bf3d-9e1a4c7b820f",
    "Name": "my-invoices",
    "Title": "My Invoices",
    "CreatedAt": "2026-04-01T10:00:00Z",
    "ProjectUrl": "https://cloud.uipath.com/acme/DefaultTenant/reinfer_/ixp/my-invoices/my-invoices"
  }
}
{
  "Code": "IxpProjectsUpdateTitle",
  "Data": {
    "Id": "3d8f1b67-2c5e-4a09-bf3d-9e1a4c7b820f",
    "Name": "my-invoices",
    "Title": "My Invoices",
    "CreatedAt": "2026-04-01T10:00:00Z",
    "ProjectUrl": "https://cloud.uipath.com/acme/DefaultTenant/reinfer_/ixp/my-invoices/my-invoices"
  }
}

uip ixp projects update-prompt

Update the project's overall extraction instructions — the taxonomy-wide prompt giving the model context relevant across every field group. Matches the IXP UI's "Overall extraction instructions" field on the Manage Taxonomy page. Distinct from a field group's own prompt (taxonomy groups update-prompts) and per-field prompts (taxonomy fields update-prompts).

Arguments

NameRequiredPurpose
<project-name>yesProject name.

Options

LongValueRequiredDescription
--prompt <text>stringyesNew overall extraction instructions. Replaces the existing value.

Example

uip ixp projects update-prompt my-invoices --prompt "Extract key information from US vendor invoices, including header fields and line items."
uip ixp projects update-prompt my-invoices --prompt "Extract key information from US vendor invoices, including header fields and line items."

Data shape (--output json)

{ "Code": "IxpProjectsUpdatePrompt", "Data": { "Status": "ok" } }
{ "Code": "IxpProjectsUpdatePrompt", "Data": { "Status": "ok" } }

uip ixp projects get-taxonomy

Export the project's raw IXP taxonomy artifact (data types + field groups). This is an IXP-internal format intended for re-import into another project (import-taxonomy), not a curated, human-readable view.

Arguments

NameRequiredPurpose
<project-name>yesProject name.

Example

uip ixp projects get-taxonomy my-invoices --output json
uip ixp projects get-taxonomy my-invoices --output json

Data shape (--output json)

{
  "Code": "IxpProjectsGetTaxonomy",
  "Data": {
    "status": "ok",
    "dataset": { "entity_defs": [], "label_groups": [] }
  }
}
{
  "Code": "IxpProjectsGetTaxonomy",
  "Data": {
    "status": "ok",
    "dataset": { "entity_defs": [], "label_groups": [] }
  }
}

Data is forwarded verbatim in the upstream dataset's own snake_case, not PascalCased.

uip ixp projects import-taxonomy

Import a taxonomy from a local JSON file into an existing project. Accepts two file formats: { field_types, label_group } (the shape get-taxonomy/taxonomy-suggestion produce) or { entity_defs, label_groups } (the shape the taxonomy endpoint itself returns) — entity_defs/the first label_groups entry are passed through as-is when given the second format, to preserve properties like inherits_from the API requires.

Arguments

NameRequiredPurpose
<project-name>yesProject name.
<file>yesPath to taxonomy JSON file.

Example

uip ixp projects import-taxonomy my-invoices ./taxonomy.json
uip ixp projects import-taxonomy my-invoices ./taxonomy.json

Data shape (--output json)

{
  "Code": "IxpProjectsImportTaxonomy",
  "Data": {
    "ProjectName": "my-invoices",
    "FieldTypes": 4,
    "LabelDefs": 1,
    "Labels": ["Invoice"]
  }
}
{
  "Code": "IxpProjectsImportTaxonomy",
  "Data": {
    "ProjectName": "my-invoices",
    "FieldTypes": 4,
    "LabelDefs": 1,
    "Labels": ["Invoice"]
  }
}

Fails with an explicit error if the file has neither recognized shape (missing both field_types and label_group after normalization).

uip ixp projects configure-model

Configure the extraction model settings for a project. The proxy reads the current config, merges in the supplied model/preprocessing, writes it back, and returns the merged config.

Arguments

NameRequiredPurpose
<project-name>yesProject name.

Options

LongValueDescription
--model <version>stringExtraction model name, validated server-side (e.g. gemini_2_5_flash, gemini_2_5_pro, gpt_4o_2024_05_13).
--preprocessing <type>none|table_mini|tableIntelligent pre-processing mode.

At least one of --model/--preprocessing is required — passing neither fails client-side before any call ("Nothing to configure").

Example

uip ixp projects configure-model my-invoices --model gemini_2_5_pro --preprocessing table
uip ixp projects configure-model my-invoices --model gemini_2_5_pro --preprocessing table

Data shape (--output json)

{
  "Code": "IxpProjectsConfigureModel",
  "Data": { "ProjectName": "my-invoices", "Config": {} }
}
{
  "Code": "IxpProjectsConfigureModel",
  "Data": { "ProjectName": "my-invoices", "Config": {} }
}

uip ixp projects get-metrics

Get validation metrics for an IXP project.

Arguments

NameRequiredPurpose
<project-name>yesProject name.

Options

ShortLongValueDefaultDescription
-m--model-version <version>integer or latestlatestModel version to get metrics for.

Examples

uip ixp projects get-metrics my-invoices --output json
uip ixp projects get-metrics my-invoices --output json
uip ixp projects get-metrics my-invoices --model-version 32 --output json
uip ixp projects get-metrics my-invoices --model-version 32 --output json

Data shape (--output json)

{
  "Code": "IxpProjectsGetMetrics",
  "Data": {
    "ModelVersion": 35,
    "ValidatedDocuments": 8,
    "ProjectScore": 0.8662574291229248,
    "ProjectScoreQuality": "excellent",
    "FieldGroups": [
      { "FieldGroup": "Invoice", "F1": 0.8939051628112793, "Precision": 0.824999988079071, "Recall": 0.9753694534301758, "ErrorRate": 0.1621621549129486, "Documents": 8 }
    ],
    "Fields": [
      { "FieldGroup": "Invoice", "FieldId": "1e8eadeac608df18", "Name": "Invoice Number", "F1": 0.875, "Precision": 0.875, "Recall": 0.875, "ErrorRate": 0.125, "Documents": 8, "Annotations": 8, "Quality": "good" }
    ]
  }
}
{
  "Code": "IxpProjectsGetMetrics",
  "Data": {
    "ModelVersion": 35,
    "ValidatedDocuments": 8,
    "ProjectScore": 0.8662574291229248,
    "ProjectScoreQuality": "excellent",
    "FieldGroups": [
      { "FieldGroup": "Invoice", "F1": 0.8939051628112793, "Precision": 0.824999988079071, "Recall": 0.9753694534301758, "ErrorRate": 0.1621621549129486, "Documents": 8 }
    ],
    "Fields": [
      { "FieldGroup": "Invoice", "FieldId": "1e8eadeac608df18", "Name": "Invoice Number", "F1": 0.875, "Precision": 0.875, "Recall": 0.875, "ErrorRate": 0.125, "Documents": 8, "Annotations": 8, "Quality": "good" }
    ]
  }
}

A model that exists but hasn't been validated yet returns { "Metrics": null } instead of the flat shape above.

uip ixp projects publish

Publish a model version, optionally tagging it live or staging.

Arguments

NameRequiredPurpose
<project-name>yesProject name.

Options

ShortLongValueDescription
-m--model-version <version>integerModel version to publish. Defaults to the latest (highest) trained version.
--tag <live|staging>live|stagingOptionally tag the published version.
-d--description <text>stringDescription for the published version. An empty string clears an existing one.

Examples

uip ixp projects publish my-invoices --model-version 4 --tag live --description "Q2 release"
uip ixp projects publish my-invoices --model-version 4 --tag live --description "Q2 release"
uip ixp projects publish my-invoices --model-version 4
uip ixp projects publish my-invoices --model-version 4
# --model-version defaults to the latest trained version
uip ixp projects publish my-invoices
# --model-version defaults to the latest trained version
uip ixp projects publish my-invoices

Data shape (--output json)

{
  "Code": "IxpProjectsPublish",
  "Data": {
    "ProjectName": "my-invoices",
    "ModelVersion": 4,
    "Pinned": true,
    "Tag": { "Name": "live", "Version": 4, "UpdatedAt": "2026-04-29T00:00:00Z" },
    "Description": "Q2 release"
  }
}
{
  "Code": "IxpProjectsPublish",
  "Data": {
    "ProjectName": "my-invoices",
    "ModelVersion": 4,
    "Pinned": true,
    "Tag": { "Name": "live", "Version": 4, "UpdatedAt": "2026-04-29T00:00:00Z" },
    "Description": "Q2 release"
  }
}

Tag is null when --tag was omitted.

uip ixp projects unpublish

Unpublish a model version. The version stays trained and listable; it is only removed from the published set.

Arguments

NameRequiredPurpose
<project-name>yesProject name.

Options

ShortLongValueRequiredDescription
-m--model-version <version>non-negative integeryesModel version to unpublish.

Example

uip ixp projects unpublish my-invoices --model-version 4
uip ixp projects unpublish my-invoices --model-version 4

Data shape (--output json)

{
  "Code": "IxpProjectsUnpublish",
  "Data": { "ProjectName": "my-invoices", "ModelVersion": 4, "Pinned": false }
}
{
  "Code": "IxpProjectsUnpublish",
  "Data": { "ProjectName": "my-invoices", "ModelVersion": 4, "Pinned": false }
}

uip ixp projects untag

Remove a tag from a model version by name. Tag names are unique within a project, so this is unambiguous even if a version holds several tags. The version stays trained and published; only its tag pointer is cleared.

Arguments

NameRequiredPurpose
<project-name>yesProject name.

Options

LongValueRequiredDescription
--tag <live|staging>live|stagingyesTag to remove, by name.

Example

uip ixp projects untag my-invoices --tag live
uip ixp projects untag my-invoices --tag live

Data shape (--output json)

{
  "Code": "IxpProjectsUntag",
  "Data": { "ProjectName": "my-invoices", "ModelVersion": 4, "RemovedTags": ["live"] }
}
{
  "Code": "IxpProjectsUntag",
  "Data": { "ProjectName": "my-invoices", "ModelVersion": 4, "RemovedTags": ["live"] }
}

uip ixp projects list-models

List all model versions and tags for a project.

Arguments

NameRequiredPurpose
<project-name>yesProject name.

Example

uip ixp projects list-models my-invoices
uip ixp projects list-models my-invoices

Data shape (--output json)

{
  "Code": "IxpProjectsListModels",
  "Data": { "Models": [], "Tags": [], "MaxPublished": 5 }
}
{
  "Code": "IxpProjectsListModels",
  "Data": { "Models": [], "Tags": [], "MaxPublished": 5 }
}

uip ixp projects create

Create an IXP project. Given a folder of documents, uploads them and suggests a taxonomy from up to 8 evenly-sampled documents; without a folder, creates an empty project.

Arguments

NameRequiredPurpose
<name>yesProject name.
[folder-path]noPath to a folder of documents. Omit to create an empty project — no upload, no taxonomy suggestion is possible without documents.

Options

ShortLongDescription
-d--description <text>Description of what to extract from the documents — used as context for taxonomy suggestion.
--skip-taxonomyCreate the project and upload documents without suggesting a taxonomy.

Uploads continue on individual file failures (each failure is collected, not fatal) — the command only fails outright if every upload in the folder fails. Taxonomy suggestion retries up to 3 times with a 5-second delay (the backend can intermittently 500 while OCR isn't ready yet for a PDF); if all 3 attempts fail, the project and its documents are still created — the error names the exact import-taxonomy command to run afterward.

Examples

uip ixp projects create "My Invoices" ./training-set --description "extract invoice header fields"
uip ixp projects create "My Invoices" ./training-set --description "extract invoice header fields"
uip ixp projects create "My Invoices" ./training-set --skip-taxonomy
uip ixp projects create "My Invoices" ./training-set --skip-taxonomy
uip ixp projects create "My Invoices"
uip ixp projects create "My Invoices"

Data shape (--output json)

{
  "Code": "IxpProjectsCreate",
  "Data": {
    "ProjectName": "my_invoices-a1b2c3d4-ixp",
    "ProjectUrl": "https://cloud.uipath.com/acme/DefaultTenant/reinfer_/ixp/my_invoices-a1b2c3d4-ixp/my_invoices-a1b2c3d4",
    "DocumentsUploaded": 12,
    "DocumentsFailed": 0
  }
}
{
  "Code": "IxpProjectsCreate",
  "Data": {
    "ProjectName": "my_invoices-a1b2c3d4-ixp",
    "ProjectUrl": "https://cloud.uipath.com/acme/DefaultTenant/reinfer_/ixp/my_invoices-a1b2c3d4-ixp/my_invoices-a1b2c3d4",
    "DocumentsUploaded": 12,
    "DocumentsFailed": 0
  }
}

FailedFiles (an array of {file, error}) is present only when at least one upload failed. When taxonomy suggestion succeeded, SuggestedTaxonomy is added with FieldTypes (name/title pairs) and LabelGroup (name plus LabelDefs). When --skip-taxonomy was passed, TaxonomySkipped: true is added instead. <name> is returned slugified and suffixed with a random id and -ixp — it is not the literal string you passed.

See also

Was this page helpful?

Connect

Need help? Support

Want to learn? UiPath Academy

Have questions? UiPath Forum

Stay updated