- Overview
- Get started
- Concepts
- Using UiPath CLI
- How-to guides
- CI/CD recipes
- Command reference
- Overview
- Exit codes
- Global options
- uip codedagent
- uip coder
- uip context-grounding
- uip docsai
- uip function
- uip guardrails
- uip llm-configuration
- uip llm-gateway
- uip maestro authoring
- uip maestro registry
- uip model-hub
- activities find
- activities get-default-xaml
- analyze
- analyzer-rules list
- build
- cleanup
- data-fabric-entities install
- data-fabric-entities list
- files diff
- get-library-object-repository
- get-object-repository
- init
- instances list
- pack
- packages inspect
- packages install
- packages versions
- publish
- remote
- restore
- run, debug & execution
- settings
- studio start
- templates search
- test-data add-entity
- test-data add-queue
- test-data add-variation
- tm
- uia
- validate
- workflow-examples get
- workflow-examples list
- uip tasks
- uip traces
- uip traces feedback
- Migration
- Reference & support
uip tm objectlabel
Syntax and options for `uip tm objectlabel`, which manages labels attached to Test Manager objects such as test cases and requirements.
uip tm objectlabel manages labels attached to Test Manager objects (requirements, test cases, test sets, test executions, and test case logs). Labels are free-form strings used to tag and group objects for filtering and search.
Every verb in this group needs a project (--project-id or --project-key) and --object-type, including get. list, add, and remove take the plural, space-separated --object-ids; get takes a single --object-id. --labels is plural; there is no --label flag.
Synopsis
uip tm objectlabel list (--project-id <id> | --project-key <key>) --object-type <type> [--object-ids <uuid...>] [--label-types <types...>] [--filter <text>] [--sort-by <expr>] [--limit <n>] [--offset <n>]
uip tm objectlabel get (--project-id <id> | --project-key <key>) --object-type <type> --object-id <uuid>
uip tm objectlabel add (--project-id <id> | --project-key <key>) --object-type <type> --object-ids <uuid...> --labels <name...> [--label-type <type>] [--remove-other-labels]
uip tm objectlabel remove (--project-id <id> | --project-key <key>) --object-type <type> --object-ids <uuid...> (--labels <name...> | --remove-all-labels) --yes
uip tm objectlabel list (--project-id <id> | --project-key <key>) --object-type <type> [--object-ids <uuid...>] [--label-types <types...>] [--filter <text>] [--sort-by <expr>] [--limit <n>] [--offset <n>]
uip tm objectlabel get (--project-id <id> | --project-key <key>) --object-type <type> --object-id <uuid>
uip tm objectlabel add (--project-id <id> | --project-key <key>) --object-type <type> --object-ids <uuid...> --labels <name...> [--label-type <type>] [--remove-other-labels]
uip tm objectlabel remove (--project-id <id> | --project-key <key>) --object-type <type> --object-ids <uuid...> (--labels <name...> | --remove-all-labels) --yes
All verbs honor the global options and the standard exit codes. Every verb accepts --log-level <level> (default Information).
When you pass both --project-id and --project-key, --project-id wins. If you pass neither, the command fails with ErrorCode: invalid_argument.
--object-type accepts Requirement, TestCase, TestSet, TestExecution, or TestCaseLog. --label-types on list accepts the wire-form values userLabel, systemLabel, internalLabel, and generatedLabel; --label-type on add accepts only userLabel. Both take the wire form, not the PascalCase forms used elsewhere in this CLI.
uip tm objectlabel list
List distinct label names in use for one object type (paginated). This does not return label assignment rows — use get for the labels on one object.
Arguments
None.
Options
--project-id <id>— Test Manager project ID. Wins if--project-keyis also given.--project-key <key>— Test Manager project key (for example,DEMO). Ignored if--project-idis also given.--object-type <type>(required) — object type to list labels for.--object-ids <uuid...>— restrict to labels assigned to these objects (space-separated). Omit to search across the whole object type.--label-types <type...>— label types to include (userLabel,systemLabel,internalLabel,generatedLabel, space-separated). The server always returnssystemLabel,userLabel, andgeneratedLabelnames and adds the types passed here, so this flag widens the result rather than narrowing it.--filter <text>— prefix to match label names against (server-sideStartsWith, not a general substring search).--sort-by <expr>— sort expression, for examplename asc.--limit <n>— page size. Defaults to50.--offset <n>— results to skip. Defaults to0.
Example
uip tm objectlabel list \
--project-key DEMO \
--object-type TestCase \
--filter smo \
--limit 50
uip tm objectlabel list \
--project-key DEMO \
--object-type TestCase \
--filter smo \
--limit 50
Data shape
{
"Code": "ObjectLabelsList",
"Data": [
{ "Name": "smoke" },
{ "Name": "smoke-test" }
]
}
{
"Code": "ObjectLabelsList",
"Data": [
{ "Name": "smoke" },
{ "Name": "smoke-test" }
]
}
Each row is only { "Name": "<label>" } — list returns no Id, ObjectId, or LabelType. To see the labels on one object with their ids and label types, use objectlabel get.
uip tm objectlabel get
Get the visible labels on one object — user, system, and generated labels — including label ids and label types. Internal labels are not returned. list returns distinct label names for an object type; get returns the full assignment rows for a single object.
Arguments
None.
Options
--project-id <id>— Test Manager project ID. Wins if--project-keyis also given.--project-key <key>— Test Manager project key (for example,DEMO). Ignored if--project-idis also given.--object-type <type>(required) — object type the label belongs to.--object-id <uuid>(required) — object UUID, for example theIdfromuip tm testcases list(or the list verb matching--object-type).
Example
uip tm objectlabel get \
--project-key DEMO \
--object-type TestCase \
--object-id f9e8d7c6-0000-0000-0000-000000000001
uip tm objectlabel get \
--project-key DEMO \
--object-type TestCase \
--object-id f9e8d7c6-0000-0000-0000-000000000001
Data shape
{
"Code": "ObjectLabelGet",
"Data": [
{
"Id": "a1b2c3d4-0000-0000-0000-000000000001",
"ProjectId": "a1b2c3d4-0000-0000-0000-000000000009",
"ObjectId": "f9e8d7c6-0000-0000-0000-000000000001",
"ObjectType": "TestCase",
"Name": "smoke",
"Description": "",
"LabelType": "UserLabel"
}
]
}
{
"Code": "ObjectLabelGet",
"Data": [
{
"Id": "a1b2c3d4-0000-0000-0000-000000000001",
"ProjectId": "a1b2c3d4-0000-0000-0000-000000000009",
"ObjectId": "f9e8d7c6-0000-0000-0000-000000000001",
"ObjectType": "TestCase",
"Name": "smoke",
"Description": "",
"LabelType": "UserLabel"
}
]
}
Data is an array with one row per label on the object, and an empty array when the object has no visible labels. LabelType is PascalCase (UserLabel, SystemLabel, GeneratedLabel) even though the --label-type/--label-types input flags take the camelCase wire form.
uip tm objectlabel add
Add labels to one or more objects. Two distinct behaviors depending on whether --label-type is passed:
- Without
--label-type(default): a single bulk-add call across all objects and labels. Pass--remove-other-labelsto make this an authoritative set — after adding, any non-system labels on these objects that are not in--labelsare deleted. - With
--label-type userLabel: each label is assigned individually (one call per object × label pair).--remove-other-labelsis ignored in this mode.
Arguments
None.
Options
--project-id <id>— Test Manager project ID. Wins if--project-keyis also given.--project-key <key>— Test Manager project key (for example,DEMO). Ignored if--project-idis also given.--object-type <type>(required) — object type.--object-ids <uuid...>(required) — space-separated object UUIDs to apply the labels to.--labels <name...>(required) — space-separated label names to add.--label-type <type>— label type. OnlyuserLabelis accepted:objectlabel removecannot detach a system label, so the CLI writes user labels only. When set, switches to the per-pair assign path described above.--remove-other-labels— after adding, delete any non-system labels on these objects not present in--labels. Ignored when--label-typeis set.
Examples
# Bulk add — multiple labels to multiple objects in one call
uip tm objectlabel add \
--project-key DEMO \
--object-type TestCase \
--object-ids a1b2c3d4-0000-0000-0000-000000000001 a1b2c3d4-0000-0000-0000-000000000002 \
--labels smoke regression
# With an explicit label type — assigns each label individually
uip tm objectlabel add \
--project-key DEMO \
--object-type TestCase \
--object-ids a1b2c3d4-0000-0000-0000-000000000001 a1b2c3d4-0000-0000-0000-000000000002 \
--labels smoke \
--label-type userLabel
# Bulk add — multiple labels to multiple objects in one call
uip tm objectlabel add \
--project-key DEMO \
--object-type TestCase \
--object-ids a1b2c3d4-0000-0000-0000-000000000001 a1b2c3d4-0000-0000-0000-000000000002 \
--labels smoke regression
# With an explicit label type — assigns each label individually
uip tm objectlabel add \
--project-key DEMO \
--object-type TestCase \
--object-ids a1b2c3d4-0000-0000-0000-000000000001 a1b2c3d4-0000-0000-0000-000000000002 \
--labels smoke \
--label-type userLabel
Data shape
{
"Code": "ObjectLabelsAdd",
"Data": {
"ObjectCount": 2,
"LabelCount": 2,
"Result": "Added"
}
}
{
"Code": "ObjectLabelsAdd",
"Data": {
"ObjectCount": 2,
"LabelCount": 2,
"Result": "Added"
}
}
LabelCount counts distinct label names, case-insensitively. When --label-type is passed, the response includes it:
{
"Code": "ObjectLabelsAdd",
"Data": {
"ObjectCount": 2,
"LabelCount": 1,
"LabelType": "userLabel",
"Result": "Added"
}
}
{
"Code": "ObjectLabelsAdd",
"Data": {
"ObjectCount": 2,
"LabelCount": 1,
"LabelType": "userLabel",
"Result": "Added"
}
}
uip tm objectlabel remove
Remove user and generated labels from up to 100 objects. Pass --labels to remove specific labels, or --remove-all-labels to remove every user and generated label on the listed objects; the two are mutually exclusive, and one is required. Names match case-insensitively. The removal is irreversible and requires -y, --yes.
- System labels are never removed. Matching system label names are reported in
SkippedSystemLabels. - Internal label names, and names of label types the CLI doesn't recognize, are never sent. With
--labels, requested internal names are reported inSkippedInternalLabels; with--remove-all-labels, user or generated labels that share a name with an internal label are kept and reported there. removereads the objects' labels before writing — at least two read requests per object, five objects at a time — so it needs read access to the listed objects. If the labels can't be read, or an object carries 500 or more label names, nothing is removed.- If a removal request fails partway through, the error message lists the labels already removed.
Arguments
None.
Options
--project-id <id>— Test Manager project ID. Wins if--project-keyis also given.--project-key <key>— Test Manager project key (for example,DEMO). Ignored if--project-idis also given.--object-type <type>(required) — object type.--object-ids <uuid...>(required) — space-separated object UUIDs. At most 100 distinct ids per call; duplicates are ignored.--labels <name...>— space-separated label names to remove. Required unless--remove-all-labelsis set.--remove-all-labels— remove the user and generated labels on the listed objects, except any that share a name with an internal label. System and internal labels are kept, unlike clear-all in the Test Manager UI. Mutually exclusive with--labels.-y, --yes(required) — confirms the irreversible operation. The CLI never prompts; without--yesthe command returnsResult: "Failure"and exits1.
Examples
# remove specific labels
uip tm objectlabel remove \
--project-key DEMO \
--object-type TestCase \
--object-ids a1b2c3d4-0000-0000-0000-000000000001 a1b2c3d4-0000-0000-0000-000000000002 \
--labels regression \
--yes
# remove every user and generated label
uip tm objectlabel remove \
--project-key DEMO \
--object-type TestCase \
--object-ids a1b2c3d4-0000-0000-0000-000000000001 a1b2c3d4-0000-0000-0000-000000000002 \
--remove-all-labels \
--yes
# remove specific labels
uip tm objectlabel remove \
--project-key DEMO \
--object-type TestCase \
--object-ids a1b2c3d4-0000-0000-0000-000000000001 a1b2c3d4-0000-0000-0000-000000000002 \
--labels regression \
--yes
# remove every user and generated label
uip tm objectlabel remove \
--project-key DEMO \
--object-type TestCase \
--object-ids a1b2c3d4-0000-0000-0000-000000000001 a1b2c3d4-0000-0000-0000-000000000002 \
--remove-all-labels \
--yes
Data shape
{
"Code": "ObjectLabelsRemove",
"Data": {
"ObjectCount": 2,
"LabelCount": 1,
"RemovedLabels": ["regression"],
"Result": "Removed"
}
}
{
"Code": "ObjectLabelsRemove",
"Data": {
"ObjectCount": 2,
"LabelCount": 1,
"RemovedLabels": ["regression"],
"Result": "Removed"
}
}
With --remove-all-labels:
{
"Code": "ObjectLabelsRemove",
"Data": {
"ObjectCount": 2,
"RemoveAllLabels": true,
"RemovedLabels": ["regression", "smoke"],
"SkippedSystemLabels": ["automated"],
"Result": "AllRemoved"
}
}
{
"Code": "ObjectLabelsRemove",
"Data": {
"ObjectCount": 2,
"RemoveAllLabels": true,
"RemovedLabels": ["regression", "smoke"],
"SkippedSystemLabels": ["automated"],
"Result": "AllRemoved"
}
}
| Field | Description |
|---|---|
ObjectCount | Number of distinct object ids processed. |
LabelCount | With --labels, the number of distinct requested names (case-insensitive). Replaced by RemoveAllLabels: true with --remove-all-labels. |
RemovedLabels | Label names removed, sorted. |
SkippedSystemLabels | System label names that matched and were kept. Omitted when empty. |
SkippedInternalLabels | Names kept because they are, or share a name with, an internal label. Omitted when empty. |
Result | Removed, AllRemoved (with --remove-all-labels), or Skipped when nothing was removed. |
Related
- requirements — requirements can carry object labels.
- customfield — a separate label mechanism (
customfield label) for Label-type custom field values; distinct fromobjectlabel's free-form tags.