---
title: "Read Asset"
method: GET
path: "/projects/{project_id}/assets/{asset_id}"
tags: ["Assets"]
---

# Read Asset

`GET /projects/{project_id}/assets/{asset_id}`

Retrieve a specific asset by its ID within a project. Use the `additional_fields` to specify any extra information you want returned about the asset.

## Path parameters

- `project_id` string, required
- `asset_id` string, required — Filter for the specific asset, which will be either a IP or domain value (examples: `192.88.99.2` or `www.example.com`).

## Query parameters

- `additional_fields` string[] — A list of additional fields to include in the response from the following. You may specify this field multiple times or pass a comma-separated list from: `custom_tags`, `dns_records`, `whois`, `ip_metadata`, `open_tcp_ports`, `open_udp_ports`, `web_technologies`, `certificates`, `certificate_chain`, `defenses`, `exposures`, `exposure_instance_details`. By default the custom tags will be returned.

## Response `200`

Successful Response

- AssetResponse
  - `data` Asset, required — An Asset is a representation of a domain or IP address in the system. A large number of enrichment fields can be enabled or disabled by the requestor.
    - `project_id` string, required — Project ID being displayed
    - `id` string, required — The asset identifier. Same as `name` currently. In the future this may become a more opaque value.
    - `name` string, required — The asset identifier. Same as `id` currently.
    - `type` string, required — Indicates the type of assets. Currently will be one of `domain` or `ip
    - `discovered_at` string, date-time, nullable, required — Indicates when Recorded Future ASI first identified this asset on the Internet. For IP assets this is a fixed value
    - `added_to_project_at` string, date-time, required — Indicates when this asset became part of your project, which may be when it was first discovered or when a rule allowed it in
    - `last_scanned_at` string, date-time, nullable — Indicates the last occurrence of some scanning activity on this asset, which could be port or vulnerability scans. On-Demand scans will 'bump' this date.
    - `apex_domain` string, nullable — For `domain` assets, the 'top' domain this is a part of. E.g. for `foo.bar.example.com` this would be `example.com`
    - `exposure_score` integer, nullable — The Recorded Future ASI-calculated score based on the Exposures found on your asset.
    - `is_static_asset` boolean — Indicates whether this asset was discovered as part of project rules (`false`) or was added manually (`true`).
    - `custom_tags` string[], nullable — User-defined tags which have been put on this asset. **NOTE**: After calling tagging endpoints, there may be a delay of up to a couple minutes before tags appear.
    - `resolved_ips` string[], nullable — A convenience list of the IP addresses that A or CNAME records resolve to for this asset, or the aset iself.
    - `dns_records` DNSRecord[], nullable — List of DNS records we have queried with
      - `record_type` string, required
      - `value` DNSValue[], nullable, required
        - `value` union, required
          - string
          - object
        - `seen_from` string[]
        - `first_seen_at` string, date-time, nullable
        - `last_resolved_at` string, date-time, nullable, required
      - `is_virtual` boolean — Is this a virtual DNS record?
    - `whois` WHOISRecord — From proposal: contact.email contact.organization contact.name expires created updated registrar
      - `registrar` string, nullable — Registrar of the domain if known
      - `expires_at` string, date-time, nullable — Expiration date of the domain
      - `updated_at` string, date-time, nullable — Last updated date of the domain
      - `created_at` string, date-time, nullable — Creation date of the domain
      - `is_private` boolean, nullable — Is the domain registration private?
      - `is_from_parent` boolean — Is this WHOIS record from the parent domain?
      - `contacts` WHOISContact[], nullable — Contacts associated with the domain
        - `email` string, nullable — Email address of the contact
        - `name` string, nullable — Name of the contact, if available
        - `organization` string, nullable — Organization of the contact
        - `is_current` boolean — Is this still a current contact?
      - `name_servers` string[], nullable — Primary nameservers for the domain
    - `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
        - `issued_at` string, date-time, required
        - `sha256` string, required
        - `subject` CertificateEntity, required
          - `common_name` string, nullable
          - `organization_name` string, nullable
          - `organizational_unit_name` string, nullable
          - `country_name` string, nullable
        - `subject_alt_names` string[], nullable
        - `issuer` CertificateEntity
          - `common_name` string, nullable
          - `organization_name` string, nullable
          - `organizational_unit_name` string, nullable
          - `country_name` string, nullable
        - `chain` Certificate[], nullable
        - `signature_algorithm` string, nullable
      - `seen_ports` Port[], nullable — When available, indicates 'where' we saw this certificate. An asset may have serviced different certificaes on different ports, at different times
        - `port` integer, required — The open port number
        - `protocol` string, required — The protocol of the open port, should be one of UDP or TCP
        - `instances` PortInstance[] — The specific instances of this port on an IP
          - `seen_ip` union, required
            - string, ipvanyaddress
            - string, ipv6
          - `seen_at` string, date-time, required
          - `service` string, nullable — The service protocol running on the open port
          - `technology` TechnologyWithInstances
            - `name` string, required — The name of the technology, sometimes prefixed with the vendor
            - `vendor` string, nullable — If available, the vendor of the product
            - `technology_type` string, nullable — If available, the type of technology
            - `version` string, nullable — If available, the specific version of the product
            - `instances` TechnologyInstance[] — Specific instances of this technology
              - …
          - `web_technologies` TechnologyWithInstances[], nullable — Web technologies detected on this port
            - `name` string, required — The name of the technology, sometimes prefixed with the vendor
            - `vendor` string, nullable — If available, the vendor of the product
            - `technology_type` string, nullable — If available, the type of technology
            - `version` string, nullable — If available, the specific version of the product
            - `instances` TechnologyInstance[] — Specific instances of this technology
              - …
          - `exposures` Exposure[], nullable — Exposures detected on this port
            - `id` string, required
            - `detection_id` string, nullable, required
            - `severity` 'unknown' | 'informational' | 'moderate' | 'critical', required
            - `instances` ExposureInstance[], required
              - …
            - `details` object, nullable
            - `supports_evidence` boolean, nullable — Does this exposure support evidence downloads?
          - `defenses` DefensiveControl[], nullable — Defensive measures in place for the port
            - `name` string, required — The name of the technology, sometimes prefixed with the vendor
            - `vendor` string, nullable — If available, the vendor of the product
            - `technology_type` string, nullable — If available, the type of technology
            - `version` string, nullable — If available, the specific version of the product
            - `instances` TechnologyInstance[] — Specific instances of this technology
              - …
        - `certificate` Certificate
          - `expires_at` string, date-time, required
          - `issued_at` string, date-time, required
          - `sha256` string, required
          - `subject` CertificateEntity, required
            - `common_name` string, nullable
            - `organization_name` string, nullable
            - `organizational_unit_name` string, nullable
            - `country_name` string, nullable
          - `subject_alt_names` string[], nullable
          - `issuer` CertificateEntity
            - `common_name` string, nullable
            - `organization_name` string, nullable
            - `organizational_unit_name` string, nullable
            - `country_name` string, nullable
          - `chain` Certificate[], nullable
          - `signature_algorithm` string, nullable
    - `defenses` DefensiveControl[], nullable — Defensive measures in place for the asset
      - `name` string, required — The name of the technology, sometimes prefixed with the vendor
      - `vendor` string, nullable — If available, the vendor of the product
      - `technology_type` string, nullable — If available, the type of technology
      - `version` string, nullable — If available, the specific version of the product
      - `instances` TechnologyInstance[] — Specific instances of this technology
        - `seen_at` string, date-time, required
        - `seen_port` integer, required
        - `seen_url` string, uri, nullable — The URL where this technology was seen, if applicable
    - `exposures` Exposure[], nullable — Exposures found on this asset. Some information will overlap with tah contained within `scanned_ips`
      - `id` string, required
      - `detection_id` string, nullable, required
      - `severity` 'unknown' | 'informational' | 'moderate' | 'critical', required
      - `instances` ExposureInstance[], required
        - `port_number` integer, required
        - `url` string, nullable
        - `details` object, nullable
      - `details` object, nullable
      - `supports_evidence` boolean, nullable — Does this exposure support evidence downloads?
    - `scanned_ips` ScannedIP[], nullable — IP addresses that have been scanned for this asset
      - `ip` string, ipvanyaddress, required
      - `last_scanned_at` string, date-time, nullable — Datetime when a port scan was run on this IP address
      - `whois` WHOISRecord — From proposal: contact.email contact.organization contact.name expires created updated registrar
        - `registrar` string, nullable — Registrar of the domain if known
        - `expires_at` string, date-time, nullable — Expiration date of the domain
        - `updated_at` string, date-time, nullable — Last updated date of the domain
        - `created_at` string, date-time, nullable — Creation date of the domain
        - `is_private` boolean, nullable — Is the domain registration private?
        - `is_from_parent` boolean — Is this WHOIS record from the parent domain?
        - `contacts` WHOISContact[], nullable — Contacts associated with the domain
          - `email` string, nullable — Email address of the contact
          - `name` string, nullable — Name of the contact, if available
          - `organization` string, nullable — Organization of the contact
          - `is_current` boolean — Is this still a current contact?
        - `name_servers` string[], nullable — Primary nameservers for the domain
      - `open_ports` Port[], nullable
        - `port` integer, required — The open port number
        - `protocol` string, required — The protocol of the open port, should be one of UDP or TCP
        - `instances` PortInstance[] — The specific instances of this port on an IP
          - `seen_ip` union, required
            - string, ipvanyaddress
            - string, ipv6
          - `seen_at` string, date-time, required
          - `service` string, nullable — The service protocol running on the open port
          - `technology` TechnologyWithInstances
            - `name` string, required — The name of the technology, sometimes prefixed with the vendor
            - `vendor` string, nullable — If available, the vendor of the product
            - `technology_type` string, nullable — If available, the type of technology
            - `version` string, nullable — If available, the specific version of the product
            - `instances` TechnologyInstance[] — Specific instances of this technology
              - …
          - `web_technologies` TechnologyWithInstances[], nullable — Web technologies detected on this port
            - `name` string, required — The name of the technology, sometimes prefixed with the vendor
            - `vendor` string, nullable — If available, the vendor of the product
            - `technology_type` string, nullable — If available, the type of technology
            - `version` string, nullable — If available, the specific version of the product
            - `instances` TechnologyInstance[] — Specific instances of this technology
              - …
          - `exposures` Exposure[], nullable — Exposures detected on this port
            - `id` string, required
            - `detection_id` string, nullable, required
            - `severity` 'unknown' | 'informational' | 'moderate' | 'critical', required
            - `instances` ExposureInstance[], required
              - …
            - `details` object, nullable
            - `supports_evidence` boolean, nullable — Does this exposure support evidence downloads?
          - `defenses` DefensiveControl[], nullable — Defensive measures in place for the port
            - `name` string, required — The name of the technology, sometimes prefixed with the vendor
            - `vendor` string, nullable — If available, the vendor of the product
            - `technology_type` string, nullable — If available, the type of technology
            - `version` string, nullable — If available, the specific version of the product
            - `instances` TechnologyInstance[] — Specific instances of this technology
              - …
        - `certificate` Certificate
          - `expires_at` string, date-time, required
          - `issued_at` string, date-time, required
          - `sha256` string, required
          - `subject` CertificateEntity, required
            - `common_name` string, nullable
            - `organization_name` string, nullable
            - `organizational_unit_name` string, nullable
            - `country_name` string, nullable
          - `subject_alt_names` string[], nullable
          - `issuer` CertificateEntity
            - `common_name` string, nullable
            - `organization_name` string, nullable
            - `organizational_unit_name` string, nullable
            - `country_name` string, nullable
          - `chain` Certificate[], nullable
          - `signature_algorithm` string, nullable
      - `metadata` IPMetadata
        - `as_number` integer, nullable — Autonomous System Number which IP/block is registered to
        - `owner_name` string, nullable — AS or Org Name of the IP/block is registered to
        - `registry` string, nullable — Nearest or top-level RIR
        - `owner_geo` GeoLocation
          - `continent` string, nullable — Continent of the IP address
          - `country` string, nullable — Country of the IP address
          - `city` string, nullable — City of the IP address
          - `country_iso` string, nullable — ISO code of the country of the IP address
      - `is_responsive` boolean, nullable — Indicates whether this IP address is unresponsive over ICMP and no ports were found open
  - `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 next page of results. If None or not present there are no remaining pages. This value should not be interpreted by the client.
      - `limit` integer — 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/securitytrails/apis/securitytrails-api.md) · [All operations](https://skmtc.dev/securitytrails/apis/securitytrails-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/securitytrails/securitytrails-api/revisions/13cd180c20ab/schema)
