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

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
Русский
한국어
日本語
中文
हिन्दी
Open the app
stats.sources.list · Statistics sources

Updated on January 1, 1970

PreviousWebsite and domainsNextEvents

In this section

  • Errors
  • Permissions and roles
  • Events and webhooks
  • Brand
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
Genome
  • Brand Kit
  • Library
  • Works
  • 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.
      }>
    }