openapi: 3.0.3 info: title: Snyk AccessRequests Inventory Assets API version: REST servers: - description: Snyk REST API url: https://api.snyk.io/rest security: - APIToken: [] - BearerAuth: [] tags: - name: Inventory Assets paths: /groups/{group_id}/inventory/assets: get: description: 'Retrieves a polymorphic list of all asset types for a given group. The tenant is resolved from the group_id. #### Required permissions - `View Groups (group.read)`' operationId: listAssetsGroup parameters: - description: The unique identifier of the group in: path name: group_id required: true schema: format: uuid type: string - description: The requested API version in: query name: version schema: example: '2024-10-15' pattern: ^\d{4}-\d{2}-\d{2}$ type: string - $ref: '#/components/parameters/RsqlFilter' - description: Comma-separated sort fields. Prefix with `-` for descending order. example: -created_at in: query name: sort schema: type: string - description: Number of results to return per page in: query name: limit schema: default: 10 maximum: 100 minimum: 10 type: integer - description: Cursor for fetching the next page of results in: query name: starting_after schema: type: string - description: Cursor for fetching the previous page of results in: query name: ending_before schema: type: string - $ref: '#/components/parameters/SparseFieldsets' - $ref: '#/components/parameters/MetaCount' responses: '200': content: application/vnd.api+json: schema: $ref: '#/components/schemas/AssetListResponse' description: Successful response with a polymorphic list of assets headers: deprecation: $ref: '#/components/headers/DeprecationHeader' snyk-request-id: $ref: '#/components/headers/RequestIdResponseHeader' snyk-version-lifecycle-stage: $ref: '#/components/headers/VersionStageResponseHeader' snyk-version-requested: $ref: '#/components/headers/VersionRequestedResponseHeader' snyk-version-served: $ref: '#/components/headers/VersionServedResponseHeader' sunset: $ref: '#/components/headers/SunsetHeader' '400': $ref: '#/components/responses/400' '401': $ref: '#/components/responses/401' '403': $ref: '#/components/responses/403' '500': $ref: '#/components/responses/500' summary: List or search all assets (synchronous) - Group scope (Early Access) tags: - Inventory Assets x-snyk-api-lifecycle: released x-snyk-api-releases: - 2024-10-15~beta x-snyk-api-resource: asset x-snyk-api-stability: beta x-snyk-api-version: 2024-10-15~beta x-stability-level: beta patch: description: 'Partially updates multiple assets within a group context. Maximum of 100 assets can be updated per request. The operation is transactional - all updates succeed or all fail. #### Required permissions - `Edit Group Details (group.edit)`' operationId: updateAssetsBulkGroup parameters: - description: The unique identifier of the group in: path name: group_id required: true schema: format: uuid type: string - description: The requested API version in: query name: version schema: example: '2024-10-15' pattern: ^\d{4}-\d{2}-\d{2}$ type: string requestBody: content: application/vnd.api+json: schema: $ref: '#/components/schemas/AssetBulkPatchRequestBody' required: true responses: '204': description: Assets updated successfully headers: deprecation: $ref: '#/components/headers/DeprecationHeader' snyk-request-id: $ref: '#/components/headers/RequestIdResponseHeader' snyk-version-lifecycle-stage: $ref: '#/components/headers/VersionStageResponseHeader' snyk-version-requested: $ref: '#/components/headers/VersionRequestedResponseHeader' snyk-version-served: $ref: '#/components/headers/VersionServedResponseHeader' sunset: $ref: '#/components/headers/SunsetHeader' '400': $ref: '#/components/responses/400' '401': $ref: '#/components/responses/401' '403': $ref: '#/components/responses/403' '404': $ref: '#/components/responses/404' '500': $ref: '#/components/responses/500' summary: Bulk update asset attributes - Group scope (Early Access) tags: - Inventory Assets x-snyk-api-lifecycle: released x-snyk-api-releases: - 2024-10-15~beta x-snyk-api-resource: asset x-snyk-api-stability: beta x-snyk-api-version: 2024-10-15~beta x-stability-level: beta /groups/{group_id}/inventory/assets/filters: get: description: 'Returns a list of valid field names that can be used for filtering assets using RSQL. Each field includes its name, data type, and which asset types it applies to. #### Required permissions - `View Groups (group.read)`' operationId: getFilterFieldsGroup parameters: - description: The unique identifier of the group in: path name: group_id required: true schema: format: uuid type: string - description: The requested API version in: query name: version schema: example: '2024-10-15' pattern: ^\d{4}-\d{2}-\d{2}$ type: string - description: Comma-separated list of asset types to filter the available filter fields example: container_images in: query name: asset_types schema: type: string - description: Number of results to return in: query name: limit schema: default: 10 maximum: 100 minimum: 10 type: integer - description: Cursor for fetching the next page of results in: query name: starting_after schema: type: string - description: Cursor for fetching the previous page of results in: query name: ending_before schema: type: string responses: '200': content: application/vnd.api+json: schema: $ref: '#/components/schemas/FilterFieldsResponse' description: List of available filter fields headers: deprecation: $ref: '#/components/headers/DeprecationHeader' snyk-request-id: $ref: '#/components/headers/RequestIdResponseHeader' snyk-version-lifecycle-stage: $ref: '#/components/headers/VersionStageResponseHeader' snyk-version-requested: $ref: '#/components/headers/VersionRequestedResponseHeader' snyk-version-served: $ref: '#/components/headers/VersionServedResponseHeader' sunset: $ref: '#/components/headers/SunsetHeader' '400': $ref: '#/components/responses/400' '401': $ref: '#/components/responses/401' '403': $ref: '#/components/responses/403' '500': $ref: '#/components/responses/500' summary: Get available filter fields - Group scope (Early Access) tags: - Inventory Assets x-snyk-api-lifecycle: released x-snyk-api-releases: - 2024-10-15~beta x-snyk-api-resource: asset x-snyk-api-stability: beta x-snyk-api-version: 2024-10-15~beta x-stability-level: beta /groups/{group_id}/inventory/assets/filters/{filter_id}/values: get: description: 'Returns a list of distinct values for a specific filter field. Useful for building autocomplete functionality in filter UIs. Use the UUID from the filter fields list endpoint to identify which field to query. For object filter values, both the keys and values are returned. #### Required permissions - `View Groups (group.read)`' operationId: getFilterValuesGroup parameters: - description: The unique identifier of the group in: path name: group_id required: true schema: format: uuid type: string - description: The requested API version in: query name: version schema: example: '2024-10-15' pattern: ^\d{4}-\d{2}-\d{2}$ type: string - description: The UUID of the filter field to get values for (from the filter fields list endpoint) example: 3fa85f64-5717-4562-b3fc-2c963f66afa6 in: path name: filter_id required: true schema: format: uuid type: string - description: Full text search term to filter the list of values. If keys_only is true, this will filter the keys of the object filter values. If key is provided, this will filter the value for the specific key of the object filter values. example: prod in: query name: q schema: maxLength: 100 type: string - description: Number of results to return in: query name: limit schema: default: 10 maximum: 100 minimum: 10 type: integer - description: Cursor for fetching the next page of results in: query name: starting_after schema: type: string - description: Cursor for fetching the previous page of results in: query name: ending_before schema: type: string - description: Return only the keys of the object filter values in: query name: keys_only schema: type: boolean - description: Return only the value for a specific key of the object filter values in: query name: key schema: type: string responses: '200': content: application/vnd.api+json: schema: $ref: '#/components/schemas/FilterValuesResponse' description: List of filter values headers: deprecation: $ref: '#/components/headers/DeprecationHeader' snyk-request-id: $ref: '#/components/headers/RequestIdResponseHeader' snyk-version-lifecycle-stage: $ref: '#/components/headers/VersionStageResponseHeader' snyk-version-requested: $ref: '#/components/headers/VersionRequestedResponseHeader' snyk-version-served: $ref: '#/components/headers/VersionServedResponseHeader' sunset: $ref: '#/components/headers/SunsetHeader' '400': $ref: '#/components/responses/400' '401': $ref: '#/components/responses/401' '403': $ref: '#/components/responses/403' '404': $ref: '#/components/responses/404' '500': $ref: '#/components/responses/500' summary: Get filter value suggestions (autocomplete) - Group scope (Early Access) tags: - Inventory Assets x-snyk-api-lifecycle: released x-snyk-api-releases: - 2024-10-15~beta x-snyk-api-resource: asset x-snyk-api-stability: beta x-snyk-api-version: 2024-10-15~beta x-stability-level: beta /groups/{group_id}/inventory/assets/groups: get: description: 'Returns a list of valid group field names that can be used for grouping assets within a group context. #### Required permissions - `View Groups (group.read)`' operationId: getGroupFieldsGroup parameters: - description: The unique identifier of the group in: path name: group_id required: true schema: format: uuid type: string - description: The requested API version in: query name: version schema: example: '2024-10-15' pattern: ^\d{4}-\d{2}-\d{2}$ type: string - description: Comma-separated list of asset types to filter group fields in: query name: asset_types schema: type: string - description: Maximum number of results to return in: query name: limit schema: default: 10 maximum: 100 minimum: 10 type: integer - description: Cursor for forward pagination in: query name: starting_after schema: type: string - description: Cursor for backward pagination in: query name: ending_before schema: type: string responses: '200': content: application/vnd.api+json: schema: $ref: '#/components/schemas/GroupFieldsResponse' description: List of available group fields headers: deprecation: $ref: '#/components/headers/DeprecationHeader' snyk-request-id: $ref: '#/components/headers/RequestIdResponseHeader' snyk-version-lifecycle-stage: $ref: '#/components/headers/VersionStageResponseHeader' snyk-version-requested: $ref: '#/components/headers/VersionRequestedResponseHeader' snyk-version-served: $ref: '#/components/headers/VersionServedResponseHeader' sunset: $ref: '#/components/headers/SunsetHeader' '400': $ref: '#/components/responses/400' '401': $ref: '#/components/responses/401' '403': $ref: '#/components/responses/403' '500': $ref: '#/components/responses/500' summary: Get available group fields - Group scope (Early Access) tags: - Inventory Assets x-snyk-api-lifecycle: released x-snyk-api-releases: - 2024-10-15~beta x-snyk-api-resource: asset x-snyk-api-stability: beta x-snyk-api-version: 2024-10-15~beta x-stability-level: beta /groups/{group_id}/inventory/assets/groups/{group_field_id}/values: get: description: 'Returns aggregated values for a specific group field id, showing the count of assets for each distinct value. Use the UUID from the group fields list endpoint to identify which field to query. #### Required permissions - `View Groups (group.read)`' operationId: getGroupValuesGroup parameters: - description: The unique identifier of the group in: path name: group_id required: true schema: format: uuid type: string - description: The requested API version in: query name: version schema: example: '2024-10-15' pattern: ^\d{4}-\d{2}-\d{2}$ type: string - description: The UUID of the group field to get values for (from the group fields list endpoint) example: 3fa85f64-5717-4562-b3fc-2c963f66afa6 in: path name: group_field_id required: true schema: format: uuid type: string - description: Comma-separated list of asset types to filter the aggregation example: container_images in: query name: asset_types schema: type: string - $ref: '#/components/parameters/RsqlFilterGroupValues' - $ref: '#/components/parameters/SortGroupValues' - description: Maximum number of group values to return in: query name: limit schema: default: 10 maximum: 100 minimum: 10 type: integer - description: Cursor for forward pagination in: query name: starting_after schema: type: string - description: Cursor for backward pagination in: query name: ending_before schema: type: string - $ref: '#/components/parameters/MetaFieldsGroupValues' - $ref: '#/components/parameters/AggregateGroupValues' responses: '200': content: application/vnd.api+json: schema: $ref: '#/components/schemas/GroupValuesResponse' description: List of group values with aggregated metadata headers: deprecation: $ref: '#/components/headers/DeprecationHeader' snyk-request-id: $ref: '#/components/headers/RequestIdResponseHeader' snyk-version-lifecycle-stage: $ref: '#/components/headers/VersionStageResponseHeader' snyk-version-requested: $ref: '#/components/headers/VersionRequestedResponseHeader' snyk-version-served: $ref: '#/components/headers/VersionServedResponseHeader' sunset: $ref: '#/components/headers/SunsetHeader' '400': $ref: '#/components/responses/400' '401': $ref: '#/components/responses/401' '403': $ref: '#/components/responses/403' '404': $ref: '#/components/responses/404' '500': $ref: '#/components/responses/500' summary: Get group value aggregation - Group scope (Early Access) tags: - Inventory Assets x-snyk-api-lifecycle: released x-snyk-api-releases: - 2024-10-15~beta x-snyk-api-resource: asset x-snyk-api-stability: beta x-snyk-api-version: 2024-10-15~beta x-stability-level: beta /groups/{group_id}/inventory/assets/searches: post: description: 'Initiates an asynchronous search for assets within a group context. #### Required permissions - `View Groups (group.read)`' operationId: createAssetSearchGroup parameters: - description: The unique identifier of the group in: path name: group_id required: true schema: format: uuid type: string - description: The requested API version in: query name: version schema: example: '2024-10-15' pattern: ^\d{4}-\d{2}-\d{2}$ type: string requestBody: content: application/vnd.api+json: schema: $ref: '#/components/schemas/CreateSearchRequestBody' responses: '302': content: application/vnd.api+json: schema: additionalProperties: false properties: jsonapi: additionalProperties: false properties: version: type: string type: object type: object description: Found - Redirects to search results endpoint headers: deprecation: $ref: '#/components/headers/DeprecationHeader' location: description: URL to retrieve search results schema: format: uri type: string snyk-request-id: $ref: '#/components/headers/RequestIdResponseHeader' snyk-version-lifecycle-stage: $ref: '#/components/headers/VersionStageResponseHeader' snyk-version-requested: $ref: '#/components/headers/VersionRequestedResponseHeader' snyk-version-served: $ref: '#/components/headers/VersionServedResponseHeader' sunset: $ref: '#/components/headers/SunsetHeader' '400': $ref: '#/components/responses/400' '500': $ref: '#/components/responses/500' summary: Create an asset search (asynchronous) - Group scope (Early Access) tags: - Inventory Assets x-snyk-api-lifecycle: released x-snyk-api-releases: - 2024-10-15~beta x-snyk-api-resource: asset x-snyk-api-stability: beta x-snyk-api-version: 2024-10-15~beta x-stability-level: beta /groups/{group_id}/inventory/assets/searches/{search_id}/results: get: description: 'Gets paginated results for a previously initiated asset search within a group context. #### Required permissions - `View Groups (group.read)`' operationId: getAssetSearchResultsGroup parameters: - description: The unique identifier of the group in: path name: group_id required: true schema: format: uuid type: string - $ref: '#/components/parameters/SearchId' - description: The requested API version in: query name: version schema: example: '2024-10-15' pattern: ^\d{4}-\d{2}-\d{2}$ type: string - description: Sort order for results (e.g., -created_at for descending) in: query name: sort schema: type: string - description: Maximum number of results to return in: query name: limit schema: default: 10 maximum: 100 minimum: 10 type: integer - description: Cursor for forward pagination in: query name: starting_after schema: type: string - description: Cursor for backward pagination in: query name: ending_before schema: type: string - $ref: '#/components/parameters/SparseFieldsets' responses: '200': content: application/vnd.api+json: schema: $ref: '#/components/schemas/AssetListResponse' description: Search results retrieved successfully headers: deprecation: $ref: '#/components/headers/DeprecationHeader' snyk-request-id: $ref: '#/components/headers/RequestIdResponseHeader' snyk-version-lifecycle-stage: $ref: '#/components/headers/VersionStageResponseHeader' snyk-version-requested: $ref: '#/components/headers/VersionRequestedResponseHeader' snyk-version-served: $ref: '#/components/headers/VersionServedResponseHeader' sunset: $ref: '#/components/headers/SunsetHeader' '404': $ref: '#/components/responses/404' '500': $ref: '#/components/responses/500' summary: Retrieve asset search results (asynchronous) - Group scope (Early Access) tags: - Inventory Assets x-snyk-api-lifecycle: released x-snyk-api-releases: - 2024-10-15~beta x-snyk-api-resource: asset x-snyk-api-stability: beta x-snyk-api-version: 2024-10-15~beta x-stability-level: beta /groups/{group_id}/inventory/assets/{asset_id}: get: description: 'Retrieves a single asset by its unique identifier within a group context. #### Required permissions - `View Groups (group.read)`' operationId: getAssetGroup parameters: - description: The unique identifier of the group in: path name: group_id required: true schema: format: uuid type: string - description: The unique identifier of the asset in: path name: asset_id required: true schema: format: uuid type: string - description: The requested API version in: query name: version schema: example: '2024-10-15' pattern: ^\d{4}-\d{2}-\d{2}$ type: string - $ref: '#/components/parameters/SparseFieldsets' responses: '200': content: application/vnd.api+json: schema: additionalProperties: false properties: data: $ref: '#/components/schemas/PolymorphicAssetData' links: properties: self: format: uri type: string type: object required: - data type: object description: Asset retrieved successfully headers: deprecation: $ref: '#/components/headers/DeprecationHeader' snyk-request-id: $ref: '#/components/headers/RequestIdResponseHeader' snyk-version-lifecycle-stage: $ref: '#/components/headers/VersionStageResponseHeader' snyk-version-requested: $ref: '#/components/headers/VersionRequestedResponseHeader' snyk-version-served: $ref: '#/components/headers/VersionServedResponseHeader' sunset: $ref: '#/components/headers/SunsetHeader' '400': $ref: '#/components/responses/400' '401': $ref: '#/components/responses/401' '403': $ref: '#/components/responses/403' '404': $ref: '#/components/responses/404' '500': $ref: '#/components/responses/500' summary: Get a single asset by ID - Group scope (Early Access) tags: - Inventory Assets x-snyk-api-lifecycle: released x-snyk-api-releases: - 2024-10-15~beta x-snyk-api-resource: asset x-snyk-api-stability: beta x-snyk-api-version: 2024-10-15~beta x-stability-level: beta patch: description: 'Partially updates an asset''s attributes within a group context. Supports updating class, labels (add/remove), and tags (add/remove). #### Required permissions - `Edit Group Details (group.edit)`' operationId: updateAssetGroup parameters: - description: The unique identifier of the group in: path name: group_id required: true schema: format: uuid type: string - description: The unique identifier of the asset in: path name: asset_id required: true schema: format: uuid type: string - description: The requested API version in: query name: version schema: example: '2024-10-15' pattern: ^\d{4}-\d{2}-\d{2}$ type: string requestBody: content: application/vnd.api+json: schema: $ref: '#/components/schemas/AssetPatchRequestBody' required: true responses: '200': content: application/vnd.api+json: schema: additionalProperties: false properties: data: $ref: '#/components/schemas/PolymorphicAssetData' jsonapi: $ref: '#/components/schemas/JsonApiVersion' links: description: Self-referencing link properties: self: description: Link to the current resource format: uri type: string required: - self type: object required: - data type: object description: Asset updated successfully headers: deprecation: $ref: '#/components/headers/DeprecationHeader' snyk-request-id: $ref: '#/components/headers/RequestIdResponseHeader' snyk-version-lifecycle-stage: $ref: '#/components/headers/VersionStageResponseHeader' snyk-version-requested: $ref: '#/components/headers/VersionRequestedResponseHeader' snyk-version-served: $ref: '#/components/headers/VersionServedResponseHeader' sunset: $ref: '#/components/headers/SunsetHeader' '400': $ref: '#/components/responses/400' '401': $ref: '#/components/responses/401' '403': $ref: '#/components/responses/403' '404': $ref: '#/components/responses/404' '500': $ref: '#/components/responses/500' summary: Update asset attributes - Group scope (Early Access) tags: - Inventory Assets x-snyk-api-lifecycle: released x-snyk-api-releases: - 2024-10-15~beta x-snyk-api-resource: asset x-snyk-api-stability: beta x-snyk-api-version: 2024-10-15~beta x-stability-level: beta /groups/{group_id}/inventory/assets/{asset_id}/relationships/projects: get: description: 'Retrieves a paginated list of Snyk projects linked to this asset with full attributes. Returns the `id`, `type`, and `attributes` of each related project. Scoped to the specified group. #### Required permissions - `View Groups (group.read)`' operationId: listAssetProjectsGroup parameters: - description: The unique identifier of the group in: path name: group_id required: true schema: format: uuid type: string - description: The unique identifier of the asset in: path name: asset_id required: true schema: format: uuid type: string - description: The requested API version in: query name: version schema: example: '2024-10-15' pattern: ^\d{4}-\d{2}-\d{2}$ type: string - description: Cursor for fetching the next page of results in: query name: starting_after schema: type: string - description: Cursor for fetching the previous page of results in: query name: ending_before schema: type: string - description: Maximum number of results to return per page in: query name: limit schema: default: 10 maximum: 100 minimum: 10 type: integer - description: 'Filter projects by canonical status. - `with`: Returns all projects (canonical attribute is populated). - `only`: Returns only canonical projects (those used for vulnerability counts). - `none`: Returns only non-canonical projects. When omitted, returns all projects without canonical filtering. ' in: query name: canonical schema: enum: - with - only - none type: string - description: 'Filter projects by target ID. When provided, returns only projects that belong to the specified target. When omitted, returns projects from all targets. ' in: query name: target_id schema: format: uuid type: string - $ref: '#/components/parameters/ProjectSortParam' responses: '200': content: application/vnd.api+json: schema: $ref: '#/components/schemas/ProjectRelationshipListResponse' description: Successfully retrieved linked projects headers: deprecation: $ref: '#/components/headers/DeprecationHeader' snyk-request-id: $ref: '#/components/headers/RequestIdResponseHeader' snyk-version-lifecycle-stage: $ref: '#/components/headers/VersionStageResponseHeader' snyk-version-requested: $ref: '#/components/headers/VersionRequestedResponseHeader' snyk-version-served: $ref: '#/components/headers/VersionServedResponseHeader' sunset: $ref: '#/components/headers/SunsetHeader' '400': $ref: '#/components/responses/400' '401': $ref: '#/components/responses/401' '403': $ref: '#/components/responses/403' '404': $ref: '#/components/responses/404' '500': $ref: '#/components/responses/500' summary: List projects for an asset (group scope) (Early Access) tags: - Inventory Assets x-snyk-api-lifecycle: released x-snyk-api-releases: - 2024-10-15~beta x-snyk-api-resource: project x-snyk-api-stability: beta x-snyk-api-version: 2024-10-15~beta x-stability-level: beta /groups/{group_id}/inventory/assets/{asset_id}/relationships/targets: get: description: 'Retrieves a paginated list of Snyk targets linked to this asset with full attributes. Returns the `id`, `type`, and `attributes` of each related target. Scoped to the specified group. #### Required permissions - `View Groups (group.read)`' operationId: listAssetTargetsGroup parameters: - description: The unique identifier of the group in: path name: group_id required: true schema: format: uuid type: string - description: The unique identifier of the asset in: path name: asset_id required: true schema: format: uuid type: string - description: The requested API version in: query name: version schema: example: '2024-10-15' pattern: ^\d{4}-\d{2}-\d{2}$ type: string - description: Cursor for fetching the next page of results in: query name: starting_after schema: type: string - description: Cursor for fetching the previous page of results in: query name: ending_before schema: type: string - description: Maximum number of results to return per page in: query name: limit schema: default: 10 maximum: 100 minimum: 10 type: integer responses: '200': content: application/vnd.api+json: schema: $ref: '#/components/schemas/TargetRelationshipListResponse' description: Successfully retrieved linked targets headers: deprecation: $ref: '#/components/headers/DeprecationHeader' snyk-request-id: $ref: '#/components/headers/RequestIdResponseHeader' snyk-version-lifecycle-stage: $ref: '#/components/headers/VersionStageResponseHeader' snyk-version-requested: $ref: '#/components/headers/VersionRequestedResponseHeader' snyk-version-served: $ref: '#/components/headers/VersionServedResponseHeader' sunset: $ref: '#/components/headers/SunsetHeader' '400': $ref: '#/components/responses/400' '401': $ref: '#/components/responses/401' '403': $ref: '#/components/responses/403' '404': $ref: '#/components/responses/404' '500': $ref: '#/components/responses/500' summary: List targets for an asset (group scope) (Early Access) tags: - Inventory Assets x-snyk-api-lifecycle: released x-snyk-api-releases: - 2024-10-15~beta x-snyk-api-resource: target x-snyk-api-stability: beta x-snyk-api-version: 2024-10-15~beta x-stability-level: beta /orgs/{org_id}/inventory/assets: get: description: 'Retrieves a polymorphic list of all asset types for a given organization. The group and tenant are resolved from the org_id. #### Required permissions - `View Organization (org.read)`' operationId: listAssetsOrg parameters: - description: The unique identifier of the organization in: path name: org_id required: true schema: format: uuid type: string - description: The requested API version in: query name: version schema: example: '2024-10-15' pattern: ^\d{4}-\d{2}-\d{2}$ type: string - $ref: '#/components/parameters/RsqlFilter' - description: Comma-separated sort fields. Prefix with `-` for descending order. example: -created_at in: query name: sort schema: type: string - description: Number of results to return per page in: query name: limit schema: default: 10 maximum: 100 minimum: 10 type: integer - description: Cursor for fetching the next page of results in: query name: starting_after schema: type: string - description: Cursor for fetching the previous page of results in: query name: ending_before schema: type: string - $ref: '#/components/parameters/SparseFieldsets' - $ref: '#/components/parameters/MetaCount' responses: '200': content: application/vnd.api+json: schema: $ref: '#/components/schemas/AssetListResponse' description: Successful response with a polymorphic list of assets headers: deprecation: $ref: '#/components/headers/DeprecationHeader' snyk-request-id: $ref: '#/components/headers/RequestIdResponseHeader' snyk-version-lifecycle-stage: $ref: '#/components/headers/VersionStageResponseHeader' snyk-version-requested: $ref: '#/components/headers/VersionRequestedResponseHeader' snyk-version-served: $ref: '#/components/headers/VersionServedResponseHeader' sunset: $ref: '#/components/headers/SunsetHeader' '400': $ref: '#/components/responses/400' '401': $ref: '#/components/responses/401' '403': $ref: '#/components/responses/403' '500': $ref: '#/components/responses/500' summary: List or search all assets (synchronous) - Org scope (Early Access) tags: - Inventory Assets x-snyk-api-lifecycle: released x-snyk-api-releases: - 2024-10-15~beta x-snyk-api-resource: asset x-snyk-api-stability: beta x-snyk-api-version: 2024-10-15~beta x-stability-level: beta patch: description: 'Partially updates multiple assets within an org context. Maximum of 100 assets can be updated per request. The operation is transactional - all updates succeed or all fail. #### Required permissions - `Edit Organization (org.edit)`' operationId: updateAssetsBulkOrg parameters: - description: The unique identifier of the organization in: path name: org_id required: true schema: format: uuid type: string - description: The requested API version in: query name: version schema: example: '2024-10-15' pattern: ^\d{4}-\d{2}-\d{2}$ type: string requestBody: content: application/vnd.api+json: schema: $ref: '#/components/schemas/AssetBulkPatchRequestBody' required: true responses: '204': description: Assets updated successfully headers: deprecation: $ref: '#/components/headers/DeprecationHeader' snyk-request-id: $ref: '#/components/headers/RequestIdResponseHeader' snyk-version-lifecycle-stage: $ref: '#/components/headers/VersionStageResponseHeader' snyk-version-requested: $ref: '#/components/headers/VersionRequestedResponseHeader' snyk-version-served: $ref: '#/components/headers/VersionServedResponseHeader' sunset: $ref: '#/components/headers/SunsetHeader' '400': $ref: '#/components/responses/400' '401': $ref: '#/components/responses/401' '403': $ref: '#/components/responses/403' '404': $ref: '#/components/responses/404' '500': $ref: '#/components/responses/500' summary: Bulk update asset attributes - Org scope (Early Access) tags: - Inventory Assets x-snyk-api-lifecycle: released x-snyk-api-releases: - 2024-10-15~beta x-snyk-api-resource: asset x-snyk-api-stability: beta x-snyk-api-version: 2024-10-15~beta x-stability-level: beta /orgs/{org_id}/inventory/assets/filters: get: description: 'Returns a list of valid field names that can be used for filtering assets using RSQL. Each field includes its name, data type, and which asset types it applies to. #### Required permissions - `View Organization (org.read)`' operationId: getFilterFieldsOrg parameters: - description: The unique identifier of the organization in: path name: org_id required: true schema: format: uuid type: string - description: The requested API version in: query name: version schema: example: '2024-10-15' pattern: ^\d{4}-\d{2}-\d{2}$ type: string - description: Comma-separated list of asset types to filter the available filter fields example: container_images in: query name: asset_types schema: type: string - description: Number of results to return in: query name: limit schema: default: 10 maximum: 100 minimum: 10 type: integer - description: Cursor for fetching the next page of results in: query name: starting_after schema: type: string - description: Cursor for fetching the previous page of results in: query name: ending_before schema: type: string responses: '200': content: application/vnd.api+json: schema: $ref: '#/components/schemas/FilterFieldsResponse' description: List of available filter fields headers: deprecation: $ref: '#/components/headers/DeprecationHeader' snyk-request-id: $ref: '#/components/headers/RequestIdResponseHeader' snyk-version-lifecycle-stage: $ref: '#/components/headers/VersionStageResponseHeader' snyk-version-requested: $ref: '#/components/headers/VersionRequestedResponseHeader' snyk-version-served: $ref: '#/components/headers/VersionServedResponseHeader' sunset: $ref: '#/components/headers/SunsetHeader' '400': $ref: '#/components/responses/400' '401': $ref: '#/components/responses/401' '403': $ref: '#/components/responses/403' '500': $ref: '#/components/responses/500' summary: Get available filter fields - Org scope (Early Access) tags: - Inventory Assets x-snyk-api-lifecycle: released x-snyk-api-releases: - 2024-10-15~beta x-snyk-api-resource: asset x-snyk-api-stability: beta x-snyk-api-version: 2024-10-15~beta x-stability-level: beta /orgs/{org_id}/inventory/assets/filters/{filter_id}/values: get: description: 'Returns a list of distinct values for a specific filter field. Useful for building autocomplete functionality in filter UIs. Use the UUID from the filter fields list endpoint to identify which field to query. For object filter values, both the keys and values are returned. #### Required permissions - `View Organization (org.read)`' operationId: getFilterValuesOrg parameters: - description: The unique identifier of the organization in: path name: org_id required: true schema: format: uuid type: string - description: The requested API version in: query name: version schema: example: '2024-10-15' pattern: ^\d{4}-\d{2}-\d{2}$ type: string - description: The UUID of the filter field to get values for (from the filter fields list endpoint) example: 3fa85f64-5717-4562-b3fc-2c963f66afa6 in: path name: filter_id required: true schema: format: uuid type: string - description: Full text search term to filter the list of values. If keys_only is true, this will filter the keys of the object filter values. If key is provided, this will filter the value for the specific key of the object filter values. example: prod in: query name: q schema: maxLength: 100 type: string - description: Number of results to return in: query name: limit schema: default: 10 maximum: 100 minimum: 10 type: integer - description: Cursor for fetching the next page of results in: query name: starting_after schema: type: string - description: Cursor for fetching the previous page of results in: query name: ending_before schema: type: string - description: Return only the keys of the object filter values in: query name: keys_only schema: type: boolean - description: Return only the value for a specific key of the object filter values in: query name: key schema: type: string responses: '200': content: application/vnd.api+json: schema: $ref: '#/components/schemas/FilterValuesResponse' description: List of filter values headers: deprecation: $ref: '#/components/headers/DeprecationHeader' snyk-request-id: $ref: '#/components/headers/RequestIdResponseHeader' snyk-version-lifecycle-stage: $ref: '#/components/headers/VersionStageResponseHeader' snyk-version-requested: $ref: '#/components/headers/VersionRequestedResponseHeader' snyk-version-served: $ref: '#/components/headers/VersionServedResponseHeader' sunset: $ref: '#/components/headers/SunsetHeader' '400': $ref: '#/components/responses/400' '401': $ref: '#/components/responses/401' '403': $ref: '#/components/responses/403' '404': $ref: '#/components/responses/404' '500': $ref: '#/components/responses/500' summary: Get filter value suggestions (autocomplete) - Org scope (Early Access) tags: - Inventory Assets x-snyk-api-lifecycle: released x-snyk-api-releases: - 2024-10-15~beta x-snyk-api-resource: asset x-snyk-api-stability: beta x-snyk-api-version: 2024-10-15~beta x-stability-level: beta /orgs/{org_id}/inventory/assets/groups: get: description: 'Returns a list of valid group field names that can be used for grouping assets within an org context. #### Required permissions - `View Organization (org.read)`' operationId: getGroupFieldsOrg parameters: - description: The unique identifier of the organization in: path name: org_id required: true schema: format: uuid type: string - description: The requested API version in: query name: version schema: example: '2024-10-15' pattern: ^\d{4}-\d{2}-\d{2}$ type: string - description: Comma-separated list of asset types to filter group fields in: query name: asset_types schema: type: string - description: Maximum number of results to return in: query name: limit schema: default: 10 maximum: 100 minimum: 10 type: integer - description: Cursor for forward pagination in: query name: starting_after schema: type: string - description: Cursor for backward pagination in: query name: ending_before schema: type: string responses: '200': content: application/vnd.api+json: schema: $ref: '#/components/schemas/GroupFieldsResponse' description: List of available group fields headers: deprecation: $ref: '#/components/headers/DeprecationHeader' snyk-request-id: $ref: '#/components/headers/RequestIdResponseHeader' snyk-version-lifecycle-stage: $ref: '#/components/headers/VersionStageResponseHeader' snyk-version-requested: $ref: '#/components/headers/VersionRequestedResponseHeader' snyk-version-served: $ref: '#/components/headers/VersionServedResponseHeader' sunset: $ref: '#/components/headers/SunsetHeader' '400': $ref: '#/components/responses/400' '401': $ref: '#/components/responses/401' '403': $ref: '#/components/responses/403' '500': $ref: '#/components/responses/500' summary: Get available group fields - Org scope (Early Access) tags: - Inventory Assets x-snyk-api-lifecycle: released x-snyk-api-releases: - 2024-10-15~beta x-snyk-api-resource: asset x-snyk-api-stability: beta x-snyk-api-version: 2024-10-15~beta x-stability-level: beta /orgs/{org_id}/inventory/assets/groups/{group_field_id}/values: get: description: 'Returns aggregated values for a specific group field id, showing the count of assets for each distinct value. Use the UUID from the group fields list endpoint to identify which field to query. #### Required permissions - `View Organization (org.read)`' operationId: getGroupValuesOrg parameters: - description: The unique identifier of the organization in: path name: org_id required: true schema: format: uuid type: string - description: The requested API version in: query name: version schema: example: '2024-10-15' pattern: ^\d{4}-\d{2}-\d{2}$ type: string - description: The UUID of the group field to get values for (from the group fields list endpoint) example: 3fa85f64-5717-4562-b3fc-2c963f66afa6 in: path name: group_field_id required: true schema: format: uuid type: string - description: Comma-separated list of asset types to filter the aggregation example: container_images in: query name: asset_types schema: type: string - $ref: '#/components/parameters/RsqlFilterGroupValues' - $ref: '#/components/parameters/SortGroupValues' - description: Maximum number of group values to return in: query name: limit schema: default: 10 maximum: 100 minimum: 10 type: integer - description: Cursor for forward pagination in: query name: starting_after schema: type: string - description: Cursor for backward pagination in: query name: ending_before schema: type: string - $ref: '#/components/parameters/MetaFieldsGroupValues' - $ref: '#/components/parameters/AggregateGroupValues' responses: '200': content: application/vnd.api+json: schema: $ref: '#/components/schemas/GroupValuesResponse' description: List of group values with aggregated metadata headers: deprecation: $ref: '#/components/headers/DeprecationHeader' snyk-request-id: $ref: '#/components/headers/RequestIdResponseHeader' snyk-version-lifecycle-stage: $ref: '#/components/headers/VersionStageResponseHeader' snyk-version-requested: $ref: '#/components/headers/VersionRequestedResponseHeader' snyk-version-served: $ref: '#/components/headers/VersionServedResponseHeader' sunset: $ref: '#/components/headers/SunsetHeader' '400': $ref: '#/components/responses/400' '401': $ref: '#/components/responses/401' '403': $ref: '#/components/responses/403' '404': $ref: '#/components/responses/404' '500': $ref: '#/components/responses/500' summary: Get group value aggregation - Org scope (Early Access) tags: - Inventory Assets x-snyk-api-lifecycle: released x-snyk-api-releases: - 2024-10-15~beta x-snyk-api-resource: asset x-snyk-api-stability: beta x-snyk-api-version: 2024-10-15~beta x-stability-level: beta /orgs/{org_id}/inventory/assets/searches: post: description: 'Initiates an asynchronous search for assets within an org context. #### Required permissions - `View Organization (org.read)`' operationId: createAssetSearchOrg parameters: - description: The unique identifier of the organization in: path name: org_id required: true schema: format: uuid type: string - description: The requested API version in: query name: version schema: example: '2024-10-15' pattern: ^\d{4}-\d{2}-\d{2}$ type: string requestBody: content: application/vnd.api+json: schema: $ref: '#/components/schemas/CreateSearchRequestBody' responses: '302': content: application/vnd.api+json: schema: additionalProperties: false properties: jsonapi: additionalProperties: false properties: version: type: string type: object type: object description: Found - Redirects to search results endpoint headers: deprecation: $ref: '#/components/headers/DeprecationHeader' location: description: URL to retrieve search results schema: format: uri type: string snyk-request-id: $ref: '#/components/headers/RequestIdResponseHeader' snyk-version-lifecycle-stage: $ref: '#/components/headers/VersionStageResponseHeader' snyk-version-requested: $ref: '#/components/headers/VersionRequestedResponseHeader' snyk-version-served: $ref: '#/components/headers/VersionServedResponseHeader' sunset: $ref: '#/components/headers/SunsetHeader' '400': $ref: '#/components/responses/400' '500': $ref: '#/components/responses/500' summary: Create an asset search (asynchronous) - Org scope (Early Access) tags: - Inventory Assets x-snyk-api-lifecycle: released x-snyk-api-releases: - 2024-10-15~beta x-snyk-api-resource: asset x-snyk-api-stability: beta x-snyk-api-version: 2024-10-15~beta x-stability-level: beta /orgs/{org_id}/inventory/assets/searches/{search_id}/results: get: description: 'Gets paginated results for a previously initiated asset search within an org context. #### Required permissions - `View Organization (org.read)`' operationId: getAssetSearchResultsOrg parameters: - description: The unique identifier of the organization in: path name: org_id required: true schema: format: uuid type: string - $ref: '#/components/parameters/SearchId' - description: The requested API version in: query name: version schema: example: '2024-10-15' pattern: ^\d{4}-\d{2}-\d{2}$ type: string - description: Sort order for results (e.g., -created_at for descending) in: query name: sort schema: type: string - description: Maximum number of results to return in: query name: limit schema: default: 10 maximum: 100 minimum: 10 type: integer - description: Cursor for forward pagination in: query name: starting_after schema: type: string - description: Cursor for backward pagination in: query name: ending_before schema: type: string - $ref: '#/components/parameters/SparseFieldsets' responses: '200': content: application/vnd.api+json: schema: $ref: '#/components/schemas/AssetListResponse' description: Search results retrieved successfully headers: deprecation: $ref: '#/components/headers/DeprecationHeader' snyk-request-id: $ref: '#/components/headers/RequestIdResponseHeader' snyk-version-lifecycle-stage: $ref: '#/components/headers/VersionStageResponseHeader' snyk-version-requested: $ref: '#/components/headers/VersionRequestedResponseHeader' snyk-version-served: $ref: '#/components/headers/VersionServedResponseHeader' sunset: $ref: '#/components/headers/SunsetHeader' '404': $ref: '#/components/responses/404' '500': $ref: '#/components/responses/500' summary: Retrieve asset search results (asynchronous) - Org scope (Early Access) tags: - Inventory Assets x-snyk-api-lifecycle: released x-snyk-api-releases: - 2024-10-15~beta x-snyk-api-resource: asset x-snyk-api-stability: beta x-snyk-api-version: 2024-10-15~beta x-stability-level: beta /orgs/{org_id}/inventory/assets/{asset_id}: get: description: 'Retrieves a single asset by its unique identifier within an org context. #### Required permissions - `View Organization (org.read)`' operationId: getAssetOrg parameters: - description: The unique identifier of the organization in: path name: org_id required: true schema: format: uuid type: string - description: The unique identifier of the asset in: path name: asset_id required: true schema: format: uuid type: string - description: The requested API version in: query name: version schema: example: '2024-10-15' pattern: ^\d{4}-\d{2}-\d{2}$ type: string - $ref: '#/components/parameters/SparseFieldsets' responses: '200': content: application/vnd.api+json: schema: additionalProperties: false properties: data: $ref: '#/components/schemas/PolymorphicAssetData' links: properties: self: format: uri type: string type: object required: - data type: object description: Asset retrieved successfully headers: deprecation: $ref: '#/components/headers/DeprecationHeader' snyk-request-id: $ref: '#/components/headers/RequestIdResponseHeader' snyk-version-lifecycle-stage: $ref: '#/components/headers/VersionStageResponseHeader' snyk-version-requested: $ref: '#/components/headers/VersionRequestedResponseHeader' snyk-version-served: $ref: '#/components/headers/VersionServedResponseHeader' sunset: $ref: '#/components/headers/SunsetHeader' '400': $ref: '#/components/responses/400' '401': $ref: '#/components/responses/401' '403': $ref: '#/components/responses/403' '404': $ref: '#/components/responses/404' '500': $ref: '#/components/responses/500' summary: Get a single asset by ID - Org scope (Early Access) tags: - Inventory Assets x-snyk-api-lifecycle: released x-snyk-api-releases: - 2024-10-15~beta x-snyk-api-resource: asset x-snyk-api-stability: beta x-snyk-api-version: 2024-10-15~beta x-stability-level: beta patch: description: 'Partially updates an asset''s attributes within an org context. Supports updating class, labels (add/remove), and tags (add/remove). #### Required permissions - `Edit Organization (org.edit)`' operationId: updateAssetOrg parameters: - description: The unique identifier of the organization in: path name: org_id required: true schema: format: uuid type: string - description: The unique identifier of the asset in: path name: asset_id required: true schema: format: uuid type: string - description: The requested API version in: query name: version schema: example: '2024-10-15' pattern: ^\d{4}-\d{2}-\d{2}$ type: string requestBody: content: application/vnd.api+json: schema: $ref: '#/components/schemas/AssetPatchRequestBody' required: true responses: '200': content: application/vnd.api+json: schema: additionalProperties: false properties: data: $ref: '#/components/schemas/PolymorphicAssetData' jsonapi: $ref: '#/components/schemas/JsonApiVersion' links: description: Self-referencing link properties: self: description: Link to the current resource format: uri type: string required: - self type: object required: - data type: object description: Asset updated successfully headers: deprecation: $ref: '#/components/headers/DeprecationHeader' snyk-request-id: $ref: '#/components/headers/RequestIdResponseHeader' snyk-version-lifecycle-stage: $ref: '#/components/headers/VersionStageResponseHeader' snyk-version-requested: $ref: '#/components/headers/VersionRequestedResponseHeader' snyk-version-served: $ref: '#/components/headers/VersionServedResponseHeader' sunset: $ref: '#/components/headers/SunsetHeader' '400': $ref: '#/components/responses/400' '401': $ref: '#/components/responses/401' '403': $ref: '#/components/responses/403' '404': $ref: '#/components/responses/404' '500': $ref: '#/components/responses/500' summary: Update asset attributes - Org scope (Early Access) tags: - Inventory Assets x-snyk-api-lifecycle: released x-snyk-api-releases: - 2024-10-15~beta x-snyk-api-resource: asset x-snyk-api-stability: beta x-snyk-api-version: 2024-10-15~beta x-stability-level: beta /orgs/{org_id}/inventory/assets/{asset_id}/relationships/projects: get: description: 'Retrieves a paginated list of Snyk projects linked to this asset with full attributes. Returns the `id`, `type`, and `attributes` of each related project. Scoped to the specified organization. #### Required permissions - `View Organization (org.read)`' operationId: listAssetProjectsOrg parameters: - description: The unique identifier of the organization in: path name: org_id required: true schema: format: uuid type: string - description: The unique identifier of the asset in: path name: asset_id required: true schema: format: uuid type: string - description: The requested API version in: query name: version schema: example: '2024-10-15' pattern: ^\d{4}-\d{2}-\d{2}$ type: string - description: Cursor for fetching the next page of results in: query name: starting_after schema: type: string - description: Cursor for fetching the previous page of results in: query name: ending_before schema: type: string - description: Maximum number of results to return per page in: query name: limit schema: default: 10 maximum: 100 minimum: 10 type: integer - description: 'Filter projects by canonical status. - `with`: Returns all projects (canonical attribute is populated). - `only`: Returns only canonical projects (those used for vulnerability counts). - `none`: Returns only non-canonical projects. When omitted, returns all projects without canonical filtering. ' in: query name: canonical schema: enum: - with - only - none type: string - description: 'Filter projects by target ID. When provided, returns only projects that belong to the specified target. When omitted, returns projects from all targets. ' in: query name: target_id schema: format: uuid type: string - $ref: '#/components/parameters/ProjectSortParam' responses: '200': content: application/vnd.api+json: schema: $ref: '#/components/schemas/ProjectRelationshipListResponse' description: Successfully retrieved linked projects headers: deprecation: $ref: '#/components/headers/DeprecationHeader' snyk-request-id: $ref: '#/components/headers/RequestIdResponseHeader' snyk-version-lifecycle-stage: $ref: '#/components/headers/VersionStageResponseHeader' snyk-version-requested: $ref: '#/components/headers/VersionRequestedResponseHeader' snyk-version-served: $ref: '#/components/headers/VersionServedResponseHeader' sunset: $ref: '#/components/headers/SunsetHeader' '400': $ref: '#/components/responses/400' '401': $ref: '#/components/responses/401' '403': $ref: '#/components/responses/403' '404': $ref: '#/components/responses/404' '500': $ref: '#/components/responses/500' summary: List projects for an asset (org scope) (Early Access) tags: - Inventory Assets x-snyk-api-lifecycle: released x-snyk-api-releases: - 2024-10-15~beta x-snyk-api-resource: project x-snyk-api-stability: beta x-snyk-api-version: 2024-10-15~beta x-stability-level: beta /orgs/{org_id}/inventory/assets/{asset_id}/relationships/targets: get: description: 'Retrieves a paginated list of Snyk targets linked to this asset with full attributes. Returns the `id`, `type`, and `attributes` of each related target. Scoped to the specified organization. #### Required permissions - `View Organization (org.read)`' operationId: listAssetTargetsOrg parameters: - description: The unique identifier of the organization in: path name: org_id required: true schema: format: uuid type: string - description: The unique identifier of the asset in: path name: asset_id required: true schema: format: uuid type: string - description: The requested API version in: query name: version schema: example: '2024-10-15' pattern: ^\d{4}-\d{2}-\d{2}$ type: string - description: Cursor for fetching the next page of results in: query name: starting_after schema: type: string - description: Cursor for fetching the previous page of results in: query name: ending_before schema: type: string - description: Maximum number of results to return per page in: query name: limit schema: default: 10 maximum: 100 minimum: 10 type: integer responses: '200': content: application/vnd.api+json: schema: $ref: '#/components/schemas/TargetRelationshipListResponse' description: Successfully retrieved linked targets headers: deprecation: $ref: '#/components/headers/DeprecationHeader' snyk-request-id: $ref: '#/components/headers/RequestIdResponseHeader' snyk-version-lifecycle-stage: $ref: '#/components/headers/VersionStageResponseHeader' snyk-version-requested: $ref: '#/components/headers/VersionRequestedResponseHeader' snyk-version-served: $ref: '#/components/headers/VersionServedResponseHeader' sunset: $ref: '#/components/headers/SunsetHeader' '400': $ref: '#/components/responses/400' '401': $ref: '#/components/responses/401' '403': $ref: '#/components/responses/403' '404': $ref: '#/components/responses/404' '500': $ref: '#/components/responses/500' summary: List targets for an asset (org scope) (Early Access) tags: - Inventory Assets x-snyk-api-lifecycle: released x-snyk-api-releases: - 2024-10-15~beta x-snyk-api-resource: target x-snyk-api-stability: beta x-snyk-api-version: 2024-10-15~beta x-stability-level: beta /tenants/{tenant_id}/inventory/assets: get: description: 'Retrieves a polymorphic list of all asset types for a given tenant. The response includes different asset types (containers, container images, etc.) in a single unified response following the JSON:API specification. This endpoint supports both simple listing and synchronous search with filtering, sorting, and cursor-based pagination through query parameters. #### Required permissions - `View Tenant Details (tenant.read)`' operationId: listAssetsTenant parameters: - description: The unique identifier of the tenant in: path name: tenant_id required: true schema: format: uuid type: string - description: The requested API version in: query name: version schema: example: '2024-10-15' pattern: ^\d{4}-\d{2}-\d{2}$ type: string - $ref: '#/components/parameters/RsqlFilter' - description: 'Comma-separated sort fields. Prefix with `-` for descending order. **Supported fields:** - `created_at` - Asset creation timestamp - `updated_at` - Asset last update timestamp - `type` - Asset type (container_images) - `class` - Asset class - `risk_score` - Asset risk score (max across project sources) - `issues` - Issue counts by severity (critical, high, medium, low) - `built_at` - Image build timestamp (container images only) - `last_scan` - Last scan timestamp ' example: -created_at in: query name: sort schema: type: string - description: Number of results to return per page in: query name: limit schema: default: 10 maximum: 100 minimum: 10 type: integer - description: Cursor for fetching the next page of results example: v1.MTIzNDU2Nzg5MHxhYmNkZWY= in: query name: starting_after schema: type: string - description: Cursor for fetching the previous page of results example: v1.MTIzNDU2Nzg5MHxhYmNkZWY= in: query name: ending_before schema: type: string - $ref: '#/components/parameters/SparseFieldsets' - $ref: '#/components/parameters/MetaCount' responses: '200': content: application/vnd.api+json: schema: $ref: '#/components/schemas/AssetListResponse' description: Successful response with a polymorphic list of assets headers: deprecation: $ref: '#/components/headers/DeprecationHeader' snyk-request-id: $ref: '#/components/headers/RequestIdResponseHeader' snyk-version-lifecycle-stage: $ref: '#/components/headers/VersionStageResponseHeader' snyk-version-requested: $ref: '#/components/headers/VersionRequestedResponseHeader' snyk-version-served: $ref: '#/components/headers/VersionServedResponseHeader' sunset: $ref: '#/components/headers/SunsetHeader' '400': $ref: '#/components/responses/400' '401': $ref: '#/components/responses/401' '403': $ref: '#/components/responses/403' '500': $ref: '#/components/responses/500' summary: List or search all assets (synchronous) (Early Access) tags: - Inventory Assets x-snyk-api-lifecycle: released x-snyk-api-releases: - 2024-10-15~beta x-snyk-api-resource: asset x-snyk-api-stability: beta x-snyk-api-version: 2024-10-15~beta x-stability-level: beta patch: description: "Partially updates multiple assets in a single request. \nMaximum of 100 assets can be updated per request.\nThe operation is transactional - all updates succeed or all fail.\nSupports updating class, labels (add/remove), and tags (add/remove).\n\n#### Required permissions\n\n- `Edit Tenant Details (tenant.edit)`" operationId: updateAssetsBulkTenant parameters: - description: The unique identifier of the tenant in: path name: tenant_id required: true schema: format: uuid type: string - description: The requested API version in: query name: version schema: example: '2024-10-15' pattern: ^\d{4}-\d{2}-\d{2}$ type: string requestBody: content: application/vnd.api+json: schema: $ref: '#/components/schemas/AssetBulkPatchRequestBody' required: true responses: '204': description: Assets updated successfully headers: deprecation: $ref: '#/components/headers/DeprecationHeader' snyk-request-id: $ref: '#/components/headers/RequestIdResponseHeader' snyk-version-lifecycle-stage: $ref: '#/components/headers/VersionStageResponseHeader' snyk-version-requested: $ref: '#/components/headers/VersionRequestedResponseHeader' snyk-version-served: $ref: '#/components/headers/VersionServedResponseHeader' sunset: $ref: '#/components/headers/SunsetHeader' '400': $ref: '#/components/responses/400' '401': $ref: '#/components/responses/401' '403': $ref: '#/components/responses/403' '404': $ref: '#/components/responses/404' '500': $ref: '#/components/responses/500' summary: Bulk update asset attributes (Early Access) tags: - Inventory Assets x-snyk-api-lifecycle: released x-snyk-api-releases: - 2024-10-15~beta x-snyk-api-resource: asset x-snyk-api-stability: beta x-snyk-api-version: 2024-10-15~beta x-stability-level: beta /tenants/{tenant_id}/inventory/assets/filters: get: description: 'Returns a list of valid field names that can be used for filtering assets using RSQL. Each field includes its name, data type, and which asset types it applies to. #### Required permissions - `View Tenant Details (tenant.read)`' operationId: getFilterFieldsTenant parameters: - description: The unique identifier of the tenant in: path name: tenant_id required: true schema: format: uuid type: string - description: The requested API version in: query name: version schema: example: '2024-10-15' pattern: ^\d{4}-\d{2}-\d{2}$ type: string - description: Comma-separated list of asset types to filter the available filter fields example: container_images in: query name: asset_types schema: type: string - description: Number of results to return in: query name: limit schema: default: 10 maximum: 100 minimum: 10 type: integer - description: Cursor for fetching the next page of results in: query name: starting_after schema: type: string - description: Cursor for fetching the previous page of results in: query name: ending_before schema: type: string responses: '200': content: application/vnd.api+json: schema: $ref: '#/components/schemas/FilterFieldsResponse' description: List of available filter fields headers: deprecation: $ref: '#/components/headers/DeprecationHeader' snyk-request-id: $ref: '#/components/headers/RequestIdResponseHeader' snyk-version-lifecycle-stage: $ref: '#/components/headers/VersionStageResponseHeader' snyk-version-requested: $ref: '#/components/headers/VersionRequestedResponseHeader' snyk-version-served: $ref: '#/components/headers/VersionServedResponseHeader' sunset: $ref: '#/components/headers/SunsetHeader' '400': $ref: '#/components/responses/400' '401': $ref: '#/components/responses/401' '403': $ref: '#/components/responses/403' '500': $ref: '#/components/responses/500' summary: Get available filter fields (Early Access) tags: - Inventory Assets x-snyk-api-lifecycle: released x-snyk-api-releases: - 2024-10-15~beta x-snyk-api-resource: asset x-snyk-api-stability: beta x-snyk-api-version: 2024-10-15~beta x-stability-level: beta /tenants/{tenant_id}/inventory/assets/filters/{filter_id}/values: get: description: 'Returns a list of distinct values for a specific filter field. Useful for building autocomplete functionality in filter UIs. Use the UUID from the filter fields list endpoint to identify which field to query. For object filter values, both the keys and values are returned. #### Required permissions - `View Tenant Details (tenant.read)`' operationId: getFilterValuesTenant parameters: - description: The unique identifier of the tenant in: path name: tenant_id required: true schema: format: uuid type: string - description: The requested API version in: query name: version schema: example: '2024-10-15' pattern: ^\d{4}-\d{2}-\d{2}$ type: string - description: The UUID of the filter field to get values for (from the filter fields list endpoint) example: 3fa85f64-5717-4562-b3fc-2c963f66afa6 in: path name: filter_id required: true schema: format: uuid type: string - description: Full text search term to filter the list of values. If keys_only is true, this will filter the keys of the object filter values. If key is provided, this will filter the value for the specific key of the object filter values. example: prod in: query name: q schema: maxLength: 100 type: string - description: Number of results to return in: query name: limit schema: default: 10 maximum: 100 minimum: 10 type: integer - description: Cursor for fetching the next page of results in: query name: starting_after schema: type: string - description: Cursor for fetching the previous page of results in: query name: ending_before schema: type: string - description: Return only the keys of the object filter values in: query name: keys_only schema: type: boolean - description: Return only the value for a specific key of the object filter values in: query name: key schema: type: string responses: '200': content: application/vnd.api+json: schema: $ref: '#/components/schemas/FilterValuesResponse' description: List of filter values headers: deprecation: $ref: '#/components/headers/DeprecationHeader' snyk-request-id: $ref: '#/components/headers/RequestIdResponseHeader' snyk-version-lifecycle-stage: $ref: '#/components/headers/VersionStageResponseHeader' snyk-version-requested: $ref: '#/components/headers/VersionRequestedResponseHeader' snyk-version-served: $ref: '#/components/headers/VersionServedResponseHeader' sunset: $ref: '#/components/headers/SunsetHeader' '400': $ref: '#/components/responses/400' '401': $ref: '#/components/responses/401' '403': $ref: '#/components/responses/403' '404': $ref: '#/components/responses/404' '500': $ref: '#/components/responses/500' summary: Get filter value suggestions (autocomplete) (Early Access) tags: - Inventory Assets x-snyk-api-lifecycle: released x-snyk-api-releases: - 2024-10-15~beta x-snyk-api-resource: asset x-snyk-api-stability: beta x-snyk-api-version: 2024-10-15~beta x-stability-level: beta /tenants/{tenant_id}/inventory/assets/groups: get: description: 'Returns a list of valid group field names that can be used for grouping assets. Each field includes its name, data type, and which asset types it applies to. #### Required permissions - `View Tenant Details (tenant.read)`' operationId: getGroupFieldsTenant parameters: - description: The unique identifier of the tenant in: path name: tenant_id required: true schema: format: uuid type: string - description: The requested API version in: query name: version schema: example: '2024-10-15' pattern: ^\d{4}-\d{2}-\d{2}$ type: string - description: Comma-separated list of asset types to filter the available group fields example: container_images in: query name: asset_types schema: type: string - description: Number of results to return in: query name: limit schema: default: 10 maximum: 100 minimum: 10 type: integer - description: Cursor for fetching the next page of results in: query name: starting_after schema: type: string - description: Cursor for fetching the previous page of results in: query name: ending_before schema: type: string responses: '200': content: application/vnd.api+json: schema: $ref: '#/components/schemas/GroupFieldsResponse' description: List of available group fields headers: deprecation: $ref: '#/components/headers/DeprecationHeader' snyk-request-id: $ref: '#/components/headers/RequestIdResponseHeader' snyk-version-lifecycle-stage: $ref: '#/components/headers/VersionStageResponseHeader' snyk-version-requested: $ref: '#/components/headers/VersionRequestedResponseHeader' snyk-version-served: $ref: '#/components/headers/VersionServedResponseHeader' sunset: $ref: '#/components/headers/SunsetHeader' '400': $ref: '#/components/responses/400' '401': $ref: '#/components/responses/401' '403': $ref: '#/components/responses/403' '500': $ref: '#/components/responses/500' summary: Get available group fields (Early Access) tags: - Inventory Assets x-snyk-api-lifecycle: released x-snyk-api-releases: - 2024-10-15~beta x-snyk-api-resource: asset x-snyk-api-stability: beta x-snyk-api-version: 2024-10-15~beta x-stability-level: beta /tenants/{tenant_id}/inventory/assets/groups/{group_field_id}/values: get: description: 'Returns aggregated values for a specific group field id, showing the count of assets for each distinct value. Use the UUID from the group fields list endpoint to identify which field to query. #### Required permissions - `View Tenant Details (tenant.read)`' operationId: getGroupValuesTenant parameters: - description: The unique identifier of the tenant in: path name: tenant_id required: true schema: format: uuid type: string - description: The requested API version in: query name: version schema: example: '2024-10-15' pattern: ^\d{4}-\d{2}-\d{2}$ type: string - description: The UUID of the group field to get values for (from the group fields list endpoint) example: 3fa85f64-5717-4562-b3fc-2c963f66afa6 in: path name: group_field_id required: true schema: format: uuid type: string - description: Comma-separated list of asset types to filter the aggregation example: container_images in: query name: asset_types schema: type: string - $ref: '#/components/parameters/RsqlFilterGroupValues' - $ref: '#/components/parameters/SortGroupValues' - description: Number of results to return in: query name: limit schema: default: 10 maximum: 100 minimum: 10 type: integer - description: Cursor for fetching the next page of results in: query name: starting_after schema: type: string - description: Cursor for fetching the previous page of results in: query name: ending_before schema: type: string - $ref: '#/components/parameters/MetaFieldsGroupValues' - $ref: '#/components/parameters/AggregateGroupValues' responses: '200': content: application/vnd.api+json: schema: $ref: '#/components/schemas/GroupValuesResponse' description: List of group values with aggregated metadata headers: deprecation: $ref: '#/components/headers/DeprecationHeader' snyk-request-id: $ref: '#/components/headers/RequestIdResponseHeader' snyk-version-lifecycle-stage: $ref: '#/components/headers/VersionStageResponseHeader' snyk-version-requested: $ref: '#/components/headers/VersionRequestedResponseHeader' snyk-version-served: $ref: '#/components/headers/VersionServedResponseHeader' sunset: $ref: '#/components/headers/SunsetHeader' '400': $ref: '#/components/responses/400' '401': $ref: '#/components/responses/401' '403': $ref: '#/components/responses/403' '404': $ref: '#/components/responses/404' '500': $ref: '#/components/responses/500' summary: Get group value aggregation (Early Access) tags: - Inventory Assets x-snyk-api-lifecycle: released x-snyk-api-releases: - 2024-10-15~beta x-snyk-api-resource: asset x-snyk-api-stability: beta x-snyk-api-version: 2024-10-15~beta x-stability-level: beta /tenants/{tenant_id}/inventory/assets/searches: post: description: 'Initiates an asynchronous search for assets and returns a redirect to the search results endpoint #### Required permissions - `View Tenant Details (tenant.read)`' operationId: createAssetSearchTenant parameters: - description: The unique identifier of the tenant in: path name: tenant_id required: true schema: format: uuid type: string - description: The requested API version in: query name: version schema: example: '2024-10-15' pattern: ^\d{4}-\d{2}-\d{2}$ type: string requestBody: content: application/vnd.api+json: schema: $ref: '#/components/schemas/CreateSearchRequestBody' responses: '302': content: application/vnd.api+json: schema: additionalProperties: false properties: jsonapi: additionalProperties: false properties: version: type: string type: object type: object description: Found - Redirects to search results endpoint headers: deprecation: $ref: '#/components/headers/DeprecationHeader' location: description: URL to retrieve search results schema: format: uri type: string snyk-request-id: $ref: '#/components/headers/RequestIdResponseHeader' snyk-version-lifecycle-stage: $ref: '#/components/headers/VersionStageResponseHeader' snyk-version-requested: $ref: '#/components/headers/VersionRequestedResponseHeader' snyk-version-served: $ref: '#/components/headers/VersionServedResponseHeader' sunset: $ref: '#/components/headers/SunsetHeader' '400': $ref: '#/components/responses/400' '500': $ref: '#/components/responses/500' summary: Create an asset search (asynchronous) (Early Access) tags: - Inventory Assets x-snyk-api-lifecycle: released x-snyk-api-releases: - 2024-10-15~beta x-snyk-api-resource: asset x-snyk-api-stability: beta x-snyk-api-version: 2024-10-15~beta x-stability-level: beta /tenants/{tenant_id}/inventory/assets/searches/{search_id}/results: get: description: 'Gets paginated results for a previously initiated asset search #### Required permissions - `View Tenant Details (tenant.read)`' operationId: getAssetSearchResultsTenant parameters: - description: The unique identifier of the tenant in: path name: tenant_id required: true schema: format: uuid type: string - $ref: '#/components/parameters/SearchId' - description: The requested API version in: query name: version schema: example: '2024-10-15' pattern: ^\d{4}-\d{2}-\d{2}$ type: string - description: 'Comma-separated sort fields. Prefix with `-` for descending order. **Supported fields:** - `created_at` - Asset creation timestamp - `updated_at` - Asset last update timestamp - `type` - Asset type (container_images) - `class` - Asset class - `risk_score` - Asset risk score (max across project sources) - `issues` - Issue counts by severity (critical, high, medium, low) - `built_at` - Image build timestamp (container images only) - `last_scan` - Last scan timestamp ' in: query name: sort schema: example: -created_at type: string - description: Number of results to return in: query name: limit schema: default: 10 maximum: 100 minimum: 10 type: integer - description: Cursor for next page in: query name: starting_after schema: type: string - description: Cursor for previous page in: query name: ending_before schema: type: string - $ref: '#/components/parameters/SparseFieldsets' responses: '200': content: application/vnd.api+json: schema: $ref: '#/components/schemas/AssetListResponse' description: Search results retrieved successfully headers: deprecation: $ref: '#/components/headers/DeprecationHeader' snyk-request-id: $ref: '#/components/headers/RequestIdResponseHeader' snyk-version-lifecycle-stage: $ref: '#/components/headers/VersionStageResponseHeader' snyk-version-requested: $ref: '#/components/headers/VersionRequestedResponseHeader' snyk-version-served: $ref: '#/components/headers/VersionServedResponseHeader' sunset: $ref: '#/components/headers/SunsetHeader' '404': $ref: '#/components/responses/404' '500': $ref: '#/components/responses/500' summary: Retrieve asset search results (asynchronous) (Early Access) tags: - Inventory Assets x-snyk-api-lifecycle: released x-snyk-api-releases: - 2024-10-15~beta x-snyk-api-resource: asset x-snyk-api-stability: beta x-snyk-api-version: 2024-10-15~beta x-stability-level: beta /tenants/{tenant_id}/inventory/assets/{asset_id}: get: description: 'Retrieves a single asset by its unique identifier. The response includes the asset''s details in JSON:API format. The asset type is determined from the database and the appropriate details are returned polymorphically. #### Required permissions - `View Tenant Details (tenant.read)`' operationId: getAssetTenant parameters: - description: The unique identifier of the tenant in: path name: tenant_id required: true schema: format: uuid type: string - description: The unique identifier of the asset in: path name: asset_id required: true schema: format: uuid type: string - description: The requested API version in: query name: version schema: example: '2024-10-15' pattern: ^\d{4}-\d{2}-\d{2}$ type: string - $ref: '#/components/parameters/SparseFieldsets' responses: '200': content: application/vnd.api+json: schema: additionalProperties: false properties: data: $ref: '#/components/schemas/PolymorphicAssetData' links: properties: self: description: Link to the current document format: uri type: string type: object required: - data type: object description: Asset retrieved successfully headers: deprecation: $ref: '#/components/headers/DeprecationHeader' snyk-request-id: $ref: '#/components/headers/RequestIdResponseHeader' snyk-version-lifecycle-stage: $ref: '#/components/headers/VersionStageResponseHeader' snyk-version-requested: $ref: '#/components/headers/VersionRequestedResponseHeader' snyk-version-served: $ref: '#/components/headers/VersionServedResponseHeader' sunset: $ref: '#/components/headers/SunsetHeader' '400': $ref: '#/components/responses/400' '401': $ref: '#/components/responses/401' '403': $ref: '#/components/responses/403' '404': $ref: '#/components/responses/404' '500': $ref: '#/components/responses/500' summary: Get a single asset by ID (Early Access) tags: - Inventory Assets x-snyk-api-lifecycle: released x-snyk-api-releases: - 2024-10-15~beta x-snyk-api-resource: asset x-snyk-api-stability: beta x-snyk-api-version: 2024-10-15~beta x-stability-level: beta patch: description: 'Partially updates an asset''s attributes. Supports updating class, labels (add/remove), and tags (add/remove). At least one attribute must be provided in the request. #### Required permissions - `Edit Tenant Details (tenant.edit)`' operationId: updateAssetTenant parameters: - description: The unique identifier of the tenant in: path name: tenant_id required: true schema: format: uuid type: string - description: The unique identifier of the asset in: path name: asset_id required: true schema: format: uuid type: string - description: The requested API version in: query name: version schema: example: '2024-10-15' pattern: ^\d{4}-\d{2}-\d{2}$ type: string requestBody: content: application/vnd.api+json: schema: $ref: '#/components/schemas/AssetPatchRequestBody' required: true responses: '200': content: application/vnd.api+json: schema: additionalProperties: false properties: data: $ref: '#/components/schemas/PolymorphicAssetData' jsonapi: $ref: '#/components/schemas/JsonApiVersion' links: description: Self-referencing link properties: self: description: Link to the current resource format: uri type: string required: - self type: object required: - data type: object description: Asset updated successfully headers: deprecation: $ref: '#/components/headers/DeprecationHeader' snyk-request-id: $ref: '#/components/headers/RequestIdResponseHeader' snyk-version-lifecycle-stage: $ref: '#/components/headers/VersionStageResponseHeader' snyk-version-requested: $ref: '#/components/headers/VersionRequestedResponseHeader' snyk-version-served: $ref: '#/components/headers/VersionServedResponseHeader' sunset: $ref: '#/components/headers/SunsetHeader' '400': $ref: '#/components/responses/400' '401': $ref: '#/components/responses/401' '403': $ref: '#/components/responses/403' '404': $ref: '#/components/responses/404' '500': $ref: '#/components/responses/500' summary: Update asset attributes (Early Access) tags: - Inventory Assets x-snyk-api-lifecycle: released x-snyk-api-releases: - 2024-10-15~beta x-snyk-api-resource: asset x-snyk-api-stability: beta x-snyk-api-version: 2024-10-15~beta x-stability-level: beta /tenants/{tenant_id}/inventory/assets/{asset_id}/relationships/projects: get: description: 'Retrieves a paginated list of Snyk projects linked to this asset with full attributes. Returns the `id`, `type`, and `attributes` of each related project. #### Required permissions - `View Tenant Details (tenant.read)`' operationId: listAssetProjectsTenant parameters: - description: The unique identifier of the tenant in: path name: tenant_id required: true schema: format: uuid type: string - description: The unique identifier of the asset in: path name: asset_id required: true schema: format: uuid type: string - description: The requested API version in: query name: version schema: example: '2024-10-15' pattern: ^\d{4}-\d{2}-\d{2}$ type: string - description: Cursor for fetching the next page of results in: query name: starting_after schema: type: string - description: Cursor for fetching the previous page of results in: query name: ending_before schema: type: string - description: Maximum number of results to return per page in: query name: limit schema: default: 10 maximum: 100 minimum: 10 type: integer - description: 'Filter projects by canonical status. - `with`: Returns all projects (canonical attribute is populated). - `only`: Returns only canonical projects (those used for vulnerability counts). - `none`: Returns only non-canonical projects. When omitted, returns all projects without canonical filtering. ' in: query name: canonical schema: enum: - with - only - none type: string - description: 'Filter projects by target ID. When provided, returns only projects that belong to the specified target. When omitted, returns projects from all targets. ' in: query name: target_id schema: format: uuid type: string - $ref: '#/components/parameters/ProjectSortParam' responses: '200': content: application/vnd.api+json: schema: $ref: '#/components/schemas/ProjectRelationshipListResponse' description: Successfully retrieved linked projects headers: deprecation: $ref: '#/components/headers/DeprecationHeader' snyk-request-id: $ref: '#/components/headers/RequestIdResponseHeader' snyk-version-lifecycle-stage: $ref: '#/components/headers/VersionStageResponseHeader' snyk-version-requested: $ref: '#/components/headers/VersionRequestedResponseHeader' snyk-version-served: $ref: '#/components/headers/VersionServedResponseHeader' sunset: $ref: '#/components/headers/SunsetHeader' '400': $ref: '#/components/responses/400' '401': $ref: '#/components/responses/401' '403': $ref: '#/components/responses/403' '404': $ref: '#/components/responses/404' '500': $ref: '#/components/responses/500' summary: List projects for an asset (Early Access) tags: - Inventory Assets x-snyk-api-lifecycle: released x-snyk-api-releases: - 2024-10-15~beta x-snyk-api-resource: project x-snyk-api-stability: beta x-snyk-api-version: 2024-10-15~beta x-stability-level: beta /tenants/{tenant_id}/inventory/assets/{asset_id}/relationships/targets: get: description: 'Retrieves a paginated list of Snyk targets linked to this asset with full attributes. Returns the `id`, `type`, and `attributes` of each related target. #### Required permissions - `View Tenant Details (tenant.read)`' operationId: listAssetTargetsTenant parameters: - description: The unique identifier of the tenant in: path name: tenant_id required: true schema: format: uuid type: string - description: The unique identifier of the asset in: path name: asset_id required: true schema: format: uuid type: string - description: The requested API version in: query name: version schema: example: '2024-10-15' pattern: ^\d{4}-\d{2}-\d{2}$ type: string - description: Cursor for fetching the next page of results in: query name: starting_after schema: type: string - description: Cursor for fetching the previous page of results in: query name: ending_before schema: type: string - description: Maximum number of results to return per page in: query name: limit schema: default: 10 maximum: 100 minimum: 10 type: integer responses: '200': content: application/vnd.api+json: schema: $ref: '#/components/schemas/TargetRelationshipListResponse' description: Successfully retrieved linked targets headers: deprecation: $ref: '#/components/headers/DeprecationHeader' snyk-request-id: $ref: '#/components/headers/RequestIdResponseHeader' snyk-version-lifecycle-stage: $ref: '#/components/headers/VersionStageResponseHeader' snyk-version-requested: $ref: '#/components/headers/VersionRequestedResponseHeader' snyk-version-served: $ref: '#/components/headers/VersionServedResponseHeader' sunset: $ref: '#/components/headers/SunsetHeader' '400': $ref: '#/components/responses/400' '401': $ref: '#/components/responses/401' '403': $ref: '#/components/responses/403' '404': $ref: '#/components/responses/404' '500': $ref: '#/components/responses/500' summary: List targets for an asset (Early Access) tags: - Inventory Assets x-snyk-api-lifecycle: released x-snyk-api-releases: - 2024-10-15~beta x-snyk-api-resource: target x-snyk-api-stability: beta x-snyk-api-version: 2024-10-15~beta x-stability-level: beta components: parameters: RsqlFilter: description: RSQL filter expression for filtering results. See schema for full documentation. in: query name: filter schema: $ref: '#/components/schemas/RsqlFilterString' SparseFieldsets: description: 'Sparse fieldsets allow clients to request only specific fields for a given resource type. Use the format `fields[]=field1,field2` where `` is the JSON:API resource type. **Container image fields** (use with `fields[container_images]`): - `class` - Classification of the asset - `registry` - Container registry hostname - `repository` - Repository path - `config_digest` - Image config digest - `distribution_digests` - Distribution digests (manifest/index pairs) - `image_tags` - Distinct image tags across all discovery sources - `built_at` - When the image was built - `size_bytes` - Size of the image in bytes - `author` - Image author - `architecture` - CPU architecture - `os` - Operating system - `variant` - CPU architecture variant - `os_version` - Operating system version - `os_features` - OS features - `config` - Image runtime configuration (OCI config) - `root_fs` - Root filesystem information - `history` - Image build history - `inferred_base_images` - Inferred base images - `teams` - Teams associated with the asset - `labels` - Labels associated with the asset - `tags` - Key-value tags for the asset - `risk_score` - Risk score for the asset - `test_surfaces` - Test surfaces for the asset - `issues` - Issue counts by severity - `created_at` - When the asset was created - `updated_at` - When the asset was last updated - `last_scan` - When the asset was last scanned - `scan_engines` - Scan engines applied to the asset Note: `type` and `id` are always included regardless of field selection. ' example: container_images: registry,repository,config_digest explode: true in: query name: fields schema: additionalProperties: type: string type: object style: deepObject RsqlFilterGroupValues: description: 'RSQL filter expression for filtering which assets are included in aggregation. Supports the same syntax as the main search filter including full text search with the `q` field. See the RsqlFilterString schema for complete documentation. ' in: query name: filter schema: $ref: '#/components/schemas/RsqlFilterString' ProjectSortParam: description: 'Sort field with optional direction prefix. Prefix with `-` for descending order. **Supported fields:** - `snapshot_created_at` - Snapshot creation timestamp - `issues` - Issue counts by severity (critical, high, medium, low) When omitted, results are ordered by `snapshot_created_at` ascending. ' example: -snapshot_created_at in: query name: sort schema: enum: - snapshot_created_at - -snapshot_created_at - issues - -issues type: string SortGroupValues: description: "Comma-separated sort fields for group values. Prefix with `-` for descending order.\nMultiple sort fields are supported (e.g., `-issues,count`).\nDefaults to `count` (ascending) when not specified.\nResults are always tie-broken by `value` for deterministic ordering.\n\nAvailable sort fields:\n - `value` - Sort by the group value string (alphabetical)\n - `count` - Sort by the number of assets in each group\n - `last_seen_at` - Sort by the aggregated last_seen_at timestamp\n - `updated_at` - Sort by the aggregated updated_at timestamp\n - `risk_score` - Sort by the aggregated risk score\n - `built_at` - Sort by the aggregated container image build timestamp\n - `issues` - Sort by issue severity (critical → high → medium → low)\n" example: -count in: query name: sort schema: type: string MetaCount: description: 'Provide summary count in the response meta object when requested. When `with` is provided, the count will be included in the response meta object. When `only` is provided, the count will be included in the response meta object and no data will be returned. ' example: with in: query name: meta_count schema: enum: - with - only type: string AggregateGroupValues: description: 'Per-field aggregate function override for meta fields. All fields default to `last` when not specified. `max`/`min` compute the SQL MAX/MIN across all assets in the group (scalar fields only). `first`/`last` returns the value from the single asset with the earliest/latest updated_at in the group (all field types). `sum` computes the total across all assets (numeric fields, issues, labels, tags). ' explode: true in: query name: aggregate schema: properties: built_at: default: last enum: - max - min - first - last type: string issues: default: last enum: - first - last - sum type: string labels: default: last enum: - first - last - sum type: string last_seen_at: default: last enum: - max - min - first - last type: string risk_score: default: last enum: - max - min - first - last - sum type: string tags: default: last enum: - first - last - sum type: string updated_at: default: last enum: - max - min - first - last type: string type: object style: deepObject MetaFieldsGroupValues: description: "Meta fields to include in the response. Multiple fields can be specified.\n\nAvailable fields:\n - `count` - Number of assets with this value\n - `last_seen_at` - Aggregated last_seen_at timestamp (default aggregation: last)\n - `updated_at` - Aggregated updated_at timestamp (default aggregation: last)\n - `risk_score` - Aggregated risk score from discovery sources (default aggregation: last)\n - `issues` - Aggregated issue counts (critical, high, medium, low, total) (default aggregation: last)\n - `labels` - Labels across assets (default aggregation: last)\n - `tags` - Tags across assets (default aggregation: last)\n - `built_at` - Aggregated container image build timestamp (default aggregation: last)\n - `all` - Include all available meta fields\n\nAll fields default to the `last` aggregation function, which returns the value\nfrom the asset with the most recent updated_at in the group. Use the `aggregate`\nparameter to override the aggregation function per field.\n\nIf not specified, the meta object is not included in the response.\n\nNote: Requesting meta fields may impact response time as aggregations\nrequire additional computation.\n" example: - count - risk_score - issues - labels explode: false in: query name: meta_fields schema: items: enum: - count - last_seen_at - updated_at - risk_score - issues - labels - tags - built_at - all type: string type: array style: form SearchId: description: The unique identifier of the search operation in: path name: search_id required: true schema: format: uuid type: string schemas: TargetRelationshipAttributes: additionalProperties: false description: Attributes of the target resource properties: imported_at: description: Timestamp when the target was imported format: date-time type: string integration_id: description: The ID of the integration associated with this target format: uuid type: string target_file: description: Path to the manifest file type: string target_origin: description: Origin of the target (e.g., github, gitlab) type: string target_ref: description: The target reference (e.g., branch name) type: string type: object ProjectRelationshipListResponse: additionalProperties: false description: Response containing linked projects with full attributes properties: data: items: $ref: '#/components/schemas/ProjectRelationshipData' type: array jsonapi: $ref: '#/components/schemas/JsonApiVersion' links: $ref: '#/components/schemas/RelationshipLinks' required: - data - jsonapi - links type: object ActualVersion: description: Resolved API version example: '2026-03-25' pattern: ^((([0-9]{4})-([0-1][0-9]))-((3[01])|(0[1-9])|([12][0-9]))(~(wip|work-in-progress|experimental|beta))?)$ type: string JsonApiVersion: properties: version: description: JSON:API specification version example: '1.0' type: string required: - version type: object BaseImageRemediation: description: Base image upgrade recommendation data from container scanning properties: base_image: $ref: '#/components/schemas/ImageInfo' base_image_name: description: The name of the current base image type: string base_image_outdated: description: Whether the current base image is outdated type: boolean code: description: Remediation code identifying the type of recommendation type: string distro_alert: description: Alert message about the base image distribution type: string proposed_base_images: $ref: '#/components/schemas/ProposedBaseImages' required: - code - base_image_name type: object History: description: A single entry in the container image build history properties: author: description: Author of the layer maxLength: 128 nullable: true type: string comment: description: Comment for the layer maxLength: 4096 nullable: true type: string created_at: description: When the layer was created format: date-time nullable: true type: string created_by: description: Command that created the layer maxLength: 4096 nullable: true type: string empty_layer: description: Whether this is an empty layer (metadata-only) nullable: true type: boolean type: object PaginationLinks: description: Cursor-based pagination links properties: first: description: Link to the first page format: uri type: string next: description: Link to the next page (if available) format: uri type: string prev: description: Link to the previous page (if available) format: uri type: string self: description: Link to the current page format: uri type: string type: object AssetListResponse: additionalProperties: false properties: data: description: Polymorphic array of asset objects of different types items: $ref: '#/components/schemas/PolymorphicAssetData' type: array links: $ref: '#/components/schemas/PaginationLinks' meta: description: Metadata about the response properties: count: description: Total number of assets matching the query type: integer type: object type: object LabelsReplace: description: 'Full replacement of all labels on the asset. All existing labels will be removed and replaced with the provided labels. ' items: maxLength: 40 minLength: 1 pattern: ^[a-zA-Z0-9_/:?#@&=+%~-]+$ type: string maxItems: 50 type: array FilterValuesResponse: additionalProperties: false properties: data: description: List of filter values items: $ref: '#/components/schemas/FilterValueData' type: array links: description: Self-referencing link properties: self: description: Link to the current resource format: uri type: string required: - self type: object required: - data - links type: object AssetBaseAttributes: description: Asset-level fields shared across all asset types. properties: class: $ref: '#/components/schemas/ClassResponse' created_at: description: When the asset was created format: date-time type: string issues: $ref: '#/components/schemas/IssueCounts' labels: description: Labels associated with the asset items: maxLength: 40 type: string maxItems: 50 type: array last_scan: format: date-time type: string last_seen_at: description: 'When the asset was last seen (i.e., confirmed to exist) via any discovery source. Updated on every upsert operation. ' format: date-time type: string risk_score: description: Risk score for the asset format: int32 type: integer scan_engines: description: Scan engines applied to the asset items: $ref: '#/components/schemas/ScanEngine' maxItems: 50 type: array tags: additionalProperties: maxLength: 40 type: string description: Key-value tags for the asset maxProperties: 100 type: object teams: description: Teams associated with the asset items: maxLength: 64 type: string maxItems: 20 type: array test_surfaces: description: Test surfaces for the asset items: type: string maxItems: 100 type: array updated_at: description: When the asset was last updated format: date-time type: string type: object Architecture: description: CPU architecture for container images (Go GOARCH conventions) enum: - '386' - amd64 - arm - arm64 - loong64 - mips - mips64 - mips64le - mipsle - ppc64 - ppc64le - riscv64 - s390x - wasm - other type: string QueryVersion: description: Requested API version example: '2026-03-25' pattern: ^(wip|work-in-progress|experimental|beta|((([0-9]{4})-([0-1][0-9]))-((3[01])|(0[1-9])|([12][0-9]))(~(wip|work-in-progress|experimental|beta))?))$ type: string GroupFieldsResponse: additionalProperties: false properties: data: description: List of available group fields items: $ref: '#/components/schemas/GroupFieldData' type: array links: description: Self-referencing link properties: self: description: Link to the current resource format: uri type: string required: - self type: object required: - data - links type: object GroupValueIssuesAggregation: additionalProperties: false description: 'Aggregated issue counts from discovery sources across all assets in this group. Counts are summed from all project-type discovery sources. ' properties: critical: description: Total count of critical severity issues minimum: 0 type: integer high: description: Total count of high severity issues minimum: 0 type: integer low: description: Total count of low severity issues minimum: 0 type: integer medium: description: Total count of medium severity issues minimum: 0 type: integer total: description: Sum of all issue counts (critical + high + medium + low) minimum: 0 type: integer type: object DistributionDigest: description: Distribution digest information for a container image properties: index_digest: description: Index digest maxLength: 256 type: string manifest_digest: description: Manifest digest maxLength: 256 type: string type: object AssetPatchData: additionalProperties: false properties: attributes: $ref: '#/components/schemas/AssetPatchAttributes' id: description: The unique identifier of the asset format: uuid type: string type: description: The JSON:API resource type enum: - container_images type: string required: - type - id - attributes type: object ProjectRelationshipAttributes: additionalProperties: false description: Attributes of the project resource properties: base_image_remediation: $ref: '#/components/schemas/BaseImageRemediation' is_canonical: description: 'Indicates whether this project is the canonical project for its target_file. Projects are grouped by target_file, and within each group, the project with the most recent snapshot_created_at timestamp is marked as canonical. This canonical project is used for computing vulnerability counts for the asset. When target_file is empty, each project is its own group (always canonical). ' type: boolean issues: description: Issue counts by severity properties: critical: description: Count of critical severity issues type: integer high: description: Count of high severity issues type: integer low: description: Count of low severity issues type: integer medium: description: Count of medium severity issues type: integer required: - critical - high - medium - low type: object monitor_created_at: description: Timestamp when the monitor was created format: date-time type: string monitor_id: description: The ID of the monitor associated with this project format: uuid type: string org_id: description: The ID of the organization that owns this project format: uuid type: string project_type: description: Type of the project (e.g., npm, maven) enum: - rubygems - composer - sbt - maven - gomodules - poetry - cocoapods - pipenv - pnpm - pub - yarn - yarn-workspace - paket - pip - unmanaged - gradle - nuget - cpp - npm - conan - govendor - hex - golangdep - cargo - swift - golang - secrets - iac - uv - sast - armconfig - helmconfig - terraformconfig - cloudformationconfig - k8sconfig - cloudconfig - dockerfile - deb - apk - linux - rpm type: string risk_score: description: The calculated risk score for this project type: integer snapshot_created_at: description: Timestamp when the snapshot was created format: date-time type: string snapshot_id: description: The ID of the snapshot format: uuid type: string target_file: description: Path to the manifest file type: string target_id: description: The ID of the target this project belongs to format: uuid type: string target_origin: description: Origin of the target (e.g., github, gitlab) type: string target_ref: description: The target reference (e.g., branch name) type: string type: object ProjectRelationshipData: additionalProperties: false description: Full project resource with attributes properties: attributes: $ref: '#/components/schemas/ProjectRelationshipAttributes' id: description: The unique identifier of the project example: 11111111-2222-3333-4444-555555555555 format: uuid type: string type: description: The JSON:API resource type enum: - project example: project type: string required: - id - type type: object FilterFieldData: additionalProperties: false properties: attributes: $ref: '#/components/schemas/FilterFieldAttributes' id: description: UUID identifier for the filter field format: uuid type: string relationships: description: Relationships for this filter field (only present for fields supporting autocomplete) properties: values: properties: links: properties: related: description: Relative path to get autocomplete values for this filter field format: uri-reference type: string required: - related type: object type: object type: object type: description: The JSON:API resource type enum: - filter_fields type: string required: - type - id type: object PolymorphicAssetData: description: JSON:API data for any asset type (polymorphic) properties: attributes: oneOf: - $ref: '#/components/schemas/ContainerImageAttributesResponse' id: description: The unique identifier of the asset format: uuid type: string links: description: Self-referencing link properties: self: description: Link to the current resource format: uri type: string required: - self type: object relationships: description: JSON:API relationships linking to related resources properties: projects: description: Link to the asset's related projects properties: links: properties: related: description: URL to the related projects endpoint type: string type: object type: object targets: description: Link to the asset's related targets properties: links: properties: related: description: URL to the related targets endpoint type: string type: object type: object type: object type: description: The JSON:API resource type enum: - container_images type: string required: - type - id type: object ImageConfig: description: 'Runtime configuration for the container (OCI image config). Contains entrypoint, environment, exposed ports, volumes, labels, etc. ' properties: args_escaped: description: Whether args are escaped (Windows) nullable: true type: boolean cmd: description: Command to run items: maxLength: 1024 type: string maxItems: 500 nullable: true type: array entry_point: description: Entry point command items: maxLength: 1024 type: string maxItems: 500 nullable: true type: array env: description: Environment variables items: maxLength: 1024 type: string maxItems: 500 nullable: true type: array exposed_ports: description: 'Exposed ports in format "port/protocol" (e.g., "8080/tcp", "53/udp"). Port is 0-65535, protocol is tcp or udp. ' items: maxLength: 64 pattern: ^\d{1,5}/(tcp|udp)$ type: string maxItems: 500 nullable: true type: array labels: additionalProperties: maxLength: 1024 type: string description: Key-value labels from the image configuration type: object stop_signal: description: Signal to stop the container maxLength: 128 nullable: true type: string user: description: User that runs the container maxLength: 1024 nullable: true type: string volumes: description: Volume mount points items: maxLength: 1024 type: string maxItems: 500 nullable: true type: array working_dir: description: Working directory maxLength: 1024 nullable: true type: string type: object AssetPatchAttributes: additionalProperties: false description: 'Attributes that can be updated via PATCH. At least one attribute must be provided. Labels and tags support add/remove operations for atomic modifications. ' properties: class: additionalProperties: false anyOf: - required: - display_name - required: - rank description: Asset classification for input. Either display_name or rank must be provided. properties: display_name: enum: - A - B - C - D type: string locked: type: boolean rank: enum: - 1 - 2 - 3 - 4 type: integer type: object labels: oneOf: - $ref: '#/components/schemas/LabelsUpdate' - $ref: '#/components/schemas/LabelsReplace' tags: oneOf: - $ref: '#/components/schemas/TagsUpdate' - $ref: '#/components/schemas/TagsReplace' type: object LabelsUpdate: additionalProperties: false description: 'Updates the asset''s labels by adding or removing label values. At least one of ''add'' or ''remove'' must be provided. ' minProperties: 1 properties: add: description: 'Labels to add to the asset. Labels must be 1-40 characters and contain only alphanumeric characters and _/:?#@&=+%~- symbols. ' items: maxLength: 40 minLength: 1 pattern: ^[a-zA-Z0-9_/:?#@&=+%~-]+$ type: string maxItems: 50 type: array remove: description: 'Labels to remove from the asset. Labels must be 1-40 characters and contain only alphanumeric characters and _/:?#@&=+%~- symbols ' items: maxLength: 40 minLength: 1 pattern: ^[a-zA-Z0-9_/:?#@&=+%~-]+$ type: string maxItems: 50 type: array type: object GroupFieldAttributes: additionalProperties: false properties: asset_types: description: List of asset types this field applies to items: type: string type: array name: description: The field name used for grouping (e.g., "class", "registry") type: string required: - name - asset_types type: object ErrorDocument: additionalProperties: false example: errors: - detail: Permission denied for this resource status: '403' jsonapi: version: '1.0' properties: errors: example: - detail: Permission denied for this resource status: '403' items: additionalProperties: false example: detail: Not Found status: '404' properties: code: description: An application-specific error code, expressed as a string value. example: entity-not-found type: string detail: description: A human-readable explanation specific to this occurrence of the problem. example: 'The request was missing these required fields: ...' type: string id: description: A unique identifier for this particular occurrence of the problem. example: f16c31b5-6129-4571-add8-d589da9be524 format: uuid type: string links: additionalProperties: false description: A link that leads to further details about this particular occurrance of the problem. example: about: https://example.com/about_this_error properties: about: example: https://example.com/api/resource oneOf: - description: A string containing the link’s URL. example: https://example.com/api/resource type: string - additionalProperties: false example: href: https://example.com/api/resource properties: href: description: A string containing the link’s URL. example: https://example.com/api/resource type: string meta: additionalProperties: true description: Free-form object that may contain non-standard information. example: key1: value1 key2: sub_key: sub_value key3: - array_value1 - array_value2 type: object required: - href type: object type: object meta: additionalProperties: true example: key: value type: object source: additionalProperties: false example: pointer: /data/attributes properties: parameter: description: A string indicating which URI query parameter caused the error. example: param1 type: string pointer: description: A JSON Pointer [RFC6901] to the associated entity in the request document. example: /data/attributes type: string type: object status: description: The HTTP status code applicable to this problem, expressed as a string value. example: '400' pattern: ^[45]\d\d$ type: string title: description: A short, human-readable summary of the problem that SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization. example: Bad request type: string required: - status - detail type: object minItems: 1 type: array jsonapi: additionalProperties: false example: version: '1.0' properties: version: description: Version of the JSON API specification this server supports. example: '1.0' pattern: ^(0|[1-9]\d*)\.(0|[1-9]\d*)$ type: string required: - version type: object required: - jsonapi - errors type: object GroupValueData: additionalProperties: false properties: attributes: $ref: '#/components/schemas/GroupValueAttributes' id: description: UUID identifier for the group value format: uuid type: string meta: $ref: '#/components/schemas/GroupValueMeta' type: description: The JSON:API resource type enum: - group_values type: string required: - type - id - attributes type: object RootFs: description: 'Root filesystem information with ordered layer diff IDs. Each diff_id is a SHA256 digest of the uncompressed layer content. ' properties: diff_ids: description: Diff IDs for each layer (SHA256 of uncompressed content) items: maxLength: 1024 type: string maxItems: 256 type: array type: description: Root filesystem type (e.g., "layers") maxLength: 128 type: string required: - diff_ids - type type: object TargetRelationshipListResponse: additionalProperties: false description: Response containing linked targets with full attributes properties: data: items: $ref: '#/components/schemas/TargetRelationshipData' type: array jsonapi: $ref: '#/components/schemas/JsonApiVersion' links: $ref: '#/components/schemas/RelationshipLinks' required: - data - jsonapi - links type: object RsqlFilterString: description: 'RSQL filter expression for filtering results. **Supported operators:** - `==` (equal), `!=` (not equal) - `<` or `=lt=` (less than), `>` or `=gt=` (greater than) - `<=` or `=le=` (less than or equal), `>=` or `=ge=` (greater than or equal) - `=in=(val1,val2)` (IN list), `=out=(val1,val2)` (NOT IN list) - `;` or ` and ` (logical AND), `,` or ` or ` (logical OR) - word operators are case-insensitive **Wildcard pattern matching:** Use `*` (asterisk) for flexible string matching with `==` and `!=` operators: - `*value*` - Contains (e.g., `registry==*docker*` matches "docker.io") - `value*` - Starts with (e.g., `registry==docker*` matches "docker.io") - `*value` - Ends with (e.g., `name==*nginx` matches "library/nginx") - `!=*value*` - Does not contain (e.g., `class!=*test*`) Note: Special SQL characters (%, _) are automatically escaped for security. **Quoted values:** Values can optionally be wrapped in single quotes (`''...''`) or double quotes (`"..."`). Quotes are stripped before comparison, so `registry==''docker.io''` is equivalent to `registry==docker.io`. Escaped quotes inside quoted values are supported (e.g., `name=="O\"Reilly"`). Quoting is required when filtering for empty values (see below). **Filtering for empty values:** Use empty quotes (`''''` or `""`) with `==` or `!=` to filter by empty fields: - `registry==''''` - Matches assets where registry is empty - `registry!=''''` - Matches assets where registry has a value **Multi-field substring search:** Use the special `q` field to search across multiple fields simultaneously using case-insensitive substring matching: - `q==` - Searches across all searchable string fields (labels, tags, registry, repository, name, config_digest, manifest_digest, index_digest, image_tag) - Only supports the `==` operator (no wildcards needed - automatically searches for substring matches) - Uses case-insensitive pattern matching (PostgreSQL ILIKE) - Does not support linguistic features like stemming or ranking - Special characters are automatically escaped for security - Can be combined with other filters: `q==nginx;type==container_images` **Supported fields:** Common fields (apply to all asset types): - `q` (string) - Multi-field substring search (see above) - `id` (UUID) - Asset ID - `type` (string) - Type of asset. Allowed values: `container_images` - `class` (string) - Class of asset (e.g., A, B) - `created_at` (timestamp) - Asset creation timestamp (ISO 8601 format) - `updated_at` (timestamp) - Asset last update timestamp (ISO 8601 format) - `labels` (string array) - Asset labels - `tags` (object) - Asset tags. Requires a sub-field (e.g., `tags.env==production`) Container image fields (apply when type is `container_images`): - `registry` (string) - Container image registry (e.g., docker.io) - `repository` (string) - Container image repository path - `name` (string) - Container image name - `config_digest` (string) - Image config digest - `manifest_digest` (string) - Distribution manifest digest - `index_digest` (string) - Distribution index digest - `image_tag` (string) - Image tag from discovery source - `image_labels` (object) - OCI image config labels. Requires a sub-field (e.g., `image_labels.vendor==nginx`) **Examples:** - `q==nginx` - Multi-field substring search for "nginx" - `q==docker.io;type==container_images` - Search "docker.io" substring in container images only - `type==container_images` - Exact match on asset type - `registry==*docker*` - Registry contains "docker" (wildcard) - `created_at>2024-01-01` or `created_at=gt=2024-01-01` - Date comparison - `class==A;created_at=ge=2024-01-01` - AND combination - `labels=in=(production,staging)` - Labels IN list - `tags.env==production` - Tag sub-field filter - `image_labels.vendor==nginx` - Image label sub-field filter - `registry==''docker.io''` - Quoted value (equivalent to `registry==docker.io`) - `registry==''''` - Assets where registry is empty - `registry!=''''` - Assets where registry has a value ' example: type==container_images;created_at>2024-01-01 type: string TagsUpdate: additionalProperties: false description: 'Updates the asset''s tags by adding or removing key-value pairs. Both add and remove can be specified in the same request. If a tag key appears in both add and remove, the request will fail. ' minProperties: 1 properties: add: additionalProperties: maxLength: 40 pattern: ^[a-zA-Z0-9_/:?#@&=+%~-]+$ type: string description: 'Tags to add to the asset (key-value pairs). Tag keys must be 1-30 characters and contain only alphanumeric characters, underscores, and hyphens. Tag values must be up to 40 characters and contain only alphanumeric characters and _/:?#@&=+%~- symbols. ' maxProperties: 100 type: object remove: description: 'Tag keys to remove from the asset. Tag keys must be 1-30 characters and contain only alphanumeric characters, underscores, and hyphens. ' items: maxLength: 30 pattern: ^[a-zA-Z0-9_-]+$ type: string maxItems: 100 type: array type: object AssetPatchRequestBody: additionalProperties: false properties: data: $ref: '#/components/schemas/AssetPatchData' required: - data type: object JsonApiLinks: description: Links for relationship objects within a resource properties: related: description: Link to the related resource(s) format: uri type: string self: description: Link to the relationship itself format: uri type: string type: object TagsReplace: additionalProperties: maxLength: 40 pattern: ^[a-zA-Z0-9_/:?#@&=+%~-]+$ type: string description: 'Full replacement of all tags on the asset. All existing tags will be removed and replaced with the provided tags. ' maxProperties: 100 type: object GroupValuesResponse: additionalProperties: false properties: data: description: List of group values with their aggregated metadata items: $ref: '#/components/schemas/GroupValueData' type: array links: description: Self-referencing link properties: self: description: Link to the current resource format: uri type: string required: - self type: object required: - data - links type: object RelationshipLinks: allOf: - $ref: '#/components/schemas/JsonApiLinks' - $ref: '#/components/schemas/PaginationLinks' description: Links for relationship endpoint responses (combines relationship + pagination links) GroupValueMeta: additionalProperties: false description: 'Computed aggregations across all assets within this group value. Fields are only present when explicitly requested via the `meta_fields` query parameter. If `meta_fields` is not specified, the meta object is omitted from the response. ' properties: built_at: description: 'Aggregated container image build timestamp across all assets in this group. The aggregation function is controlled by the `aggregate[built_at]` parameter (default: last). Null if no assets have a built_at value. ' format: date-time type: string count: description: Number of assets with this value. minimum: 0 type: integer issues: $ref: '#/components/schemas/GroupValueIssuesAggregation' labels: description: 'Unique labels across all assets in this group. Limited to the first 1000 unique labels (alphabetically sorted). Empty array if no assets have labels. ' items: type: string maxItems: 1000 type: array last_seen_at: description: 'Aggregated last_seen_at timestamp across all assets in this group. The aggregation function is controlled by the `aggregate[last_seen_at]` parameter (default: last). Null if no assets have a last_seen_at value. ' format: date-time type: string risk_score: description: 'Aggregated risk_score from discovery sources across all assets in this group. The aggregation function is controlled by the `aggregate[risk_score]` parameter (default: last). Derived from project-type discovery sources. Null if no assets have discovery sources with risk scores. ' minimum: 0 type: integer tags: description: 'Unique tags across all assets in this group. Limited to the first 1000 unique tags (alphabetically sorted). Empty array if no assets have tags. ' items: properties: key: description: The tag key type: string value: description: The tag value type: string type: object maxItems: 1000 type: array updated_at: description: 'Aggregated updated_at timestamp across all assets in this group. The aggregation function is controlled by the `aggregate[updated_at]` parameter (default: last). ' format: date-time type: string type: object ClassResponse: additionalProperties: false description: Asset classification in response properties: display_name: enum: - A - B - C - D type: string locked: default: false type: boolean rank: enum: - 1 - 2 - 3 - 4 type: integer required: - display_name - rank type: object FilterFieldAttributes: additionalProperties: false properties: asset_types: description: List of asset types this field applies to items: enum: - container_images type: string type: array name: description: The field name used in RSQL filters (e.g., "class", "registry") type: string type: description: Data type of the field (string, boolean, datetime, array, object) enum: - string - boolean - datetime - array - object type: string required: - name - type - asset_types type: object FilterFieldsResponse: additionalProperties: false properties: data: description: List of available filter fields items: $ref: '#/components/schemas/FilterFieldData' type: array links: description: Self-referencing link properties: self: description: Link to the current resource format: uri type: string required: - self type: object required: - data - links type: object GroupValueAttributes: additionalProperties: false properties: value: description: The grouped value type: string required: - value type: object IssueCounts: description: Issue counts by severity properties: critical: description: Count of critical severity issues format: int32 minimum: 0 type: integer high: description: Count of high severity issues format: int32 minimum: 0 type: integer low: description: Count of low severity issues format: int32 minimum: 0 type: integer medium: description: Count of medium severity issues format: int32 minimum: 0 type: integer required: - critical - high - medium - low type: object ImageInfo: description: Container image with vulnerability summary properties: issues_by_severity: description: Issue counts by severity properties: critical: type: integer high: type: integer low: type: integer medium: type: integer type: object name: description: Full image name type: string repo: description: Image repository type: string tag: description: Image tag type: string total_issues: description: Total number of issues across all severities type: integer required: - name - repo - tag - total_issues type: object ProposedBaseImages: description: Categorized base image upgrade recommendations properties: alternative_upgrade: items: $ref: '#/components/schemas/ImageInfo' type: array major_upgrade: items: $ref: '#/components/schemas/ImageInfo' type: array minor_upgrade: items: $ref: '#/components/schemas/ImageInfo' type: array type: object AssetBulkPatchRequestBody: additionalProperties: false properties: data: items: $ref: '#/components/schemas/AssetPatchData' maxItems: 100 minItems: 1 type: array required: - data type: object FilterValueData: additionalProperties: false properties: attributes: $ref: '#/components/schemas/FilterValueAttributes' id: description: UUID identifier for the filter value format: uuid type: string type: description: The JSON:API resource type enum: - filter_values type: string required: - type - id type: object GroupFieldData: additionalProperties: false properties: attributes: $ref: '#/components/schemas/GroupFieldAttributes' id: description: UUID identifier for the group field format: uuid type: string relationships: description: Relationships for this group field properties: values: properties: links: properties: related: description: Relative path to get aggregated values for this group field format: uri-reference type: string required: - related type: object type: object type: object type: description: The JSON:API resource type enum: - group_fields type: string required: - type - id type: object ContainerImageAttributesResponse: allOf: - $ref: '#/components/schemas/AssetBaseAttributes' - description: Attributes specific to container image assets. properties: architecture: $ref: '#/components/schemas/Architecture' author: description: Author of the image maxLength: 256 type: string built_at: description: When the image was built format: date-time type: string config: $ref: '#/components/schemas/ImageConfig' config_digest: description: Image config digest maxLength: 256 type: string distribution_digests: description: Distribution digests (manifest/index pairs) items: $ref: '#/components/schemas/DistributionDigest' maxItems: 100 type: array history: description: Image build history items: $ref: '#/components/schemas/History' maxItems: 1000 type: array image_tags: description: Distinct image tags across all discovery sources items: maxLength: 256 type: string maxItems: 20 type: array inferred_base_images: description: Inferred base images items: maxLength: 512 type: string maxItems: 100 type: array os: $ref: '#/components/schemas/OperatingSystem' os_features: description: OS features items: maxLength: 256 type: string maxItems: 100 type: array os_version: description: Operating system version maxLength: 256 type: string registry: description: Container registry hostname maxLength: 256 type: string repository: description: Repository path, e.g. "library/nginx" maxLength: 256 type: string root_fs: $ref: '#/components/schemas/RootFs' size_bytes: description: Size of the image in bytes format: int64 type: integer total_image_tags: description: Total count of distinct image tags across all discovery sources minimum: 0 type: integer variant: description: Variant of the CPU architecture maxLength: 64 type: string type: object FilterValueAttributes: additionalProperties: false properties: key: description: For object-type filters (e.g., tags), the key name. Only present for object-type filter values. type: string value: description: The filter value. For simple filters, this is the value itself. For object-type filters (e.g., tags), this is the value associated with the key. type: string type: object TargetRelationshipData: additionalProperties: false description: Full target resource with attributes properties: attributes: $ref: '#/components/schemas/TargetRelationshipAttributes' id: description: The unique identifier of the target example: 66666666-7777-8888-9999-000000000000 format: uuid type: string type: description: The JSON:API resource type enum: - target example: target type: string required: - id - type type: object CreateSearchRequestBody: additionalProperties: false properties: data: additionalProperties: false properties: attributes: additionalProperties: false properties: filter: $ref: '#/components/schemas/RsqlFilterString' limit: default: 10 description: Number of results to return per page maximum: 100 minimum: 10 type: integer meta_count: description: 'Whether to include the total count of results in the response meta object. When `with` is provided, the count will be included in the response meta object. When `only` is provided, the count will be included in the response meta object and no data will be returned. ' enum: - with - only example: with type: string sort: description: 'Comma-separated sort fields. Prefix with `-` for descending order. **Supported fields:** - `created_at` - Asset creation timestamp - `updated_at` - Asset last update timestamp - `type` - Asset type (container_images) - `class` - Asset class - `risk_score` - Asset risk score (max across project sources) - `issues` - Issue counts by severity (critical, high, medium, low) - `built_at` - Image build timestamp (container images only) - `last_scan` - Last scan timestamp ' example: -created_at type: string type: object type: enum: - searches type: string type: object type: object ScanEngine: description: Scan engine information associated with an asset properties: issues: $ref: '#/components/schemas/IssueCounts' last_seen: description: When the scan engine was last seen format: date-time type: string link: description: Link to the scan engine details format: uri maxLength: 1024 type: string name: description: Name of the scan engine maxLength: 256 type: string type: description: Type of scan engine enum: - sca - sast - container - iac - secrets type: string required: - type - name - last_seen - issues type: object OperatingSystem: description: Operating system for container images (Go GOOS conventions) enum: - aix - android - darwin - dragonfly - freebsd - illumos - ios - js - linux - netbsd - openbsd - plan9 - solaris - wasip1 - windows - other type: string headers: SunsetHeader: description: 'A header containing the date of when the underlying endpoint will be removed. This header is only present if the endpoint has been deprecated. For information purposes only. Returned as a date in the format: YYYY-MM-DD' example: '2021-08-02' schema: format: date type: string VersionRequestedResponseHeader: description: A header containing the version of the endpoint requested by the caller. example: '2026-03-25' schema: $ref: '#/components/schemas/QueryVersion' VersionServedResponseHeader: description: A header containing the version of the endpoint that was served by the API. example: '2026-03-25' schema: $ref: '#/components/schemas/ActualVersion' VersionStageResponseHeader: description: 'A header containing the version stage of the endpoint. This stage describes the guarantees snyk provides surrounding stability of the endpoint. ' schema: enum: - wip - experimental - beta - ga - deprecated - sunset example: ga type: string RequestIdResponseHeader: description: 'A header containing a unique id used for tracking this request. If you are reporting an issue to Snyk it''s very helpful to provide this ID. ' example: 4b58e274-ec62-4fab-917b-1d2c48d6bdef schema: format: uuid type: string DeprecationHeader: description: 'A header containing the deprecation date of the underlying endpoint. For more information, please refer to the deprecation header RFC: https://tools.ietf.org/id/draft-dalal-deprecation-header-01.html ' example: '2021-07-01T00:00:00Z' schema: format: date-time type: string responses: '500': content: application/vnd.api+json: schema: $ref: '#/components/schemas/ErrorDocument' description: 'Internal Server Error: An error was encountered while attempting to process the request.' headers: deprecation: $ref: '#/components/headers/DeprecationHeader' snyk-request-id: $ref: '#/components/headers/RequestIdResponseHeader' snyk-version-lifecycle-stage: $ref: '#/components/headers/VersionStageResponseHeader' snyk-version-requested: $ref: '#/components/headers/VersionRequestedResponseHeader' snyk-version-served: $ref: '#/components/headers/VersionServedResponseHeader' sunset: $ref: '#/components/headers/SunsetHeader' '400': content: application/vnd.api+json: schema: $ref: '#/components/schemas/ErrorDocument' description: 'Bad Request: A parameter provided as a part of the request was invalid.' headers: deprecation: $ref: '#/components/headers/DeprecationHeader' snyk-request-id: $ref: '#/components/headers/RequestIdResponseHeader' snyk-version-lifecycle-stage: $ref: '#/components/headers/VersionStageResponseHeader' snyk-version-requested: $ref: '#/components/headers/VersionRequestedResponseHeader' snyk-version-served: $ref: '#/components/headers/VersionServedResponseHeader' sunset: $ref: '#/components/headers/SunsetHeader' '401': content: application/vnd.api+json: schema: $ref: '#/components/schemas/ErrorDocument' description: 'Unauthorized: the request requires an authentication token.' headers: deprecation: $ref: '#/components/headers/DeprecationHeader' snyk-request-id: $ref: '#/components/headers/RequestIdResponseHeader' snyk-version-lifecycle-stage: $ref: '#/components/headers/VersionStageResponseHeader' snyk-version-requested: $ref: '#/components/headers/VersionRequestedResponseHeader' snyk-version-served: $ref: '#/components/headers/VersionServedResponseHeader' sunset: $ref: '#/components/headers/SunsetHeader' '403': content: application/vnd.api+json: schema: $ref: '#/components/schemas/ErrorDocument' description: 'Forbidden: the request requires an authentication token with more or different permissions.' headers: deprecation: $ref: '#/components/headers/DeprecationHeader' snyk-request-id: $ref: '#/components/headers/RequestIdResponseHeader' snyk-version-lifecycle-stage: $ref: '#/components/headers/VersionStageResponseHeader' snyk-version-requested: $ref: '#/components/headers/VersionRequestedResponseHeader' snyk-version-served: $ref: '#/components/headers/VersionServedResponseHeader' sunset: $ref: '#/components/headers/SunsetHeader' '404': content: application/vnd.api+json: schema: $ref: '#/components/schemas/ErrorDocument' description: 'Not Found: The resource being operated on could not be found.' headers: deprecation: $ref: '#/components/headers/DeprecationHeader' snyk-request-id: $ref: '#/components/headers/RequestIdResponseHeader' snyk-version-lifecycle-stage: $ref: '#/components/headers/VersionStageResponseHeader' snyk-version-requested: $ref: '#/components/headers/VersionRequestedResponseHeader' snyk-version-served: $ref: '#/components/headers/VersionServedResponseHeader' sunset: $ref: '#/components/headers/SunsetHeader' securitySchemes: APIToken: description: API key value must be prefixed with \"Token \". in: header name: Authorization type: apiKey BearerAuth: scheme: bearer type: http x-snyk-api-version: '2024-10-15'