---
title: "Create Module"
method: POST
path: "/analytics/modules"
---

# Create Module

`POST /analytics/modules`

## Headers

- `Authorization` string, nullable
- `X-User-Id` string, nullable
- `X-Posthog-Session-Id` string

## Cookies

- `session_id` string, nullable

## Request body

- CreateModuleSchema
  - `attribution` ConvergeApiAttributionsAttribution
    - `mode` 'click_time' | 'conversion_time'
    - `model` 'first_touch' | 'first_touch_paid' | 'inv_j_shaped' | 'j_shaped' | 'j_shaped_paid' | 'last_touch' | 'last_touch_paid' | 'linear' | 'participation' | 'time_decay' | 'inv_time_decay' | 'u_shaped' | 'direct_session' | 'inv_j_shaped_paid' | 'top_of_funnel'
    - `window` integer
    - `lookback` integer, nullable
  - `currency` string, nullable
  - `breakdown` union
    - EventPropertyBreakdown
      - `type` 'event'
      - `scope` 'event' | 'profile' | 'session' | 'product', required
      - `property_name` union, required
        - string
        - union
          - RevenueProperty
            - `derived` 'revenue'
          - TaxProperty
            - `derived` 'taxes'
          - DiscountProperty
            - `derived` 'discount'
          - ShippingProperty
            - `derived` 'shipping'
          - NetRevenueAfterTaxProperty
            - `derived` 'net_revenue_after_tax'
          - NetRevenueAfterTaxAndShippingProperty
            - `derived` 'net_revenue_after_tax_and_shipping'
          - ProductIDsProperty
            - `derived` 'product_ids'
          - VariantIDsProperty
            - `derived` 'variant_ids'
          - ProductSKUsProperty
            - `derived` 'product_skus'
          - ProductNamesProperty
            - `derived` 'product_names'
          - ProductBundleIds
            - `derived` 'bundle_ids'
          - ProductBundleNames
            - `derived` 'bundle_names'
          - NumberOfItemsProperty
            - `derived` 'number_of_items'
          - PaymentMethodProperty
            - `derived` 'payment_method'
          - SalesChannelTypeProperty
            - `derived` '$sales_channel_type'
          - URLProperty
            - `derived` '$url'
          - FullURLProperty
            - `derived` 'full_url'
          - ReferrerProperty
            - `derived` '$referrer'
          - LandingURLProperty
            - `derived` 'landing_url'
          - FullLandingURLProperty
            - `derived` 'full_landing_url'
          - LandingURLDomainProperty
            - `derived` 'landing_url_domain'
          - LandingURLPathProperty
            - `derived` 'landing_url_path'
          - TimezoneProperty
            - `derived` '$timezone'
          - LanguageProperty
            - `derived` '$language'
          - TitleProperty
            - `derived` '$title'
          - DeviceBrandProperty
            - `derived` '$device_brand'
          - DeviceModelProperty
            - `derived` '$device_model'
          - DeviceTypeProperty
            - `derived` '$device_type'
          - OSProperty
            - `derived` '$os'
          - BrowserProperty
            - `derived` '$browser'
          - GenderGuessProperty
            - `derived` '$gender_guess'
          - GeoIPCityNameProperty
            - `derived` '$geoip_city_name'
          - GeoIPCountryNameProperty
            - `derived` '$geoip_country_name'
          - GeoIPCountryCodeProperty
            - `derived` '$geoip_country_code'
          - GeoIPRegionNameProperty
            - `derived` '$geoip_region1_name'
          - GeoIPZipCodeProperty
            - `derived` '$geoip_zip_code'
          - IsCustomerProperty
            - `derived` '$is_customer'
          - IsNewVisitorProperty
            - `derived` '$is_new_visitor'
          - UtmSourceMedium
            - `derived` 'utm_source_medium'
          - FullSessionReferrerProperty
            - `derived` 'full_referrer'
          - ProfileIDProperty
            - `derived` 'profile_id'
          - OrderIDProperty
            - `derived` 'order_id'
          - ProductPriceProperty
            - `derived` 'product_price'
          - ProductQuantityProperty
            - `derived` 'product_quantity'
          - ProductRevenueProperty
            - `derived` 'product_revenue'
          - ProductDiscountProperty
            - `derived` 'product_discount'
          - ProductTaxesProperty
            - `derived` 'product_taxes'
          - ProductShippingProperty
            - `derived` 'product_shipping'
          - ProductNetRevenueProperty
            - `derived` 'product_net_revenue'
          - COGSProperty
            - `derived` 'cogs'
          - GrossProfitProperty
            - `derived` 'gross_profit'
          - PaymentProcessingFeeProperty
            - `derived` 'payment_processing_fee'
          - ShippingCostProperty
            - `derived` 'shipping_cost'
          - GrossRevenueProperty
            - `derived` 'gross_revenue'
          - ContributionProfitProperty
            - `derived` 'contribution_profit'
      - `property_type` 'string' | 'numeric' | 'boolean' | 'list_of_strings', required
    - EventSourceBreakdown
      - `type` 'event_source'
    - AdPlatformSourceBreakdown
      - `type` 'ad_platform_source'
    - TouchpointBreakdown
      - `type` 'touchpoint'
      - `property` 'channel_group' | 'channel' | 'campaign' | 'adset' | 'ad', required
    - CustomDimensionBreakdown
      - `type` 'custom_dimension'
      - `custom_dimension_id` integer, required
  - `breakdown_selection` AnalyticsModuleBreakdownSelection
  - `type` 'attribution' | 'overview' | 'pacing' | 'landing_page' | 'product', required
  - `name` string, required
  - `description` string, nullable
  - `icon` CustomIcon
    - `icon` string, required
    - `color` string, nullable
  - `date_range` DateRangeQuery
    - `since` union, required
      - string, date
      - string, date-time
      - string
    - `until` union
      - string, date
      - string, date-time
      - string
  - `time_granularity` 'hour' | 'day' | 'week' | 'month' | 'second'
  - `compare` string, nullable
  - `sorting` AnalyticsModuleSorting
    - `id` union, required
      - string
      - integer
    - `direction` 'asc' | 'desc', required
  - `filters` AllOfFilters
    - `all_of` AnyOfFilters[]
      - `any_of` union[]
        - union
          - EventPropertyFilter
            - `type` 'event'
            - `scope` 'event' | 'profile' | 'session' | 'product', required
            - `property_name` union, required
              - …
            - `operator` union, required
              - …
          - EventSourceFilter
            - `type` 'event_source'
            - `datasource_id` union
              - …
            - `pixel_id` union
              - …
          - AdPlatformPropertyFilter
            - `type` 'ad_platform'
            - `property` 'channel_group' | 'channel' | 'campaign' | 'adset' | 'ad', required
            - `operator` union, required
              - …
          - AdPlatformSourceFilter
            - `type` 'ad_platform_source'
            - `ad_platform_id` union, required
              - …
          - TouchpointFilter
            - `type` 'touchpoint'
            - `property` 'channel_group' | 'channel' | 'campaign' | 'adset' | 'ad', required
            - `operator` union, required
              - …
            - `legacy` boolean
          - CustomDimensionFilter
            - `type` 'custom_dimension'
            - `custom_dimension_id` integer, required
            - `values` string[], required
          - AdPropertiesFilter
            - `type` 'ad_properties'
            - `property` 'ad_created_at' | 'ad_status' | 'ad_landing_url', required
            - `operator` union, required
              - …
  - `module_metadata` ModuleMetadata
    - `color_coding_mode` 'full' | 'negative' | 'none' | 'positive'
    - `compact_notation` boolean, nullable
    - `sensitivity` number, nullable
  - `metrics` PatchMetricSchema[], nullable
    - `id` integer, required
    - `type` 'builtin' | 'custom', required — How a stored metric points at its definition. A builtin names one we own and picks up later improvements to it; a custom one carries the whole definition in a `CustomMetricConfig`.
    - `name` string, nullable
    - `icon` CustomIcon
      - `icon` string, required
      - `color` string, nullable
    - `metric_key` string, nullable
    - `metric_filters` union[]
      - union
        - EventPropertyFilter
          - `type` 'event'
          - `scope` 'event' | 'profile' | 'session' | 'product', required
          - `property_name` union, required
            - string
            - union
              - …
          - `operator` union, required
            - StringPropertyOperator
              - …
            - ListOfStringsPropertyOperator
              - …
            - NumericPropertyOperator
              - …
            - BooleanPropertyOperator
              - …
            - IsSetPropertyOperator
              - …
        - EventSourceFilter
          - `type` 'event_source'
          - `datasource_id` union
            - integer
            - integer[]
          - `pixel_id` union
            - integer
            - integer[]
        - AdPlatformPropertyFilter
          - `type` 'ad_platform'
          - `property` 'channel_group' | 'channel' | 'campaign' | 'adset' | 'ad', required
          - `operator` union, required
            - StringPropertyOperator
              - …
            - IsTouchpointOperator
              - …
        - AdPlatformSourceFilter
          - `type` 'ad_platform_source'
          - `ad_platform_id` union, required
            - integer
            - integer[]
        - TouchpointFilter
          - `type` 'touchpoint'
          - `property` 'channel_group' | 'channel' | 'campaign' | 'adset' | 'ad', required
          - `operator` union, required
            - StringPropertyOperator
              - …
            - IsTouchpointOperator
              - …
          - `legacy` boolean
        - CustomDimensionFilter
          - `type` 'custom_dimension'
          - `custom_dimension_id` integer, required
          - `values` string[], required
        - AdPropertiesFilter
          - `type` 'ad_properties'
          - `property` 'ad_created_at' | 'ad_status' | 'ad_landing_url', required
          - `operator` union, required
            - DateRangePropertyOperator
              - …
            - BooleanPropertyOperator
              - …
            - StringPropertyOperator
              - …
    - `metric_config` union
      - EventMetric
        - `name` string, nullable
        - `hidden` boolean, nullable
        - `id` string
        - `filter` MetricFilter
          - `comparator` 'greater_than' | 'less_than', required
          - `value` number, required
        - `type` 'event'
        - `event_name` string, nullable
        - `aggregate` union, required
          - BasicEventMetricAggregate
            - `type` 'events' | 'sessions' | 'profiles' | 'session_conversion_rate' | 'profile_conversion_rate' | 'session_revenue' | 'new_customer_rate' | 'bounce_rate' | 'session_duration' | 'new_visitor_sessions' | 'new_visitor_sessions_rate' | 'cpa' | 'roas' | 'mer' | 'acos' | 'poas' | 'net_profit' | 'gross_margin' | 'contribution_margin' | 'net_margin', required
          - BasicProductMetricAggregate
            - `type` 'product_events' | 'product_sessions' | 'product_profiles' | 'product_session_conversion_rate' | 'product_profile_conversion_rate' | 'product_session_revenue' | 'product_new_customer_rate' | 'product_new_visitor_sessions' | 'product_new_visitor_sessions_rate' | 'product_cpa' | 'product_roas' | 'product_acos' | 'product_poas' | 'product_gross_margin' | 'product_contribution_margin' | 'product_net_profit' | 'product_net_margin' | 'product_quantity', required
          - CustomPropertyEventMetricAggregate
            - `type` 'custom_property'
            - `property_name` union, required
              - …
            - `operation_type` 'count_unique' | 'sum' | 'avg' | 'median' | 'min' | 'max' | 'p75' | 'p90' | 'p95' | 'p99', required
          - CustomPropertyProductMetricAggregate
            - `type` 'custom_property_product'
            - `property_name` union, required
              - …
            - `operation_type` 'count_unique' | 'sum' | 'avg' | 'median' | 'min' | 'max' | 'p75' | 'p90' | 'p95' | 'p99', required
        - `filters` union[]
          - union
            - EventPropertyFilter
              - …
            - EventSourceFilter
              - …
            - AdPlatformPropertyFilter
              - …
            - AdPlatformSourceFilter
              - …
            - TouchpointFilter
              - …
            - CustomDimensionFilter
              - …
            - AdPropertiesFilter
              - …
        - `attribution` ConvergeApiAttributionsAttribution
          - `mode` 'click_time' | 'conversion_time'
          - `model` 'first_touch' | 'first_touch_paid' | 'inv_j_shaped' | 'j_shaped' | 'j_shaped_paid' | 'last_touch' | 'last_touch_paid' | 'linear' | 'participation' | 'time_decay' | 'inv_time_decay' | 'u_shaped' | 'direct_session' | 'inv_j_shaped_paid' | 'top_of_funnel'
          - `window` integer
          - `lookback` integer, nullable
      - AdPlatformMetric
        - `name` string, nullable
        - `hidden` boolean, nullable
        - `id` string
        - `filter` MetricFilter
          - `comparator` 'greater_than' | 'less_than', required
          - `value` number, required
        - `type` 'ad_platform'
        - `column` union, required
          - AdPlatformClickMetric
            - `type` 'clicks'
            - `aggregate_type` 'sum' | 'ctr' | 'cpc', required
          - AdPlatformSpendMetric
            - `type` 'spend'
            - `aggregate_type` 'sum'
          - AdPlatformImpressionsMetric
            - `type` 'impressions'
            - `aggregate_type` 'sum' | 'cpm', required
          - AdPlatformPurchaseConversionsMetric
            - `type` 'purchase_conversions'
            - `aggregate_type` 'sum' | 'cpa' | 'revenue' | 'roas' | 'acos', required
          - AdPlatformCustomConversionsMetric
            - `type` 'custom_conversions'
            - `aggregate_type` 'sum' | 'cpa' | 'revenue' | 'roas' | 'acos', required
            - `conversion_name` string, nullable
            - `channel` string, nullable
          - AdPlatformBuiltinMetric — Hard-coded built-in metrics, currently only NB NV%
            - `type` 'builtin'
            - `metric` 'northbeam_nv_rate', required
        - `filters` union[]
          - union
            - EventPropertyFilter
              - …
            - EventSourceFilter
              - …
            - AdPlatformPropertyFilter
              - …
            - AdPlatformSourceFilter
              - …
            - TouchpointFilter
              - …
            - CustomDimensionFilter
              - …
            - AdPropertiesFilter
              - …
      - FormulaMetric
        - `name` string, nullable
        - `hidden` boolean, nullable
        - `id` string
        - `filter` MetricFilter
          - `comparator` 'greater_than' | 'less_than', required
          - `value` number, required
        - `type` 'formula'
        - `formula` string, required
    - `metric_metadata` MetricMetadata
      - `width` number, nullable
    - `metric_attribution` ConvergeApiAttributionsAttribution
      - `mode` 'click_time' | 'conversion_time'
      - `model` 'first_touch' | 'first_touch_paid' | 'inv_j_shaped' | 'j_shaped' | 'j_shaped_paid' | 'last_touch' | 'last_touch_paid' | 'linear' | 'participation' | 'time_decay' | 'inv_time_decay' | 'u_shaped' | 'direct_session' | 'inv_j_shaped_paid' | 'top_of_funnel'
      - `window` integer
      - `lookback` integer, nullable
  - `sections` PatchSectionSchema[], nullable
    - `name` string, required
    - `filters` union[]
      - union
        - EventPropertyFilter
          - `type` 'event'
          - `scope` 'event' | 'profile' | 'session' | 'product', required
          - `property_name` union, required
            - string
            - union
              - …
          - `operator` union, required
            - StringPropertyOperator
              - …
            - ListOfStringsPropertyOperator
              - …
            - NumericPropertyOperator
              - …
            - BooleanPropertyOperator
              - …
            - IsSetPropertyOperator
              - …
        - EventSourceFilter
          - `type` 'event_source'
          - `datasource_id` union
            - integer
            - integer[]
          - `pixel_id` union
            - integer
            - integer[]
        - AdPlatformPropertyFilter
          - `type` 'ad_platform'
          - `property` 'channel_group' | 'channel' | 'campaign' | 'adset' | 'ad', required
          - `operator` union, required
            - StringPropertyOperator
              - …
            - IsTouchpointOperator
              - …
        - AdPlatformSourceFilter
          - `type` 'ad_platform_source'
          - `ad_platform_id` union, required
            - integer
            - integer[]
        - TouchpointFilter
          - `type` 'touchpoint'
          - `property` 'channel_group' | 'channel' | 'campaign' | 'adset' | 'ad', required
          - `operator` union, required
            - StringPropertyOperator
              - …
            - IsTouchpointOperator
              - …
          - `legacy` boolean
        - CustomDimensionFilter
          - `type` 'custom_dimension'
          - `custom_dimension_id` integer, required
          - `values` string[], required
        - AdPropertiesFilter
          - `type` 'ad_properties'
          - `property` 'ad_created_at' | 'ad_status' | 'ad_landing_url', required
          - `operator` union, required
            - DateRangePropertyOperator
              - …
            - BooleanPropertyOperator
              - …
            - StringPropertyOperator
              - …
    - `icon` CustomIcon
      - `icon` string, required
      - `color` string, nullable
    - `section_metadata` SectionMetadata
    - `metrics` SectionMetric[]
      - `id` integer, required
  - `store_dimensions` Selection[]
    - `id` integer, required
    - `values` string[], required

