Analytics
Deterministic, database-grounded analytics over the sponsorship deal graph. Use these instead of free-text ask_graph for any counting, ranking, or benchmarking question.
aggregate_deals
Count sponsorship deals grouped by a facet — the deterministic answer to "how many / top N / by category|sport|league / benchmark" questions.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
group_by | string | Yes | One of industry, sub_sector, sport, league, country, deal_type, sponsor_tier |
split_by | string | No | Secondary facet (same value set) — nests a count under each group |
filters | object | No | { industry, sub_sector, sport, league, country, deal_type:[], status:[], min_amount, since, target_label }. Values use exact English taxonomy (e.g. financial_services). |
metrics | string[] | No | Subset of count, amount_avg, amount_median, amount_sum (amount metrics are EUR/USD/GBP only; not combinable with split_by) |
top_n | number | No | Max groups (default 10, max 50) |
include_examples | number | No | Flagship deals per group (max 5) |
Returns
{ group_by, split_by, filters, groups: [{ key, count, splits?, amount?, examples? }], total_deals_considered }.
Example prompts
"Top 10 categories by deal volume over the last 12 months, split by sport" "How many sponsorship deals per sport for fintech brands?" "Kit/jersey sponsorship deals among La Liga clubs"
Note:
deal_typedistinguishesjersey,naming,branding, etc. — there is no dedicatedsleevevalue, so "sleeve" resolves to jersey/kit deals.
database_search
Faceted AND/OR entity filter over the graph. Two uses:
- Build shortlists — filter brands/rightholders by industry, sub-sector, sponsored sport/league/country, and more.
- Bulk-export many brands — one call returns up to 100 complete nodes, the source of truth behind the app's CSV export and the CRM sync. (For a SINGLE brand,
get_entityalready returns the full node + its sponsors.)
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
groups | object[] | Yes | [{ operator: "AND"|"OR", conditions: [{ entity_type, property, operator, value }] }]. Condition operator ∈ eq, contains, in, gte, lte, range, not_eq, exists, not_exists. |
operator | string | No | How groups combine (AND/OR) |
limit | number | No | Max nodes (default 100, max 100) |
offset | number | No | Page offset |
Returns
{ nodes: [{ id, label, type, properties }], total }. For a brand, properties contains its full firmographic profile.
Every field of a brand
Filter on name to pull one brand's whole node:
{
"groups": [
{ "operator": "AND", "conditions": [
{ "entity_type": "brand", "property": "name", "operator": "eq", "value": "Qonto" }
]}
]
}
The returned properties object includes (when known):
- Identity —
name,aliases,website,website_domain,linkedin_url,description - Classification —
industry,sub_sector,keywords,business_models,brand_positioning,geographic_scope,ownership_type,group(parent) - Size & financials —
revenue,revenue_eur,revenue_range,employees,founding_year - HQ —
siege_social_pays(country),siege_social_etat(state/region),siege_social_ville(city),address,hq_continent,hq_region - Geographic footprint —
operating_countries,operating_regions,operating_cities,operating_continents,brand_acts_in - Audience —
target_audience_income_level,target_audience_key_interests - Funding (VC-backed brands) —
funding_rounds_count,funding_last_round_type,funding_last_round_amount_eur,funding_last_round_date,funding_first_round_date,growth_stage
For a single brand,
get_entityreturns the same full node (plus its sponsors). Usedatabase_searchwhen you need many brands at once or a filtered shortlist.
Multiple brands at once (bulk export)
A single call returns up to 100 full nodes — the same data the app's CSV export produces for a list. total reports the full match count; page with offset (0, 100, 200…) for larger sets.
-
By filter — every brand matching a facet, each with its full profile:
{"groups":[{"operator":"AND","conditions":[{"entity_type":"brand","property":"sub_sector","operator":"eq","value":"fintech"}]}],"limit":100, "offset":0} -
By an explicit list of names — use the
inoperator:{"groups":[{"operator":"AND","conditions":[{"entity_type":"brand","property":"name","operator":"in","value":["Revolut","Qonto","N26"]}]}]}
To export your saved list specifically, get_pipeline returns every saved entity in the workspace with its stored entityData — the MCP equivalent of the My Lists CSV export.
See also brand_intel_benchmark (avg/median/count of deal amounts by sport & league) and brand_intel_opportunities (under-served sport segments).
get_distinct_values
List the distinct values a property takes — powers typeahead and filter building.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
node_type | string | Yes | e.g. "Brand", "RightHolder" |
property_name | string | Yes | Property to enumerate (e.g. "industry", "country") |
prefix | string | No | Only values starting with this prefix |
limit | number | No | Max values (default 20) |
Example prompt
"What industries exist in the brand database?"
get_value_counts
Count how many nodes have a given property value.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
property_name | string | Yes | Property to match |
value | string | Yes | Value to count |
node_types | string[] | Yes | Which node types to count across |
Example prompt
"How many brands are in the Retail industry?"