Statistics
The brand's networks, ads, website and activity in Nömad: figures with their period, source and comparison.
Privacy and analytics
We use necessary technical cookies and, only with your consent, analytics and marketing pixels to improve the website and measure campaigns.
The brand's networks, ads, website and activity in Nömad: figures with their period, source and comparison.
Read-only in every door.
The brand's headline figures for a period (followers, reach, engagement, website sessions, ad spend, posts published, works completed, messages with Nömad) compared with the previous period, plus which sources are connected. Use it for «how is my brand doing?». Each figure names its sources and, when the provider reported another window (Meta Ads: last 30 days), that window; null means nothing measures it, so suggest connecting the source in sources that unlocks it (only a brand owner or admin connects, in Nömad › Connections). Never invent or estimate numbers.
| Field | Value |
|---|---|
| Kind | Read |
| HTTP method | POST /api/v1/stats.overview |
| MCP tool | stats_overview |
| Scope | stats.read |
| Minimum role | Viewer |
| Human confirmation | No |
| Doors | Nödo, Voice, MCP, API, Chat, Screens, Apps |
| Status | Available |
Input
{
from?: string // First day of the period (YYYY-MM-DD). Default: 28 days before `to`.
to?: string // Last day of the period (YYYY-MM-DD), included. Default: yesterday in `timeZone`.
compare?: "previous" | "year" | "none" // default "previous" · `previous`: the same number of days just before; `year`: the same days a year earlier; `none`: no comparison.
timeZone?: string // ≤ 64 · IANA zone the days are counted in. Default: Europe/Madrid.
}Output
{
period: {
from: string
to: string
previousFrom: string | null
previousTo: string | null
compare: "previous" | "year" | "none"
timeZone: string
}
figures: Array<{
metric: "followers" | "reach" | "impressions" | "views" | "engagement" | "engagement_rate" | "clicks" | "ctr" | "spend" | "conversions" | "sessions" | "active_users" | "page_views" | "calls" | "directions" | "posts_published" | "works_completed" | "works_opened" | "conversations" | "messages" | "files_added" | "meetings"
value: number | null // Null when no source the brand has measures it in the period.
previous: number | null
change: number | null // Stock metrics (followers): gained or lost during the period.
currency: string | null // ISO currency for `spend`; null when several currencies cannot be added.
sources: string[] // Products (`instagram`, `meta_ads`, `nomad`…) the value comes from.
window: {
from: string
to: string
}
| null // When a provider reported a different window than the period (e.g. Meta Ads last 30 days), the window the value covers.
partial: boolean // True when some connected source could not contribute to this figure in the period.
}>
sources: Array<{
product: string
family: "social" | "web" | "business" | "ads" | "email" | "nomad"
name: string
adapter: "live" | "contract" // `live`: Nömad reads it; `contract`: declared, not read yet (see `missing`).
state: "connected" | "attention" | "not_connected" | "unavailable" // `attention`: connected but a connection needs a person (reconnect in Connections). `unavailable`: cannot be connected yet.
accounts: Array<{
id: string
name: string
handle: string | null
status: string // Connection status: active, limited, refresh_required, expired, revoked, error, paused, disconnected, transferred.
lastReadAt: string | null // Last time Nömad stored a metric of this account.
}>
unlocks: Array<"followers" | "reach" | "impressions" | "views" | "engagement" | "engagement_rate" | "clicks" | "ctr" | "spend" | "conversions" | "sessions" | "active_users" | "page_views" | "calls" | "directions" | "posts_published" | "works_completed" | "works_opened" | "conversations" | "messages" | "files_added" | "meetings"> // Metrics connecting it adds to the report.
missing: string | null // For `contract` adapters: what is missing, in the reader's language.
}>
updatedAt: string | null
}One section of the brand's Statistics, exactly as the screen draws it: overview, social, web, ads, content, activity (works, posts, conversations, Library files and meetings in Nömad, always available) or sources. Returns compared figures, daily series, a breakdown per network or account, the top posts of the period and the sources with what connecting each one unlocks. Prefer stats.overview for a quick answer and this for a full report.
| Field | Value |
|---|---|
| Kind | Read |
| HTTP method | POST /api/v1/stats.report |
| MCP tool | stats_report |
| Scope | stats.read |
| Minimum role | Viewer |
| Human confirmation | No |
| Doors | Nödo, Voice, MCP, API, Chat, Screens, Apps |
| Status | Available |
Input
{
section?: "overview" | "social" | "web" | "ads" | "content" | "activity" | "sources" // default "overview"
from?: string // First day of the period (YYYY-MM-DD). Default: 28 days before `to`.
to?: string // Last day of the period (YYYY-MM-DD), included. Default: yesterday in `timeZone`.
compare?: "previous" | "year" | "none" // default "previous" · `previous`: the same number of days just before; `year`: the same days a year earlier; `none`: no comparison.
timeZone?: string // ≤ 64 · IANA zone the days are counted in. Default: Europe/Madrid.
}Output
{
section: "overview" | "social" | "web" | "ads" | "content" | "activity" | "sources"
period: {
from: string
to: string
previousFrom: string | null
previousTo: string | null
compare: "previous" | "year" | "none"
timeZone: string
}
figures: Array<{
metric: "followers" | "reach" | "impressions" | "views" | "engagement" | "engagement_rate" | "clicks" | "ctr" | "spend" | "conversions" | "sessions" | "active_users" | "page_views" | "calls" | "directions" | "posts_published" | "works_completed" | "works_opened" | "conversations" | "messages" | "files_added" | "meetings"
value: number | null // Null when no source the brand has measures it in the period.
previous: number | null
change: number | null // Stock metrics (followers): gained or lost during the period.
currency: string | null // ISO currency for `spend`; null when several currencies cannot be added.
sources: string[] // Products (`instagram`, `meta_ads`, `nomad`…) the value comes from.
window: {
from: string
to: string
}
| null // When a provider reported a different window than the period (e.g. Meta Ads last 30 days), the window the value covers.
partial: boolean // True when some connected source could not contribute to this figure in the period.
}>
series: Array<{
metric: "followers" | "reach" | "impressions" | "views" | "engagement" | "engagement_rate" | "clicks" | "ctr" | "spend" | "conversions" | "sessions" | "active_users" | "page_views" | "calls" | "directions" | "posts_published" | "works_completed" | "works_opened" | "conversations" | "messages" | "files_added" | "meetings"
product: string | null
points: Array<{
day: string
value: number | null
}>
previous: Array<{
day: string
value: number | null
}> // The comparison period, day by day, aligned by position.
}>
breakdown: Array<{
key: string
product: string
family: "social" | "web" | "business" | "ads" | "email" | "nomad"
name: string // Account, page or ad account name as the provider reports it.
handle: string | null
currency: string | null
values: Record<string, number | null> // Normalized metric id → value for the period.
window: {
from: string
to: string
}
| null
}>
topPosts: Array<{
id: string
origin: "nomad" | "imported" // `nomad`: published from Nömad; `imported`: published on the network and imported.
postId: string | null // The Nömad post (open it in Publicaciones); null for imported ones.
product: string
accountName: string | null
text: string | null
permalink: string | null
thumbnailUrl: string | null
publishedAt: string
metrics: Record<string, number> // Latest reading: reach, views, impressions, engagement, likes, comments, shares, saves…
measuredAt: string | null
}>
sources: Array<{
product: string
family: "social" | "web" | "business" | "ads" | "email" | "nomad"
name: string
adapter: "live" | "contract" // `live`: Nömad reads it; `contract`: declared, not read yet (see `missing`).
state: "connected" | "attention" | "not_connected" | "unavailable" // `attention`: connected but a connection needs a person (reconnect in Connections). `unavailable`: cannot be connected yet.
accounts: Array<{
id: string
name: string
handle: string | null
status: string // Connection status: active, limited, refresh_required, expired, revoked, error, paused, disconnected, transferred.
lastReadAt: string | null // Last time Nömad stored a metric of this account.
}>
unlocks: Array<"followers" | "reach" | "impressions" | "views" | "engagement" | "engagement_rate" | "clicks" | "ctr" | "spend" | "conversions" | "sessions" | "active_users" | "page_views" | "calls" | "directions" | "posts_published" | "works_completed" | "works_opened" | "conversations" | "messages" | "files_added" | "meetings"> // Metrics connecting it adds to the report.
missing: string | null // For `contract` adapters: what is missing, in the reader's language.
}>
updatedAt: string | null
}One normalized metric day by day for the period and the comparison period, across the brand's sources or only one (product, e.g. instagram). Followers are the level each day; Nömad activity (posts_published, works_opened, works_completed, conversations, messages, files_added, meetings) is a count per day; provider window metrics (reach, spend, sessions) have no daily series and come back with null points.
| Field | Value |
|---|---|
| Kind | Read |
| HTTP method | POST /api/v1/stats.series |
| MCP tool | stats_series |
| Scope | stats.read |
| Minimum role | Viewer |
| Human confirmation | No |
| Doors | Nödo, Voice, MCP, API, Chat, Screens, Apps |
| Status | Available |
Input
{
metric: "followers" | "reach" | "impressions" | "views" | "engagement" | "engagement_rate" | "clicks" | "ctr" | "spend" | "conversions" | "sessions" | "active_users" | "page_views" | "calls" | "directions" | "posts_published" | "works_completed" | "works_opened" | "conversations" | "messages" | "files_added" | "meetings"
product?: string // ≤ 60
from?: string // First day of the period (YYYY-MM-DD). Default: 28 days before `to`.
to?: string // Last day of the period (YYYY-MM-DD), included. Default: yesterday in `timeZone`.
compare?: "previous" | "year" | "none" // default "previous" · `previous`: the same number of days just before; `year`: the same days a year earlier; `none`: no comparison.
timeZone?: string // ≤ 64 · IANA zone the days are counted in. Default: Europe/Madrid.
}Output
{
period: {
from: string
to: string
previousFrom: string | null
previousTo: string | null
compare: "previous" | "year" | "none"
timeZone: string
}
series: {
metric: "followers" | "reach" | "impressions" | "views" | "engagement" | "engagement_rate" | "clicks" | "ctr" | "spend" | "conversions" | "sessions" | "active_users" | "page_views" | "calls" | "directions" | "posts_published" | "works_completed" | "works_opened" | "conversations" | "messages" | "files_added" | "meetings"
product: string | null
points: Array<{
day: string
value: number | null
}>
previous: Array<{
day: string
value: number | null
}> // The comparison period, day by day, aligned by position.
}
}The brand's posts published in the period (from Nömad or imported from the network), ranked by metric (engagement, reach, views or impressions) with their latest reading, permalink and network. Use it to say what content worked and to suggest more of it.
| Field | Value |
|---|---|
| Kind | Read |
| HTTP method | POST /api/v1/stats.posts.top |
| MCP tool | stats_posts_top |
| Scope | stats.read |
| Minimum role | Viewer |
| Human confirmation | No |
| Doors | Nödo, Voice, MCP, API, Chat, Screens, Apps |
| Status | Available |
Input
{
metric?: "engagement" | "reach" | "views" | "impressions" // default "engagement"
product?: string // ≤ 60
limit?: integer // 1–50 · default 10
from?: string // First day of the period (YYYY-MM-DD). Default: 28 days before `to`.
to?: string // Last day of the period (YYYY-MM-DD), included. Default: yesterday in `timeZone`.
compare?: "previous" | "year" | "none" // default "previous" · `previous`: the same number of days just before; `year`: the same days a year earlier; `none`: no comparison.
timeZone?: string // ≤ 64 · IANA zone the days are counted in. Default: Europe/Madrid.
}Output
{
period: {
from: string
to: string
previousFrom: string | null
previousTo: string | null
compare: "previous" | "year" | "none"
timeZone: string
}
metric: string
items: Array<{
id: string
origin: "nomad" | "imported" // `nomad`: published from Nömad; `imported`: published on the network and imported.
postId: string | null // The Nömad post (open it in Publicaciones); null for imported ones.
product: string
accountName: string | null
text: string | null
permalink: string | null
thumbnailUrl: string | null
publishedAt: string
metrics: Record<string, number> // Latest reading: reach, views, impressions, engagement, likes, comments, shares, saves…
measuredAt: string | null
}>
}Where the brand's figures come from: every network, ad account, analytics and business profile Nömad can read, whether it is connected (with its accounts and last reading), needs attention, or is not connected, and which metrics connecting it unlocks. contract sources are declared but not read yet. Connecting is done by a brand owner or admin in Nömad › Connections.
| Field | Value |
|---|---|
| Kind | Read |
| HTTP method | POST /api/v1/stats.sources.list |
| MCP tool | stats_sources_list |
| Scope | stats.read |
| Minimum role | Viewer |
| Human confirmation | No |
| Doors | Nödo, Voice, MCP, API, Chat, Screens, Apps |
| Status | Available |
Input
{}Output
{
sources: Array<{
product: string
family: "social" | "web" | "business" | "ads" | "email" | "nomad"
name: string
adapter: "live" | "contract" // `live`: Nömad reads it; `contract`: declared, not read yet (see `missing`).
state: "connected" | "attention" | "not_connected" | "unavailable" // `attention`: connected but a connection needs a person (reconnect in Connections). `unavailable`: cannot be connected yet.
accounts: Array<{
id: string
name: string
handle: string | null
status: string // Connection status: active, limited, refresh_required, expired, revoked, error, paused, disconnected, transferred.
lastReadAt: string | null // Last time Nömad stored a metric of this account.
}>
unlocks: Array<"followers" | "reach" | "impressions" | "views" | "engagement" | "engagement_rate" | "clicks" | "ctr" | "spend" | "conversions" | "sessions" | "active_users" | "page_views" | "calls" | "directions" | "posts_published" | "works_completed" | "works_opened" | "conversations" | "messages" | "files_added" | "meetings"> // Metrics connecting it adds to the report.
missing: string | null // For `contract` adapters: what is missing, in the reader's language.
}>
}Updated on January 1, 1970