Intent signals tell you what a known company is actively researching right now. The HG API returns two complementary types of intent data from a single endpoint: HG Contextual Intent (topic-based signals derived from web content consumption) and TrustRadius buyer activities (first-party behavioral signals from the TrustRadius review platform).
HG processes nearly 2 billion intent records per week, monitoring web content consumption across 4,000+ B2B technology topics. When a company's employees repeatedly consume content about a topic — product reviews, comparison pages, how-to guides — HG registers a topic intent signal and contextualizes it against that company's known tech stack.
What makes HG topic intent distinct: the signal isn't just "researching Zero Trust" — it's "researching Zero Trust while already running a competing product," which changes the interpretation entirely. That context is surfaced via context_type_names.
Each topic signal includes:
**name**— the topic being researched (e.g.,"Zero Trust Architecture","Cloud Security Posture Management")**score**— signal strength, 0–100**signal_level**—HIGH(score > 84) orMEDIUM(score 60–84) based on volume, recency, and trajectory**trend**— direction of signal change; positive = increasing activity**buyers_journey_name**—Researching(early-stage, exploring options) orEvaluating(actively comparing solutions)**context_type_names**— what kind of purchase this signal suggests (see Context Types)**context_dispositions**— sentiment of the signal (e.g.,POSITIVE)**last_seen_at**— most recent date a signal was observed**product_names**/**vendor_names**— products and vendors associated with the signal**location_strength**— geographic concentration of the signal (0–100)**source**— alwayshgfor topic signals
TrustRadius captures first-party behavioral data from real buyers on their product review platform. When someone from a company views a product page, reads reviews, or compares solutions on TrustRadius, it registers as a buyer activity. These are mid-to-bottom-of-funnel signals: the buyer has moved past awareness and is actively evaluating specific products.
Each activity includes:
**activity_type**— what the buyer did (e.g.,"view","compare")**activity_label**— human-readable description (e.g.,"Product Details","Competitors","Review")**activity_date**— when it happened**daily_views**— how many times that day**intent_signal_url**— direct link to the TrustRadius page that triggered the signal**products**/**vendors**— what was being researched**city_name**/**state_name**/**country_name**— approximate visitor location
When to use each: TrustRadius activities are bottom-of-funnel — someone is actively in the product. HG topics are broader and earlier-stage across the full web. A company showing both in the same category is a high-confidence, high-urgency signal.
Call /intent/enrich scoped to your category's topic_ids. If buyers_journey_name is Evaluating + signal_level is HIGH, the account is actively comparing solutions — highest urgency tier.
Filter context_type_names: ["Displacement"] with a competitor's vendor_ids. If signals are present, the account is researching a replacement and timing is right for outreach. If no signals, note it and re-check next cycle.
If an account shows HG topic signals AND TrustRadius activities in the same category, treat it as a high-confidence in-market signal. Neither source alone is as strong as both together.
Use fields: ["summary"] for a fast, free sweep across your full account list — no credits consumed. Identify which accounts have high_signal_topics_count > 0 or recent latest_signal_date, then drill into topics and activities only for accounts that clear your threshold.
POST /data-api/v2/intent/enrichReturns intent signals for a single known company. Identify the company by domain or HG id. This is an enrichment endpoint — you already know which company you want; you're fetching the depth of their intent signals.
Looking to discover companies by intent? Use POST /data-api/v2/companies/search with filters.intent to find companies matching specific intent criteria across your addressable market. See Finding Companies by Intent.
Intent data is credit-priced. Before calling /intent/enrich, use the estimate endpoint with the same request body to see the cost — no credits consumed, no data returned.
POST /data-api/v2/intent/enrich/estimateResponse includes credits_estimate, available_credits, sufficient_credits, and a per-section breakdown (topics vs activities). If sufficient_credits is false, narrow your request — filter to specific topic_ids or drop activities from fields.
Three sections, all returned by default. Use the fields array to request only what you need.
| Section | Contains | Credit cost |
|---|---|---|
summary | Aggregate counts: active topics, high-signal topics, latest signal date, source breakdown, top context types | Free — 0 credits |
topics | HG Contextual Intent topic signals (paginated) | Charged per record |
activities | TrustRadius buyer activity signals (paginated) | Charged per record |
Filters are scoped by section. The API enforces strict nesting — putting a filter in the wrong level returns a 422.
| Filter | Type | Description |
|---|---|---|
filters.signal_date.min / .max | date string | Narrow signals to a date range |
filters.vendor_ids | integer[] | Only signals related to these vendor IDs |
filters.product_ids | integer[] | Only signals related to these product IDs |
| Filter | Values | Description |
|---|---|---|
signal_level | "HIGH", "MEDIUM" | Filter by signal strength |
buyers_journey_names | "Researching", "Evaluating" | Filter by buying stage |
context_type_names | "Displacement", "Whitespace", "Expansion", "Complementary" | Filter by purchase context |
topic_ids | hex string[] | Scope to specific topic IDs — always use this in production (see note below) |
| Filter | Type | Description |
|---|---|---|
product_category_ids | hex string[] | Filter TrustRadius activities by product category |
Always filter by
topic_idsin production. The catalog has 4,000+ topics. Without this filter, the response includes every topic the company has ever shown activity on — often hundreds of thousands of records and significant credit cost. UseGET /data-api/v2/catalog/intent_topics?name=<keyword>to find the IDs for your category first, then pass them here.
Context types are HG's proprietary interpretation of what a topic signal means — derived by cross-referencing the intent signal against the company's known tech stack. Available on HG topic signals only.
| Context Type | What it means |
|---|---|
Displacement | Company researching a product where HG detects a competing product already installed. Actively shopping for a replacement — highest urgency. |
Whitespace | Company researching a product in a category where no install is detected. Net-new capability purchase likely; may need more education. |
Expansion | Company researching a product from a vendor they already use. Likely expanding footprint within an existing relationship. |
Complementary | Company researching tools that work alongside their existing stack. Cross-sell signal. |
limit (default: 50, max: 200) and offset are request-level parameters — they apply uniformly to both topics and activities sections.
Before a sales call or before triggering an outreach sequence, check whether the account is actively researching topics in your category. Scope the request to your relevant topic IDs to control cost and get a clean signal. Get topic IDs from GET /data-api/v2/catalog/intent_topics?name=zero+trust first.
"Is HPE in-market for Zero Trust?"
curl -X POST https://api.hginsights.com/data-api/v2/intent/enrich \
-H "Authorization: Bearer $HG_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"company": { "domain": "hpe.com" },
"fields": ["summary", "topics"],
"filters": {
"topics": {
"topic_ids": [
"C66928848C2664D99CBCABFE12D4871",
"2542E6789B273C51BE81F0000A669969",
"248F517588E2D6CC33535D3CA7802222"
],
"signal_level": ["HIGH", "MEDIUM"]
}
},
"limit": 10
}'{
"company": {
"id": "...",
"name": "HEWLETT PACKARD ENTERPRISE COMPANY",
"domain": "hpe.com"
},
"summary": {
"active_topics_count": 617904,
"high_signal_topics_count": 154571,
"latest_signal_date": "2026-05-30",
"sources": { "hg": 617904, "trustradius": 498 },
"top_context_types": {
"Displacement": 2233,
"Expansion": 13900,
"Complementary": 11386
}
},
"topics": {
"count": 17,
"data": [
{
"id": "C66928848C2664D99CBCABFE12D4871",
"name": "Zero Trust Architecture",
"score": 92,
"signal_level": "HIGH",
"trend": 0.0,
"buyers_journey_name": "Researching",
"context_type_names": [],
"last_seen_at": "2026-05-16",
"state_name": "TX",
"country_name": "United States of America (the)",
"region_name": "AMER",
"location_strength": 47,
"vendor_names": [],
"product_names": [],
"source": "hg"
}
]
}
}summary.active_topics_count reflects the company's total intent profile across all topics — not just your filter. Use topics.count (17) to see how many matched.
TrustRadius activities reveal bottom-of-funnel behavior: a real buyer at the company is on the platform, reading competitor reviews or comparing products in a category. Scope to a specific product category using filters.activities.product_category_ids — get category IDs from GET /data-api/v2/catalog/product_categories?name=<category>.
The Data Security category ID (5416985E784F2637FF24841C8E141D5) was retrieved from GET /data-api/v2/catalog/product_categories?name=data+security.
curl -X POST https://api.hginsights.com/data-api/v2/intent/enrich \
-H "Authorization: Bearer $HG_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"company": { "domain": "hpe.com" },
"fields": ["activities"],
"filters": {
"signal_date": { "min": "2026-01-01" },
"activities": {
"product_category_ids": ["5416985E784F2637FF24841C8E141D5"]
}
},
"limit": 3
}'{
"company": {
"id": "17A5AD9E58706F10B0AE715432DC533E",
"name": "HEWLETT PACKARD ENTERPRISE COMPANY",
"domain": "hpe.com"
},
"activities": {
"count": 2,
"data": [
{
"activity_type": "view",
"activity_label": "Competitors",
"activity_date": "2026-05-30",
"daily_views": 1,
"intent_signal_url": "https://www.trustradius.com/products/seclore/competitors",
"products": ["Seclore"],
"vendors": ["Seclore Technology Pvt Ltd"],
"city_name": "Spring",
"state_name": "TX",
"country_name": "United States of America (the)"
},
{
"activity_type": "view",
"activity_label": "Product Details",
"activity_date": "2026-05-30",
"daily_views": 1,
"intent_signal_url": "https://www.trustradius.com/products/bitlocker-drive-encryption/reviews#1",
"products": ["BitLocker Drive Encryption"],
"vendors": ["Microsoft Corporation"],
"city_name": "Spring",
"state_name": "TX",
"country_name": "United States of America (the)"
}
]
}
}count: 2 — HPE had 2 Data Security activity records since January. activity_label: "Competitors" on Seclore means the buyer viewed the competitor comparison page — actively evaluating alternatives in the category. activity_label: "Product Details" on BitLocker means they reviewed that product's feature page. intent_signal_url links directly to the TrustRadius page that triggered each signal.
Filter by context_type_names: ["Displacement"] with a competitor's vendor_id to check whether an account is actively researching a replacement for that vendor's products. Get vendor IDs from GET /data-api/v2/catalog/vendors?name=<vendor>.
curl -X POST https://api.hginsights.com/data-api/v2/intent/enrich \
-H "Authorization: Bearer $HG_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"company": { "domain": "hpe.com" },
"fields": ["topics"],
"filters": {
"vendor_ids": [3011],
"topics": {
"signal_level": ["HIGH"],
"context_type_names": ["Displacement"]
}
},
"limit": 5
}'No topics returned → the account isn't showing active displacement intent for that vendor right now. No signal is also a signal.
Use these to discover valid IDs for filters:
| What you need | Endpoint |
|---|---|
| Intent topic IDs | GET /data-api/v2/catalog/intent_topics?name=<keyword> |
| Buyers journey values | GET /data-api/v2/catalog/intent_buyers_journey |
| Context type values | GET /data-api/v2/catalog/intent_context_types |
| Vendor IDs | GET /data-api/v2/catalog/vendors?name=<vendor> |
| Product IDs | GET /data-api/v2/catalog/products?name=<product> |
Use POST /data-api/v2/companies/search with filters.intent to find companies that have active intent signals matching your criteria.
This is the inverse of /intent/enrich: instead of "give me intent data for this company", you're asking "give me companies that have this intent."
Two common patterns:
Search by HG topic — find companies researching a specific topic:
curl -X POST https://api.hginsights.com/data-api/v2/companies/search \
-H "Authorization: Bearer $HG_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"filters": {
"intent": {
"topics": {
"ids": ["19861D3AC60455102792F87A33AF533F"],
"inclusion_method": "ANY_PRESENT"
},
"signal_score": "HIGH"
}
}
}'Use GET /data-api/v2/catalog/intent_topics?name=<keyword> to look up topic IDs.
Search by context type — find companies showing displacement or whitespace intent at a specific signal strength:
curl -X POST https://api.hginsights.com/data-api/v2/companies/search \
-H "Authorization: Bearer $HG_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"filters": {
"intent": {
"context_type_ids": {
"ids": ["DEF456789012345678901234ABCDEF12"],
"inclusion_method": "ANY_PRESENT"
},
"signal_score": "HIGH"
}
}
}'Use GET /data-api/v2/catalog/intent_context_types to look up context type IDs.
| Filter | Type | Description |
|---|---|---|
topics | object | Filter by intent topic IDs (ids + inclusion_method) |
signal_score | MEDIUM or HIGH | Minimum signal score. MEDIUM = 65–84, HIGH = 85–100 |
context_type_ids | object | Filter by context type IDs (ids + inclusion_method) |
buyers_journey_ids | object | Filter by buyers journey stage IDs |
location | object | Filter by signal origin — country_alpha2s, state_ids, or region_names |
number_of_cadences | integer | Minimum number of signal cadences (repeat activity cycles) |
Note: The search endpoint's intent filter supports HG topic signals only right now. To filter by TrustRadius product activity (page views, comparisons), first find your target companies via search, then call
POST /data-api/v2/intent/enrichon each company withfields: ["activities"].