---
title: Compute journey scalar analytics
description: Datadog, the leading service for cloud-scale monitoring.
breadcrumbs: Docs > API Reference > Product Analytics
---

> For the complete documentation index, see [llms.txt](https://docs.datadoghq.com/llms.txt).

# Compute journey scalar analytics{% #compute-journey-scalar-analytics %}
Copy pageCopied
{% tab title="v2" %}
**Note**: This endpoint is in preview and is subject to change. If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/).
| Datadog site      | API endpoint                                                               |
| ----------------- | -------------------------------------------------------------------------- |
| ap1.datadoghq.com | POST https://api.ap1.datadoghq.com/api/v2/product-analytics/journey/scalar |
| ap2.datadoghq.com | POST https://api.ap2.datadoghq.com/api/v2/product-analytics/journey/scalar |
| app.datadoghq.eu  | POST https://api.datadoghq.eu/api/v2/product-analytics/journey/scalar      |
| app.ddog-gov.com  | POST https://api.ddog-gov.com/api/v2/product-analytics/journey/scalar      |
| us2.ddog-gov.com  | POST https://api.us2.ddog-gov.com/api/v2/product-analytics/journey/scalar  |
| uk1.datadoghq.com | POST https://api.uk1.datadoghq.com/api/v2/product-analytics/journey/scalar |
| app.datadoghq.com | POST https://api.datadoghq.com/api/v2/product-analytics/journey/scalar     |
| us3.datadoghq.com | POST https://api.us3.datadoghq.com/api/v2/product-analytics/journey/scalar |
| us5.datadoghq.com | POST https://api.us5.datadoghq.com/api/v2/product-analytics/journey/scalar |

### Overview

Compute scalar results for a journey query, such as the conversion count, the conversion rate, or the time to convert, optionally segmented by group-by facets. This endpoint requires the `rum_apps_read` permission.

### Request

#### Body Data (required)



{% tab title="Model" %}

