# List Service Principals

Launch stage: GA

`GET /api/2.0/preview/scim/v2/ServicePrincipals`

Gets the set of service principals associated with a <Databricks> workspace.

API scopes: scim

## Query parameters

- `attributes` (string, optional)
  Comma-separated list of attributes to return in response.
- `count` (int64, optional)
  Desired number of results per page.
  Constraints: `<= 100`
- `excludedAttributes` (string, optional)
  Comma-separated list of attributes to exclude in response.
- `filter` (string, optional)
  Query by which the results have to be filtered. Supported operators are equals(`eq`), contains(`co`), starts with(`sw`) and not equals(`ne`). Additionally, simple expressions can be formed using logical operators - `and` and `or`. The [SCIM RFC](https://tools.ietf.org/html/rfc7644#section-3.4.2.2) has more details but we currently only support simple expressions.
- `sortBy` (string, optional)
  Attribute to sort the results.
- `sortOrder` (string, optional)
  The order to sort the results.
  Possible values: `ORDER_UNSPECIFIED`, `ASCENDING`, `DESCENDING`
- `startIndex` (int64, optional)
  Specifies the index of the first result. First item is number 1.

## Returns

- `itemsPerPage` (int32, optional)
  Total results returned in the response.
- `Resources` (array of object, optional)
  User objects returned in the response.
  - `active` (boolean, optional)
    If this user is active
  - `applicationId` (string, optional)
    UUID relating to the service principal
  - `displayName` (string, optional)
    String that represents a concatenation of given and family names.
    Example: `etl-service`
  - `entitlements` (array of object, optional)
    Entitlements assigned to the service principal. See [assigning entitlements](https://docs.databricks.com/administration-guide/users-groups/index.html#assigning-entitlements) for a full list of supported values.
    - `display` (string, optional)
    - `primary` (boolean, optional)
    - `$ref` (string, optional)
    - `type` (string, optional)
    - `value` (string, optional)
  - `externalId` (string, optional)
    Constraints: `<= 64 characters`
  - `groups` (array of object, optional)
    - `display` (string, optional)
    - `primary` (boolean, optional)
    - `$ref` (string, optional)
    - `type` (string, optional)
    - `value` (string, optional)
  - `id` (string, optional)
    <Databricks> service principal ID.
  - `roles` (array of object, optional)
    Corresponds to AWS instance profile/arn role.
    - `display` (string, optional)
    - `primary` (boolean, optional)
    - `$ref` (string, optional)
    - `type` (string, optional)
    - `value` (string, optional)
  - `schemas` (array of string, optional)
    The schema of the List response.
    Possible values: `SERVICE_PRINCIPAL_SCHEMA_UNSPECIFIED`, `URN_IETF_PARAMS_SCIM_SCHEMAS_CORE_2_0_SERVICE_PRINCIPAL`
- `schemas` (array of string, optional)
  The schema of the List response.
  Possible values: `LIST_RESPONSE_SCHEMA_UNSPECIFIED`, `URN_IETF_PARAMS_SCIM_API_MESSAGES_2_0_LIST_RESPONSE`
- `startIndex` (int64, optional)
  Starting index of all the results that matched the request filters. First item is number 1.
  Default: `1`
- `totalResults` (int32, optional)
  Total results that match the request filters.

## Response

```json
{
  "itemsPerPage": 0,
  "Resources": [
    {
      "active": true,
      "applicationId": "string",
      "displayName": "etl-service",
      "entitlements": [
        {}
      ],
      "externalId": "string",
      "groups": [
        {}
      ],
      "id": "string",
      "roles": [
        {}
      ],
      "schemas": [
        "string"
      ]
    }
  ],
  "schemas": [
    "string"
  ],
  "startIndex": 0,
  "totalResults": 0
}
```

