AI Assets Inventory API
The AI Assets Inventory APIs provide programmatic access to AI assets managed under the AI Control Tower application.
- 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 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 for more information about managing AI assets inventory in the AI Control Tower.
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.
- 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:
Data type: String |
| Name | Description |
|---|---|
| risk_classification | Filters results by the risk score of the AI asset. Supports comma-separated values. Valid values:
Data type: String as an integer |
| lifecycle_status | Filters results by life cycle status of the AI asset. Valid values:
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:
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:
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. When sort_by is not provided, results are ordered by sys_created_on descending (newest first).
Valid values:
Data type: String |
| order_by | Sort direction. Case-insensitive. Only applied when sort_by is provided and valid. Valid values:
Default: Data type: String |
| Name | Description |
|---|---|
| None |
Headers
The following request and response headers apply to this HTTP action only, or apply to this action in a distinct way. For a list of general headers used in the REST API, see Supported REST API headers.
| Header | Description |
|---|---|
| Accept | Data format of the response body. Supported types: application/json or application/xml.
Default: application/json |
| Header | 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 |
Status codes
The following status codes apply to this HTTP action. For a list of possible status codes used in the REST API, see REST API HTTP response codes.
| Status code | Description |
|---|---|
| 200 | Successful. The request was successfully processed. |
Response body parameters (JSON or XML)
| 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 |
Get All AI Systems
curl -X GET \
'https://instance.service-now.com/api/sn_ai_governance/v1/assets/alm_ai_system_digital_asset' \
-u 'username:password' \
-H 'Accept: application/json'
Get All AI Systems
curl -X GET \
'https://instance.service-now.com/api/sn_ai_governance/v1/assets/alm_ai_system_digital_asset' \
-u 'username:password' \
-H 'Accept: application/json'
Get High-Risk AI Systems in Production
curl -X GET \
'https://instance.service-now.com/api/sn_ai_governance/v1/assets/alm_ai_system_digital_asset?risk_classification=1&lifecycle_phase=Deploy' \
-u 'username:password' \
-H 'Accept: application/json'
Get AI Models with Pagination
curl -X GET \
'https://instance.service-now.com/api/sn_ai_governance/v1/assets/alm_ai_model_digital_asset?limit=50&offset=0' \
-u 'username:password' \
-H 'Accept: application/json'
Get AI Models with Pagination
curl -X GET \
'https://instance.service-now.com/api/sn_ai_governance/v1/assets/alm_ai_model_digital_asset?limit=50&offset=0' \
-u 'username:password' \
-H 'Accept: application/json'
Get AI Systems Created in a Date Range
curl -X GET \
'https://instance.service-now.com/api/sn_ai_governance/v1/assets/alm_ai_system_digital_asset?created_from=2026-01-01&created_to=2026-01-31' \
-u 'username:password' \
-H 'Accept: application/json'
Get AI Prompts by Department and Vendor
curl -X GET \
'https://instance.service-now.com/api/sn_ai_governance/v1/assets/alm_ai_prompt_digital_asset?department=IT%20Department&vendor=ServiceNow' \
-u 'username:password' \
-H 'Accept: application/json'
Get AI Systems Managed by a Specific User, Sorted by Department Descending
curl -X GET \
'https://instance.service-now.com/api/sn_ai_governance/v1/assets/alm_ai_system_digital_asset?managed_by=jane.smith&sort_by=department&order_by=desc' \
-u 'username:password' \
-H 'Accept: application/json'
Filter AI Models by Provider
curl -X GET \
'https://instance.service-now.com/api/sn_ai_governance/v1/assets/alm_ai_model_digital_asset?provider=OpenAI' \
-u 'username:password' \
-H 'Accept: application/json'
Get AI Systems Created in a Date Range
curl -X GET \
'https://instance.service-now.com/api/sn_ai_governance/v1/assets/alm_ai_system_digital_asset?created_from=2026-01-01&created_to=2026-01-31' \
-u 'username:password' \
-H 'Accept: application/json'
AI Assets Inventory - GET /api/sn_ai_governance/v1/assets/{sys_id}/details
Retrieves comprehensive details about a specific AI governance record.
- Basic asset information such as display name, asset class, asset type,
- Life cycle phase and status, risk classification, state,
- Related assets,
- Governance, Risk, and Compliance (GRC) information (assessments, risks, issues, policy exceptions) when the sn_grc_ai_gov plugin is active.
URL format
Versioned URL: /api/sn_ai_governance/{api_version}/assets/{sys_id}/details
Default URL: /api/sn_ai_governance/assets/{sys_id}/details
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 |
| 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 |
| 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:
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:
Default: true Data type: String |
| Name | Description |
|---|---|
| None |
Headers
The following request and response headers apply to this HTTP action only, or apply to this action in a distinct way. For a list of general headers used in the REST API, see Supported REST API headers.
| Header | Description |
|---|---|
| Accept | Data format of the response body. Supported types: application/json or application/xml.
Default: application/json |
| Header | Description |
|---|---|
| None |
Status codes
The following status codes apply to this HTTP action. For a list of possible status codes used in the REST API, see REST API HTTP response codes.
| Status code | Description |
|---|---|
| 200 | Successful. The request was successfully processed. |
| 400 | Sys_id or asset_class path parameter missing or empty. Provide a valid sys_id or asset_class 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:
|
| 500 | Unhandled exception. For example, invalid date format. Check logs to verify date inputs use the calling user's session date format. |
Response body parameters (JSON or XML)
The top-level response shape is the same for all asset classes. The related_assets object structure varies by asset class. See the Related Assets section for response parameters categorized by class.
| 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:
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 |
| control_assessments | GRC controls. Data type: Array of Objects |
| display_name | Display name of the underlying digital asset. Data type: String |
| issues | GRC issues associated with this asset. Data type: Array of Objects |
| lifecycle_phase | Life cycle phase of the asset. Data type: Object |
| lifecycle_phase.sys_id | Sys_id of the life cycle phase record. 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 |
| regulatory_risk_assessments | GRC regulatory risk classifications. Same conditions as ai_assessments. Data type: Array of Objects |
| 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 |
| risk_assessments | GRC risk assessments. Same conditions as ai_assessments. Data type: Array of Objects |
| risk_classification | Display value of risk_score on the governance record. Possible values:
Data type: String |
| risks | GRC risks. Data type: Array of Objects |
| 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 |
Related Assets
- sys_id is the governance record's sys_id (not the digital asset's sys_id),
- name is the governance display value,
- additional governance fields (risk_classification, lifecycle_status, lifecycle_phase, state) are included.
When no governance record exists, only the base fields are returned.
| Name | Description |
|---|---|
| ai_models | AI Models referenced from the system's ai_models field. Data type: Object |
| ai_prompts | AI Prompts referenced from the system's ai_prompts field. Data type: Object |
| 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 |
| configuration_items | CIs related to this digital asset via the Asset-CI Relationship [cmdb_rel_asset_ci] table. Data type: Object |
| evaluation_datasets | AI datasets referenced from the system's evaluation_datasets field. Data type: Object |
| input_outputs | Input/output specifications for this system from the [AI Input Output] sn_ent_ai_input_output table, ordered by
io_category. Data type: Object |
| 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.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 |
| 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.Data type: Array of Objects |
| Name | Description |
|---|---|
| derived_ai_models | AI Models whose base_model points to this model. Data type: Array of Objects |
| training_datasets | Datasets referenced from this model's training_datasets field. Data type: Array of Objects |
| evaluation_datasets | Datasets referenced from this model's evaluation_datasets field. Data type: Array of Objects |
| ai_systems | AI Systems whose ai_models field contains this model. Data type: Array of Objects |
| input_outputs | Input/output specifications. Table: AI Input Output [sn_ent_ai_input_output] table, Category [io_category] field Data type: Array of Objects |
| 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 |
| configuration_items | CIs related to this digital asset. Table: Asset-CI Relationship [cmdb_rel_asset_ci] Data type: Array of Objects |
| 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 |
| Name | Description |
|---|---|
| ai_systems | AI Systems whose ai_prompts field contains this prompt. Data type: Array of Objects |
| Name | Description |
|---|---|
| ai_systems | AI Systems whose evaluation_datasets field contains this dataset. Data type: Array of Objects |
| ai_models | AI Models whose training_datasets or evaluation_datasets field contains this dataset. Data type: Array of Objects |
| parent_datasets | Datasets referenced from this dataset's base_datasets field. Data type: Array of Objects |
| child_datasets | Datasets whose base_datasets field contains this dataset. Data type: Array of Objects |
Get AI System details
Request to retrieve asset_class
alm_ai_system_digital_asset details:
curl -X GET \
'https://instance.service-now.com/api/sn_ai_governance/v1/assets/a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4/details' \
-u 'username:password' \
-H 'Accept: application/json'
Response body:
{
"display_name": "Customer Service AI Assistant",
"asset_type": "Generative AI",
"asset_class": "alm_ai_system_digital_asset",
"lifecycle_status": "2",
"lifecycle_phase": { "sys_id": "lifecycle123", "name": "Production" },
"state": "1",
"risk_classification": "medium",
"related_assets": {
"sub_ai_systems": [
{
"sys_id": "govSub123",
"name": "FAQ Handler Sub-Agent",
"description": "Handles frequently asked questions",
"asset_class": "alm_ai_system_digital_asset",
"risk_classification": "low",
"lifecycle_status": "2",
"lifecycle_phase": "Production",
"state": "Active"
}
],
"tools": [
{
"sys_id": "tool123",
"name": "Knowledge Base Search",
"description": "Searches internal knowledge base",
"asset_class": "sn_ent_ai_tool"
}
],
"ai_models": [
{ "sys_id": "govModel123", "name": "GPT-4",
"asset_class": "alm_ai_model_digital_asset", "asset_type": "Generative AI",
"risk_classification": "1", "lifecycle_status": "2",
"lifecycle_phase": "Production", "state": "Active" }
],
"ai_prompts": [
{ "sys_id": "govPrompt123", "name": "Customer Service Greeting Prompt",
"asset_class": "alm_ai_prompt_digital_asset", "asset_type": "Prompt" }
],
"evaluation_datasets": [
{ "sys_id": "govDataset123", "name": "CS Evaluation Dataset",
"asset_class": "alm_ai_dataset_digital_asset", "asset_type": "Dataset" }
],
"input_outputs": [
{ "sys_id": "io123", "name": "Customer Query",
"description": "Natural language customer question",
"io_type": "Input", "information_object": "Text" },
{ "sys_id": "io456", "name": "AI Response",
"description": "AI-generated response to customer",
"io_type": "Output", "information_object": "Text" }
],
"configuration_items": [
{ "sys_id": "ci123", "name": "CS AI Assistant CI" }
],
"business_applications": [
{ "sys_id": "ba123", "name": "Customer Service Platform" }
]
},
"ai_assessments": [],
"risk_assessments": [],
"regulatory_risk_assessments": [],
"bulk_risk_assessments": [],
"control_assessments": [],
"issues": [],
"policy_exceptions": [],
"risks": []
}
Get AI Model details (skip GRC data)
Request to retrieve asset_class
alm_ai_model_digital_asset details:
curl "https://instance.servicenow.com/api/sn_ent/asset/ai_system/3b140397435a9210a63d00002fb8f2d7" \
--request GET \
--header "Accept:application/json" \
--user "username":"password"
Response body:
{
"display_name": "GPT-4 Turbo",
"asset_type": "AI Model",
"asset_class": "alm_ai_model_digital_asset",
"lifecycle_status": "2",
"lifecycle_phase": { "sys_id": "lifecycle456", "name": "Production" },
"state": "1",
"risk_classification": "1",
"related_assets": {
"derived_ai_models": [
{ "sys_id": "derived123", "name": "GPT-4 Turbo Fine-tuned for CS" }
],
"training_datasets": [
{ "sys_id": "train123", "name": "General Training Dataset" }
],
"evaluation_datasets": [
{ "sys_id": "eval123", "name": "Model Evaluation Dataset" }
],
"ai_systems": [
{ "sys_id": "sys123", "name": "Customer Service AI Assistant" }
],
"input_outputs": [],
"model_lineages": [
{
"sys_id": "lineage123",
"dataset": "Training Dataset v2.0",
"activity": "Fine-tuning",
"training_procedure": "Supervised Learning",
"model_checkpoint_id": "checkpoint_42",
"user_group": "AI Team",
"start_time": "2026-01-10 08:00:00",
"end_time": "2026-01-12 18:30:00"
}
],
"configuration_items": [
{ "sys_id": "ciModel1", "name": "GPT-4 Turbo CI" }
],
"business_applications": [
{ "sys_id": "baModel1", "name": "AI Platform" }
]
},
"ai_assessments": [],
"risk_assessments": [],
"regulatory_risk_assessments": [],
"bulk_risk_assessments": [],
"control_assessments": [],
"issues": [],
"policy_exceptions": [],
"risks": []
}
Get AI Prompt details
Request to retrieve asset_class
alm_ai_prompt_digital_asset details:
curl -X GET \
'https://instance.service-now.com/api/sn_ai_governance/v1/assets/e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2/details' \
-u 'username:password' \
-H 'Accept: application/json'
Respone body:
{
"display_name": "Customer Greeting Prompt",
"asset_type": "AI Prompt",
"asset_class": "alm_ai_prompt_digital_asset",
"lifecycle_status": "2",
"lifecycle_phase": { "sys_id": "lifecycle789", "name": "Production" },
"state": "Active",
"risk_classification": "low",
"related_assets": {
"ai_systems": [
{ "sys_id": "sys123", "name": "Customer Service AI Assistant" }
]
},
"ai_assessments": [],
"risk_assessments": [],
"regulatory_risk_assessments": [],
"bulk_risk_assessments": [],
"control_assessments": [],
"issues": [],
"policy_exceptions": [],
"risks": []
}
Get AI Dataset details
Request to retrieve asset_class
alm_ai_dataset_digital_asset details:
curl -X GET \
'https://instance.service-now.com/api/sn_ai_governance/v1/assets/d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1/details' \
-u 'username:password' \
-H 'Accept: application/json'
Response body:
{
"display_name": "Customer Service Evaluation Dataset",
"asset_type": "AI Dataset",
"asset_class": "alm_ai_dataset_digital_asset",
"lifecycle_status": "2",
"lifecycle_phase": { "sys_id": "lifecycle321", "name": "Production" },
"state": "Active",
"risk_classification": "low",
"related_assets": {
"ai_systems": [
{ "sys_id": "sys123", "name": "Customer Service AI Assistant" }
],
"ai_models": [
{ "sys_id": "model123", "name": "GPT-4" }
],
"parent_datasets": [
{ "sys_id": "parent123", "name": "Base CS Dataset" }
],
"child_datasets": [
{ "sys_id": "child123", "name": "Extended CS Dataset v2" }
]
},
"ai_assessments": [],
"risk_assessments": [],
"regulatory_risk_assessments": [],
"bulk_risk_assessments": [],
"control_assessments": [],
"issues": [],
"policy_exceptions": [],
"risks": []
}
Quick Command Reference
List all AI systems:
curl -X GET 'https://instance.service-now.com/api/sn_ai_governance/v1/assets/alm_ai_system_digital_asset'
-u 'user:password'
Get high-risk assets:
curl -X GET 'https://instance.service-now.com/api/sn_ai_governance/v1/assets/alm_ai_system_digital_asset?risk_classification=1'
-u 'user:password'
Get asset details (skip GRC data):
curl -X GET 'https://instance.service-now.com/api/sn_ai_governance/v1/assets/{sys_id}/details'
-u 'user:password'
Paginate results:
curl -X GET 'https://instance.service-now.com/api/sn_ai_governance/v1/assets/alm_ai_system_digital_asset?limit=100&offset=0'
-u 'user:password'