--- title: AI Assets Inventory API description: The AI Assets Inventory APIs provide programmatic access to AI assets managed under the AI Control Tower application.Retrieves a paginated list of AI governance records of a given asset class, with optional filters, sorting, and pagination.Retrieves comprehensive details about a specific AI governance record. locale: en-US canonical_url: https://www.servicenow.com/docs/r/australia/api-reference/rest-apis/ai-assets-inventory-api.html release: australia product: REST APIs classification: rest-apis topic_type: concept last_updated: "2026-06-08" reading_time_minutes: 20 breadcrumb: [REST API reference, API reference, API implementation and reference] --- # AI Assets Inventory API The AI Assets Inventory APIs provide programmatic access to AI assets managed under the AI Control Tower application. The AI Assets Inventory endpoints enable: - Listing assets filtered by asset class with optional filtering, pagination, and sorting. - Retrieving detailed information about a specific asset including its related assets. - Querying governance data such as lifecycle phase, risk classification, and assessments \(when the GRC AI Governance plugin is active\). The AI Assets Inventory API requires the sn\_ai\_governance.integration.rest role and the AI Governance \[sn\_ai\_governance\] plugin to access it. The GET /details endpoint requires the AI Control Tower Core \[sn\_grc\_ai\_gov\] plugin to be active for Governance, Risk, and Compliance \(GRC\) lookups. This API belongs to the sn\_ai\_governance namespace. See [AI asset inventory](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/intelligent-experiences/ai-inventory.md) for more information about managing AI assets inventory in the [AI Control Tower](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/intelligent-experiences/ai-control-tower-landing.md). **Parent Topic:**[REST API reference](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/api-reference/rest-apis/api-rest.md) ## AI Assets Inventory - GET /api/sn\_ai\_governance/assets/\{asset\_class\} Retrieves a paginated list of AI governance records of a given asset class, with optional filters, sorting, and pagination. Use this endpoint to: - Browse all AI assets of a specific class. - Filter assets by governance status, risk level, department, vendor, provider, etc. - Page through inventories for reporting purposes. ### URL format Versioned URL: `/api/sn_ai_governance/{api_version}/assets/{asset_class}` Default URL: `/api/sn_ai_governance/assets/{asset_class}` ### Supported request parameters
| Name | Description |
|---|---|
| api\_version | Optional. Version of the endpoint to access. For example, `v1` or `v2`. Only specify this value to use an endpoint version other than the latest. Data type: String |
| asset\_class | Required. Asset class table name. The value is matched against the Model Categories table, asset\_class \[cmdb\_model\_category.asset\_class\] field.Valid table values: - `alm_ai_system_digital_asset`: AI Systems \(skills, agents, use cases\) - `alm_ai_model_digital_asset`: AI Models - `alm_ai_prompt_digital_asset`: AI Prompts - `alm_ai_dataset_digital_asset`: AI Datasets Data type: String |
| Name | Description |
|---|---|
| risk\_classification | Filters results by the risk score of the AI asset. Supports comma-separated values.Valid values: - `1`: High risk - `2`: Medium risk - `3`: Low risk - `4`: Unacceptable risk - `5`: To be determined \(default for new records\) - 6: Critical Data type: String as an integer |
| lifecycle\_status | Filters results by life cycle status of the AI asset.Valid values: - `1`: In review - `2`: Approved - `3`: Rejected - `4`: Deployed - `5`: AI steward review - `6`: Approved for development - `7`: Ready for deployment - `8`: Approved for deployment - `9`: Canceled - `10`: Offboarded Data type: String |
| state | Filters results by the installation status of the AI asset. Values are instance-dependent. Refer to the install\_status field's choice list on the cmdb\_ci table in your instance to enumerate them. The platform default 'Installed' is typically value 1.Data type: String |
| asset\_type | Filter by model category name or sys\_id.Valid names: - AI System - AI Model - AI Prompt - AI Dataset - Generative AI - Agentic AI - Classic AI These values are the canonical names referenced by the app and are stable across instances unless renamed. Table: CMDB Model Category \[cmdb\_model\_category\] for name; AIGovernanceWsConstants.MODEL\_CATEGORIES for sys\_id. Data type: String |
| lifecycle\_phase | Filter by lifecycle phase name or sys\_id.Valid name values: - Assess - New - Build and test - Build - Pre-deploy - Deploy - Offboard - Assess offboarding - Pre-offboarding **Note:** Customer instances may add or rename these values. Refer to your instance's sn\_ai\_governance\_lifecycle table. Table: AI Governance Lifecycle \[sn\_ai\_governance\_lifecycle\] Data type: String |
| department | Filter by department name or sys\_id.Table: Department \[cmn\_department\] Data type: String |
| managed\_by | Filter by user\_name or sys\_id of the user managing the asset.Table: User \[sys\_user\] Data type: String |
| vendor | Filter by vendor company name or sys\_id.Table: Core Company \[core\_company\] Data type: String |
| provider | Filter by provider/manufacturer name or sys\_id \(matched against the product model's manufacturer\).Table: Core Company \[core\_company\] Data type: String |
| created\_from | Display date format of the calling user's session.Format: YYYY-MM-DD Data type: String |
| created\_to | Display date format of the calling user's session.Format: YYYY-MM-DD Data type: String |
| limit or sysparm\_limit | Number of records to return. If **limit** is missing, less than 1, or non-numeric, the configured default is used. If limit exceeds the configured maximum, it's silently capped to the maximum \(no warning\).Minimum: 1 Maximum: 500 Default: 100 Data type: Integer |
| offset or sysparm\_offset | Number of records to skip. If offset is missing or non-numeric, it's treated as 0; negative offsets are clamped to 0.Default: 0 Data type: Integer |
| sort\_by | Field to sort by.Valid values: - risk\_classification - lifecycle\_phase - lifecycle\_status - asset\_type - department - managed\_by - state - vendor - provider Data type: String Default: Filters by the sys\_created\_on table field \(table: \[sn\_ai\_governance\_asset\_governance\_details\]\), descending \(newest first\). |
| order\_by | Sort direction. Case-insensitive. Only applied when sort\_by is provided and valid.Valid values: - `asc`: Ascending order - `desc`: Descending order Default: `asc` Data type: String |
| Header | Description |
|---|---|
| Accept | Data format of the response body. Supported types: **application/json** or **application/xml**. Default: **application/json** |
| Name | Description |
|---|---|
| sys\_id | Sys ID of the governance record. Table: sn\_ai\_governance\_asset\_governance\_details |
| asset\_name | Display name of the underlying digital asset.Table/field: Asset \[asset\], display\_name |
| asset\_type | Name of the underlying asset's model category.Table/field: Asset Model Category \[asset.model\_category\], name |
| created\_on | Display value of the governance record's sys\_created\_on field.Table: sn\_ai\_governance\_asset\_governance\_details |
| Name | Description |
|---|---|
| api\_version | Optional. Version of the endpoint to access. For example, `v1` or `v2`. Only specify this value to use an endpoint version other than the latest. Data type: String |
| sys\_id | Sys\_id of the governance record to retrieve.Table: AI Asset Governance Details \[sn\_ai\_governance\_asset\_governance\_details\] **Note:** This isn't the sys\_id of the AI Dataset Digital Asset \[alm\_ai\_dataset\_digital\_asset\] table. Data type: String |
| Name | Description |
|---|---|
| include\_risk\_info | Optional. Flag that indicates whether to perform GRC plugin lookups, such as ai\_assessments, risk\_assessments, regulatory\_risk\_assessments, bulk\_risk\_assessments, control\_assessments, issues, policy\_exceptions, and risks. Has no effect when the sn\_grc\_ai\_gov plugin is inactive.Valid values: - true: Enables the lookup. Missing values or any other value \('true', 'False', '0'\) enables the lookup. - false: \(case sensitive\) Skips the lookup operation. Default: true Data type: String |
| Header | Description |
|---|---|
| Accept | Data format of the response body. Supported types: **application/json** or **application/xml**. Default: **application/json** |
| Status code | Description |
|---|---|
| 200 | Successful. The request was successfully processed. |
| 400 | **Sys\_id** path parameter missing or empty. Provide a valid **sys\_id** in the URL path. |
| 401 | Invalid or missing credentials. Check username/password or OAuth token. |
| 403 | Caller lacks the required role\(s\). Ensure the user holds the sn\_ai\_governance.integration.rest role. |
| 404 | Possible causes: - **asset\_class** doesn't match any Model Categories table, asset\_class \[cmdb\_model\_category.asset\_class\] value. Use one of the four documented **asset\_class** values. - No governance record exists for the given **sys\_id**. Verify the **sys\_id** is a row in the AI Asset Governance Details \[sn\_ai\_governance\_asset\_governance\_details\] table. |
| 500 | Unhandled exception. For example, invalid date format. Check logs to verify date inputs use the calling user's session date format. |
| Name | Description |
|---|---|
| ai\_assessments | GRC AI assessments associated with this asset. Empty array if the GRC plugin isn't active or **include\_risk\_info** is `false`.Data type: Array of Objects ``` ``` |
| asset\_class | Table name \(sys\_class\_name\) of the digital asset.Valid values: - `alm_ai_system_digital_asset`: AI Systems \(sub\_ai\_systems, tools, ai\_models, ai\_prompts, evaluation\_datasets, input\_outputs, configuration\_items, business\_applications\) - `alm_ai_model_digital_asset`: AI Models \(derived\_ai\_models, training\_datasets, evaluation\_datasets, ai\_systems, input\_outputs, model\_lineages, configuration\_items, business\_applications\) - `alm_ai_prompt_digital_asset`: AI Prompts \(ai systems\) - `alm_ai_dataset_digital_asset`: AI Datasets \(ai\_systems, ai\_models, parent\_datasets, child\_datasets\) Data type: String |
| asset\_type | Display value of the asset's model\_category.Data type: String |
| bulk\_risk\_assessments | GRC bulk risk assessments. Same conditions as **ai\_assessments**.Data type: Array of Objects ``` "bulk_risk_assessments": [ { } ] ``` |
| control\_assessments | GRC controls.Data type: Array of Objects ``` "control_assessments": [ { } ] ``` |
| display\_name | Display name of the underlying digital asset.Data type: String |
| issues | GRC issues associated with this asset.Data type: Array of Objects ``` "issues": [ { } ] ``` |
| lifecycle\_phase | Life cycle phase of the asset.Data type: Object ``` "lifecycle_phase": { "sys_id": "String", "name": "String" } ``` |
| lifecycle\_phase.sys\_id | Sys\_id of the life cycle phase record.Table: AI Governance Lifecycle \[sn\_ai\_governance\_lifecycle\] Data type: String |
| lifecycle\_phase.name | Display value of the life cycle phase record.Data type: String |
| lifecycle\_status | Raw stored integer value of the status field on the governance record. This is the choice value, not the display label. Refer to the status field's choice list to enumerate values. Data type: String |
| policy\_exceptions | GRC policy exceptions.Data type: Array of Objects ``` "policy_exceptions": [ { } ] ``` |
| regulatory\_risk\_assessments | GRC regulatory risk classifications. Same conditions as ai\_assessments.Data type: Array of Objects ``` "regulatory_risk_assessments": [ { } ] ``` |
| related\_assets | Related-asset groupings; structure depends on asset\_class. returns different fields depending on the asset\_class of the requested governance record. See the Related Assets section for associated parameters organized by asset type.Data type: Object ``` "related_assets": [ { } ] ``` |
| risk\_assessments | GRC risk assessments. Same conditions as ai\_assessments.Data type: Array of Objects ``` "risk_assessments": [ { } ] ``` |
| risk\_classification | Display value of risk\_score on the governance record.Possible values: - `1`: High risk - `2`: Medium risk - `3`: Low risk - `4`: Unacceptable risk - `5`: To be determined \(default for new records\) - 6: Critical Data type: String |
| risks | GRC risks.Data type: Array of Objects ``` "risks": [ { } ] ``` |
| state | Install status on the linked digital asset. The serialized value reflects the raw integer \(for example, 1\), not the display label.**Note:** This differs from the state field inside related\_assets items, which returns the display value. Data type: String |
| Name | Description |
|---|---|
| ai\_models | AI Models referenced from the system's ai\_models field.Data type: Object ``` ai_models: [ { "sys_id": "String", "name": "String", "asset_class": "String", "asset_type": "String", // Governance fields (when record exists): "risk_classification": "String", "lifecycle_status": "String", "lifecycle_phase": "String", "state": "String" } ] ``` |
| ai\_prompts | AI Prompts referenced from the system's ai\_prompts field.Data type: Object ``` ai_prompts: [ { "sys_id": "String", "name": "String", "asset_class": "String", "asset_type": "String", // Governance fields (when record exists): "risk_classification": "String", "lifecycle_status": "String", "lifecycle_phase": "String", "state": "String" } ] ``` |
| business\_applications | Business applications mapped to this asset's product model via the Product Model Map \[sn\_apm\_ws\_ba\_product\_model\_map\] table. Returned only if that table exists in the instance.Data type: Object ``` business_applications: [ { "sys_id": "String", "name": "String" } ] ``` |
| configuration\_items | CIs related to this digital asset via the Asset-CI Relationship \[cmdb\_rel\_asset\_ci\] table.Data type: Object ``` configuration_items: [ { "sys_id": "String", "name": "String" } ] ``` |
| evaluation\_datasets | AI datasets referenced from the system's evaluation\_datasets field.Data type: Object ``` evaluation_datasets: [ { "sys_id": "String", "name": "String", "asset_class": "String", "asset_type": "String", // Governance fields (when record exists): "risk_classification": "String", "lifecycle_status": "String", "lifecycle_phase": "String", "state": "String" } ] ``` |
| input\_outputs | Input/output specifications for this system.Table/field: AI Input Output \[sn\_ent\_ai\_input\_output\], Category \[io\_category\] Data type: Object ``` input_outputs: [ { "sys_id": "String", "name": "String", "description": "String", "io_type": "String", "information_object": "String" } ] ``` |
| sub\_ai\_systems | AI Systems registered as subcomponents of this system, sourced from the AI System Subcomponent Map \[sn\_ent\_ai\_system\_subcomponent\_m2m\] table where `ai_subcomponent_reference_table = alm_ai_system_digital_asset`; this indicates that the field name ai\_subcomponent\_reference\_table should be filled with the AI Asset tables.When a governance record exists for the related asset, the governance record's sys\_id, name, and governance fields are included. When no governance record exists, only the base fields are returned. Data type: Array of Objects ``` sub_ai_systems: [ { "sys_id": "String", "name": "String", "description": "String", "asset_class": "String", // Governance fields (when record exists): "risk_classification": "String", "lifecycle_status": "String", "lifecycle_phase": "String", "state": "String" } ] ``` |
| tools | Enterprise AI tools registered as subcomponents, sourced the AI System Subcomponent Map \[sn\_ent\_ai\_system\_subcomponent\_m2m\] table where `ai_subcomponent_reference_table = sn_ent_ai_tool`; this indicates that the field name ai\_subcomponent\_reference\_table should be filled with the tools tables.Data type: Array of Objects ``` tools: [ { "sys_id": "String", "name": "String", "description": "String", "asset_class": "String", // Governance fields (when record exists): "risk_classification": "String", "lifecycle_status": "String", "lifecycle_phase": "String", "state": "String" } ] ``` |
| Name | Description |
|---|---|
| derived\_ai\_models | AI Models whose base\_model points to this model.Table: AI Model Digital Asset \[alm\_ai\_model\_digital\_asset\] Data type: Array of Objects ``` derived_ai_models: [ { "sys_id": "String", "name": "String" } ] ``` |
| training\_datasets | Datasets referenced from this model's training\_datasets field.Table: AI Dataset Digital Asset \[alm\_ai\_dataset\_digital\_asset\] Data type: Array of Objects ``` training_datasets: [ { "sys_id": "String", "name": "String" } ] ``` |
| evaluation\_datasets | Datasets referenced from this model's evaluation\_datasets field.Table: AI Dataset Digital Asset \[alm\_ai\_dataset\_digital\_asset\] Data type: Array of Objects ``` evaluation_datasets: [ { "sys_id": "String", "name": "String" } ] ``` |
| ai\_systems | AI Systems whose ai\_models field contains this model.Table: AI System Digital Asset \[alm\_ai\_system\_digital\_asset\] Data type: Array of Objects ``` ai_systems: [ { "sys_id": "String", "name": "String" } ] ``` |
| input\_outputs | Input/output specifications.Table: AI Input Output \[sn\_ent\_ai\_input\_output\] table, Category \[io\_category\] field Data type: Array of Objects ``` input_outputs: [ { "sys_id": "String", "name": "String", "description": "String", "io_type": "String", "information_object": "String" } ] ``` |
| model\_lineages | Models of this type.Table: AI Model Lineage \[sn\_ent\_ai\_model\_lineage\], AI model digital asset \[ai\_model\] column Data type: Array of Objects ``` model_lineages: [ { "sys_id": "String", "dataset": "String", "activity": "String", "training_procedure": "String", "model_checkpoint_id": "String", "user_group": "String", "start_time": "String", "end_time": "String" } ] ``` |
| configuration\_items | CIs related to this digital asset.Table: Asset-CI Relationship \[cmdb\_rel\_asset\_ci\] Data type: Array of Objects ``` configuration_items: [ { "sys_id": "String", "name": "String" } ] ``` |
| business\_applications | Business applications mapped to this asset's product model, if the Product Model Map \[sn\_apm\_ws\_ba\_product\_model\_map\] table exists in the instance.Data type: Array of Objects ``` business_applications: [ { "sys_id": "String", "name": "String" } ] ``` |
| Name | Description |
|---|---|
| ai\_systems | AI Systems whose ai\_prompts field contains this prompt.Table: AI System Digital Asset \[alm\_ai\_system\_digital\_asset\] Data type: Array of Objects ``` ai_systems: [ { "sys_id": "String", "name": "String" } ] ``` |
| Name | Description |
|---|---|
| ai\_systems | AI Systems whose evaluation\_datasets field contains this dataset.Table: AI System Digital Asset \[alm\_ai\_system\_digital\_asset\] Data type: Array of Objects ``` ai_systems: [ { "sys_id": "String", "name": "String" } ] ``` |
| ai\_models | AI Models whose training\_datasets or evaluation\_datasets field contains this dataset.Table: AI Model Digital Asset \[alm\_ai\_model\_digital\_asset\] Data type: Array of Objects ``` ai_models: [ { "sys_id": "String", "name": "String" } ] ``` |
| parent\_datasets | Datasets referenced from this dataset's base\_datasets field.Table: AI Dataset Digital Asset \[alm\_ai\_dataset\_digital\_asset\] Data type: Array of Objects ``` parent_datasets: [ { "sys_id": "String", "name": "String" } ] ``` |
| child\_datasets | Datasets whose base\_datasets field contains this dataset.Table: AI Dataset Digital Asset \[alm\_ai\_dataset\_digital\_asset\] Data type: Array of Objects ``` child_datasets: [ { "sys_id": "String", "name": "String" } ] ``` |