| Parent field                               | Field                                      | Type          | Description                                                                                                                                                                                                                  |
| ------------------------------------------ | ------------------------------------------ | ------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|                                            | data [*required*]                     | object        | The single JSON:API resource carrying a journey scalar query. Its attributes hold the time window and the journey metric to reduce to one value over that window.                                                            |
| data                                       | attributes [*required*]               | object        | Attributes of a journey scalar request.                                                                                                                                                                                      |
| attributes                                 | from [*required*]                     | int64         | Start of the query window, in epoch milliseconds.                                                                                                                                                                            |
| attributes                                 | query [*required*]                    | object        | Query definition for a journey scalar request.                                                                                                                                                                               |
| query                                      | compute [*required*]                  | object        | Defines the metric computed over the journey for a scalar query.                                                                                                                                                             |
| compute                                    | aggregation [*required*]              | string        | Aggregation function: `count`, `cardinality`, `avg`, `median`, `min`, `max`, `sum`, or a percentile of the form `pc<N>` such as `pc95`. Defaults to `cardinality`.                                                           |
| compute                                    | metric                                     | string        | Metric to aggregate on. Use a facet path such as `@view.time_spent`, or one of the journey metrics `__dd.conversion`, `__dd.conversion_rate`, `__dd.time_to_convert`, or `__dd.dropoff_rate`. Defaults to `__dd.conversion`. |
| compute                                    | target                                     |  <oneOf> | A reference to a step, or a range of steps, in the journey. Use a `node` target to name a single step, or a `path` target to name the range between two steps.                                                               |
| target                                     | <type=node>                                | object        | A reference to a single step of the journey.                                                                                                                                                                                 |
| <type=node>                                | type [*required*]                     | enum          | The discriminator identifying a target that references a single step. Allowed enum values: `node`                                                                                                                            |
| <type=node>                                | value [*required*]                    | string        | Alias of the targeted node.                                                                                                                                                                                                  |
| target                                     | <type=path>                                | object        | A reference to the range of steps between two nodes of the journey.                                                                                                                                                          |
| <type=path>                                | end [*required*]                      | string        | Alias of the node the path ends at.                                                                                                                                                                                          |
| <type=path>                                | start [*required*]                    | string        | Alias of the node the path starts at.                                                                                                                                                                                        |
| <type=path>                                | type [*required*]                     | enum          | The discriminator identifying a target that references a range of steps. Allowed enum values: `path`                                                                                                                         |
| query                                      | group_by                                   | [object]      | Segments the results by the values of one or more facets.                                                                                                                                                                    |
| group_by                                   | facet [*required*]                    | string        | Attribute path to group by.                                                                                                                                                                                                  |
| group_by                                   | limit                                      | int64         | Maximum number of groups to return. Omit it to let the service choose.                                                                                                                                                       |
| group_by                                   | should_exclude_missing                     | boolean       | Whether to exclude entities that have no value for this facet.                                                                                                                                                               |
| group_by                                   | sort                                       | object        | Sort configuration for group-by results.                                                                                                                                                                                     |
| sort                                       | aggregation                                | string        | The aggregation function to sort by.                                                                                                                                                                                         |
| sort                                       | metric                                     | string        | The metric to sort by.                                                                                                                                                                                                       |
| sort                                       | order                                      | enum          | Direction of sort. Allowed enum values: `asc,desc`                                                                                                                                                                           |
| group_by                                   | source                                     | enum          | Audience dimension to group by, instead of an event facet. Allowed enum values: `product_analytics_audience_filters.users,product_analytics_audience_filters.accounts`                                                       |
| group_by                                   | target                                     |  <oneOf> | A reference to a step, or a range of steps, in the journey. Use a `node` target to name a single step, or a `path` target to name the range between two steps.                                                               |
| target                                     | <type=node>                                | object        | A reference to a single step of the journey.                                                                                                                                                                                 |
| <type=node>                                | type [*required*]                     | enum          | The discriminator identifying a target that references a single step. Allowed enum values: `node`                                                                                                                            |
| <type=node>                                | value [*required*]                    | string        | Alias of the targeted node.                                                                                                                                                                                                  |
| target                                     | <type=path>                                | object        | A reference to the range of steps between two nodes of the journey.                                                                                                                                                          |
| <type=path>                                | end [*required*]                      | string        | Alias of the node the path ends at.                                                                                                                                                                                          |
| <type=path>                                | start [*required*]                    | string        | Alias of the node the path starts at.                                                                                                                                                                                        |
| <type=path>                                | type [*required*]                     | enum          | The discriminator identifying a target that references a range of steps. Allowed enum values: `path`                                                                                                                         |
| group_by                                   | value_filters                              | [string]      | Restricts the results to these facet values.                                                                                                                                                                                 |
| query                                      | query_id                                   | string        | Caller-defined identifier echoed back in the results.                                                                                                                                                                        |
| query                                      | search [*required*]                   | object        | Defines the steps of the journey and the filters applied to it.                                                                                                                                                              |
| search                                     | expression [*required*]               | string        | Expression combining the node aliases in order, for example `A -> B -> C`.                                                                                                                                                   |
| search                                     | filters                                    | object        | Filters applied on top of the journey step expression.                                                                                                                                                                       |
| filters                                    | audience_filters                           | object        | Restricts the journey to an audience built from named sub-queries. Sub-query names must be unique across `users`, `segments`, and `accounts`.                                                                                |
| audience_filters                           | accounts                                   | [object]      | Named account sub-queries.                                                                                                                                                                                                   |
| accounts                                   | name [*required*]                     | string        | Unique name for this sub-query, referenced from `formula`.                                                                                                                                                                   |
| accounts                                   | query                                      | string        | Search query selecting the accounts.                                                                                                                                                                                         |
| audience_filters                           | formula                                    | string        | Boolean expression combining the sub-query names with `AND`, `OR`, and `NOT`. When empty, all sub-queries are combined with `AND`.                                                                                           |
| audience_filters                           | segments                                   | [object]      | Named segment sub-queries.                                                                                                                                                                                                   |
| segments                                   | name [*required*]                     | string        | Unique name for this sub-query, referenced from `formula`.                                                                                                                                                                   |
| segments                                   | segment_id [*required*]               | string        | Identifier of the saved segment.                                                                                                                                                                                             |
| audience_filters                           | users                                      | [object]      | Named user sub-queries.                                                                                                                                                                                                      |
| users                                      | name [*required*]                     | string        | Unique name for this sub-query, referenced from `formula`.                                                                                                                                                                   |
| users                                      | query                                      | string        | Search query selecting the users.                                                                                                                                                                                            |
| filters                                    | graph_filters                              | [object]      | Filters on journey-level metrics such as time to convert.                                                                                                                                                                    |
| graph_filters                              | name [*required*]                     | enum          | The journey-level metric the graph filter applies to. Allowed enum values: `__dd.time_to_convert,__dd.session,__dd.dropoff_rate`                                                                                             |
| graph_filters                              | operator [*required*]                 | enum          | Comparison operator applied to the graph filter value. Allowed enum values: `=,<,>,<=,>=`                                                                                                                                    |
| graph_filters                              | target                                     |  <oneOf> | A reference to a step, or a range of steps, in the journey. Use a `node` target to name a single step, or a `path` target to name the range between two steps.                                                               |
| target                                     | <type=node>                                | object        | A reference to a single step of the journey.                                                                                                                                                                                 |
| <type=node>                                | type [*required*]                     | enum          | The discriminator identifying a target that references a single step. Allowed enum values: `node`                                                                                                                            |
| <type=node>                                | value [*required*]                    | string        | Alias of the targeted node.                                                                                                                                                                                                  |
| target                                     | <type=path>                                | object        | A reference to the range of steps between two nodes of the journey.                                                                                                                                                          |
| <type=path>                                | end [*required*]                      | string        | Alias of the node the path ends at.                                                                                                                                                                                          |
| <type=path>                                | start [*required*]                    | string        | Alias of the node the path starts at.                                                                                                                                                                                        |
| <type=path>                                | type [*required*]                     | enum          | The discriminator identifying a target that references a range of steps. Allowed enum values: `path`                                                                                                                         |
| graph_filters                              | value [*required*]                    | int64         | Value compared against the metric. Durations are expressed in milliseconds.                                                                                                                                                  |
| filters                                    | string_filter                              | string        | Free-text search query applied to the whole journey.                                                                                                                                                                         |
| search                                     | join_keys                                  | object        | Identity join keys used to stitch events belonging to the same user or session.                                                                                                                                              |
| join_keys                                  | primary                                    | string        | Primary identity join key. Defaults to `@session.id`.                                                                                                                                                                        |
| join_keys                                  | secondary                                  | [string]      | Additional identity join keys.                                                                                                                                                                                               |
| search                                     | node_objects [*required*]             | object        | Map of node alias to the query matching that step of the journey. Every alias used in `expression` must have an entry here.                                                                                                  |
| additionalProperties                       | <any-key>                                  |  <oneOf> | A query definition discriminated by the `data_source` field. Use `product_analytics` for standard event queries, or `product_analytics_occurrence` for occurrence-filtered queries.                                          |
| <any-key>                                  | <data_source=product_analytics>            | object        | A standard Product Analytics event query.                                                                                                                                                                                    |
| <data_source=product_analytics>            | data_source [*required*]              | enum          | The data source identifier. Allowed enum values: `product_analytics`                                                                                                                                                         |
| <data_source=product_analytics>            | search [*required*]                   | object        | Search parameters for an event query.                                                                                                                                                                                        |
| search                                     | query                                      | string        | The search query using Datadog search syntax.                                                                                                                                                                                |
| <any-key>                                  | <data_source=product_analytics_occurrence> | object        | A Product Analytics occurrence-filtered query.                                                                                                                                                                               |
| <data_source=product_analytics_occurrence> | data_source [*required*]              | enum          | The data source identifier for occurrence queries. Allowed enum values: `product_analytics_occurrence`                                                                                                                       |
| <data_source=product_analytics_occurrence> | search [*required*]                   | object        | Search parameters for an occurrence query.                                                                                                                                                                                   |
| search                                     | occurrences                                | object        | Filter for occurrence-based queries.                                                                                                                                                                                         |
| occurrences                                | meta                                       | object        | Additional metadata.                                                                                                                                                                                                         |
| additionalProperties                       | <any-key>                                  | string        |
| occurrences                                | operator [*required*]                 | string        | Comparison operator (=, >=, <=, >, <).                                                                                                                                                                                       |
| occurrences                                | value [*required*]                    | string        | The occurrence count threshold as a string.                                                                                                                                                                                  |
| search                                     | query                                      | string        | The search query using Datadog search syntax.                                                                                                                                                                                |
| attributes                                 | to [*required*]                       | int64         | End of the query window, in epoch milliseconds.                                                                                                                                                                              |
| data                                       | type [*required*]                     | enum          | The resource type identifier for a journey timeseries or scalar request. Allowed enum values: `formula_journey_request`                                                                                                      |

{% /tab %}

{% tab title="Example" %}

```json
{
  "data": {
    "attributes": {
      "from": 1756425600000,
      "query": {
        "compute": {
          "aggregation": "count",
          "metric": "string",
          "target": {
            "type": "node",
            "value": "A"
          }
        },
        "group_by": [
          {
            "facet": "@geo.country",
            "limit": "integer",
            "should_exclude_missing": false,
            "sort": {
              "aggregation": "count",
              "metric": "string",
              "order": "string"
            },
            "source": "product_analytics_audience_filters.users",
            "target": {
              "type": "node",
              "value": "A"
            },
            "value_filters": []
          }
        ],
        "query_id": "string",
        "search": {
          "expression": "A -> B",
          "filters": {
            "audience_filters": {
              "accounts": [
                {
                  "name": "enterprise_accounts",
                  "query": "string"
                }
              ],
              "formula": "power_users AND NOT trial_segment",
              "segments": [
                {
                  "name": "trial_segment",
                  "segment_id": "00000000-0000-0000-0000-000000000000"
                }
              ],
              "users": [
                {
                  "name": "power_users",
                  "query": "string"
                }
              ]
            },
            "graph_filters": [
              {
                "name": "__dd.time_to_convert",
                "operator": "<=",
                "target": {
                  "type": "node",
                  "value": "A"
                },
                "value": 60000
              }
            ],
            "string_filter": "string"
          },
          "join_keys": {
            "primary": "@session.id",
            "secondary": []
          },
          "node_objects": {
            "<any-key>": "undefined"
          }
        }
      },
      "to": 1756857600000
    },
    "type": "formula_journey_request"
  }
}
```

