list-customer-groups
dci list-customer-groups
Returns the ready customer groups owned by the authenticated tenant. Requires the UsersManager permission.
Output
OK
By default dci renders the result as a table. Use --output json to get the full structure described below — see Output formats.
| Field | Type | Description |
|---|---|---|
customerGroups | array of object | Ready customer groups owned by the authenticated tenant. |
customerGroups[].id | string | Stable service-generated customer-group ID. |
customerGroups[].customerId | string | Authenticated tenant that owns the customer group. |
customerGroups[].name | string | Customer-visible customer-group name. |
customerGroups[].memberCustomerIds | array of string | Customer IDs that are members of this group. |
customerGroups[].createdBy | string | User or service-account identifier that created the group. |
customerGroups[].timeCreated | string (date-time) | Time the group was created. |
customerGroups[].timeModified | string (date-time) | Time the group was last modified. |
Example response (--output json)
{
"customerGroups": [
{
"id": "cg_01J6M8Q9H3Y7T2K5V4N1P0X8ZA",
"customerId": "Kp2mN8qL4vR0sT1wX3yZ",
"name": "EMEA sales team",
"memberCustomerIds": [
"customer-1",
"customer-2"
],
"createdBy": "service-account-1",
"timeCreated": "2026-08-30T10:00:00Z",
"timeModified": "2026-08-30T10:00:00Z"
}
]
}
Raw JSON schema
{
"type": "object",
"additionalProperties": false,
"required": [
"customerGroups"
],
"properties": {
"customerGroups": {
"type": "array",
"description": "Ready customer groups owned by the authenticated tenant.",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"customerId",
"name",
"memberCustomerIds",
"createdBy",
"timeCreated",
"timeModified"
],
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200,
"description": "Stable service-generated customer-group ID."
},
"customerId": {
"type": "string",
"description": "Authenticated tenant that owns the customer group."
},
"name": {
"type": "string",
"minLength": 1,
"maxLength": 200,
"description": "Customer-visible customer-group name."
},
"memberCustomerIds": {
"type": "array",
"minItems": 1,
"uniqueItems": true,
"description": "Customer IDs that are members of this group.",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 200
}
},
"createdBy": {
"type": "string",
"description": "User or service-account identifier that created the group."
},
"timeCreated": {
"type": "string",
"format": "date-time",
"description": "Time the group was created."
},
"timeModified": {
"type": "string",
"format": "date-time",
"description": "Time the group was last modified."
}
}
}
}
}
}
Errors
On failure, dci prints a single error message — with a hint when one is available — and exits with a typed code your scripts can branch on. See Errors and exit codes for the full contract.
HTTP status to exit code mapping
| HTTP status | Exit code | Error code | Meaning |
|---|---|---|---|
| 400 | 30 | VALIDATION_ERROR | The arguments or request body were rejected. Review the command's flags and payload. |
| 401 | 10 | AUTHENTICATION_FAILED | Not signed in, or the API token is invalid. Run dci login or check DCI_API_KEY. |
| 403 | 11 | PERMISSION_DENIED | The DoiT user or the active customer context does not have access. |
| 429 | 50 | RATE_LIMITED | Too many requests. Retryable — the CLI reports the server-provided delay. |
| 500, 503 | 40 | API_SERVER_ERROR | The API failed to process the request. Retryable; contact DoiT support if it persists. |
Related
- assign-customer-group-user — Assign a user to a customer group
- create-customer-group — Create a customer group
- delete-customer-group — Delete a customer group
- get-customer-group — Get a customer group
- unassign-customer-group-user — Unassign a user from a customer group
- update-customer-group — Update a customer group
- API reference: GET /rbac/v1/customer-groups
Aliases: listcustomergroups