Entity Details

This API endpoint provides detailed information about a specific threat intelligence entity, including its attributes, metadata, geolocations, and latest associations.

Endpoint: https://apis.threatwinds.com/api/analytics/v1/entity/{id}/details

Parameters

Headers

Header Type Required Description
Authorization string Optional Bearer token from an active session. Authentication is optional but improves rate limits.
api-key string Optional API key. Authentication is optional but improves rate limits.
api-secret string Optional API secret. Authentication is optional but improves rate limits.
Parameter Type Required Description
id string Yes The unique identifier of the entity you want to retrieve details for

Request

To get details for a specific entity, use a GET request, for example:

curl -X 'GET' \
  'https://apis.threatwinds.com/api/analytics/v1/entity/ip-ad0c2ed9a0a9b23822e5907b0d009bcaf8f969db793cd1d94c40e17e0287c04b/details' \
  -H 'accept: application/json' \
  -H 'Authorization: Bearer <YOUR_BEARER_TOKEN>'

Or using API key and secret:

curl -X 'GET' \
  'https://apis.threatwinds.com/api/analytics/v1/entity/ip-ad0c2ed9a0a9b23822e5907b0d009bcaf8f969db793cd1d94c40e17e0287c04b/details' \
  -H 'accept: application/json' \
  -H 'api-key: <YOUR_API_KEY>' \
  -H 'api-secret: <YOUR_API_SECRET>'

Response

A successful response returns a JSON object containing detailed information about the entity, including:

Field Description
attributes Core attributes of the entity (type, value, reputation, accuracy, label, description, etc.). The value field can be any valid JSON type (string, number, boolean, object, or array)
metadata Contains all entity attributes EXCEPT the primary attribute (key matching entity type). For an IP entity, the ip field goes to attributes.value but subnet, text, etc. appear in metadata. Keys are dynamic and type-specific
geolocations Geolocation information; included for IP entities and for non-threat entities that have IP associations
latest_associations Recent entities associated with this entity
extended_metadata Cross-referenced entities: other entities whose primary attribute matches a non-primary attribute value of the queried entity (e.g., ASN entity matching metadata.asn)

Key attributes fields:

Field Type Description
label string Human-readable label for the entity type (from the type definition table, not the entity itself)
description string Description of the entity type (from the type definition table, not the entity itself)

Reputation & Accuracy Scales

Reputation Scale

Score Label
-3 Alarming
-2 Worrying
-1 Concerning
0 Indefinable
1 Adequate
2 Good
3 Exceptional

Accuracy Scale

Score Label
≤0 Inaccurate
1 Imprecise
2 Fairly precise
3 Precise

How This Maps to the Search API

The same entity can be returned by both Entity Retrieval (Search API) and this endpoint (Analytics API), but in two different shapes. Do not parse one with the other’s expectations:

  Search API (/search/v1/entity/{id}) Analytics API (this endpoint)
Envelope Flat — fields at the top level Wrapped in attributes (plus metadata, geolocations, latest_associations, extended_metadata)
id Top-level Nested in attributes.id
reputation Integer only (reputation: 3) String label and score (reputation: "Exceptional", reputation_score: 3)
best / worst bestReputation / worstReputation (integers) best_reputation(_score) / worst_reputation(_score)
timestamps @timestamp (created), lastSeen first_seen, last_seen
case camelCase (lastSeen, wellKnown) snake_case (last_seen, first_seen)
value attributes.ip (attribute keyed by type) attributes.value
extra fields wellKnown, visibleBy present no wellKnown; adds label, description, metadata, geolocations, latest_associations, extended_metadata

The id itself is identical in both — [type]-[hash] (e.g. ip-ad0c2ed9…) — so an ID you get from a search result works as the {id} here. Only the field layout and the reputation representation differ.

Example response:

{
  "attributes": {
    "id": "ip-ad0c2ed9a0a9b23822e5907b0d009bcaf8f969db793cd1d94c40e17e0287c04b",
    "type": "ip",
    "value": "8.8.8.8",
"label": "IP Address",
"description": "An IP address entity",
    "reputation": "Exceptional",
    "reputation_score": 3,
    "best_reputation": "Exceptional",
    "best_reputation_score": 3,
    "worst_reputation": "Indefinable",
    "worst_reputation_score": 0,
    "accuracy": "Precise",
    "accuracy_score": 3,
    "first_seen": "2021-01-01T00:00:00Z",
    "last_seen": "2023-06-15T14:30:00Z",
    "tags": ["dns", "google", "public"]
  },
  "metadata": {
    "asn": 15169,
    "aso": "Google LLC",
    "country": "United States"
  },
  "geolocations": [
    {
      "city": "Mountain View",
      "country": "United States",
      "latitude": 37.4056,
      "longitude": -122.0775,
      "accuracy_radius": 1000,
      "asn": 15169,
      "aso": "Google LLC",
      "object": "8.8.8.0/24"
    }
  ],
  "latest_associations": [
    {
      "id": "domain-b7c3e81a4f2d9c05e6a1f0d38b2c47e9a1b5c8d0f3e6a9c2b4d7f0e1",
      "type": "domain",
      "value": "dns.google",
      "reputation": "Exceptional",
      "reputation_score": 3,
      "accuracy": "Precise",
      "accuracy_score": 3,
      "first_seen": "2021-02-15T00:00:00Z",
      "last_seen": "2023-06-10T12:00:00Z"
    }
  ],
  "extended_metadata": [
    {
      "id": "registrar-5a91c3e82f7d0b46a1c8e5d2f9b3a7c4d0e6f1b8a2c9d4e7f3b0a6c5d8e1f2",
      "type": "registrar",
      "value": "Google LLC",
      "reputation": "Exceptional",
      "reputation_score": 3,
      "accuracy": "Precise",
      "accuracy_score": 3,
      "first_seen": "2021-02-15T00:00:00Z",
      "last_seen": "2023-06-10T12:00:00Z"
    }
  ]
}

Error Response Headers

For responses with error status codes, the following headers are included:

Header Description
x-error Human-readable error message describing what went wrong
x-error-id Unique identifier for error tracking and support

Error Codes

Status Code Description Possible Cause
400 Bad Request Invalid entity ID or invalid request parameters
401 Unauthorized Invalid authentication credentials
404 Not Found Entity not found
500 Internal Server Error Server-side error; please contact support if persistent