{% /tab %}

### Response

{% tab title="200" %}
OK
{% tab title="Model" %}
Response for a journey scalar query.

| Parent field | Field                        | Type     | Description                                                                                                                                             |
| ------------ | ---------------------------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- |
|              | data [*required*]       | object   | The single JSON:API resource holding journey scalar results. Its attributes contain one value per group, suitable for a query value or top list widget. |
| data         | attributes [*required*] | object   | Attributes of a scalar analytics response, containing the result columns.                                                                               |
| attributes   | columns                      | [object] | The list of result columns, each containing values and metadata.                                                                                        |
| columns      | meta                         | object   | Metadata associated with a scalar response column, including optional unit information.                                                                 |
| meta         | unit                         | [object] | Unit definitions for the column values, if applicable.                                                                                                  |
| unit         | family                       | string   | The unit family (e.g., time, bytes).                                                                                                                    |
| unit         | id                           | int64    | Numeric identifier for the unit.                                                                                                                        |
| unit         | name                         | string   | The full name of the unit (e.g., nanosecond).                                                                                                           |
| unit         | plural                       | string   | Plural form of the unit name (e.g., nanoseconds).                                                                                                       |
| unit         | scale_factor                 | double   | Conversion factor relative to the base unit of the family.                                                                                              |
| unit         | short_name                   | string   | Abbreviated unit name (e.g., ns).                                                                                                                       |
| columns      | name                         | string   | Column name (facet name for group-by, or "query").                                                                                                      |
| columns      | type                         | enum     | Column type. Allowed enum values: `number,group`                                                                                                        |
| columns      | values                       | []       | Column values.                                                                                                                                          |
| data         | id [*required*]         | string   | Identifier of this result.                                                                                                                              |
| data         | type [*required*]       | enum     | The resource type identifier for a journey scalar response. Allowed enum values: `journey_scalar_response`                                              |

{% /tab %}

{% tab title="Example" %}

```json
{
  "data": {
    "attributes": {
      "columns": [
        {
          "meta": {
            "unit": [
              {
                "family": "time",
                "id": "integer",
                "name": "nanosecond",
                "plural": "string",
                "scale_factor": "number",
                "short_name": "string"
              }
            ]
          },
          "name": "string",
          "type": "string",
          "values": []
        }
      ]
    },
    "id": "00000000-0000-0000-0000-000000000000",
    "type": "journey_scalar_response"
  }
}
```

{% /tab %}

{% /tab %}

{% tab title="400" %}
Bad Request
{% tab title="Model" %}
API error response.

| Field                    | Type     | Description       |
| ------------------------ | -------- | ----------------- |
| errors [*required*] | [string] | A list of errors. |

{% /tab %}

{% tab title="Example" %}

```json
{
  "errors": [
    "Bad Request"
  ]
}
```

{% /tab %}

{% /tab %}

{% tab title="403" %}
Not Authorized
{% tab title="Model" %}
API error response.

| Field                    | Type     | Description       |
| ------------------------ | -------- | ----------------- |
| errors [*required*] | [string] | A list of errors. |

{% /tab %}

{% tab title="Example" %}

```json
{
  "errors": [
    "Bad Request"
  ]
}
```

{% /tab %}

{% /tab %}

{% tab title="429" %}
Too many requests
{% tab title="Model" %}
API error response.

| Field                    | Type     | Description       |
| ------------------------ | -------- | ----------------- |
| errors [*required*] | [string] | A list of errors. |

{% /tab %}

{% tab title="Example" %}

```json
{
  "errors": [
    "Bad Request"
  ]
}
```

{% /tab %}

{% /tab %}

### Code Example

##### 
                  \## default
# 
 \# Curl command curl -X POST "https://api.datadoghq.com/api/v2/product-analytics/journey/scalar" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "DD-API-KEY: ${DD_API_KEY}" \
-H "DD-APPLICATION-KEY: ${DD_APP_KEY}" \
-d @- << EOF
{
  "data": {
    "attributes": {
      "from": 1756425600000,
      "query": {
        "compute": {
          "aggregation": "count",
          "metric": "__dd.conversion_rate"
        },
        "search": {
          "expression": "A -\u003e B",
          "node_objects": {
            "A": {
              "data_source": "product_analytics",
              "search": {
                "query": "@type:view @view.name:Login"
              }
            },
            "B": {
              "data_source": "product_analytics",
              "search": {
                "query": "@type:action @action.target.name:Submit"
              }
            }
          }
        }
      },
      "to": 1756857600000
    },
    "type": "formula_journey_request"
  }
}
EOF 
                
##### 

