Privacy and analytics

We use necessary technical cookies and, only with your consent, analytics and marketing pixels to improve the website and measure campaigns.

Privacy policyCookie policy
Docs
English
EspañolEnglishFrançaisDeutschItalianoPortuguês

Getting started

  • What is Nömad?
  • Getting started with Nömad
  • Create your brand and complete the Genome
  • Invite your team
  • Glossary

Brand OS

  • What is inside Brand OS
  • What is the Genome?
  • Who is Nödo?
  • Conversations: your team and Nödo
  • What does a Brand Manager do?
  • Brand Kit and Library
  • Posts and calendar
  • Connections
  • Meetings
  • Files we send you with NödoTransfer
  • Your quotes

Work

  • Work and tasks
  • Ordering work
  • Following, reviewing and approving deliveries
  • Approving the posts Nömad prepares
  • Custom quotes
  • Brand history
  • Yes, there are humans behind it

Account and billing

  • Plans and pricing
  • Billing and payments
  • People and access
  • Organization and brand roles
  • Workspaces and multiple brands
  • Your name and @username
  • Languages, apps and data
  • Leave, close or delete: account, brands and workspaces
  • Delete and restore: what goes and what stays
  • Inbox and notifications: how we let you know
  • Push notifications on your phone and browser
  • Nömad emails and your preferences

Help

  • How to get help

API

  • Brand API
    • Errors
    • Permissions and roles
    • Events and webhooks
    • Brand
    • Genome
    • Brand Kit
    • Library
    • Works
    • Calendar
    • Connections
    • Publishing
    • Inbox
    • Team
    • Account and team
    • Conversation
    • Memory
    • Questions
    • Media
    • Store
    • Plan
    • Orders
    • Activity
    • Workspace
    • Your account
    • Billing
    • Sync
    • Website and domains
    • Statistics
    • Events

MCP

  • MCP server

Connectors

  • Brand connectors

Nödo and agents

  • Nödo in the brand

Genome

  • Genome specification
API/Brand API
Reference14 min read

Statistics

The brand's networks, ads, website and activity in Nömad: figures with their period, source and comparison.

On this page
  • stats.overview · Statistics overview
  • stats.report · Statistics report
  • stats.series · Metric over time
  • stats.posts.top · Top posts
Русский
한국어
日本語
中文
हिन्दी
Open the app
stats.sources.list · Statistics sources

Read-only in every door.

stats.overview · Statistics overview

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 it covers fewer days than the period (history still importing, or a provider window such as the last 28 days for reach), 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.

FieldValue
KindRead
HTTP methodPOST /api/v1/stats.overview
MCP toolstats_overview
Scopestats.read
Minimum roleViewer
Human confirmationNo
DoorsNödo, Voice, MCP, API, Chat, Screens, Apps
StatusAvailable

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" | "followers_gained" | "reach" | "impressions" | "views" | "engagement" | "engagement_rate" | "clicks" | "ctr" | "spend" | "conversions" | "sessions" | "active_users" | "key_events" | "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 the value covers other days than the period (a provider window such as the last 28 days of reach, or a history still being imported), the days it 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.
      history: {
        from: string | null  // Oldest provider day imported so far; null until the first import.
        target: string | null  // Oldest day the import goes back to (the provider's depth, capped).
        through: string | null  // Newest provider day of the daily series (providers settle the last 1–3 days later).
        importing: boolean  // True while the history is still being imported: figures before `from` are not there yet.
      }
      | null  // Daily history of this account, for sources with a daily series; null otherwise.
    }>
    unlocks: Array<"followers" | "followers_gained" | "reach" | "impressions" | "views" | "engagement" | "engagement_rate" | "clicks" | "ctr" | "spend" | "conversions" | "sessions" | "active_users" | "key_events" | "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
}

stats.report · Statistics report

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, breakdowns by dimension (where visits come from, audience by country, age and gender, spend by campaign), 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.

