---
title: "Search Assets"
method: POST
path: "/projects/{project_id}/assets/_search"
tags: ["Assets"]
---

# Search Assets

`POST /projects/{project_id}/assets/_search`

## Request

- Base URL: `https://api.securitytrails.com/v2`
- URL: `https://api.securitytrails.com/v2/projects/{project_id}/assets/_search`
- Auth: API key in header `apikey`

Search assets in a project, with filtering, sorting and pagination.

Filter with the `filter` field. Each field supports a subset of the operators
`eq`, `neq`, `in`, `nin`, `start`, `end` and `contains`; see the request schema.
`in` and `nin` take a list of values and are case sensitive.

The `custom_tags` filter supports two special cases:

* `"in": []` returns assets without any tags.
* `"*"` as the `eq` value, or in the `in` list, returns assets with any project tag.

For pagination, pass `meta.pagination.next_cursor` from the previous response as `pagination.next_cursor`
in the request. Sorting can't be changed while paginating.

By default only `custom_tags` is returned as `enrichments`. Specifying `enrichments` replaces that default.

## Path parameters

- `project_id` string, required: The ID of the project

## Request body

- AssetSearchRequest
  - `filter` AssetFilterInput
    - `asset_properties` AssetPropertiesFilterInput
      - `asset_id` EqFilterInput
        - `eq` union, required
          - string
          - integer
          - string, ipvanyaddress
          - string, ipvanynetwork
          - string, date
      - `asset_type` EqFilterInput
        - `eq` union, required
          - string
          - integer
          - string, ipvanyaddress
          - string, ipvanynetwork
          - string, date
      - `name` ContainsFilter
        - `contains` string, required
      - `asn` union: Autonomous System Number of the asset's IP
        - EqFilterInput
          - `eq` union, required
            - string
            - integer
            - string, ipvanyaddress
            - string, ipvanynetwork
            - string, date
        - InFilter
          - `in` union[], required
            - union
              - …
      - `custom_tags` union: User-defined tags on the asset
        - EqFilterInput
          - `eq` union, required
            - string
            - integer
            - string, ipvanyaddress
            - string, ipvanynetwork
            - string, date
        - InFilter
          - `in` union[], required
            - union
              - …
      - `ip_geo_country_iso` union: ISO country code of the IP geo location
        - EqFilterInput
          - `eq` union, required
            - string
            - integer
            - string, ipvanyaddress
            - string, ipvanynetwork
            - string, date
        - InFilter
          - `in` union[], required
            - union
              - …
      - `ip_owner` union: Organization owning the IP address block
        - EqFilterInput
          - `eq` union, required
            - string
            - integer
            - string, ipvanyaddress
            - string, ipvanynetwork
            - string, date
        - InFilter
          - `in` union[], required
            - union
              - …
      - `static_asset` BooleanFilter
        - `eq` boolean, required
      - `registry` union: Regional internet registry source for the IP
        - EqFilterInput
          - `eq` union, required
            - string
            - integer
            - string, ipvanyaddress
            - string, ipvanynetwork
            - string, date
        - InFilter
          - `in` union[], required
            - union
              - …
      - `referenced_ip` union: IP address referenced via A or CNAME record. Use `eq` or `in` for exact IP matching. Use `contains` with a trailing `.` for CIDR range matching, or without for prefix matching.
        - ContainsFilter
          - `contains` string, required
        - EqFilterInput
          - `eq` union, required
            - string
            - integer
            - string, ipvanyaddress
            - string, ipvanynetwork
            - string, date
        - InFilter
          - `in` union[], required
            - union
              - …
      - `whois_registrar_name` union: Registrar name from WHOIS records
        - EqFilterInput
          - `eq` union, required
            - string
            - integer
            - string, ipvanyaddress
            - string, ipvanynetwork
            - string, date
        - NeqFilterInput
          - `neq` union, required
            - string
            - integer
            - string, ipvanyaddress
            - string, ipvanynetwork
            - string, date
        - InFilter
          - `in` union[], required
            - union
              - …
        - NinFilter
          - `nin` union[], required
            - union
              - …
      - `discovered` DateRangeFilter
        - `start` string, date, nullable
        - `end` string, date, nullable
      - `added_to_project` DateRangeFilter
        - `start` string, date, nullable
        - `end` string, date, nullable
      - `apex` union: The apex domain of the assets. Only makes sense for `domain` asset types.
        - EqFilterInput
          - `eq` union, required
            - string
            - integer
            - string, ipvanyaddress
            - string, ipvanynetwork
            - string, date
        - InFilter
          - `in` union[], required
            - union
              - …
      - `custom_tags_strict` union: User-defined tags on the asset
        - EqFilterInput
          - `eq` union, required
            - string
            - integer
            - string, ipvanyaddress
            - string, ipvanynetwork
            - string, date
        - InFilter
          - `in` union[], required
            - union
              - …
      - `cname_reference` union: Filter on a domain that is referenced by a CNAME record. Only makes sense for `domain` asset types. Treated as a wildcard, so `example.com` will match `www.example.com`.
        - ContainsFilter
          - `contains` string, required
        - EqFilterInput
          - `eq` union, required
            - string
            - integer
            - string, ipvanyaddress
            - string, ipvanynetwork
            - string, date
      - `referenced_ip_at` DateRangeFilter
        - `start` string, date, nullable
        - `end` string, date, nullable
      - `valid_record_type` union: The type of DNS record, e.g. `A`, `AAAA` or `CNAME`
        - EqFilterInput
          - `eq` union, required
            - string
            - integer
            - string, ipvanyaddress
            - string, ipvanynetwork
            - string, date
        - InFilter
          - `in` union[], required
            - union
              - …
        - NeqFilterInput
          - `neq` union, required
            - string
            - integer
            - string, ipvanyaddress
            - string, ipvanynetwork
            - string, date
      - `dns_resolves` BooleanFilter
        - `eq` boolean, required
      - `whois_email` union: Email address of any current or historical WHOIS contact record, falling back to the parent domain's record
        - EqFilterInput
          - `eq` union, required
            - string
            - integer
            - string, ipvanyaddress
            - string, ipvanynetwork
            - string, date
        - InFilter
          - `in` union[], required
            - union
              - …
      - `whois_email_current` union: Email address of a WHOIS contact record, falling back to the parent domain's record
        - EqFilterInput
          - `eq` union, required
            - string
            - integer
            - string, ipvanyaddress
            - string, ipvanynetwork
            - string, date
        - InFilter
          - `in` union[], required
            - union
              - …
    - `certificate_properties` CertificatePropertiesFilterInput
      - `certificate_issuer` union: Issuer common name of the TLS certificate
        - EqFilterInput
          - `eq` union, required
            - string
            - integer
            - string, ipvanyaddress
            - string, ipvanynetwork
            - string, date
        - InFilter
          - `in` union[], required
            - union
              - …
      - `certificate_expires_at` DateRangeFilter
        - `start` string, date, nullable
        - `end` string, date, nullable
      - `certificate_issued_at` DateRangeFilter
        - `start` string, date, nullable
        - `end` string, date, nullable
      - `certificate_subject` union: Subject entity (common name, organization, country) of the TLS certificate
        - EqFilterInput
          - `eq` union, required
            - string
            - integer
            - string, ipvanyaddress
            - string, ipvanynetwork
            - string, date
        - InFilter
          - `in` union[], required
            - union
              - …
        - ContainsFilter
          - `contains` string, required
      - `certificate_subject_alt_name` union: DNS and IP subject alternative names on the TLS certificate
        - EqFilterInput
          - `eq` union, required
            - string
            - integer
            - string, ipvanyaddress
            - string, ipvanynetwork
            - string, date
        - InFilter
          - `in` union[], required
            - union
              - …
        - ContainsFilter
          - `contains` string, required
      - `certificate_sha256` EqFilterInput
        - `eq` union, required
          - string
          - integer
          - string, ipvanyaddress
          - string, ipvanynetwork
          - string, date
      - `certificate_covers_domain` union: Filter where the certificate's subject common name domain or one of the Subject Alternate Names exactly matches or is a wildcard covering the provided value
        - EqFilterInput
          - `eq` union, required
            - string
            - integer
            - string, ipvanyaddress
            - string, ipvanynetwork
            - string, date
        - InFilter
          - `in` union[], required
            - union
              - …
        - ContainsFilter
          - `contains` string, required
    - `exposure_properties` ExposurePropertiesFilterInput
      - `signature_id` union: Exposure with this signature ID found on the asset
        - EqFilterInput
          - `eq` union, required
            - string
            - integer
            - string, ipvanyaddress
            - string, ipvanynetwork
            - string, date
        - InFilter
          - `in` union[], required
            - union
              - …
      - `severity` union: Severity level of exposures found on the asset
        - EqFilterInput
          - `eq` union, required
            - string
            - integer
            - string, ipvanyaddress
            - string, ipvanynetwork
            - string, date
        - InFilter
          - `in` union[], required
            - union
              - …
      - `asset_exposure_score` IntRangeFilter
        - `start` integer, nullable
        - `end` integer, nullable
      - `last_scanned_at` DateRangeFilter
        - `start` string, date, nullable
        - `end` string, date, nullable
    - `technology_properties` TechnologyPropertiesFilterInput
      - `open_port_number` union: TCP/UDP port open on the asset
        - EqFilterInput
          - `eq` union, required
            - string
            - integer
            - string, ipvanyaddress
            - string, ipvanynetwork
            - string, date
        - InFilter
          - `in` union[], required
            - union
              - …
      - `open_port_service` union: Service protocol detected on an open port
        - EqFilterInput
          - `eq` union, required
            - string
            - integer
            - string, ipvanyaddress
            - string, ipvanynetwork
            - string, date
        - InFilter
          - `in` union[], required
            - union
              - …
      - `open_port_protocol` union: IP protocol (tcp/udp) of an open port
        - EqFilterInput
          - `eq` union, required
            - string
            - integer
            - string, ipvanyaddress
            - string, ipvanynetwork
            - string, date
        - InFilter
          - `in` union[], required
            - union
              - …
      - `waf_detected` BooleanFilter
        - `eq` boolean, required
      - `waf_name` union: Name of the detected Web Application Firewall
        - EqFilterInput
          - `eq` union, required
            - string
            - integer
            - string, ipvanyaddress
            - string, ipvanynetwork
            - string, date
        - InFilter
          - `in` union[], required
            - union
              - …
      - `technology_name` union: Technology product identified on the asset
        - EqFilterInput
          - `eq` union, required
            - string
            - integer
            - string, ipvanyaddress
            - string, ipvanynetwork
            - string, date
        - InFilter
          - `in` union[], required
            - union
              - …
      - `open_port_technology` union: Technology product identified on an open port
        - EqFilterInput
          - `eq` union, required
            - string
            - integer
            - string, ipvanyaddress
            - string, ipvanynetwork
            - string, date
        - InFilter
          - `in` union[], required
            - union
              - …
      - `web_technology_name` union: Web technology detected via Wappalyzer
        - EqFilterInput
          - `eq` union, required
            - string
            - integer
            - string, ipvanyaddress
            - string, ipvanynetwork
            - string, date
        - InFilter
          - `in` union[], required
            - union
              - …
      - `is_responsive` BooleanFilter
        - `eq` boolean, required
    - `quick_search` QuickSearchFilter
      - `search` string, required: Search term to match against asset name, IP addresses, and technology fields
  - `pagination` Pagination
    - `next_cursor` string, nullable: An opaque value which should be passed as the `cursor` to retrieve the nextpage of results
    - `limit` integer: The number of items to return
  - `enrichments` AssetEnrichment[]
  - `sort` union[], nullable: Fields to sort by, either a field ID or a `[field_id, direction]` pair. Each field's default direction is used when none is given.
    - union
      - string
      - unknown[]
        - unknown