## Response `200`

Successful Response

- AnalyticsModuleResponse
  - `id` integer, required
  - `name` string, required
  - `attribution` ConvergeApiAttributionsAttribution
    - `mode` 'click_time' | 'conversion_time'
    - `model` 'first_touch' | 'first_touch_paid' | 'inv_j_shaped' | 'j_shaped' | 'j_shaped_paid' | 'last_touch' | 'last_touch_paid' | 'linear' | 'participation' | 'time_decay' | 'inv_time_decay' | 'u_shaped' | 'direct_session' | 'inv_j_shaped_paid' | 'top_of_funnel'
    - `window` integer
    - `lookback` integer, nullable
  - `currency` string, nullable
  - `type` 'attribution' | 'overview' | 'pacing' | 'landing_page' | 'product', required
  - `breakdown` union — Wrapper model for Breakdown to be used with SQLAlchemy's PydanticSchema. The Annotated type alias `Breakdown` cannot be used directly with PydanticSchema because isinstance() checks fail on Annotated types.
    - EventPropertyBreakdown
      - `type` 'event'
      - `scope` 'event' | 'profile' | 'session' | 'product', required
      - `property_name` union, required
        - string
        - union
          - RevenueProperty
            - `derived` 'revenue'
          - TaxProperty
            - `derived` 'taxes'
          - DiscountProperty
            - `derived` 'discount'
          - ShippingProperty
            - `derived` 'shipping'
          - NetRevenueAfterTaxProperty
            - `derived` 'net_revenue_after_tax'
          - NetRevenueAfterTaxAndShippingProperty
            - `derived` 'net_revenue_after_tax_and_shipping'
          - ProductIDsProperty
            - `derived` 'product_ids'
          - VariantIDsProperty
            - `derived` 'variant_ids'
          - ProductSKUsProperty
            - `derived` 'product_skus'
          - ProductNamesProperty
            - `derived` 'product_names'
          - ProductBundleIds
            - `derived` 'bundle_ids'
          - ProductBundleNames
            - `derived` 'bundle_names'
          - NumberOfItemsProperty
            - `derived` 'number_of_items'
          - PaymentMethodProperty
            - `derived` 'payment_method'
          - SalesChannelTypeProperty
            - `derived` '$sales_channel_type'
          - URLProperty
            - `derived` '$url'
          - FullURLProperty
            - `derived` 'full_url'
          - ReferrerProperty
            - `derived` '$referrer'
          - LandingURLProperty
            - `derived` 'landing_url'
          - FullLandingURLProperty
            - `derived` 'full_landing_url'
          - LandingURLDomainProperty
            - `derived` 'landing_url_domain'
          - LandingURLPathProperty
            - `derived` 'landing_url_path'
          - TimezoneProperty
            - `derived` '$timezone'
          - LanguageProperty
            - `derived` '$language'
          - TitleProperty
            - `derived` '$title'
          - DeviceBrandProperty
            - `derived` '$device_brand'
          - DeviceModelProperty
            - `derived` '$device_model'
          - DeviceTypeProperty
            - `derived` '$device_type'
          - OSProperty
            - `derived` '$os'
          - BrowserProperty
            - `derived` '$browser'
          - GenderGuessProperty
            - `derived` '$gender_guess'
          - GeoIPCityNameProperty
            - `derived` '$geoip_city_name'
          - GeoIPCountryNameProperty
            - `derived` '$geoip_country_name'
          - GeoIPCountryCodeProperty
            - `derived` '$geoip_country_code'
          - GeoIPRegionNameProperty
            - `derived` '$geoip_region1_name'
          - GeoIPZipCodeProperty
            - `derived` '$geoip_zip_code'
          - IsCustomerProperty
            - `derived` '$is_customer'
          - IsNewVisitorProperty
            - `derived` '$is_new_visitor'
          - UtmSourceMedium
            - `derived` 'utm_source_medium'
          - FullSessionReferrerProperty
            - `derived` 'full_referrer'
          - ProfileIDProperty
            - `derived` 'profile_id'
          - OrderIDProperty
            - `derived` 'order_id'
          - ProductPriceProperty
            - `derived` 'product_price'
          - ProductQuantityProperty
            - `derived` 'product_quantity'
          - ProductRevenueProperty
            - `derived` 'product_revenue'
          - ProductDiscountProperty
            - `derived` 'product_discount'
          - ProductTaxesProperty
            - `derived` 'product_taxes'
          - ProductShippingProperty
            - `derived` 'product_shipping'
          - ProductNetRevenueProperty
            - `derived` 'product_net_revenue'
          - COGSProperty
            - `derived` 'cogs'
          - GrossProfitProperty
            - `derived` 'gross_profit'
          - PaymentProcessingFeeProperty
            - `derived` 'payment_processing_fee'
          - ShippingCostProperty
            - `derived` 'shipping_cost'
          - GrossRevenueProperty
            - `derived` 'gross_revenue'
          - ContributionProfitProperty
            - `derived` 'contribution_profit'
      - `property_type` 'string' | 'numeric' | 'boolean' | 'list_of_strings', required
    - EventSourceBreakdown
      - `type` 'event_source'
    - AdPlatformSourceBreakdown
      - `type` 'ad_platform_source'
    - TouchpointBreakdown
      - `type` 'touchpoint'
      - `property` 'channel_group' | 'channel' | 'campaign' | 'adset' | 'ad', required
    - CustomDimensionBreakdown
      - `type` 'custom_dimension'
      - `custom_dimension_id` integer, required
  - `breakdown_selection` AnalyticsModuleBreakdownSelection
  - `description` string, nullable
  - `filters` AllOfFilters
    - `all_of` AnyOfFilters[]
      - `any_of` union[]
        - union
          - EventPropertyFilter
            - `type` 'event'
            - `scope` 'event' | 'profile' | 'session' | 'product', required
            - `property_name` union, required
              - …
            - `operator` union, required
              - …
          - EventSourceFilter
            - `type` 'event_source'
            - `datasource_id` union
              - …
            - `pixel_id` union
              - …
          - AdPlatformPropertyFilter
            - `type` 'ad_platform'
            - `property` 'channel_group' | 'channel' | 'campaign' | 'adset' | 'ad', required
            - `operator` union, required
              - …
          - AdPlatformSourceFilter
            - `type` 'ad_platform_source'
            - `ad_platform_id` union, required
              - …
          - TouchpointFilter
            - `type` 'touchpoint'
            - `property` 'channel_group' | 'channel' | 'campaign' | 'adset' | 'ad', required
            - `operator` union, required
              - …
            - `legacy` boolean
          - CustomDimensionFilter
            - `type` 'custom_dimension'
            - `custom_dimension_id` integer, required
            - `values` string[], required
          - AdPropertiesFilter
            - `type` 'ad_properties'
            - `property` 'ad_created_at' | 'ad_status' | 'ad_landing_url', required
            - `operator` union, required
              - …
  - `is_default` boolean, required
  - `icon` CustomIcon
    - `icon` string, required
    - `color` string, nullable
  - `date_range` DateRangeQuery
    - `since` union, required
      - string, date
      - string, date-time
      - string
    - `until` union
      - string, date
      - string, date-time
      - string
  - `time_granularity` 'hour' | 'day' | 'week' | 'month' | 'second'
  - `compare` string, nullable
  - `sorting` AnalyticsModuleSorting
    - `id` union, required
      - string
      - integer
    - `direction` 'asc' | 'desc', required
  - `module_metadata` ModuleMetadata
    - `color_coding_mode` 'full' | 'negative' | 'none' | 'positive'
    - `compact_notation` boolean, nullable
    - `sensitivity` number, nullable
  - `store_dimensions` Selection[]
    - `id` integer, required
    - `values` string[], required
  - `metrics` AnalyticsMetricResponse[], required
    - `id` integer, required
    - `name` string, required
    - `type` 'builtin' | 'custom', required — How a stored metric points at its definition. A builtin names one we own and picks up later improvements to it; a custom one carries the whole definition in a `CustomMetricConfig`.
    - `module_id` integer, required
    - `section_id` integer, nullable
    - `icon` CustomIcon
      - `icon` string, required
      - `color` string, nullable
    - `metric_key` string, nullable
    - `metric_filters` union[]
      - union
        - EventPropertyFilter
          - `type` 'event'
          - `scope` 'event' | 'profile' | 'session' | 'product', required
          - `property_name` union, required
            - string
            - union
              - …
          - `operator` union, required
            - StringPropertyOperator
              - …
            - ListOfStringsPropertyOperator
              - …
            - NumericPropertyOperator
              - …
            - BooleanPropertyOperator
              - …
            - IsSetPropertyOperator
              - …
        - EventSourceFilter
          - `type` 'event_source'
          - `datasource_id` union
            - integer
            - integer[]
          - `pixel_id` union
            - integer
            - integer[]
        - AdPlatformPropertyFilter
          - `type` 'ad_platform'
          - `property` 'channel_group' | 'channel' | 'campaign' | 'adset' | 'ad', required
          - `operator` union, required
            - StringPropertyOperator
              - …
            - IsTouchpointOperator
              - …
        - AdPlatformSourceFilter
          - `type` 'ad_platform_source'
          - `ad_platform_id` union, required
            - integer
            - integer[]
        - TouchpointFilter
          - `type` 'touchpoint'
          - `property` 'channel_group' | 'channel' | 'campaign' | 'adset' | 'ad', required
          - `operator` union, required
            - StringPropertyOperator
              - …
            - IsTouchpointOperator
              - …
          - `legacy` boolean
        - CustomDimensionFilter
          - `type` 'custom_dimension'
          - `custom_dimension_id` integer, required
          - `values` string[], required
        - AdPropertiesFilter
          - `type` 'ad_properties'
          - `property` 'ad_created_at' | 'ad_status' | 'ad_landing_url', required
          - `operator` union, required
            - DateRangePropertyOperator
              - …
            - BooleanPropertyOperator
              - …
            - StringPropertyOperator
              - …
    - `metric_config` union
      - EventMetric
        - `name` string, nullable
        - `hidden` boolean, nullable
        - `id` string
        - `filter` MetricFilter
          - `comparator` 'greater_than' | 'less_than', required
          - `value` number, required
        - `type` 'event'
        - `event_name` string, nullable
        - `aggregate` union, required
          - BasicEventMetricAggregate
            - `type` 'events' | 'sessions' | 'profiles' | 'session_conversion_rate' | 'profile_conversion_rate' | 'session_revenue' | 'new_customer_rate' | 'bounce_rate' | 'session_duration' | 'new_visitor_sessions' | 'new_visitor_sessions_rate' | 'cpa' | 'roas' | 'mer' | 'acos' | 'poas' | 'net_profit' | 'gross_margin' | 'contribution_margin' | 'net_margin', required
          - BasicProductMetricAggregate
            - `type` 'product_events' | 'product_sessions' | 'product_profiles' | 'product_session_conversion_rate' | 'product_profile_conversion_rate' | 'product_session_revenue' | 'product_new_customer_rate' | 'product_new_visitor_sessions' | 'product_new_visitor_sessions_rate' | 'product_cpa' | 'product_roas' | 'product_acos' | 'product_poas' | 'product_gross_margin' | 'product_contribution_margin' | 'product_net_profit' | 'product_net_margin' | 'product_quantity', required
          - CustomPropertyEventMetricAggregate
            - `type` 'custom_property'
            - `property_name` union, required
              - …
            - `operation_type` 'count_unique' | 'sum' | 'avg' | 'median' | 'min' | 'max' | 'p75' | 'p90' | 'p95' | 'p99', required
          - CustomPropertyProductMetricAggregate
            - `type` 'custom_property_product'
            - `property_name` union, required
              - …
            - `operation_type` 'count_unique' | 'sum' | 'avg' | 'median' | 'min' | 'max' | 'p75' | 'p90' | 'p95' | 'p99', required
        - `filters` union[]
          - union
            - EventPropertyFilter
              - …
            - EventSourceFilter
              - …
            - AdPlatformPropertyFilter
              - …
            - AdPlatformSourceFilter
              - …
            - TouchpointFilter
              - …
            - CustomDimensionFilter
              - …
            - AdPropertiesFilter
              - …
        - `attribution` ConvergeApiAttributionsAttribution
          - `mode` 'click_time' | 'conversion_time'
          - `model` 'first_touch' | 'first_touch_paid' | 'inv_j_shaped' | 'j_shaped' | 'j_shaped_paid' | 'last_touch' | 'last_touch_paid' | 'linear' | 'participation' | 'time_decay' | 'inv_time_decay' | 'u_shaped' | 'direct_session' | 'inv_j_shaped_paid' | 'top_of_funnel'
          - `window` integer
          - `lookback` integer, nullable
      - AdPlatformMetric
        - `name` string, nullable
        - `hidden` boolean, nullable
        - `id` string
        - `filter` MetricFilter
          - `comparator` 'greater_than' | 'less_than', required
          - `value` number, required
        - `type` 'ad_platform'
        - `column` union, required
          - AdPlatformClickMetric
            - `type` 'clicks'
            - `aggregate_type` 'sum' | 'ctr' | 'cpc', required
          - AdPlatformSpendMetric
            - `type` 'spend'
            - `aggregate_type` 'sum'
          - AdPlatformImpressionsMetric
            - `type` 'impressions'
            - `aggregate_type` 'sum' | 'cpm', required
          - AdPlatformPurchaseConversionsMetric
            - `type` 'purchase_conversions'
            - `aggregate_type` 'sum' | 'cpa' | 'revenue' | 'roas' | 'acos', required
          - AdPlatformCustomConversionsMetric
            - `type` 'custom_conversions'
            - `aggregate_type` 'sum' | 'cpa' | 'revenue' | 'roas' | 'acos', required
            - `conversion_name` string, nullable
            - `channel` string, nullable
          - AdPlatformBuiltinMetric — Hard-coded built-in metrics, currently only NB NV%
            - `type` 'builtin'
            - `metric` 'northbeam_nv_rate', required
        - `filters` union[]
          - union
            - EventPropertyFilter
              - …
            - EventSourceFilter
              - …
            - AdPlatformPropertyFilter
              - …
            - AdPlatformSourceFilter
              - …
            - TouchpointFilter
              - …
            - CustomDimensionFilter
              - …
            - AdPropertiesFilter
              - …
      - FormulaMetric
        - `name` string, nullable
        - `hidden` boolean, nullable
        - `id` string
        - `filter` MetricFilter
          - `comparator` 'greater_than' | 'less_than', required
          - `value` number, required
        - `type` 'formula'
        - `formula` string, required
    - `metric_metadata` MetricMetadata
      - `width` number, nullable
    - `metric_attribution` ConvergeApiAttributionsAttribution
      - `mode` 'click_time' | 'conversion_time'
      - `model` 'first_touch' | 'first_touch_paid' | 'inv_j_shaped' | 'j_shaped' | 'j_shaped_paid' | 'last_touch' | 'last_touch_paid' | 'linear' | 'participation' | 'time_decay' | 'inv_time_decay' | 'u_shaped' | 'direct_session' | 'inv_j_shaped_paid' | 'top_of_funnel'
      - `window` integer
      - `lookback` integer, nullable
  - `sections` AnalyticsSectionResponse[], required
    - `id` integer, required
    - `name` string, required
    - `module_id` integer, required
    - `icon` CustomIcon
      - `icon` string, required
      - `color` string, nullable
    - `filters` union[]
      - union
        - EventPropertyFilter
          - `type` 'event'
          - `scope` 'event' | 'profile' | 'session' | 'product', required
          - `property_name` union, required
            - string
            - union
              - …
          - `operator` union, required
            - StringPropertyOperator
              - …
            - ListOfStringsPropertyOperator
              - …
            - NumericPropertyOperator
              - …
            - BooleanPropertyOperator
              - …
            - IsSetPropertyOperator
              - …
        - EventSourceFilter
          - `type` 'event_source'
          - `datasource_id` union
            - integer
            - integer[]
          - `pixel_id` union
            - integer
            - integer[]
        - AdPlatformPropertyFilter
          - `type` 'ad_platform'
          - `property` 'channel_group' | 'channel' | 'campaign' | 'adset' | 'ad', required
          - `operator` union, required
            - StringPropertyOperator
              - …
            - IsTouchpointOperator
              - …
        - AdPlatformSourceFilter
          - `type` 'ad_platform_source'
          - `ad_platform_id` union, required
            - integer
            - integer[]
        - TouchpointFilter
          - `type` 'touchpoint'
          - `property` 'channel_group' | 'channel' | 'campaign' | 'adset' | 'ad', required
          - `operator` union, required
            - StringPropertyOperator
              - …
            - IsTouchpointOperator
              - …
          - `legacy` boolean
        - CustomDimensionFilter
          - `type` 'custom_dimension'
          - `custom_dimension_id` integer, required
          - `values` string[], required
        - AdPropertiesFilter
          - `type` 'ad_properties'
          - `property` 'ad_created_at' | 'ad_status' | 'ad_landing_url', required
          - `operator` union, required
            - DateRangePropertyOperator
              - …
            - BooleanPropertyOperator
              - …
            - StringPropertyOperator
              - …
    - `section_metadata` SectionMetadata
    - `metrics` SectionMetric[], required
      - `id` integer, required

## Other responses

- `422` — Validation Error

---

[API](https://skmtc.dev/runconverge/apis/fastapi.md) · [All operations](https://skmtc.dev/runconverge/apis/fastapi/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/runconverge/fastapi/revisions/1452e350bd1d/schema)