FieldValue
KindRead
HTTP methodPOST /api/v1/stats.report
MCP toolstats_report
Scopestats.read
Minimum roleViewer
Human confirmationNo
DoorsNödo, Voice, MCP, API, Chat, Screens, Apps
StatusAvailable

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" | "followers_gained" | "reach" | "impressions" | "views" | "engagement" | "engagement_rate" | "clicks" | "ctr" | "spend" | "conversions" | "sessions" | "active_users" | "key_events" | "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 the value covers other days than the period (a provider window such as the last 28 days of reach, or a history still being imported), the days it covers.
    partial: boolean  // True when some connected source could not contribute to this figure in the period.
  }>
  series: Array<{
    metric: "followers" | "followers_gained" | "reach" | "impressions" | "views" | "engagement" | "engagement_rate" | "clicks" | "ctr" | "spend" | "conversions" | "sessions" | "active_users" | "key_events" | "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
  }>
  dimensions: Array<{
    widget: string  // Report widget id, e.g. `web.channels`, `social.audience_country`.
    metric: "followers" | "followers_gained" | "reach" | "impressions" | "views" | "engagement" | "engagement_rate" | "clicks" | "ctr" | "spend" | "conversions" | "sessions" | "active_users" | "key_events" | "page_views" | "calls" | "directions" | "posts_published" | "works_completed" | "works_opened" | "conversations" | "messages" | "files_added" | "meetings"
    dimension: "channel" | "country" | "city" | "device" | "landing_page" | "age" | "gender" | "campaign"
    kind: "total" | "latest"  // `total`: summed over the period's days; `latest`: the newest picture inside the period (audience demographics).
    asOf: string | null  // For `latest`: the day of the picture.
    currency: string | null
    sources: string[]
    total: number | null  // Sum of every value of the dimension (the share base).
    rows: Array<{
      value: string  // Raw value: ISO country code, provider channel name, age range, F/M/U, page path, campaign name…
      amount: number
      share: number | null  // Fraction of `total` (0–1).
    }>
  }>  // Breakdowns by country, channel, landing page, device, age, gender or campaign, from the daily history.
  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.
      history: {
        from: string | null  // Oldest provider day imported so far; null until the first import.
        target: string | null  // Oldest day the import goes back to (the provider's depth, capped).
        through: string | null  // Newest provider day of the daily series (providers settle the last 1–3 days later).
        importing: boolean  // True while the history is still being imported: figures before `from` are not there yet.
      }
      | null  // Daily history of this account, for sources with a daily series; null otherwise.
    }>
    unlocks: Array<"followers" | "followers_gained" | "reach" | "impressions" | "views" | "engagement" | "engagement_rate" | "clicks" | "ctr" | "spend" | "conversions" | "sessions" | "active_users" | "key_events" | "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
}

stats.series · Metric over time

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 metrics (views, engagement, reach, sessions, users, spend, clicks…) come from the daily history Nömad imports when an account is connected (see history in stats.sources.list); a day nothing measured is a null point, never zero.

FieldValue
KindRead
HTTP methodPOST /api/v1/stats.series
MCP toolstats_series
Scopestats.read
Minimum roleViewer
Human confirmationNo
DoorsNödo, Voice, MCP, API, Chat, Screens, Apps
StatusAvailable

Input

{
  metric: "followers" | "followers_gained" | "reach" | "impressions" | "views" | "engagement" | "engagement_rate" | "clicks" | "ctr" | "spend" | "conversions" | "sessions" | "active_users" | "key_events" | "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" | "followers_gained" | "reach" | "impressions" | "views" | "engagement" | "engagement_rate" | "clicks" | "ctr" | "spend" | "conversions" | "sessions" | "active_users" | "key_events" | "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.
  }
}

stats.posts.top · Top posts

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.

FieldValue
KindRead
HTTP methodPOST /api/v1/stats.posts.top
MCP toolstats_posts_top
Scopestats.read
Minimum roleViewer
Human confirmationNo
DoorsNödo, Voice, MCP, API, Chat, Screens, Apps
StatusAvailable

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
  }>
}

stats.sources.list · Statistics sources

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.

FieldValue
KindRead
HTTP methodPOST /api/v1/stats.sources.list
MCP toolstats_sources_list
Scopestats.read
Minimum roleViewer
Human confirmationNo
DoorsNödo, Voice, MCP, API, Chat, Screens, Apps
StatusAvailable

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.
      history: {
        from: string | null  // Oldest provider day imported so far; null until the first import.
        target: string | null  // Oldest day the import goes back to (the provider's depth, capped).
        through: string | null  // Newest provider day of the daily series (providers settle the last 1–3 days later).
        importing: boolean  // True while the history is still being imported: figures before `from` are not there yet.
      }
      | null  // Daily history of this account, for sources with a daily series; null otherwise.
    }>
    unlocks: Array<"followers" | "followers_gained" | "reach" | "impressions" | "views" | "engagement" | "engagement_rate" | "clicks" | "ctr" | "spend" | "conversions" | "sessions" | "active_users" | "key_events" | "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

PreviousWebsite and domainsNextEvents

In this section

  • Errors
  • Permissions and roles
  • Events and webhooks
  • Brand
  • Genome
  • Brand Kit
  • Library
  • Works
Can't find what you need? Write to usWrite to usGo to the app
© 2026 Nömad · Nömad documentationLinkedInInstagramThreadsFacebookTikTokYouTubeX
Go to nomad.oooBack to top

On this page

  • stats.overview · Statistics overview
  • stats.report · Statistics report
  • stats.series · Metric over time
  • stats.posts.top · Top posts
  • stats.sources.list · Statistics sources