```python
"""
Compute journey scalar analytics returns "OK" response
"""

from datadog_api_client import ApiClient, Configuration
from datadog_api_client.v2.api.product_analytics_api import ProductAnalyticsApi
from datadog_api_client.v2.model.product_analytics_event_query import ProductAnalyticsEventQuery
from datadog_api_client.v2.model.product_analytics_event_query_data_source import ProductAnalyticsEventQueryDataSource
from datadog_api_client.v2.model.product_analytics_event_search import ProductAnalyticsEventSearch
from datadog_api_client.v2.model.product_analytics_formula_journey_request_type import (
    ProductAnalyticsFormulaJourneyRequestType,
)
from datadog_api_client.v2.model.product_analytics_graph_query_group_by import ProductAnalyticsGraphQueryGroupBy
from datadog_api_client.v2.model.product_analytics_graph_query_group_by_source import (
    ProductAnalyticsGraphQueryGroupBySource,
)
from datadog_api_client.v2.model.product_analytics_group_by_sort import ProductAnalyticsGroupBySort
from datadog_api_client.v2.model.product_analytics_join_keys import ProductAnalyticsJoinKeys
from datadog_api_client.v2.model.product_analytics_journey_audience_account_query import (
    ProductAnalyticsJourneyAudienceAccountQuery,
)
from datadog_api_client.v2.model.product_analytics_journey_audience_filters import (
    ProductAnalyticsJourneyAudienceFilters,
)
from datadog_api_client.v2.model.product_analytics_journey_audience_segment_query import (
    ProductAnalyticsJourneyAudienceSegmentQuery,
)
from datadog_api_client.v2.model.product_analytics_journey_audience_user_query import (
    ProductAnalyticsJourneyAudienceUserQuery,
)
from datadog_api_client.v2.model.product_analytics_journey_node_target import ProductAnalyticsJourneyNodeTarget
from datadog_api_client.v2.model.product_analytics_journey_node_target_type import ProductAnalyticsJourneyNodeTargetType
from datadog_api_client.v2.model.product_analytics_journey_scalar_compute import ProductAnalyticsJourneyScalarCompute
from datadog_api_client.v2.model.product_analytics_journey_scalar_query import ProductAnalyticsJourneyScalarQuery
from datadog_api_client.v2.model.product_analytics_journey_scalar_request import ProductAnalyticsJourneyScalarRequest
from datadog_api_client.v2.model.product_analytics_journey_scalar_request_attributes import (
    ProductAnalyticsJourneyScalarRequestAttributes,
)
from datadog_api_client.v2.model.product_analytics_journey_scalar_request_data import (
    ProductAnalyticsJourneyScalarRequestData,
)
from datadog_api_client.v2.model.product_analytics_journey_search import ProductAnalyticsJourneySearch
from datadog_api_client.v2.model.product_analytics_journey_search_filters import ProductAnalyticsJourneySearchFilters
from datadog_api_client.v2.model.product_analytics_journey_search_graph_filter import (
    ProductAnalyticsJourneySearchGraphFilter,
)
from datadog_api_client.v2.model.product_analytics_journey_search_graph_filter_name import (
    ProductAnalyticsJourneySearchGraphFilterName,
)
from datadog_api_client.v2.model.product_analytics_journey_search_graph_filter_operator import (
    ProductAnalyticsJourneySearchGraphFilterOperator,
)
from datadog_api_client.v2.model.query_sort_order import QuerySortOrder

body = ProductAnalyticsJourneyScalarRequest(
    data=ProductAnalyticsJourneyScalarRequestData(
        attributes=ProductAnalyticsJourneyScalarRequestAttributes(
            _from=1756425600000,
            query=ProductAnalyticsJourneyScalarQuery(
                compute=ProductAnalyticsJourneyScalarCompute(
                    aggregation="count",
                    target=ProductAnalyticsJourneyNodeTarget(
                        type=ProductAnalyticsJourneyNodeTargetType.NODE,
                        value="A",
                    ),
                ),
                group_by=[
                    ProductAnalyticsGraphQueryGroupBy(
                        facet="@geo.country",
                        should_exclude_missing=False,
                        sort=ProductAnalyticsGroupBySort(
                            aggregation="count",
                            order=QuerySortOrder.DESC,
                        ),
                        source=ProductAnalyticsGraphQueryGroupBySource.USERS,
                        target=ProductAnalyticsJourneyNodeTarget(
                            type=ProductAnalyticsJourneyNodeTargetType.NODE,
                            value="A",
                        ),
                        value_filters=[],
                    ),
                ],
                search=ProductAnalyticsJourneySearch(
                    expression="A -> B",
                    filters=ProductAnalyticsJourneySearchFilters(
                        audience_filters=ProductAnalyticsJourneyAudienceFilters(
                            accounts=[
                                ProductAnalyticsJourneyAudienceAccountQuery(
                                    name="enterprise_accounts",
                                ),
                            ],
                            formula="power_users AND NOT trial_segment",
                            segments=[
                                ProductAnalyticsJourneyAudienceSegmentQuery(
                                    name="trial_segment",
                                    segment_id="00000000-0000-0000-0000-000000000000",
                                ),
                            ],
                            users=[
                                ProductAnalyticsJourneyAudienceUserQuery(
                                    name="power_users",
                                ),
                            ],
                        ),
                        graph_filters=[
                            ProductAnalyticsJourneySearchGraphFilter(
                                name=ProductAnalyticsJourneySearchGraphFilterName.TIME_TO_CONVERT,
                                operator=ProductAnalyticsJourneySearchGraphFilterOperator.LESS_THAN_OR_EQUAL,
                                target=ProductAnalyticsJourneyNodeTarget(
                                    type=ProductAnalyticsJourneyNodeTargetType.NODE,
                                    value="A",
                                ),
                                value=60000,
                            ),
                        ],
                    ),
                    join_keys=ProductAnalyticsJoinKeys(
                        primary="@session.id",
                        secondary=[],
                    ),
                    node_objects=dict(
                        A=ProductAnalyticsEventQuery(
                            data_source=ProductAnalyticsEventQueryDataSource.PRODUCT_ANALYTICS,
                            search=ProductAnalyticsEventSearch(
                                query="@type:view @view.name:Login",
                            ),
                        ),
                        B=ProductAnalyticsEventQuery(
                            data_source=ProductAnalyticsEventQueryDataSource.PRODUCT_ANALYTICS,
                            search=ProductAnalyticsEventSearch(
                                query="@type:action @action.target.name:Submit",
                            ),
                        ),
                    ),
                ),
            ),
            to=1756857600000,
        ),
        type=ProductAnalyticsFormulaJourneyRequestType.FORMULA_JOURNEY_REQUEST,
    ),
)

configuration = Configuration()
configuration.unstable_operations["query_product_analytics_journey_scalar"] = True
with ApiClient(configuration) as api_client:
    api_instance = ProductAnalyticsApi(api_client)
    response = api_instance.query_product_analytics_journey_scalar(body=body)

    print(response)
```

#### Instructions

