List journey entities
https://api.datadoghq.com/api/v2/product-analytics/journey/listhttps://api.us3.datadoghq.com/api/v2/product-analytics/journey/listhttps://api.us5.datadoghq.com/api/v2/product-analytics/journey/listhttps://api.datadoghq.eu/api/v2/product-analytics/journey/listhttps://api.ap1.datadoghq.com/api/v2/product-analytics/journey/listhttps://api.ap2.datadoghq.com/api/v2/product-analytics/journey/listhttps://api.uk1.datadoghq.com/api/v2/product-analytics/journey/listhttps://api.ddog-gov.com/api/v2/product-analytics/journey/listhttps://api.us2.ddog-gov.com/api/v2/product-analytics/journey/listDescripción general
Return the individual sessions that reached, or dropped off at, a given step of the journey.
Each row contains the identity join key, the event timestamp, and the columns requested
in entity_columns.
Solicitud
Body Data (required)
data [required]The single JSON:API resource carrying a journey list query. Its attributes hold the time window and the journey whose matching entities should be listed, one row each.
attributes [required]Attributes of a journey list request.
from [required]Start of the query window, in epoch milliseconds.
query [required]Query definition for a journey list request.
computed_columnsComputed columns to add to each row.
name [required]Name of a computed column to add to each row.
first_conversion_timestampsconversion_typeWhether to return the entities that converted at the target step, or those that dropped off.
conversion, drop-offentity_columnsAttribute columns to return for each row, in addition to the identity join key and timestamp.
entity_filtersAdditional search query applied to the returned rows.
group_bySegments the results by the values of one or more facets.
facet [required]Attribute path to group by.
limitMaximum number of groups to return. Omit it to let the service choose.
should_exclude_missingWhether to exclude entities that have no value for this facet.
falsesortSort configuration for group-by results.
aggregationThe aggregation function to sort by.
metricThe metric to sort by.
orderDirection of sort.
descasc, descsourceAudience dimension to group by, instead of an event facet.
product_analytics_audience_filters.users, product_analytics_audience_filters.accountstargetA 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.
<type=node>A reference to a single step of the journey.
type [required]The discriminator identifying a target that references a single step.
nodevalue [required]Alias of the targeted node.
<type=path>A reference to the range of steps between two nodes of the journey.
end [required]Alias of the node the path ends at.
start [required]Alias of the node the path starts at.
type [required]The discriminator identifying a target that references a range of steps.
pathvalue_filtersRestricts the results to these facet values.
limitMaximum number of rows to return. Omit it to let the service choose.
search [required]Defines the steps of the journey and the filters applied to it.
expression [required]Expression combining the node aliases in order, for example A -> B -> C.
filtersFilters applied on top of the journey step expression.
audience_filtersRestricts the journey to an audience built from named sub-queries.
Sub-query names must be unique across users, segments, and accounts.
accountsNamed account sub-queries.
name [required]Unique name for this sub-query, referenced from formula.
querySearch query selecting the accounts.
formulaBoolean expression combining the sub-query names with AND, OR, and NOT.
When empty, all sub-queries are combined with AND.
segmentsNamed segment sub-queries.
name [required]Unique name for this sub-query, referenced from formula.
segment_id [required]Identifier of the saved segment.
usersNamed user sub-queries.
name [required]Unique name for this sub-query, referenced from formula.
querySearch query selecting the users.
graph_filtersFilters on journey-level metrics such as time to convert.
name [required]The journey-level metric the graph filter applies to.
__dd.time_to_convert, __dd.session, __dd.dropoff_rateoperator [required]Comparison operator applied to the graph filter value.
=, <, >, <=, >=targetA 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.
<type=node>A reference to a single step of the journey.
type [required]The discriminator identifying a target that references a single step.
nodevalue [required]Alias of the targeted node.
<type=path>A reference to the range of steps between two nodes of the journey.
end [required]Alias of the node the path ends at.
start [required]Alias of the node the path starts at.
type [required]The discriminator identifying a target that references a range of steps.
pathvalue [required]Value compared against the metric. Durations are expressed in milliseconds.
string_filterFree-text search query applied to the whole journey.
join_keysIdentity join keys used to stitch events belonging to the same user or session.
primaryPrimary identity join key. Defaults to @session.id.
secondaryAdditional identity join keys.
node_objects [required]Map of node alias to the query matching that step of the journey.
Every alias used in expression must have an entry here.
<any-key>A query definition discriminated by the data_source field.
Use product_analytics for standard event queries, or
product_analytics_occurrence for occurrence-filtered queries.
<data_source=product_analytics>A standard Product Analytics event query.
data_source [required]The data source identifier.
product_analyticssearch [required]Search parameters for an event query.
queryThe search query using Datadog search syntax.
<data_source=product_analytics_occurrence>A Product Analytics occurrence-filtered query.
data_source [required]The data source identifier for occurrence queries.
product_analytics_occurrencesearch [required]Search parameters for an occurrence query.
occurrencesFilter for occurrence-based queries.
metaAdditional metadata.
<any-key>operator [required]Comparison operator (=, >=, <=, >, <).
value [required]The occurrence count threshold as a string.
queryThe search query using Datadog search syntax.
sortSort configuration for the returned rows. The sort is applied only when facet
is one of the returned columns; otherwise it is ignored.
facetColumn to sort on.
orderDirection of sort.
descasc, desctargetA 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.
<type=node>A reference to a single step of the journey.
type [required]The discriminator identifying a target that references a single step.
nodevalue [required]Alias of the targeted node.
<type=path>A reference to the range of steps between two nodes of the journey.
end [required]Alias of the node the path ends at.
start [required]Alias of the node the path starts at.
type [required]The discriminator identifying a target that references a range of steps.
pathto [required]End of the query window, in epoch milliseconds.
type [required]The resource type identifier for a journey list request.
journey_list_request{
"data": {
"attributes": {
"from": 1756425600000,
"query": {
"computed_columns": [
{
"name": "first_conversion_timestamps"
}
],
"conversion_type": "conversion",
"entity_columns": [],
"entity_filters": "string",
"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": []
}
],
"limit": "integer",
"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"
}
},
"sort": {
"facet": "string",
"order": "string"
},
"target": {
"type": "node",
"value": "A"
}
},
"to": 1756857600000
},
"type": "journey_list_request"
}
}Respuesta
OK
Response for a journey list query.
data [required]The single JSON:API resource holding the entities matching a journey. Its attributes contain
the returned rows and the total number of rows that matched, ignoring limit.
attributes [required]Attributes of a journey list response.
entity [required]The kind of entity returned by a journey list query.
session, user, accountrecords [required]The returned rows.
total_count [required]Total number of rows matching the query, ignoring limit.
id [required]Identifier of this result.
type [required]The resource type identifier for a journey list response.
journey_list_response{
"data": {
"attributes": {
"entity": "session",
"records": [],
"total_count": 231
},
"id": "00000000-0000-0000-0000-000000000000",
"type": "journey_list_response"
}
}Bad Request
API error response.
errors [required]A list of errors.
{
"errors": [
"Bad Request"
]
}Not Authorized
API error response.
errors [required]A list of errors.
{
"errors": [
"Bad Request"
]
}Too many requests
API error response.
errors [required]A list of errors.
{
"errors": [
"Bad Request"
]
}Ejemplo de código
# Set your Datadog site and credentials
export DD_SITE="datadoghq.com"
# Use a Personal Access Token or Service Access Token
export DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>"
curl -X POST "https://api.${DD_SITE}/api/v2/product-analytics/journey/list" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ${DD_BEARER_TOKEN}" \
-d @- << EOF
{
"data": {
"attributes": {
"from": 1756425600000,
"query": {
"entity_columns": [
"@usr.name"
],
"limit": 50,
"search": {
"expression": "A -> 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": "journey_list_request"
}
}
EOF# Set your Datadog site and credentials
export DD_SITE="us3.datadoghq.com"
# Use a Personal Access Token or Service Access Token
export DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>"
curl -X POST "https://api.${DD_SITE}/api/v2/product-analytics/journey/list" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ${DD_BEARER_TOKEN}" \
-d @- << EOF
{
"data": {
"attributes": {
"from": 1756425600000,
"query": {
"entity_columns": [
"@usr.name"
],
"limit": 50,
"search": {
"expression": "A -> 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": "journey_list_request"
}
}
EOF# Set your Datadog site and credentials
export DD_SITE="us5.datadoghq.com"
# Use a Personal Access Token or Service Access Token
export DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>"
curl -X POST "https://api.${DD_SITE}/api/v2/product-analytics/journey/list" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ${DD_BEARER_TOKEN}" \
-d @- << EOF
{
"data": {
"attributes": {
"from": 1756425600000,
"query": {
"entity_columns": [
"@usr.name"
],
"limit": 50,
"search": {
"expression": "A -> 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": "journey_list_request"
}
}
EOF# Set your Datadog site and credentials
export DD_SITE="datadoghq.eu"
# Use a Personal Access Token or Service Access Token
export DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>"
curl -X POST "https://api.${DD_SITE}/api/v2/product-analytics/journey/list" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ${DD_BEARER_TOKEN}" \
-d @- << EOF
{
"data": {
"attributes": {
"from": 1756425600000,
"query": {
"entity_columns": [
"@usr.name"
],
"limit": 50,
"search": {
"expression": "A -> 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": "journey_list_request"
}
}
EOF# Set your Datadog site and credentials
export DD_SITE="ap1.datadoghq.com"
# Use a Personal Access Token or Service Access Token
export DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>"
curl -X POST "https://api.${DD_SITE}/api/v2/product-analytics/journey/list" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ${DD_BEARER_TOKEN}" \
-d @- << EOF
{
"data": {
"attributes": {
"from": 1756425600000,
"query": {
"entity_columns": [
"@usr.name"
],
"limit": 50,
"search": {
"expression": "A -> 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": "journey_list_request"
}
}
EOF# Set your Datadog site and credentials
export DD_SITE="ap2.datadoghq.com"
# Use a Personal Access Token or Service Access Token
export DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>"
curl -X POST "https://api.${DD_SITE}/api/v2/product-analytics/journey/list" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ${DD_BEARER_TOKEN}" \
-d @- << EOF
{
"data": {
"attributes": {
"from": 1756425600000,
"query": {
"entity_columns": [
"@usr.name"
],
"limit": 50,
"search": {
"expression": "A -> 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": "journey_list_request"
}
}
EOF# Set your Datadog site and credentials
export DD_SITE="uk1.datadoghq.com"
# Use a Personal Access Token or Service Access Token
export DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>"
curl -X POST "https://api.${DD_SITE}/api/v2/product-analytics/journey/list" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ${DD_BEARER_TOKEN}" \
-d @- << EOF
{
"data": {
"attributes": {
"from": 1756425600000,
"query": {
"entity_columns": [
"@usr.name"
],
"limit": 50,
"search": {
"expression": "A -> 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": "journey_list_request"
}
}
EOF# Set your Datadog site and credentials
export DD_SITE="ddog-gov.com"
# Use a Personal Access Token or Service Access Token
export DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>"
curl -X POST "https://api.${DD_SITE}/api/v2/product-analytics/journey/list" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ${DD_BEARER_TOKEN}" \
-d @- << EOF
{
"data": {
"attributes": {
"from": 1756425600000,
"query": {
"entity_columns": [
"@usr.name"
],
"limit": 50,
"search": {
"expression": "A -> 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": "journey_list_request"
}
}
EOF# Set your Datadog site and credentials
export DD_SITE="us2.ddog-gov.com"
# Use a Personal Access Token or Service Access Token
export DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>"
curl -X POST "https://api.${DD_SITE}/api/v2/product-analytics/journey/list" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ${DD_BEARER_TOKEN}" \
-d @- << EOF
{
"data": {
"attributes": {
"from": 1756425600000,
"query": {
"entity_columns": [
"@usr.name"
],
"limit": 50,
"search": {
"expression": "A -> 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": "journey_list_request"
}
}
EOF// List journey entities 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.ProductAnalyticsJourneyListRequest{
Data: datadogV2.ProductAnalyticsJourneyListRequestData{
Attributes: datadogV2.ProductAnalyticsJourneyListRequestAttributes{
From: 1756425600000,
Query: datadogV2.ProductAnalyticsJourneyListQuery{
ComputedColumns: []datadogV2.ProductAnalyticsJourneyComputedColumn{
{
Name: datadogV2.PRODUCTANALYTICSJOURNEYCOMPUTEDCOLUMNNAME_FIRST_CONVERSION_TIMESTAMPS,
},
},
ConversionType: datadogV2.PRODUCTANALYTICSJOURNEYCONVERSIONTYPE_CONVERSION.Ptr(),
EntityColumns: []string{},
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"),
},
}},
},
},
Sort: &datadogV2.ProductAnalyticsJourneyListSort{
Order: datadogV2.QUERYSORTORDER_DESC.Ptr(),
},
Target: &datadogV2.ProductAnalyticsJourneyTarget{
ProductAnalyticsJourneyNodeTarget: &datadogV2.ProductAnalyticsJourneyNodeTarget{
Type: datadogV2.PRODUCTANALYTICSJOURNEYNODETARGETTYPE_NODE,
Value: "A",
}},
},
To: 1756857600000,
},
Type: datadogV2.PRODUCTANALYTICSJOURNEYLISTREQUESTTYPE_JOURNEY_LIST_REQUEST,
},
}
ctx := datadog.NewDefaultContext(context.Background())
ctx = context.WithValue(ctx, datadog.ContextAccessToken, os.Getenv("DD_BEARER_TOKEN"))
configuration := datadog.NewConfiguration()
configuration.SetUnstableOperationEnabled("v2.QueryProductAnalyticsJourneyList", true)
apiClient := datadog.NewAPIClient(configuration)
api := datadogV2.NewProductAnalyticsApi(apiClient)
resp, r, err := api.QueryProductAnalyticsJourneyList(ctx, body)
if err != nil {
fmt.Fprintf(os.Stderr, "Error when calling `ProductAnalyticsApi.QueryProductAnalyticsJourneyList`: %v\n", err)
fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
}
responseContent, _ := json.MarshalIndent(resp, "", " ")
fmt.Fprintf(os.Stdout, "Response from `ProductAnalyticsApi.QueryProductAnalyticsJourneyList`:\n%s\n", responseContent)
}
Instructions
First install the library and its dependencies and then save the example to main.go and run following commands:
DD_SITE="datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" go run "main.go"DD_SITE="us3.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" go run "main.go"DD_SITE="us5.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" go run "main.go"DD_SITE="datadoghq.eu" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" go run "main.go"DD_SITE="ap1.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" go run "main.go"DD_SITE="ap2.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" go run "main.go"DD_SITE="uk1.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" go run "main.go"DD_SITE="ddog-gov.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" go run "main.go"DD_SITE="us2.ddog-gov.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" go run "main.go"// List journey entities 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.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.ProductAnalyticsJourneyComputedColumn;
import com.datadog.api.client.v2.model.ProductAnalyticsJourneyComputedColumnName;
import com.datadog.api.client.v2.model.ProductAnalyticsJourneyConversionType;
import com.datadog.api.client.v2.model.ProductAnalyticsJourneyListQuery;
import com.datadog.api.client.v2.model.ProductAnalyticsJourneyListRequest;
import com.datadog.api.client.v2.model.ProductAnalyticsJourneyListRequestAttributes;
import com.datadog.api.client.v2.model.ProductAnalyticsJourneyListRequestData;
import com.datadog.api.client.v2.model.ProductAnalyticsJourneyListRequestType;
import com.datadog.api.client.v2.model.ProductAnalyticsJourneyListResponse;
import com.datadog.api.client.v2.model.ProductAnalyticsJourneyListSort;
import com.datadog.api.client.v2.model.ProductAnalyticsJourneyNodeTarget;
import com.datadog.api.client.v2.model.ProductAnalyticsJourneyNodeTargetType;
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.setAccessToken(System.getenv("DD_BEARER_TOKEN"));
defaultClient.setUnstableOperationEnabled("v2.queryProductAnalyticsJourneyList", true);
ProductAnalyticsApi apiInstance = new ProductAnalyticsApi(defaultClient);
ProductAnalyticsJourneyListRequest body =
new ProductAnalyticsJourneyListRequest()
.data(
new ProductAnalyticsJourneyListRequestData()
.attributes(
new ProductAnalyticsJourneyListRequestAttributes()
.from(1756425600000L)
.query(
new ProductAnalyticsJourneyListQuery()
.computedColumns(
Collections.singletonList(
new ProductAnalyticsJourneyComputedColumn()
.name(
ProductAnalyticsJourneyComputedColumnName
.FIRST_CONVERSION_TIMESTAMPS)))
.conversionType(
ProductAnalyticsJourneyConversionType.CONVERSION)
.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")))))))
.sort(
new ProductAnalyticsJourneyListSort()
.order(QuerySortOrder.DESC))
.target(
new ProductAnalyticsJourneyTarget(
new ProductAnalyticsJourneyNodeTarget()
.type(ProductAnalyticsJourneyNodeTargetType.NODE)
.value("A"))))
.to(1756857600000L))
.type(ProductAnalyticsJourneyListRequestType.JOURNEY_LIST_REQUEST));
try {
ProductAnalyticsJourneyListResponse result =
apiInstance.queryProductAnalyticsJourneyList(body);
System.out.println(result);
} catch (ApiException e) {
System.err.println(
"Exception when calling ProductAnalyticsApi#queryProductAnalyticsJourneyList");
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 and then save the example to Example.java and run following commands:
DD_SITE="datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" java "Example.java"DD_SITE="us3.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" java "Example.java"DD_SITE="us5.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" java "Example.java"DD_SITE="datadoghq.eu" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" java "Example.java"DD_SITE="ap1.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" java "Example.java"DD_SITE="ap2.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" java "Example.java"DD_SITE="uk1.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" java "Example.java"DD_SITE="ddog-gov.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" java "Example.java"DD_SITE="us2.ddog-gov.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" java "Example.java""""
List journey entities returns "OK" response
"""
from os import environ
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_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_computed_column import ProductAnalyticsJourneyComputedColumn
from datadog_api_client.v2.model.product_analytics_journey_computed_column_name import (
ProductAnalyticsJourneyComputedColumnName,
)
from datadog_api_client.v2.model.product_analytics_journey_conversion_type import ProductAnalyticsJourneyConversionType
from datadog_api_client.v2.model.product_analytics_journey_list_query import ProductAnalyticsJourneyListQuery
from datadog_api_client.v2.model.product_analytics_journey_list_request import ProductAnalyticsJourneyListRequest
from datadog_api_client.v2.model.product_analytics_journey_list_request_attributes import (
ProductAnalyticsJourneyListRequestAttributes,
)
from datadog_api_client.v2.model.product_analytics_journey_list_request_data import (
ProductAnalyticsJourneyListRequestData,
)
from datadog_api_client.v2.model.product_analytics_journey_list_request_type import (
ProductAnalyticsJourneyListRequestType,
)
from datadog_api_client.v2.model.product_analytics_journey_list_sort import ProductAnalyticsJourneyListSort
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_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 = ProductAnalyticsJourneyListRequest(
data=ProductAnalyticsJourneyListRequestData(
attributes=ProductAnalyticsJourneyListRequestAttributes(
_from=1756425600000,
query=ProductAnalyticsJourneyListQuery(
computed_columns=[
ProductAnalyticsJourneyComputedColumn(
name=ProductAnalyticsJourneyComputedColumnName.FIRST_CONVERSION_TIMESTAMPS,
),
],
conversion_type=ProductAnalyticsJourneyConversionType.CONVERSION,
entity_columns=[],
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",
),
),
),
),
sort=ProductAnalyticsJourneyListSort(
order=QuerySortOrder.DESC,
),
target=ProductAnalyticsJourneyNodeTarget(
type=ProductAnalyticsJourneyNodeTargetType.NODE,
value="A",
),
),
to=1756857600000,
),
type=ProductAnalyticsJourneyListRequestType.JOURNEY_LIST_REQUEST,
),
)
configuration = Configuration()
configuration.access_token = environ["DD_BEARER_TOKEN"]
configuration.unstable_operations["query_product_analytics_journey_list"] = True
with ApiClient(configuration) as api_client:
api_instance = ProductAnalyticsApi(api_client)
response = api_instance.query_product_analytics_journey_list(body=body)
print(response)
Instructions
First install the library and its dependencies and then save the example to example.py and run following commands:
DD_SITE="datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" python3 "example.py"DD_SITE="us3.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" python3 "example.py"DD_SITE="us5.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" python3 "example.py"DD_SITE="datadoghq.eu" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" python3 "example.py"DD_SITE="ap1.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" python3 "example.py"DD_SITE="ap2.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" python3 "example.py"DD_SITE="uk1.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" python3 "example.py"DD_SITE="ddog-gov.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" python3 "example.py"DD_SITE="us2.ddog-gov.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" python3 "example.py"# List journey entities returns "OK" response
require "datadog_api_client"
DatadogAPIClient.configure do |config|
config.access_token = ENV["DD_BEARER_TOKEN"]
config.unstable_operations["v2.query_product_analytics_journey_list".to_sym] = true
end
api_instance = DatadogAPIClient::V2::ProductAnalyticsAPI.new
body = DatadogAPIClient::V2::ProductAnalyticsJourneyListRequest.new({
data: DatadogAPIClient::V2::ProductAnalyticsJourneyListRequestData.new({
attributes: DatadogAPIClient::V2::ProductAnalyticsJourneyListRequestAttributes.new({
from: 1756425600000,
query: DatadogAPIClient::V2::ProductAnalyticsJourneyListQuery.new({
computed_columns: [
DatadogAPIClient::V2::ProductAnalyticsJourneyComputedColumn.new({
name: DatadogAPIClient::V2::ProductAnalyticsJourneyComputedColumnName::FIRST_CONVERSION_TIMESTAMPS,
}),
],
conversion_type: DatadogAPIClient::V2::ProductAnalyticsJourneyConversionType::CONVERSION,
entity_columns: [],
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",
}),
}),
},
}),
sort: DatadogAPIClient::V2::ProductAnalyticsJourneyListSort.new({
order: DatadogAPIClient::V2::QuerySortOrder::DESC,
}),
target: DatadogAPIClient::V2::ProductAnalyticsJourneyNodeTarget.new({
type: DatadogAPIClient::V2::ProductAnalyticsJourneyNodeTargetType::NODE,
value: "A",
}),
}),
to: 1756857600000,
}),
type: DatadogAPIClient::V2::ProductAnalyticsJourneyListRequestType::JOURNEY_LIST_REQUEST,
}),
})
p api_instance.query_product_analytics_journey_list(body)
Instructions
First install the library and its dependencies and then save the example to example.rb and run following commands:
DD_SITE="datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" rb "example.rb"DD_SITE="us3.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" rb "example.rb"DD_SITE="us5.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" rb "example.rb"DD_SITE="datadoghq.eu" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" rb "example.rb"DD_SITE="ap1.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" rb "example.rb"DD_SITE="ap2.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" rb "example.rb"DD_SITE="uk1.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" rb "example.rb"DD_SITE="ddog-gov.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" rb "example.rb"DD_SITE="us2.ddog-gov.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" rb "example.rb"// List journey entities 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::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::ProductAnalyticsJourneyComputedColumn;
use datadog_api_client::datadogV2::model::ProductAnalyticsJourneyComputedColumnName;
use datadog_api_client::datadogV2::model::ProductAnalyticsJourneyConversionType;
use datadog_api_client::datadogV2::model::ProductAnalyticsJourneyListQuery;
use datadog_api_client::datadogV2::model::ProductAnalyticsJourneyListRequest;
use datadog_api_client::datadogV2::model::ProductAnalyticsJourneyListRequestAttributes;
use datadog_api_client::datadogV2::model::ProductAnalyticsJourneyListRequestData;
use datadog_api_client::datadogV2::model::ProductAnalyticsJourneyListRequestType;
use datadog_api_client::datadogV2::model::ProductAnalyticsJourneyListSort;
use datadog_api_client::datadogV2::model::ProductAnalyticsJourneyNodeTarget;
use datadog_api_client::datadogV2::model::ProductAnalyticsJourneyNodeTargetType;
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 =
ProductAnalyticsJourneyListRequest::new(
ProductAnalyticsJourneyListRequestData::new(
ProductAnalyticsJourneyListRequestAttributes::new(
1756425600000,
ProductAnalyticsJourneyListQuery::new(
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![]),
),
)
.computed_columns(
vec![
ProductAnalyticsJourneyComputedColumn::new(
ProductAnalyticsJourneyComputedColumnName::FIRST_CONVERSION_TIMESTAMPS,
)
],
)
.conversion_type(ProductAnalyticsJourneyConversionType::CONVERSION)
.entity_columns(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![])
],
)
.sort(ProductAnalyticsJourneyListSort::new().order(QuerySortOrder::DESC))
.target(
ProductAnalyticsJourneyTarget::ProductAnalyticsJourneyNodeTarget(
Box::new(
ProductAnalyticsJourneyNodeTarget::new(
ProductAnalyticsJourneyNodeTargetType::NODE,
"A".to_string(),
),
),
),
),
1756857600000,
),
ProductAnalyticsJourneyListRequestType::JOURNEY_LIST_REQUEST,
),
);
let mut configuration = datadog::Configuration::new();
configuration.set_unstable_operation_enabled("v2.query_product_analytics_journey_list", true);
let api = ProductAnalyticsAPI::with_config(configuration);
let resp = api.query_product_analytics_journey_list(body).await;
if let Ok(value) = resp {
println!("{:#?}", value);
} else {
println!("{:#?}", resp.unwrap_err());
}
}
Instructions
First install the library and its dependencies 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 runDD_SITE="us3.datadoghq.com" DD_API_KEY="<API-KEY>" DD_APP_KEY="<APP-KEY>" cargo runDD_SITE="us5.datadoghq.com" DD_API_KEY="<API-KEY>" DD_APP_KEY="<APP-KEY>" cargo runDD_SITE="datadoghq.eu" DD_API_KEY="<API-KEY>" DD_APP_KEY="<APP-KEY>" cargo runDD_SITE="ap1.datadoghq.com" DD_API_KEY="<API-KEY>" DD_APP_KEY="<APP-KEY>" cargo runDD_SITE="ap2.datadoghq.com" DD_API_KEY="<API-KEY>" DD_APP_KEY="<APP-KEY>" cargo runDD_SITE="uk1.datadoghq.com" DD_API_KEY="<API-KEY>" DD_APP_KEY="<APP-KEY>" cargo runDD_SITE="ddog-gov.com" DD_API_KEY="<API-KEY>" DD_APP_KEY="<APP-KEY>" cargo runDD_SITE="us2.ddog-gov.com" DD_API_KEY="<API-KEY>" DD_APP_KEY="<APP-KEY>" cargo run/**
* List journey entities returns "OK" response
*/
import { client, v2 } from "@datadog/datadog-api-client";
const configuration = client.createConfiguration({
authMethods: {
AuthZ: {
accessToken: process.env.DD_BEARER_TOKEN as string,
},
},
});
configuration.unstableOperations["v2.queryProductAnalyticsJourneyList"] = true;
const apiInstance = new v2.ProductAnalyticsApi(configuration);
const params: v2.ProductAnalyticsApiQueryProductAnalyticsJourneyListRequest = {
body: {
data: {
attributes: {
from: 1756425600000,
query: {
computedColumns: [
{
name: "first_conversion_timestamps",
},
],
conversionType: "conversion",
entityColumns: [],
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",
},
},
},
},
sort: {
order: "desc",
},
target: {
type: "node",
value: "A",
},
},
to: 1756857600000,
},
type: "journey_list_request",
},
},
};
apiInstance
.queryProductAnalyticsJourneyList(params)
.then((data: v2.ProductAnalyticsJourneyListResponse) => {
console.log(
"API called successfully. Returned data: " + JSON.stringify(data)
);
})
.catch((error: any) => console.error(error));
Instructions
First install the library and its dependencies and then save the example to example.ts and run following commands:
DD_SITE="datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" tsc "example.ts"DD_SITE="us3.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" tsc "example.ts"DD_SITE="us5.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" tsc "example.ts"DD_SITE="datadoghq.eu" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" tsc "example.ts"DD_SITE="ap1.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" tsc "example.ts"DD_SITE="ap2.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" tsc "example.ts"DD_SITE="uk1.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" tsc "example.ts"DD_SITE="ddog-gov.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" tsc "example.ts"DD_SITE="us2.ddog-gov.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" tsc "example.ts"