Synack Assets API

Assets managed by Synack.

OpenAPI Specification

synack-assets-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Assessment Service Assessment Groups Assets API
  version: 1.0.0
  description: 'APIs for managing Assessment and related operations on the Synack.

    '
  contact:
    name: Synack Engineering
    email: engineering@synack.com
servers:
- url: https://client.synack.com/api/assessment
  description: Commercial
- url: https://client.synack.us/api/assessment
  description: FedRAMP (Medium)
security:
- bearerAuth: []
tags:
- name: Assets
  description: Assets managed by Synack.
paths:
  /v2/bulk/assets:
    post:
      operationId: postAssetBulk
      tags:
      - Assets
      description: 'Creates Assets in my Synack org. Note: In the Body, choose the Object pull down that corresponds to the asset type you want to add; Object 1 for Cloud, Object 2 for Hosts, Object 3 for Mobile, Object 4 for Networks, Object 5 for Web. For example; to add more than 1 Host IP address, choose Option 2, then specify multiple IP ranges with /32 CIDRs (adding a new Item for each).

        '
      x-mint:
        metadata:
          title: Bulk Create Assets
      requestBody:
        description: Supply Asset UID for the asset to upsert
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SingleOrMultiAsset'
      responses:
        '201':
          $ref: '#/components/responses/SingleOrMultiAssetResponse'
        '202':
          $ref: '#/components/responses/202StatusAccepted'
        '401':
          $ref: '#/components/responses/401Unauthorized'
        '403':
          $ref: '#/components/responses/403Forbidden'
        '409':
          $ref: '#/components/responses/409Conflict'
        '413':
          $ref: '#/components/responses/413RequestEntityTooLarge'
        '422':
          $ref: '#/components/responses/422EntityNotProcessable'
        '500':
          $ref: '#/components/responses/500InternalServerError'
        '503':
          $ref: '#/components/responses/503ServiceUnavailable'
      security:
      - OAuth2:
        - asset_gw
        - asset_client_ow
        - asset_boss_ow
        - asset_client_lw
        - asset_boss_lw
  /v2/bulk/assets/lifecycle-state:update:
    post:
      operationId: bulkUpdateAssetLifecycleState
      tags:
      - Assets
      description: 'Bulk updates the asset life cycle property. Checks the validity of assets and returns 409 Conflict if rules are violated.

        '
      x-mint:
        metadata:
          title: Bulk Update Asset Lifecycle State
      requestBody:
        description: Supply Organization UID, Asset UIDs for the assets to update, and the lifecycle state to update to.
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AssetBulkLifecycleStateUpdate'
      responses:
        '200':
          $ref: '#/components/responses/AssetBulkLifecycleStateUpdateResponse'
        '202':
          $ref: '#/components/responses/202StatusAccepted'
        '401':
          $ref: '#/components/responses/401Unauthorized'
        '403':
          $ref: '#/components/responses/403Forbidden'
        '409':
          $ref: '#/components/responses/409Conflict'
        '413':
          $ref: '#/components/responses/413RequestEntityTooLarge'
        '422':
          $ref: '#/components/responses/422EntityNotProcessable'
        '500':
          $ref: '#/components/responses/500InternalServerError'
        '503':
          $ref: '#/components/responses/503ServiceUnavailable'
      security:
      - OAuth2:
        - asset_gw
        - asset_client_ow
        - asset_boss_ow
        - asset_client_lw
        - asset_boss_lw
  /v2/bulk/assets/criticality:update:
    post:
      operationId: bulkUpdateAssetCriticality
      tags:
      - Assets
      description: 'Bulk update the criticality of multiple assets.

        '
      x-mint:
        metadata:
          title: Bulk Update Asset Criticality
      requestBody:
        description: The Organization UID, Asset UIDs to be updated, and the criticality value to be set on the assets.
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AssetBulkCriticalityUpdate'
      responses:
        '200':
          $ref: '#/components/responses/AssetBulkCriticalityUpdateResponse'
        '202':
          $ref: '#/components/responses/202StatusAccepted'
        '401':
          $ref: '#/components/responses/401Unauthorized'
        '403':
          $ref: '#/components/responses/403Forbidden'
        '409':
          $ref: '#/components/responses/409Conflict'
        '413':
          $ref: '#/components/responses/413RequestEntityTooLarge'
        '422':
          $ref: '#/components/responses/422EntityNotProcessable'
        '500':
          $ref: '#/components/responses/500InternalServerError'
        '503':
          $ref: '#/components/responses/503ServiceUnavailable'
      security:
      - OAuth2:
        - asset_gw
        - asset_client_ow
        - asset_boss_ow
        - asset_client_lw
        - asset_boss_lw
  /v2/assets:
    get:
      operationId: getAssets
      tags:
      - Assets
      description: 'Retrieve the list of assets for one or more organizations, considering filtering and pagination query parameters. When an organization-level OAuth2 scope is provided, the results will be restricted to those organizations the user is authorized for. Similarly, if a listing- level OAuth2 scope is provided, the results will be restricted to those listings the user is authorized for.

        Additional query parameters generally restrict the resulting set of assets according to AND semantics.

        Use of organizationUid and listingUid query parameters will further restrict the results.

        If neither are specified, the returned assets are the set of assets the user is allowed to access with organization OR listing specific privileges.

        If listing UIDs are supplied without organization UIDs, then only the assets assigned to those listings (which the user is authorized for) will be returned. Conversely, if organization UIDs are supplied without listing UIDs, then only the assets owned by those organizations (which the the user is authorized for) will be returned.

        Should both organization UIDs and listing UIDs be supplied, then the set of assets returned is restricted to assets assigned to any of the supplied listings, AND owned by any of the supplied organizations, further restricted to only those the user is authorized to access.

        Researcher users are restricted to only viewing credentials of in scope assets for listings to which they have been assigned.

        '
      x-mint:
        metadata:
          title: Get Assets
      parameters:
      - $ref: '#/components/parameters/OrganizationUIDQuery'
      - $ref: '#/components/parameters/ListingUIDQuery'
      - $ref: '#/components/parameters/AssetTypeQuery'
      - $ref: '#/components/parameters/HostTypeQuery'
      - in: query
        name: search
        schema:
          type: string
        required: false
        description: 'Optional query parameter for a search string that will be used to match within the label or location properties of assets. If this query parameter is provided, any location query parameter will be ignored.

          '
      - in: query
        name: active
        schema:
          type: boolean
        required: false
        description: 'Optional parameter that determines whether the response includes assets regardless of active state (the default, if this query parameter is not provided); active assets only if true; or inactive assets only if false.

          '
      - in: query
        name: inProduction
        schema:
          type: boolean
        required: false
        description: 'Optional query parameter that determines whether production or non-production assets will be included in the response.

          '
      - in: query
        name: maxHostDiscoveryAgeMins
        schema:
          type: integer
          default: 0
        required: false
        description: 'Optional query parameter to get host assets which are discovered by cloudEnumeration scanner shifted by maxHostDiscoveryAgeMins. Assets which are added via boss or discovered by other type of scanners will be included in response. E.g. CloudEnumeration hosts are valid for 1 hour from each time they are discovered, maxHostDiscoveryAgeMins=0 means that if the end time of the relationship has passed, the asset will not be returned - maxHostDiscoveryAgeMins=60 however, would return assets that were still valid 60 minutes ago

          '
      - in: query
        name: scope[]
        schema:
          type: array
          items:
            $ref: '#/components/schemas/Scope'
        required: false
        explode: true
        description: Restrict the returned assets to only assets associated to listings by the specified scopes.
      - in: query
        name: cloudPlatform[]
        schema:
          type: array
          items:
            $ref: '#/components/schemas/CloudPlatform'
        required: false
        explode: true
        description: Restrict the returned assets to only assets enumerated from a particular cloud platform.
      - in: query
        name: location
        schema:
          type: string
        required: false
        description: 'Prefix search of the derived location property.

          '
      - in: query
        name: errorCode[]
        schema:
          type: array
          items:
            $ref: '#/components/schemas/ErrorCode'
        required: false
        explode: true
        description: Filter assets to only include assets with matching error codes.
      - in: query
        name: portNumber[]
        schema:
          type: array
          items:
            $ref: '#/components/schemas/PortNumber'
        required: false
        explode: true
        description: Filter assets to only include hosts with open ports matching the port number.
      - in: query
        name: maxOpenPorts
        schema:
          type: integer
          format: int32
          minimum: 0
          maximum: 65535
        required: false
        description: Max open ports from a single IP address.
      - in: query
        name: hasNetwork
        schema:
          type: boolean
        required: false
        description: 'Filter assets to include/exclude those with networks.

          Deprecating.

          '
      - in: query
        name: networkUid[]
        schema:
          type: array
          items:
            $ref: '#/components/schemas/UID'
        required: false
        explode: true
        description: 'Unique identifier for a network.

          If not supplied the request will apply to all networks the user is authorized to access.

          Deprecating.

          '
      - in: query
        name: gatewayId[]
        schema:
          type: array
          items:
            $ref: '#/components/schemas/GatewayID'
        required: false
        explode: true
        description: 'Unique gateway id.

          If not supplied the request will apply to all gateways.

          '
      - in: query
        name: earliestCreatedAt
        schema:
          type: string
          format: date-time
        required: false
        description: Filter assets with a createdAt date greater or equal to this value
      - in: query
        name: latestCreatedAt
        schema:
          type: string
          format: date-time
        required: false
        description: Filter assets with a createdAt date less than or equal to this value
      - in: query
        name: userUid
        schema:
          $ref: '#/components/schemas/UserUID'
        required: false
        description: Restricts the credentials to only those available to the user. This query parameter is ignored if the user is a researcher.
      - in: query
        name: relationshipTargetAssetUid
        schema:
          $ref: '#/components/schemas/AssetUID'
        required: false
        description: 'Filter assets which have a relationship with targetAssetUid equal to this value.

          '
      - in: query
        name: relationshipType
        schema:
          $ref: '#/components/schemas/AssetRelationshipType'
        required: false
        description: 'Filter assets which have a relationship of this type.

          '
      - $ref: '#/components/parameters/PerPageQuery'
      - $ref: '#/components/parameters/PageQuery'
      - in: query
        name: sort
        schema:
          type: string
          enum:
          - location
          - label
          - createdAt
          - updatedAt
          - lastReachableAt
          - lastScan
        description: Optional property to sort results by.
        required: false
      - $ref: '#/components/parameters/SortDirQuery'
      - in: query
        name: origin
        schema:
          type: string
          enum:
          - provided
          - discovered
        description: Optional property to filter results by human created or system discovered assets.
        required: false
      - name: lifecycleState[]
        required: false
        in: query
        schema:
          type: array
          items:
            type: string
            enum:
            - confirmed
            - unconfirmed
            - archived
            - ignored
        description: Optional property to filter results by asset lifecycle state. When not supplied, all assets except `archived` will be returned.
      - in: query
        name: omitFields
        description: Fields to omit from response.
        schema:
          type: array
          items:
            type: string
            enum:
            - ALL
            - relationships
            - externalRelationships
            - ports
            - networks
            - scopeRules
            - binaries
            - userRoles
      - $ref: '#/components/parameters/IpRanges'
      responses:
        '200':
          $ref: '#/components/responses/PaginatedArrayOfAssets'
        '400':
          $ref: '#/components/responses/400BadRequest'
        '401':
          $ref: '#/components/responses/401Unauthorized'
        '403':
          $ref: '#/components/responses/403Forbidden'
        '500':
          $ref: '#/components/responses/500InternalServerError'
        '503':
          $ref: '#/components/responses/503ServiceUnavailable'
      security:
      - OAuth2:
        - asset_gr
        - asset_or
        - asset_lr
        - asset_srt_lr
        - asset_scan_gr
    post:
      operationId: postAsset
      tags:
      - Assets
      description: 'Creates an asset in my Synack org. In the Body, choose the Object pull down that corresponds to the asset type you want to add; Object 1 for Cloud, Object 2 for Host, Object 3 for Mobile, Object 4 for Network, Object 5 for Web

        '
      x-mint:
        metadata:
          title: Create Asset
      requestBody:
        description: Asset to create. If the asset is of cloud account type, only its metadata returned in the response as credential data is restricted to asset_scan_gr scope. If the asset is of webapp type, corresponding FQDN or IP host asset will also be created.
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SingleOrMultiAsset'
      responses:
        '201':
          $ref: '#/components/responses/SingleOrMultiAssetResponse'
        '202':
          $ref: '#/components/responses/202StatusAccepted'
        '401':
          $ref: '#/components/responses/401Unauthorized'
        '403':
          $ref: '#/components/responses/403Forbidden'
        '409':
          $ref: '#/components/responses/409Conflict'
        '413':
          $ref: '#/components/responses/413RequestEntityTooLarge'
        '422':
          $ref: '#/components/responses/422EntityNotProcessable'
        '500':
          $ref: '#/components/responses/500InternalServerError'
        '503':
          $ref: '#/components/responses/503ServiceUnavailable'
      security:
      - OAuth2:
        - asset_gw
        - asset_client_ow
        - asset_boss_ow
        - asset_client_lw
        - asset_boss_lw
  /v2/assets/{assetUid}/whois:
    parameters:
    - $ref: '#/components/parameters/AssetUIDPath'
    get:
      operationId: getWHOIS
      tags:
      - Assets
      description: 'Retrieves the WHOIS data for a single asset.

        '
      x-mint:
        metadata:
          title: Get WHOIS for Asset
      responses:
        '200':
          $ref: '#/components/responses/WHOISResponse'
      security:
      - OAuth2:
        - asset_gr
        - asset_or
        - asset_lr
        - asset_srt_lr
        - asset_scan_gr
    put:
      x-excluded: true
      operationId: putWHOIS
      tags:
      - Assets
      description: 'Adds the WHOIS data to a single asset.

        '
      requestBody:
        description: WHOIS data to add to asset.
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/WHOISRequest'
      responses:
        '200':
          $ref: '#/components/responses/WHOISResponse'
      security:
      - OAuth2:
        - asset_gw
        - asset_client_ow
        - asset_boss_ow
        - asset_client_lw
        - asset_boss_lw
  /v2/assets/{assetUid}:
    parameters:
    - $ref: '#/components/parameters/AssetUIDPath'
    get:
      operationId: getAsset
      tags:
      - Assets
      description: 'Retrieves a single asset. If the user is a researcher, only the credentials they are authorized to access will be returned. If the asset is of cloud account type, only a user with asset_scan_gr scope can access its credential data.

        '
      x-mint:
        metadata:
          title: Get Asset
      parameters:
      - in: query
        name: userUid
        schema:
          $ref: '#/components/schemas/UserUID'
        required: false
        description: Restricts the credentials to only those available to the user. This query parameter is ignored if the user is a researcher.
      responses:
        '200':
          $ref: '#/components/responses/SingleAssetResponse'
        '401':
          $ref: '#/components/responses/401Unauthorized'
        '403':
          $ref: '#/components/responses/403Forbidden'
        '404':
          $ref: '#/components/responses/404NotFound'
        '500':
          $ref: '#/components/responses/500InternalServerError'
        '503':
          $ref: '#/components/responses/503ServiceUnavailable'
      security:
      - OAuth2:
        - asset_gr
        - asset_scan_gr
        - asset_or
        - asset_lr
        - asset_srt_lr
    patch:
      operationId: patchAsset
      tags:
      - Assets
      description: 'Patches the properties of a single asset.

        '
      x-mint:
        metadata:
          title: Patch Asset
      requestBody:
        description: Asset properties to patch.
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SingleAsset'
      responses:
        '200':
          $ref: '#/components/responses/SingleAssetResponse'
        '401':
          $ref: '#/components/responses/401Unauthorized'
        '403':
          $ref: '#/components/responses/403Forbidden'
        '404':
          $ref: '#/components/responses/404NotFound'
        '500':
          $ref: '#/components/responses/500InternalServerError'
        '503':
          $ref: '#/components/responses/503ServiceUnavailable'
      security:
      - OAuth2:
        - asset_gw
        - asset_client_ow
        - asset_boss_ow
        - asset_client_lw
        - asset_boss_lw
    delete:
      x-excluded: true
      operationId: deleteAsset
      tags:
      - Assets
      description: 'Deletes an asset. This is intended to be a privileged operation. Regular use should be to mark the asset as inactive. Any relationships that involve the deleted asset will be also be deleted, as will any association to listings.

        '
      responses:
        '204':
          $ref: '#/components/responses/204NoContent'
        '401':
          $ref: '#/components/responses/401Unauthorized'
        '403':
          $ref: '#/components/responses/403Forbidden'
        '404':
          $ref: '#/components/responses/404NotFound'
        '500':
          $ref: '#/components/responses/500InternalServerError'
        '503':
          $ref: '#/components/responses/503ServiceUnavailable'
      security:
      - OAuth2:
        - asset_gw
        - asset_client_ow
        - asset_boss_ow
        - asset_client_lw
        - asset_boss_lw
  /v2/assets/{assetUid}/related-assets:
    parameters:
    - $ref: '#/components/parameters/AssetUIDPath'
    get:
      operationId: getRelatedAssets
      tags:
      - Assets
      description: 'Returns all assets that share a relationship with the matched Asset UID.

        '
      x-mint:
        metadata:
          title: Get Related Assets
      parameters:
      - $ref: '#/components/parameters/AssetTypeQuery'
      responses:
        '200':
          $ref: '#/components/responses/SingleOrMultiAssetResponse'
        '401':
          $ref: '#/components/responses/401Unauthorized'
        '404':
          $ref: '#/components/responses/404NotFound'
        '500':
          $ref: '#/components/responses/500InternalServerError'
        '503':
          $ref: '#/components/responses/503ServiceUnavailable'
      security:
      - OAuth2:
        - asset_gr
        - asset_or
        - asset_lr
        - asset_srt_lr
        - asset_scan_gr
  /v2/assets/{assetUid}/tools/burp/target-scope.json:
    parameters:
    - $ref: '#/components/parameters/AssetUIDPath'
    get:
      x-excluded: true
      operationId: getBurpTargetScopeForAsset
      tags:
      - Assets
      description: 'Retrieve a Burp target scope file, if the asset is a webapp.

        '
      responses:
        '200':
          description: JSON Target Scope file for Burp.
          content:
            application/json: {}
        '401':
          $ref: '#/components/responses/401Unauthorized'
        '403':
          $ref: '#/components/responses/403Forbidden'
        '404':
          $ref: '#/components/responses/404NotFound'
        '500':
          $ref: '#/components/responses/500InternalServerError'
        '503':
          $ref: '#/components/responses/503ServiceUnavailable'
      security:
      - OAuth2:
        - asset_gr
        - asset_or
        - asset_lr
        - asset_srt_lr
  /v2/assets/{assetUid}/ports/{portNumber}/{portProtocol}:
    parameters:
    - $ref: '#/components/parameters/AssetUIDPath'
    - $ref: '#/components/parameters/PortNumberPath'
    - $ref: '#/components/parameters/PortProtocolPath'
    get:
      operationId: getHostPort
      tags:
      - Assets
      description: 'Retrieve a port for a host asset.

        '
      x-mint:
        metadata:
          title: Get Port for Host Asset
      responses:
        '200':
          $ref: '#/components/responses/SinglePort'
        '401':
          $ref: '#/components/responses/401Unauthorized'
        '403':
          $ref: '#/components/responses/403Forbidden'
        '404':
          $ref: '#/components/responses/404NotFound'
        '503':
          $ref: '#/components/responses/503ServiceUnavailable'
      security:
      - OAuth2:
        - asset_gr
        - asset_or
        - asset_lr
  /v2/asset-stats:
    get:
      operationId: getAssetStats
      tags:
      - Assets
      description: 'Returns active assets under test (in scope for a listing) and total active assets for the supplied organization and listings.

        '
      x-mint:
        metadata:
          title: Get Asset Stats
      parameters:
      - $ref: '#/components/parameters/SingleOrganizationUIDQuery'
      - $ref: '#/components/parameters/ListingUIDQuery'
      responses:
        '200':
          $ref: '#/components/responses/SingleAssetStat'
        '400':
          $ref: '#/components/responses/400BadRequest'
        '401':
          $ref: '#/components/responses/401Unauthorized'
        '403':
          $ref: '#/components/responses/403Forbidden'
        '500':
          $ref: '#/components/responses/500InternalServerError'
        '503':
          $ref: '#/components/responses/503ServiceUnavailable'
      security:
      - OAuth2:
        - asset_gr
        - asset_or
        - asset_lr
  /v2/organizations/{organizationUid}/discovered-assets:
    get:
      operationId: getDiscoveredAssetSummaries
      tags:
      - Assets
      description: 'Retrieve the list summarized properties for discovered assets belonging to  an organization, considering filtering and pagination query parameters.

        Additional query parameters generally restrict the resulting set of assets according to AND semantics.

        '
      x-mint:
        metadata:
          title: Get Discovered Assets
      parameters:
      - $ref: '#/components/parameters/OrganizationUIDPath'
      - $ref: '#/components/parameters/ListingUIDQuery'
      - $ref: '#/components/parameters/AssetTypeQuery'
      - $ref: '#/components/parameters/HostTypeQuery'
      - in: query
        name: seedUid[]
        schema:
          $ref: '#/components/schemas/SeedUID'
        required: false
        description: Restrict the returned asset summaries to only those discovered from provided seed identifier.
      - in: query
        name: search
        schema:
          type: string
        required: false
        description: 'Optional query parameter for a search string that will be used to match within the label or location properties of assets. If this query parameter is provided, any location query parameter will be ignored.

          '
      - $ref: '#/components/parameters/PerPageQuery'
      - $ref: '#/components/parameters/PageQuery'
      - in: query
        name: sort
        schema:
          type: string
          enum:
          - location
          - label
          - createdAt
          - updatedAt
          - lastReachableAt
        description: Optional property to sort results by.
        required: false
      - $ref: '#/components/parameters/SortDirQuery'
      responses:
        '200':
          $ref: '#/components/responses/PaginatedDiscoveredAssetsResponse'
        '400':
          $ref: '#/components/responses/400BadRequest'
        '401':
          $ref: '#/components/responses/401Unauthorized'
        '403':
          $ref: '#/components/responses/403Forbidden'
        '500':
          $ref: '#/components/responses/500InternalServerError'
        '503':
          $ref: '#/components/responses/503ServiceUnavailable'
      security:
      - OAuth2:
        - asset_gr
        - asset_or
        - asset_lr
        - asset_srt_lr
        - asset_scan_gr
  /v1/{org_uid}/assets/{asset_uid}/ports:
    get:
      x-mint:
        metadata:
          title: Get Ports for a Host Asset
      summary: Returns list of ports per organization and asset
      description: Get Open Ports by Organization UID and Asset UID
      operationId: getAssetPorts
      tags:
      - Assets
      parameters:
      - name: org_uid
        in: path
        description: Organization UID
        required: true
        schema:
          type: string
      - name: asset_uid
        in: path
        description: Asset UID
        required: true
        schema:
          type: string
      - name: observed_state
        in: query
        description: Observed State [open closed]
        schema:
          type: string
          default: open
          enum:
          - open
          - closed
      - name: limit
        in: query
        description: Maximum number of port results to be returned
        schema:
          type: integer
      - name: order_by
        in: query
        description: Order By [number service_name service_banner]
        schema:
          type: string
          default: number
          enum:
          - number
          - service_name
          - service_banner
      - name: order_direction
        in: query
        description: Order Direction [ASC DESC]
        schema:
          type: string
          default: ASC
          enum:
          - ASC
          - DESC
      - name: per_page
        in: query
        description: Maximum number of results to be returned
        schema:
          type: integer
      - name: page
        in: query
        description: If provided, show the provided page
        schema:
          type: integer
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Document'
        '400':
          description: bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          description: Bearer token is missing or invalid
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /v1/{org_uid}/assets/{asset_uid}/whois:
    get:
      x-mint:
        metadata:
          title: Get WHOIS for a Host Asset
      summary: Returns `whois` data for a given asset UID
      description: Get `whois` data by asset UID
      operationId: getAssetWhois
      tags:
      - Assets
      parameters:
      - name: org_uid
        in: path
        description: Organization UID
        required: true
        schema:
          type: string
      - name: asset_uid
        in: path
        description: Asset UID
        required: true
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Document'
        '400':
          description: bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          description: Bearer token is missing or invalid
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /v1/{org_uid}/assets/detail/{asset_uid}:
    get:
      x-mint:
        metadata:
          title: Get Asset Details
      summary: Returns Assets Details for a given Organization and Assets UID
      description: Get Asset Details by Organization UID and Asset UID
      operationId: getAssetDetails
      tags:
      - Assets
      parameters:
      - name: org_uid
        in: path
        description: Organization UID
        required: true
        schema:
          type: string
      - name: asset_uid
        in: path
        description: Asset UID
        required: true
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Document'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          description: Bearer token is missing or invalid
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Asset not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /v1/{org_uid}/assets/list:
    get:
      x-mint:
        metadata:
          title: Get Asset List
      summary: Returns list of assets with aggregated data
      description: Get Assets List by Organization
      operationId: getAssetList
      tags:
      - Assets
      parameters:
      - name: org_uid
        in: path
        description: Organization UID
        required: true
        schema:
          type: string
      - name: type[]
        in: query
        descript

# --- truncated at 32 KB (110 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/synack/refs/heads/main/openapi/synack-assets-api-openapi.yml