First [install the library and its dependencies](https://docs.datadoghq.com/api/latest.md?code-lang=python) and then save the example to `example.py` and run following commands:
    DD_SITE="datadoghq.com" DD_API_KEY="<API-KEY>" DD_APP_KEY="<APP-KEY>" python3 "example.py"
##### 

```ruby
# Compute journey scalar analytics returns "OK" response

require "datadog_api_client"
DatadogAPIClient.configure do |config|
  config.unstable_operations["v2.query_product_analytics_journey_scalar".to_sym] = true
end
api_instance = DatadogAPIClient::V2::ProductAnalyticsAPI.new

body = DatadogAPIClient::V2::ProductAnalyticsJourneyScalarRequest.new({
  data: DatadogAPIClient::V2::ProductAnalyticsJourneyScalarRequestData.new({
    attributes: DatadogAPIClient::V2::ProductAnalyticsJourneyScalarRequestAttributes.new({
      from: 1756425600000,
      query: DatadogAPIClient::V2::ProductAnalyticsJourneyScalarQuery.new({
        compute: DatadogAPIClient::V2::ProductAnalyticsJourneyScalarCompute.new({
          aggregation: "count",
          target: DatadogAPIClient::V2::ProductAnalyticsJourneyNodeTarget.new({
            type: DatadogAPIClient::V2::ProductAnalyticsJourneyNodeTargetType::NODE,
            value: "A",
          }),
        }),
        group_by: [
          DatadogAPIClient::V2::ProductAnalyticsGraphQueryGroupBy.new({
            facet: "@geo.country",
            should_exclude_missing: false,
            sort: DatadogAPIClient::V2::ProductAnalyticsGroupBySort.new({
              aggregation: "count",
              order: DatadogAPIClient::V2::QuerySortOrder::DESC,
            }),
            source: DatadogAPIClient::V2::ProductAnalyticsGraphQueryGroupBySource::USERS,
            target: DatadogAPIClient::V2::ProductAnalyticsJourneyNodeTarget.new({
              type: DatadogAPIClient::V2::ProductAnalyticsJourneyNodeTargetType::NODE,
              value: "A",
            }),
            value_filters: [],
          }),
        ],
        search: DatadogAPIClient::V2::ProductAnalyticsJourneySearch.new({
          expression: "A -> B",
          filters: DatadogAPIClient::V2::ProductAnalyticsJourneySearchFilters.new({
            audience_filters: DatadogAPIClient::V2::ProductAnalyticsJourneyAudienceFilters.new({
              accounts: [
                DatadogAPIClient::V2::ProductAnalyticsJourneyAudienceAccountQuery.new({
                  name: "enterprise_accounts",
                }),
              ],
              formula: "power_users AND NOT trial_segment",
              segments: [
                DatadogAPIClient::V2::ProductAnalyticsJourneyAudienceSegmentQuery.new({
                  name: "trial_segment",
                  segment_id: "00000000-0000-0000-0000-000000000000",
                }),
              ],
              users: [
                DatadogAPIClient::V2::ProductAnalyticsJourneyAudienceUserQuery.new({
                  name: "power_users",
                }),
              ],
            }),
            graph_filters: [
              DatadogAPIClient::V2::ProductAnalyticsJourneySearchGraphFilter.new({
                name: DatadogAPIClient::V2::ProductAnalyticsJourneySearchGraphFilterName::TIME_TO_CONVERT,
                operator: DatadogAPIClient::V2::ProductAnalyticsJourneySearchGraphFilterOperator::LESS_THAN_OR_EQUAL,
                target: DatadogAPIClient::V2::ProductAnalyticsJourneyNodeTarget.new({
                  type: DatadogAPIClient::V2::ProductAnalyticsJourneyNodeTargetType::NODE,
                  value: "A",
                }),
                value: 60000,
              }),
            ],
          }),
          join_keys: DatadogAPIClient::V2::ProductAnalyticsJoinKeys.new({
            primary: "@session.id",
            secondary: [],
          }),
          node_objects: {
            A: DatadogAPIClient::V2::ProductAnalyticsEventQuery.new({
              data_source: DatadogAPIClient::V2::ProductAnalyticsEventQueryDataSource::PRODUCT_ANALYTICS,
              search: DatadogAPIClient::V2::ProductAnalyticsEventSearch.new({
                query: "@type:view @view.name:Login",
              }),
            }), B: DatadogAPIClient::V2::ProductAnalyticsEventQuery.new({
              data_source: DatadogAPIClient::V2::ProductAnalyticsEventQueryDataSource::PRODUCT_ANALYTICS,
              search: DatadogAPIClient::V2::ProductAnalyticsEventSearch.new({
                query: "@type:action @action.target.name:Submit",
              }),
            }),
          },
        }),
      }),
      to: 1756857600000,
    }),
    type: DatadogAPIClient::V2::ProductAnalyticsFormulaJourneyRequestType::FORMULA_JOURNEY_REQUEST,
  }),
})
p api_instance.query_product_analytics_journey_scalar(body)
```

#### Instructions

First [install the library and its dependencies](https://docs.datadoghq.com/api/latest.md?code-lang=ruby) and then save the example to `example.rb` and run following commands:
    DD_SITE="datadoghq.com" DD_API_KEY="<API-KEY>" DD_APP_KEY="<APP-KEY>" rb "example.rb"
##### 

```go
// Compute journey scalar analytics returns "OK" response

package main

import (
	"context"
	"encoding/json"
	"fmt"
	"os"

	"github.com/DataDog/datadog-api-client-go/v2/api/datadog"
	"github.com/DataDog/datadog-api-client-go/v2/api/datadogV2"
)

func main() {
	body := datadogV2.ProductAnalyticsJourneyScalarRequest{
		Data: datadogV2.ProductAnalyticsJourneyScalarRequestData{
			Attributes: datadogV2.ProductAnalyticsJourneyScalarRequestAttributes{
				From: 1756425600000,
				Query: datadogV2.ProductAnalyticsJourneyScalarQuery{
					Compute: datadogV2.ProductAnalyticsJourneyScalarCompute{
						Aggregation: "count",
						Target: &datadogV2.ProductAnalyticsJourneyTarget{
							ProductAnalyticsJourneyNodeTarget: &datadogV2.ProductAnalyticsJourneyNodeTarget{
								Type:  datadogV2.PRODUCTANALYTICSJOURNEYNODETARGETTYPE_NODE,
								Value: "A",
							}},
					},
					GroupBy: []datadogV2.ProductAnalyticsGraphQueryGroupBy{
						{
							Facet:                "@geo.country",
							ShouldExcludeMissing: datadog.PtrBool(false),
							Sort: &datadogV2.ProductAnalyticsGroupBySort{
								Aggregation: datadog.PtrString("count"),
								Order:       datadogV2.QUERYSORTORDER_DESC.Ptr(),
							},
							Source: datadogV2.PRODUCTANALYTICSGRAPHQUERYGROUPBYSOURCE_USERS.Ptr(),
							Target: &datadogV2.ProductAnalyticsJourneyTarget{
								ProductAnalyticsJourneyNodeTarget: &datadogV2.ProductAnalyticsJourneyNodeTarget{
									Type:  datadogV2.PRODUCTANALYTICSJOURNEYNODETARGETTYPE_NODE,
									Value: "A",
								}},
							ValueFilters: []string{},
						},
					},
					Search: datadogV2.ProductAnalyticsJourneySearch{
						Expression: "A -> B",
						Filters: &datadogV2.ProductAnalyticsJourneySearchFilters{
							AudienceFilters: &datadogV2.ProductAnalyticsJourneyAudienceFilters{
								Accounts: []datadogV2.ProductAnalyticsJourneyAudienceAccountQuery{
									{
										Name: "enterprise_accounts",
									},
								},
								Formula: datadog.PtrString("power_users AND NOT trial_segment"),
								Segments: []datadogV2.ProductAnalyticsJourneyAudienceSegmentQuery{
									{
										Name:      "trial_segment",
										SegmentId: "00000000-0000-0000-0000-000000000000",
									},
								},
								Users: []datadogV2.ProductAnalyticsJourneyAudienceUserQuery{
									{
										Name: "power_users",
									},
								},
							},
							GraphFilters: []datadogV2.ProductAnalyticsJourneySearchGraphFilter{
								{
									Name:     datadogV2.PRODUCTANALYTICSJOURNEYSEARCHGRAPHFILTERNAME_TIME_TO_CONVERT,
									Operator: datadogV2.PRODUCTANALYTICSJOURNEYSEARCHGRAPHFILTEROPERATOR_LESS_THAN_OR_EQUAL,
									Target: &datadogV2.ProductAnalyticsJourneyTarget{
										ProductAnalyticsJourneyNodeTarget: &datadogV2.ProductAnalyticsJourneyNodeTarget{
											Type:  datadogV2.PRODUCTANALYTICSJOURNEYNODETARGETTYPE_NODE,
											Value: "A",
										}},
									Value: 60000,
								},
							},
						},
						JoinKeys: &datadogV2.ProductAnalyticsJoinKeys{
							Primary:   datadog.PtrString("@session.id"),
							Secondary: []string{},
						},
						NodeObjects: map[string]datadogV2.ProductAnalyticsBaseQuery{
							"A": datadogV2.ProductAnalyticsBaseQuery{
								ProductAnalyticsEventQuery: &datadogV2.ProductAnalyticsEventQuery{
									DataSource: datadogV2.PRODUCTANALYTICSEVENTQUERYDATASOURCE_PRODUCT_ANALYTICS,
									Search: datadogV2.ProductAnalyticsEventSearch{
										Query: datadog.PtrString("@type:view @view.name:Login"),
									},
								}},
							"B": datadogV2.ProductAnalyticsBaseQuery{
								ProductAnalyticsEventQuery: &datadogV2.ProductAnalyticsEventQuery{
									DataSource: datadogV2.PRODUCTANALYTICSEVENTQUERYDATASOURCE_PRODUCT_ANALYTICS,
									Search: datadogV2.ProductAnalyticsEventSearch{
										Query: datadog.PtrString("@type:action @action.target.name:Submit"),
									},
								}},
						},
					},
				},
				To: 1756857600000,
			},
			Type: datadogV2.PRODUCTANALYTICSFORMULAJOURNEYREQUESTTYPE_FORMULA_JOURNEY_REQUEST,
		},
	}
	ctx := datadog.NewDefaultContext(context.Background())
	configuration := datadog.NewConfiguration()
	configuration.SetUnstableOperationEnabled("v2.QueryProductAnalyticsJourneyScalar", true)
	apiClient := datadog.NewAPIClient(configuration)
	api := datadogV2.NewProductAnalyticsApi(apiClient)
	resp, r, err := api.QueryProductAnalyticsJourneyScalar(ctx, body)

	if err != nil {
		fmt.Fprintf(os.Stderr, "Error when calling `ProductAnalyticsApi.QueryProductAnalyticsJourneyScalar`: %v\n", err)
		fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
	}

	responseContent, _ := json.MarshalIndent(resp, "", "  ")
	fmt.Fprintf(os.Stdout, "Response from `ProductAnalyticsApi.QueryProductAnalyticsJourneyScalar`:\n%s\n", responseContent)
}
```

#### Instructions

First [install the library and its dependencies](https://docs.datadoghq.com/api/latest.md?code-lang=go) and then save the example to `main.go` and run following commands:
    DD_SITE="datadoghq.com" DD_API_KEY="<API-KEY>" DD_APP_KEY="<APP-KEY>" go run "main.go"
##### 

```java
// Compute journey scalar analytics returns "OK" response

import com.datadog.api.client.ApiClient;
import com.datadog.api.client.ApiException;
import com.datadog.api.client.v2.api.ProductAnalyticsApi;
import com.datadog.api.client.v2.model.ProductAnalyticsBaseQuery;
import com.datadog.api.client.v2.model.ProductAnalyticsEventQuery;
import com.datadog.api.client.v2.model.ProductAnalyticsEventQueryDataSource;
import com.datadog.api.client.v2.model.ProductAnalyticsEventSearch;
import com.datadog.api.client.v2.model.ProductAnalyticsFormulaJourneyRequestType;
import com.datadog.api.client.v2.model.ProductAnalyticsGraphQueryGroupBy;
import com.datadog.api.client.v2.model.ProductAnalyticsGraphQueryGroupBySource;
import com.datadog.api.client.v2.model.ProductAnalyticsGroupBySort;
import com.datadog.api.client.v2.model.ProductAnalyticsJoinKeys;
import com.datadog.api.client.v2.model.ProductAnalyticsJourneyAudienceAccountQuery;
import com.datadog.api.client.v2.model.ProductAnalyticsJourneyAudienceFilters;
import com.datadog.api.client.v2.model.ProductAnalyticsJourneyAudienceSegmentQuery;
import com.datadog.api.client.v2.model.ProductAnalyticsJourneyAudienceUserQuery;
import com.datadog.api.client.v2.model.ProductAnalyticsJourneyNodeTarget;
import com.datadog.api.client.v2.model.ProductAnalyticsJourneyNodeTargetType;
import com.datadog.api.client.v2.model.ProductAnalyticsJourneyScalarCompute;
import com.datadog.api.client.v2.model.ProductAnalyticsJourneyScalarQuery;
import com.datadog.api.client.v2.model.ProductAnalyticsJourneyScalarRequest;
import com.datadog.api.client.v2.model.ProductAnalyticsJourneyScalarRequestAttributes;
import com.datadog.api.client.v2.model.ProductAnalyticsJourneyScalarRequestData;
import com.datadog.api.client.v2.model.ProductAnalyticsJourneyScalarResponse;
import com.datadog.api.client.v2.model.ProductAnalyticsJourneySearch;
import com.datadog.api.client.v2.model.ProductAnalyticsJourneySearchFilters;
import com.datadog.api.client.v2.model.ProductAnalyticsJourneySearchGraphFilter;
import com.datadog.api.client.v2.model.ProductAnalyticsJourneySearchGraphFilterName;
import com.datadog.api.client.v2.model.ProductAnalyticsJourneySearchGraphFilterOperator;
import com.datadog.api.client.v2.model.ProductAnalyticsJourneyTarget;
import com.datadog.api.client.v2.model.QuerySortOrder;
import java.util.Collections;
import java.util.Map;

public class Example {
  public static void main(String[] args) {
    ApiClient defaultClient = ApiClient.getDefaultApiClient();
    defaultClient.setUnstableOperationEnabled("v2.queryProductAnalyticsJourneyScalar", true);
    ProductAnalyticsApi apiInstance = new ProductAnalyticsApi(defaultClient);

    ProductAnalyticsJourneyScalarRequest body =
        new ProductAnalyticsJourneyScalarRequest()
            .data(
                new ProductAnalyticsJourneyScalarRequestData()
                    .attributes(
                        new ProductAnalyticsJourneyScalarRequestAttributes()
                            .from(1756425600000L)
                            .query(
                                new ProductAnalyticsJourneyScalarQuery()
                                    .compute(
                                        new ProductAnalyticsJourneyScalarCompute()
                                            .aggregation("count")
                                            .target(
                                                new ProductAnalyticsJourneyTarget(
                                                    new ProductAnalyticsJourneyNodeTarget()
                                                        .type(
                                                            ProductAnalyticsJourneyNodeTargetType
                                                                .NODE)
                                                        .value("A"))))
                                    .groupBy(
                                        Collections.singletonList(
                                            new ProductAnalyticsGraphQueryGroupBy()
                                                .facet("@geo.country")
                                                .shouldExcludeMissing(false)
                                                .sort(
                                                    new ProductAnalyticsGroupBySort()
                                                        .aggregation("count")
                                                        .order(QuerySortOrder.DESC))
                                                .source(
                                                    ProductAnalyticsGraphQueryGroupBySource.USERS)
                                                .target(
                                                    new ProductAnalyticsJourneyTarget(
                                                        new ProductAnalyticsJourneyNodeTarget()
                                                            .type(
                                                                ProductAnalyticsJourneyNodeTargetType
                                                                    .NODE)
                                                            .value("A")))))
                                    .search(
                                        new ProductAnalyticsJourneySearch()
                                            .expression("A -> B")
                                            .filters(
                                                new ProductAnalyticsJourneySearchFilters()
                                                    .audienceFilters(
                                                        new ProductAnalyticsJourneyAudienceFilters()
                                                            .accounts(
                                                                Collections.singletonList(
                                                                    new ProductAnalyticsJourneyAudienceAccountQuery()
                                                                        .name(
                                                                            "enterprise_accounts")))
                                                            .formula(
                                                                "power_users AND NOT trial_segment")
                                                            .segments(
                                                                Collections.singletonList(
                                                                    new ProductAnalyticsJourneyAudienceSegmentQuery()
                                                                        .name("trial_segment")
                                                                        .segmentId(
                                                                            "00000000-0000-0000-0000-000000000000")))
                                                            .users(
                                                                Collections.singletonList(
                                                                    new ProductAnalyticsJourneyAudienceUserQuery()
                                                                        .name("power_users"))))
                                                    .graphFilters(
                                                        Collections.singletonList(
                                                            new ProductAnalyticsJourneySearchGraphFilter()
                                                                .name(
                                                                    ProductAnalyticsJourneySearchGraphFilterName
                                                                        .TIME_TO_CONVERT)
                                                                .operator(
                                                                    ProductAnalyticsJourneySearchGraphFilterOperator
                                                                        .LESS_THAN_OR_EQUAL)
                                                                .target(
                                                                    new ProductAnalyticsJourneyTarget(
                                                                        new ProductAnalyticsJourneyNodeTarget()
                                                                            .type(
                                                                                ProductAnalyticsJourneyNodeTargetType
                                                                                    .NODE)
                                                                            .value("A")))
                                                                .value(60000L))))
                                            .joinKeys(
                                                new ProductAnalyticsJoinKeys()
                                                    .primary("@session.id"))
                                            .nodeObjects(
                                                Map.ofEntries(
                                                    Map.entry(
                                                        "A",
                                                        new ProductAnalyticsBaseQuery(
                                                            new ProductAnalyticsEventQuery()
                                                                .dataSource(
                                                                    ProductAnalyticsEventQueryDataSource
                                                                        .PRODUCT_ANALYTICS)
                                                                .search(
                                                                    new ProductAnalyticsEventSearch()
                                                                        .query(
                                                                            "@type:view"
                                                                                + " @view.name:Login")))),
                                                    Map.entry(
                                                        "B",
                                                        new ProductAnalyticsBaseQuery(
                                                            new ProductAnalyticsEventQuery()
                                                                .dataSource(
                                                                    ProductAnalyticsEventQueryDataSource
                                                                        .PRODUCT_ANALYTICS)
                                                                .search(
                                                                    new ProductAnalyticsEventSearch()
                                                                        .query(
                                                                            "@type:action"
                                                                                + " @action.target.name:Submit"))))))))
                            .to(1756857600000L))
                    .type(ProductAnalyticsFormulaJourneyRequestType.FORMULA_JOURNEY_REQUEST));

    try {
      ProductAnalyticsJourneyScalarResponse result =
          apiInstance.queryProductAnalyticsJourneyScalar(body);
      System.out.println(result);
    } catch (ApiException e) {
      System.err.println(
          "Exception when calling ProductAnalyticsApi#queryProductAnalyticsJourneyScalar");
      System.err.println("Status code: " + e.getCode());
      System.err.println("Reason: " + e.getResponseBody());
      System.err.println("Response headers: " + e.getResponseHeaders());
      e.printStackTrace();
    }
  }
}
```

#### Instructions

First [install the library and its dependencies](https://docs.datadoghq.com/api/latest.md?code-lang=java) and then save the example to `Example.java` and run following commands:
    DD_SITE="datadoghq.com" DD_API_KEY="<API-KEY>" DD_APP_KEY="<APP-KEY>" java "Example.java"
##### 

```rust
// Compute journey scalar analytics returns "OK" response
use datadog_api_client::datadog;
use datadog_api_client::datadogV2::api_product_analytics::ProductAnalyticsAPI;
use datadog_api_client::datadogV2::model::ProductAnalyticsBaseQuery;
use datadog_api_client::datadogV2::model::ProductAnalyticsEventQuery;
use datadog_api_client::datadogV2::model::ProductAnalyticsEventQueryDataSource;
use datadog_api_client::datadogV2::model::ProductAnalyticsEventSearch;
use datadog_api_client::datadogV2::model::ProductAnalyticsFormulaJourneyRequestType;
use datadog_api_client::datadogV2::model::ProductAnalyticsGraphQueryGroupBy;
use datadog_api_client::datadogV2::model::ProductAnalyticsGraphQueryGroupBySource;
use datadog_api_client::datadogV2::model::ProductAnalyticsGroupBySort;
use datadog_api_client::datadogV2::model::ProductAnalyticsJoinKeys;
use datadog_api_client::datadogV2::model::ProductAnalyticsJourneyAudienceAccountQuery;
use datadog_api_client::datadogV2::model::ProductAnalyticsJourneyAudienceFilters;
use datadog_api_client::datadogV2::model::ProductAnalyticsJourneyAudienceSegmentQuery;
use datadog_api_client::datadogV2::model::ProductAnalyticsJourneyAudienceUserQuery;
use datadog_api_client::datadogV2::model::ProductAnalyticsJourneyNodeTarget;
use datadog_api_client::datadogV2::model::ProductAnalyticsJourneyNodeTargetType;
use datadog_api_client::datadogV2::model::ProductAnalyticsJourneyScalarCompute;
use datadog_api_client::datadogV2::model::ProductAnalyticsJourneyScalarQuery;
use datadog_api_client::datadogV2::model::ProductAnalyticsJourneyScalarRequest;
use datadog_api_client::datadogV2::model::ProductAnalyticsJourneyScalarRequestAttributes;
use datadog_api_client::datadogV2::model::ProductAnalyticsJourneyScalarRequestData;
use datadog_api_client::datadogV2::model::ProductAnalyticsJourneySearch;
use datadog_api_client::datadogV2::model::ProductAnalyticsJourneySearchFilters;
use datadog_api_client::datadogV2::model::ProductAnalyticsJourneySearchGraphFilter;
use datadog_api_client::datadogV2::model::ProductAnalyticsJourneySearchGraphFilterName;
use datadog_api_client::datadogV2::model::ProductAnalyticsJourneySearchGraphFilterOperator;
use datadog_api_client::datadogV2::model::ProductAnalyticsJourneyTarget;
use datadog_api_client::datadogV2::model::QuerySortOrder;
use std::collections::BTreeMap;

#[tokio::main]
async fn main() {
    let body =
        ProductAnalyticsJourneyScalarRequest::new(
            ProductAnalyticsJourneyScalarRequestData::new(
                ProductAnalyticsJourneyScalarRequestAttributes::new(
                    1756425600000,
                    ProductAnalyticsJourneyScalarQuery::new(
                        ProductAnalyticsJourneyScalarCompute::new(
                            "count".to_string(),
                        ).target(
                            ProductAnalyticsJourneyTarget::ProductAnalyticsJourneyNodeTarget(
                                Box::new(
                                    ProductAnalyticsJourneyNodeTarget::new(
                                        ProductAnalyticsJourneyNodeTargetType::NODE,
                                        "A".to_string(),
                                    ),
                                ),
                            ),
                        ),
                        ProductAnalyticsJourneySearch::new(
                            "A -> B".to_string(),
                            BTreeMap::from(
                                [
                                    (
                                        "A".to_string(),
                                        ProductAnalyticsBaseQuery::ProductAnalyticsEventQuery(
                                            Box::new(
                                                ProductAnalyticsEventQuery::new(
                                                    ProductAnalyticsEventQueryDataSource::PRODUCT_ANALYTICS,
                                                    ProductAnalyticsEventSearch
                                                    ::new().query("@type:view @view.name:Login".to_string()),
                                                ),
                                            ),
                                        ),
                                    ),
                                    (
                                        "B".to_string(),
                                        ProductAnalyticsBaseQuery::ProductAnalyticsEventQuery(
                                            Box::new(
                                                ProductAnalyticsEventQuery::new(
                                                    ProductAnalyticsEventQueryDataSource::PRODUCT_ANALYTICS,
                                                    ProductAnalyticsEventSearch
                                                    ::new().query(
                                                        "@type:action @action.target.name:Submit".to_string(),
                                                    ),
                                                ),
                                            ),
                                        ),
                                    ),
                                ],
                            ),
                        )
                            .filters(
                                ProductAnalyticsJourneySearchFilters::new()
                                    .audience_filters(
                                        ProductAnalyticsJourneyAudienceFilters::new()
                                            .accounts(
                                                vec![
                                                    ProductAnalyticsJourneyAudienceAccountQuery::new(
                                                        "enterprise_accounts".to_string(),
                                                    )
                                                ],
                                            )
                                            .formula("power_users AND NOT trial_segment".to_string())
                                            .segments(
                                                vec![
                                                    ProductAnalyticsJourneyAudienceSegmentQuery::new(
                                                        "trial_segment".to_string(),
                                                        "00000000-0000-0000-0000-000000000000".to_string(),
                                                    )
                                                ],
                                            )
                                            .users(
                                                vec![
                                                    ProductAnalyticsJourneyAudienceUserQuery::new(
                                                        "power_users".to_string(),
                                                    )
                                                ],
                                            ),
                                    )
                                    .graph_filters(
                                        vec![
                                            ProductAnalyticsJourneySearchGraphFilter::new(
                                                ProductAnalyticsJourneySearchGraphFilterName::TIME_TO_CONVERT,
                                                ProductAnalyticsJourneySearchGraphFilterOperator::LESS_THAN_OR_EQUAL,
                                                60000,
                                            ).target(
                                                ProductAnalyticsJourneyTarget::ProductAnalyticsJourneyNodeTarget(
                                                    Box::new(
                                                        ProductAnalyticsJourneyNodeTarget::new(
                                                            ProductAnalyticsJourneyNodeTargetType::NODE,
                                                            "A".to_string(),
                                                        ),
                                                    ),
                                                ),
                                            )
                                        ],
                                    ),
                            )
                            .join_keys(
                                ProductAnalyticsJoinKeys::new().primary("@session.id".to_string()).secondary(vec![]),
                            ),
                    ).group_by(
                        vec![
                            ProductAnalyticsGraphQueryGroupBy::new("@geo.country".to_string())
                                .should_exclude_missing(false)
                                .sort(
                                    ProductAnalyticsGroupBySort::new()
                                        .aggregation("count".to_string())
                                        .order(QuerySortOrder::DESC),
                                )
                                .source(ProductAnalyticsGraphQueryGroupBySource::USERS)
                                .target(
                                    ProductAnalyticsJourneyTarget::ProductAnalyticsJourneyNodeTarget(
                                        Box::new(
                                            ProductAnalyticsJourneyNodeTarget::new(
                                                ProductAnalyticsJourneyNodeTargetType::NODE,
                                                "A".to_string(),
                                            ),
                                        ),
                                    ),
                                )
                                .value_filters(vec![])
                        ],
                    ),
                    1756857600000,
                ),
                ProductAnalyticsFormulaJourneyRequestType::FORMULA_JOURNEY_REQUEST,
            ),
        );
    let mut configuration = datadog::Configuration::new();
    configuration.set_unstable_operation_enabled("v2.QueryProductAnalyticsJourneyScalar", true);
    let api = ProductAnalyticsAPI::with_config(configuration);
    let resp = api.query_product_analytics_journey_scalar(body).await;
    if let Ok(value) = resp {
        println!("{:#?}", value);
    } else {
        println!("{:#?}", resp.unwrap_err());
    }
}
```

#### Instructions

First [install the library and its dependencies](https://docs.datadoghq.com/api/latest.md?code-lang=rust) and then save the example to `src/main.rs` and run following commands:
    DD_SITE="datadoghq.com" DD_API_KEY="<API-KEY>" DD_APP_KEY="<APP-KEY>" cargo run
##### 

```typescript
/**
 * Compute journey scalar analytics returns "OK" response
 */

import { client, v2 } from "@datadog/datadog-api-client";

const configuration = client.createConfiguration();
configuration.unstableOperations["v2.queryProductAnalyticsJourneyScalar"] =
  true;
const apiInstance = new v2.ProductAnalyticsApi(configuration);

const params: v2.ProductAnalyticsApiQueryProductAnalyticsJourneyScalarRequest =
  {
    body: {
      data: {
        attributes: {
          from: 1756425600000,
          query: {
            compute: {
              aggregation: "count",
              target: {
                type: "node",
                value: "A",
              },
            },
            groupBy: [
              {
                facet: "@geo.country",
                shouldExcludeMissing: false,
                sort: {
                  aggregation: "count",
                  order: "desc",
                },
                source: "product_analytics_audience_filters.users",
                target: {
                  type: "node",
                  value: "A",
                },
                valueFilters: [],
              },
            ],
            search: {
              expression: "A -> B",
              filters: {
                audienceFilters: {
                  accounts: [
                    {
                      name: "enterprise_accounts",
                    },
                  ],
                  formula: "power_users AND NOT trial_segment",
                  segments: [
                    {
                      name: "trial_segment",
                      segmentId: "00000000-0000-0000-0000-000000000000",
                    },
                  ],
                  users: [
                    {
                      name: "power_users",
                    },
                  ],
                },
                graphFilters: [
                  {
                    name: "__dd.time_to_convert",
                    operator: "<=",
                    target: {
                      type: "node",
                      value: "A",
                    },
                    value: 60000,
                  },
                ],
              },
              joinKeys: {
                primary: "@session.id",
                secondary: [],
              },
              nodeObjects: {
                A: {
                  dataSource: "product_analytics",
                  search: {
                    query: "@type:view @view.name:Login",
                  },
                },
                B: {
                  dataSource: "product_analytics",
                  search: {
                    query: "@type:action @action.target.name:Submit",
                  },
                },
              },
            },
          },
          to: 1756857600000,
        },
        type: "formula_journey_request",
      },
    },
  };

apiInstance
  .queryProductAnalyticsJourneyScalar(params)
  .then((data: v2.ProductAnalyticsJourneyScalarResponse) => {
    console.log(
      "API called successfully. Returned data: " + JSON.stringify(data)
    );
  })
  .catch((error: any) => console.error(error));
```

#### Instructions

First [install the library and its dependencies](https://docs.datadoghq.com/api/latest.md?code-lang=typescript) and then save the example to `example.ts` and run following commands:
    DD_SITE="datadoghq.com" DD_API_KEY="<API-KEY>" DD_APP_KEY="<APP-KEY>" tsc "example.ts"
{% /tab %}