## Response `200`

Successful Response

- ApiListResponseAsset
  - `data` Asset[], required
    - `project_id` string, required: Project ID being displayed
    - `id` string, required: The asset identifier (domain or IP)
    - `name` string, required: The asset identifier (domain or IP). Same as `id` currently.
    - `type` string, required: The type of asset (ip or domain/host)
    - `discovered_at` string, date-time, nullable, required: The date (Y-m-d) the asset was discovered. This may be different than when the asset was added to the project. IPv4 addresses will have a fixed point in the past for their discovery date.
    - `added_to_project_at` string, date-time, required: The date (Y-m-d) the asset was added to the project. This may be different than when the asset was discovered.
    - `last_scanned_at` string, date-time, nullable: The date (Y-m-d) when the asset was last scanned for exposures.
    - `apex_domain` string, nullable: The apex domain of the assets. Only makes sense for `domain` asset types.
    - `exposure_score` integer, nullable: A calculated score between 0-100 of the potential risk of the asset
    - `is_static_asset` boolean: Whether the asset is a static (always-included) asset
    - `custom_tags` string[], nullable: User-defined tags on the asset
    - `resolved_ips` string[], nullable: A convenience list of the IP addresses that A or CNAME records resolve to for this asset, or the asset itself.
    - `dns_records` DNSRecord[], nullable: All DNS records for the asset, keyed by record type. Read generically: any record type present is returned.
      - `record_type` string, required: The type of DNS record, e.g. `A`, `AAAA` or `CNAME`
      - `value` DNSValue[], nullable, required: A single value of a DNS record, in the shape its record type resolves to
        - `value` union, required: A single value of a DNS record, in the shape its record type resolves to
          - string
          - object
        - `seen_from` string[]
        - `first_seen_at` string, date-time, nullable: When the DNS record value was first resolved for the asset
        - `last_resolved_at` string, date-time, nullable, required: Timestamp of the last DNS resolution, applied to all record values
      - `is_virtual` boolean: Is this a virtual DNS record, derived from a CNAME target rather than resolved directly?
    - `whois` WHOISRecord
      - `registrar` string, nullable: Registrar name from WHOIS data, falling back to the parent domain's record
      - `expires_at` string, date-time, nullable: Domain expiration date from WHOIS data
      - `updated_at` string, date-time, nullable: Domain record last-updated date from WHOIS data
      - `created_at` string, date-time, nullable: Domain registration creation date from WHOIS data
      - `is_private` boolean, nullable: Whether the domain uses private or proxy registration
      - `is_from_parent` boolean: Is this WHOIS record from the parent domain?
      - `contacts` WHOISContact[], nullable: Current contact email, name, and organization from WHOIS data
        - `email` string, nullable: Email address of a WHOIS contact record, falling back to the parent domain's record
        - `name` string, nullable: Name of a WHOIS contact record, falling back to the parent domain's record
        - `organization` string, nullable: Organization of a WHOIS contact record, falling back to the parent domain's record
        - `is_current` boolean: Is this still a current contact?
      - `name_servers` string[], nullable: Name servers from WHOIS data, falling back to the parent domain's record
    - `certificates` CertificateInstance[], nullable: The unique certificates found on this asset (when requested). Includes ports and IPs when available. This information will also be contained in `scanned_ips` when requested
      - `certificate` Certificate, required
        - `expires_at` string, date-time, required: Expiration date of the TLS certificate
        - `issued_at` string, date-time, required: Issuance date of the TLS certificate
        - `sha256` string, required: SHA256 fingerprint of the TLS certificate's public key
        - `subject` CertificateEntity, required
          - `common_name` string, nullable: Common name (CN) of the TLS certificate's subject entity; see `certificate_issuer` for the issuer's common name / Issuer common name of the TLS certificate
          - `organization_name` string, nullable: Organization name of the TLS certificate's subject entity / Organization name of the TLS certificate's issuer entity
          - `organizational_unit_name` string, nullable: Organizational unit name of the TLS certificate's subject entity / Organizational unit name of the TLS certificate's issuer entity
          - `country_name` string, nullable: Country name of the TLS certificate's subject entity / Country name of the TLS certificate's issuer entity
        - `subject_alt_names` string[], nullable: DNS and IP subject alternative names on the TLS certificate
        - `issuer` CertificateEntity
          - `common_name` string, nullable: Common name (CN) of the TLS certificate's subject entity; see `certificate_issuer` for the issuer's common name / Issuer common name of the TLS certificate
          - `organization_name` string, nullable: Organization name of the TLS certificate's subject entity / Organization name of the TLS certificate's issuer entity
          - `organizational_unit_name` string, nullable: Organizational unit name of the TLS certificate's subject entity / Organizational unit name of the TLS certificate's issuer entity
          - `country_name` string, nullable: Country name of the TLS certificate's subject entity / Country name of the TLS certificate's issuer entity
        - `chain` Certificate[], nullable: Chain of parent certificates up to the root, in issuance order
        - `signature_algorithm` string, nullable: Signature algorithm used to sign the TLS certificate
      - `seen_ports` Port[], nullable: When available, indicates 'where' we saw this certificate. An asset may have serviced different certificates on different ports, at different times
        - `port` integer, required: TCP/UDP port open on the asset
        - `protocol` string, required: IP protocol (tcp/udp) of an open port
        - `instances` PortInstance[]: The specific instances of this port on an IP
          - `seen_ip` string, ipvanyaddress, required: IP address of each scanned host
          - `seen_at` string, date-time, required: Timestamp of the last scan for each scanned host
          - `service` string, nullable: Service protocol detected on an open port
          - `technology` TechnologyWithInstances
            - `name` string, required: Technology product identified on the asset
            - `vendor` string, nullable: Vendor or manufacturer of the detected Web Application Firewall
            - `technology_type` string, nullable: Category of a web technology or defensive measure detected via Wappalyzer (e.g. CMS, WAF, CDN)
            - `version` string, nullable: Version of a web technology detected via Wappalyzer
            - `instances` TechnologyInstance[]: Specific instances of this technology
              - …
          - `web_technologies` TechnologyWithInstances[], nullable: Web technologies detected on this port
            - `name` string, required: Technology product identified on the asset
            - `vendor` string, nullable: Vendor or manufacturer of the detected Web Application Firewall
            - `technology_type` string, nullable: Category of a web technology or defensive measure detected via Wappalyzer (e.g. CMS, WAF, CDN)
            - `version` string, nullable: Version of a web technology detected via Wappalyzer
            - `instances` TechnologyInstance[]: Specific instances of this technology
              - …
          - `exposures` Exposure[], nullable: Exposures detected on this port
            - `id` string, required: Exposure with this signature ID found on the asset
            - `detection_id` string, nullable, required: Exposure with this signature ID found on the asset, as raw-reported before normalization
            - `severity` 'informational' | 'moderate' | 'critical', required
            - `instances` ExposureInstance[], required: List of exposure instances on the asset
              - …
            - `details` object, nullable: Per-instance context payload used to populate exposure details
            - `supports_evidence` boolean, nullable: Does this exposure support evidence downloads?
            - `evidence_identifiers` string[], nullable: Evidence identifiers artifacts captured for this exposure
          - `defenses` TechnologyWithInstances[], nullable: Defensive measures in place for the port
            - `name` string, required: Technology product identified on the asset
            - `vendor` string, nullable: Vendor or manufacturer of the detected Web Application Firewall
            - `technology_type` string, nullable: Category of a web technology or defensive measure detected via Wappalyzer (e.g. CMS, WAF, CDN)
            - `version` string, nullable: Version of a web technology detected via Wappalyzer
            - `instances` TechnologyInstance[]: Specific instances of this technology
              - …
        - `certificate` Certificate
          - `expires_at` string, date-time, required: Expiration date of the TLS certificate
          - `issued_at` string, date-time, required: Issuance date of the TLS certificate
          - `sha256` string, required: SHA256 fingerprint of the TLS certificate's public key
          - `subject` CertificateEntity, required
            - `common_name` string, nullable: Common name (CN) of the TLS certificate's subject entity; see `certificate_issuer` for the issuer's common name / Issuer common name of the TLS certificate
            - `organization_name` string, nullable: Organization name of the TLS certificate's subject entity / Organization name of the TLS certificate's issuer entity
            - `organizational_unit_name` string, nullable: Organizational unit name of the TLS certificate's subject entity / Organizational unit name of the TLS certificate's issuer entity
            - `country_name` string, nullable: Country name of the TLS certificate's subject entity / Country name of the TLS certificate's issuer entity
          - `subject_alt_names` string[], nullable: DNS and IP subject alternative names on the TLS certificate
          - `issuer` CertificateEntity
            - `common_name` string, nullable: Common name (CN) of the TLS certificate's subject entity; see `certificate_issuer` for the issuer's common name / Issuer common name of the TLS certificate
            - `organization_name` string, nullable: Organization name of the TLS certificate's subject entity / Organization name of the TLS certificate's issuer entity
            - `organizational_unit_name` string, nullable: Organizational unit name of the TLS certificate's subject entity / Organizational unit name of the TLS certificate's issuer entity
            - `country_name` string, nullable: Country name of the TLS certificate's subject entity / Country name of the TLS certificate's issuer entity
          - `chain` Certificate[], nullable: Chain of parent certificates up to the root, in issuance order
          - `signature_algorithm` string, nullable: Signature algorithm used to sign the TLS certificate
    - `defenses` TechnologyWithInstances[], nullable: Defensive measures in place for the asset
      - `name` string, required: Technology product identified on the asset
      - `vendor` string, nullable: Vendor or manufacturer of the detected Web Application Firewall
      - `technology_type` string, nullable: Category of a web technology or defensive measure detected via Wappalyzer (e.g. CMS, WAF, CDN)
      - `version` string, nullable: Version of a web technology detected via Wappalyzer
      - `instances` TechnologyInstance[]: Specific instances of this technology
        - `seen_at` string, date-time, required: Timestamp of each web scan result
        - `seen_port` integer, required: Port number of a web scan result's URI
        - `seen_url` string, nullable: The URL where this technology was seen, if applicable
    - `exposures` Exposure[], nullable: Exposures found on this asset. Some information will overlap with that contained within `scanned_ips`
      - `id` string, required: Exposure with this signature ID found on the asset
      - `detection_id` string, nullable, required: Exposure with this signature ID found on the asset, as raw-reported before normalization
      - `severity` 'informational' | 'moderate' | 'critical', required
      - `instances` ExposureInstance[], required: List of exposure instances on the asset
        - `port_number` integer, required
        - `evidence_identifiers` string[], nullable
      - `details` object, nullable: Per-instance context payload used to populate exposure details
      - `supports_evidence` boolean, nullable: Does this exposure support evidence downloads?
      - `evidence_identifiers` string[], nullable: Evidence identifiers artifacts captured for this exposure
    - `scanned_ips` ScannedIP[], nullable: IP addresses that have been scanned for this asset
      - `ip` string, ipvanyaddress, required: The scanned IP address, whether the asset's own address or one it currently resolves to
      - `last_scanned_at` string, date-time, nullable: Timestamp of the last scan for each scanned host
      - `open_ports` Port[], nullable: Ports found open on this IP address
        - `port` integer, required: TCP/UDP port open on the asset
        - `protocol` string, required: IP protocol (tcp/udp) of an open port
        - `instances` PortInstance[]: The specific instances of this port on an IP
          - `seen_ip` string, ipvanyaddress, required: IP address of each scanned host
          - `seen_at` string, date-time, required: Timestamp of the last scan for each scanned host
          - `service` string, nullable: Service protocol detected on an open port
          - `technology` TechnologyWithInstances
            - `name` string, required: Technology product identified on the asset
            - `vendor` string, nullable: Vendor or manufacturer of the detected Web Application Firewall
            - `technology_type` string, nullable: Category of a web technology or defensive measure detected via Wappalyzer (e.g. CMS, WAF, CDN)
            - `version` string, nullable: Version of a web technology detected via Wappalyzer
            - `instances` TechnologyInstance[]: Specific instances of this technology
              - …
          - `web_technologies` TechnologyWithInstances[], nullable: Web technologies detected on this port
            - `name` string, required: Technology product identified on the asset
            - `vendor` string, nullable: Vendor or manufacturer of the detected Web Application Firewall
            - `technology_type` string, nullable: Category of a web technology or defensive measure detected via Wappalyzer (e.g. CMS, WAF, CDN)
            - `version` string, nullable: Version of a web technology detected via Wappalyzer
            - `instances` TechnologyInstance[]: Specific instances of this technology
              - …
          - `exposures` Exposure[], nullable: Exposures detected on this port
            - `id` string, required: Exposure with this signature ID found on the asset
            - `detection_id` string, nullable, required: Exposure with this signature ID found on the asset, as raw-reported before normalization
            - `severity` 'informational' | 'moderate' | 'critical', required
            - `instances` ExposureInstance[], required: List of exposure instances on the asset
              - …
            - `details` object, nullable: Per-instance context payload used to populate exposure details
            - `supports_evidence` boolean, nullable: Does this exposure support evidence downloads?
            - `evidence_identifiers` string[], nullable: Evidence identifiers artifacts captured for this exposure
          - `defenses` TechnologyWithInstances[], nullable: Defensive measures in place for the port
            - `name` string, required: Technology product identified on the asset
            - `vendor` string, nullable: Vendor or manufacturer of the detected Web Application Firewall
            - `technology_type` string, nullable: Category of a web technology or defensive measure detected via Wappalyzer (e.g. CMS, WAF, CDN)
            - `version` string, nullable: Version of a web technology detected via Wappalyzer
            - `instances` TechnologyInstance[]: Specific instances of this technology
              - …
        - `certificate` Certificate
          - `expires_at` string, date-time, required: Expiration date of the TLS certificate
          - `issued_at` string, date-time, required: Issuance date of the TLS certificate
          - `sha256` string, required: SHA256 fingerprint of the TLS certificate's public key
          - `subject` CertificateEntity, required
            - `common_name` string, nullable: Common name (CN) of the TLS certificate's subject entity; see `certificate_issuer` for the issuer's common name / Issuer common name of the TLS certificate
            - `organization_name` string, nullable: Organization name of the TLS certificate's subject entity / Organization name of the TLS certificate's issuer entity
            - `organizational_unit_name` string, nullable: Organizational unit name of the TLS certificate's subject entity / Organizational unit name of the TLS certificate's issuer entity
            - `country_name` string, nullable: Country name of the TLS certificate's subject entity / Country name of the TLS certificate's issuer entity
          - `subject_alt_names` string[], nullable: DNS and IP subject alternative names on the TLS certificate
          - `issuer` CertificateEntity
            - `common_name` string, nullable: Common name (CN) of the TLS certificate's subject entity; see `certificate_issuer` for the issuer's common name / Issuer common name of the TLS certificate
            - `organization_name` string, nullable: Organization name of the TLS certificate's subject entity / Organization name of the TLS certificate's issuer entity
            - `organizational_unit_name` string, nullable: Organizational unit name of the TLS certificate's subject entity / Organizational unit name of the TLS certificate's issuer entity
            - `country_name` string, nullable: Country name of the TLS certificate's subject entity / Country name of the TLS certificate's issuer entity
          - `chain` Certificate[], nullable: Chain of parent certificates up to the root, in issuance order
          - `signature_algorithm` string, nullable: Signature algorithm used to sign the TLS certificate
      - `metadata` IPMetadata
        - `as_number` integer, nullable: Autonomous System Number of the asset's IP
        - `owner_name` string, nullable: Organization owning the IP address block
        - `registry` string, nullable: Regional internet registry source for the IP
        - `owner_geo` GeoLocation
          - `continent` string, nullable: Continent name of the IP address' owner geolocation
          - `country` string, nullable: Country name of the IP address' owner geolocation
          - `city` string, nullable: City name of the IP address' owner geolocation
          - `country_iso` string, nullable: ISO country code of the IP geo location
      - `is_responsive` boolean, nullable: Whether the asset responds to ICMP or has open ports
  - `meta` ApiMeta, required
    - `params` object, nullable
    - `counts` ApiCount
      - `total` integer, nullable
      - `returned` integer, required
    - `pagination` PaginationResponse
      - `next_cursor` string, nullable: An opaque value which should be passed as the `cursor` to retrieve the nextpage of results
      - `limit` integer, nullable: The number of items returned
      - `total` integer, nullable
      - `sort` array[], nullable: The sort order of the results
        - unknown[]
          - unknown
    - `request_id` string, nullable

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/recordedfuture/apis/attack-surface-intelligence.md) - [All operations](https://skmtc.dev/recordedfuture/apis/attack-surface-intelligence/llms.txt) - [OpenAPI document](https://skmtc.dev/recordedfuture/apis/attack-surface-intelligence/revisions/7fd5c7304957?raw)
