Skip to content
Get Help

Overview ​

Branch's Scheduled Log Exports API lets you schedule daily or hourly exports of log-level data from Branch.

We make these results available to you in one of three ways:

  1. The data is stored in Branch's AWS S3 bucket.
  2. The data is delivered to your own cloud storage account (AWS or GCP).
  3. The data is delivered to you via email.

You can stay on top of monitoring the data by creating a subscription to a particular feed. A subscription is a single report (which includes information such as data source, fields, and filters) that's set up to be exported over and over at a regular cadence.

A job represents one time that the report was run and data was exported. The result is one or more files with exported data. Depending on the cadence, a job results in exporting data for either one hour or one day.

Benefits ​

With the Scheduled Log Exports API, you can funnel your log-level data to a number of different places, and we make new data available to you on a daily cadence.

Use cases ​

  • Automate Branch log-level data retrieval based on a schedule (hourly or daily), selecting your own data fields and filters.
  • Set up notifications on sudden day-over-day increases or decreases in attributed installs.
  • Export your data directly to your cloud account. There's no need to manually request exports. Instead, your data goes directly to your cloud storage, where you can access it at any time.
  • Set up regular exports to agencies with the ability to hide certain data from partners to protect privacy, increasing your control over your data.
  • Set up recurring emails with custom reports to share agency-attributed installs with your agency via email. Also share ad network postback records with your ad network.

Limits ​

LimitDetails
Subscriptions35 subscriptions

If you need to generate more than 35 reports, you should start by exporting all of the data you need for a particular event in one subscription. Then, split that data into multiple reports from within your data warehouse.

Note that Branch currently has fewer than 30 events (called "eo topics") available for export.
CadenceData is exported on a daily or hourly cadence.

For data that's exported on a daily cadence, the 24 hours of data from the previous day will typically be ready within 6 hours of a new UTC day (though often sooner), but may take as long as 8 hours. For data exported on an hourly cadence, the data for the previous hour will typically be ready within 2 to 4 hours but may take as long as 6 hours.

Getting started ​

Before you begin ​

To use the Scheduled Log Exports API, you first need to:

  1. Create a Branch account.
  2. Make sure you have the appropriate permissions set on your account. See the "Access" section for more.

Cloud storage ​

If you want to store your Scheduled Log Exports API data in your own cloud storage account (AWS or GCP), you'll need to:

  1. Retrieve your external ID from Branch by using this API's /scheduled-exports/logs/subscription/externalId endpoint.
  2. Follow our cloud set up guide to properly configure your AWS or GCP account to receive data from Branch.
  3. Use this API's /scheduled-exports/logs/subscribe endpoint to create a new subscription that points the data to your cloud storage account.

Access ​

Availability varies by Branch plan. See Branch pricing.

General access ​

To access the Scheduled Log Exports API, a user must have both Aggregate Data and Export access enabled on their account.

Agency access ​

If you work with an agency that runs your advertising campaigns and want to give them access to export the subsequent data, you can give them Export and Aggregate Data access.

To provide an agency team member with access to the Scheduled Log Exports:

  1. In the left-hand navigation, under Setup & Testing, select Account Settings.

  2. On the Account Settings page, select the Agencies tab.

  3. Expand the agency in question, find the agency team member you want to give access to, hover over the button in the Actions column, and select Edit.

  4. In the Edit Agency Team Member modal:

    1. Under Access Level, check the Export box.
    2. Under Permissions, check the Aggregate Data box.
  5. Optional: Add data filters.

    1. Under Data Filters, toggle any necessary data filters on. Exported data will be filtered accordingly.
  6. Select Save.

Authentication ​

For calls to the Scheduled Log Exports API, you need your Access Token.

Legacy Branch

To retrieve your credentials in the legacy Branch experience:

  1. Navigate to the Account → Settings → User tab.
  2. If you have not yet generated an Access Token, select the Generate token button.
  3. Use the copy icon to copy your Access Token.

New Branch

To retrieve your credentials in the new Branch experience:

  1. Navigate to the Configuration → Security & Access → Credentials tab.
  2. If you have not yet generated an Access Token, select the Generate token button.
  3. Use the copy icon to copy your Access Token.

Visit our guide to learn more about managing your Branch credentials.

Usage ​

Get external ID ​

We provide a unique external ID for your Branch account.

You can use this external ID when you set up data to be exported to your own cloud service.

Your external ID is not relevant if you're accessing data via Branch's cloud or email.

Request info ​

Endpoint

http
GET /scheduled-exports/logs/subscription/externalId?{app_id|organization_id}={id}

Request headers

HeaderDescriptionRequired
access-tokenKey that encapsulates the user's permission with regard to an organization. Obtained from Branch. Needed for authentication.Required
content-typeapplication/jsonRecommended
acceptapplication/jsonRecommended

Request query parameters

Provide one of the following two options:

ParameterDescriptionRequired
app_idThe app ID with which the Access Token and subscriptions are associated.Required if organization_id is not present
organization_idThe organization ID with which the Access Token and subscriptions are associated.Required if app_id is not present

Response info ​

Response body parameters

ParameterDescription
external_idThe external ID associated with your Branch account.

For AWS, you can use this external ID in the trust relationship for the role that you create to allow Branch to access your S3 bucket.

Example request & response ​

txt
# Include either app_id or organization_id in request query

curl -H 'access-token: api_app_99999999999999999999999999999999' \
'https://api2.branch.io/scheduled-exports/logs/subscription/externalId?app_id=123456789009876543'
json
{"external_id":"111111bbbb-bbb111-1b1b1b1-1111-bbb"}

Create new subscription ​

This type of request sets up a new scheduled log export subscription. This is supported at both the app and organization levels.

The result of this request is a subscription that specifies what data will be exported and where that data will be exported to.

Duplicate subscriptions

To prevent duplicate active subscriptions from being created accidentally, Branch throws an error if you attempt to create a subscription that exactly matches an existing subscription.

This is based on the following values:

  • subscription_type
  • report_type
  • app_id or organization_id
  • fields
  • filter
  • cadence

However, simply reordering the values in fields is enough to bypass this check and create a new subscription.

Request info ​

Endpoint

http
POST /scheduled-exports/logs/subscribe

Request headers

HeaderDescriptionRequired
access-tokenKey that encapsulates the user's permission with regard to an organization. Obtained from Branch. Needed for authentication.Required
content-typeapplication/jsonRequired
acceptapplication/jsonRecommended

Request body parameters

ParameterDescriptionRequired
reportAn object describing the report to be generated.Required
report.cadenceHow frequently to generate the report, and for what time period.

Options:

- Daily
- Hourly
Required
report.response_formatFormat that the report is delivered in.

Options:

- csv
- json
- parquet
Required
report.response_format_compressionThe file compression method to use for the data.

Default: gz

Options:

- gz
- snappy
No
response.report_typeThe topic to subscribe to for log-level data, also called the "eo topic". This is the data source from which data should be exported.

See the "Available topics" section for a list of topics to choose from.
Required
report.report_fieldsThe fields related to the topic that should be exported. These fields will be represented by columns in the CSV file.

See the "Available fields" section for a list of fields to choose from.
Required
report.filterFilter used to limit which data points should be exported. These data points will be represented by rows in the CSV file.

Learn more in the "Cthulhu filter specification" section.
No
destinationAn object containing information about where a finished report should be stored and how it can be accessed.Required
destination.subscription_typeOptions:
- branch (to send the data to Branch's AWS S3 bucket)
- cloud (to send the data to your own cloud)
- email (to receive a daily email with the data) Learn more about sending data to your own cloud storage account in Branch's cloud setup guide.
Required
destination.cloudIf you set destination.subscription_type to cloud, set this parameter to the cloud provider you want to use to store Branch data.

Options:

- s3 (AWS S3)
- gcs (Google Cloud Storage)
Required if subscription_type is set to cloud
destination.resource_access_idThe ID for the resource you own, which you're using to store Branch data.

AWS: The ARN for the AWS role.

GCP: The full service account name, which looks like an email address, for example, branch-sle-service-acct@your-sle-project.iam.gserviceaccount.com.
Required if subscription_type is set to cloud
destination.bucketThe name of the bucket you own, which you're using to store Branch data.Required if subscription_type is set to cloud and you want to store Branch data in a bucket
destination.prefixThe prefix or folder you own, which you're using to store Branch data.

AWS: For the path s3://my-branch-export-bucket/my-folder/, this would be my-folder.

GCP: For the path /buckets/my-branch-bucket/objects/branch/important_reports/, this would be branch/important_reports.
Required if subscription_type is set to cloud and you want to store Branch data in a folder

Response info ​

Response body parameters

ParameterDescription
subscription_idThe persistent ID created for and assigned to this subscription.

You use this ID to check the status of a subscription, locate recent export jobs, and make modifications.
statusThe status of the newly created subscription.

A subscription in the "ACTIVE" state means the subscription was set up successfully.

The "PENDING" state means that Branch is still testing the setup of the subscription. Branch does this by creating an initial test report to make sure the export works properly.

If the subscription is in the "FAILED" state, the test export was unsuccessful.
descriptionMore information about the status of the subscription.
subscription_urlUse this URL in the future to get details about this particular subscription. See the "Get details on single subscription" section for more.

Examples ​

Example requests

The examples below demonstrate how to create a new subscription and make your data accessible in one of three ways: Branch's S3 storage, your own cloud storage, or a daily email.

txt
# Example Request: Store Data in Your Own Cloud

                    curl -X POST -H 'Content-Type: application/json' -H 'Accept: application/json' \
                    -H 'access-token: api_app_99999999999999999999999999999999' -d '{
                    "report": {
                    "cadence": "hourly",
                    "response_format": "csv",
                    "response_format_compression": "gz",
                    "report_type": "eo_install",
                    "report_fields": [
                    "id",
                    "timestamp",
                    "user_data_os",
                    "user_data_idfa",
                    "user_data_aaid",
                    "user_data_idfv"
                    ],
                    "filter": [
                    "eq",
                    "attributed",
                    "true"
                    ]
                    },
                    "destination": {
                    "subscription_type": "cloud",
                    "cloud": "s3",
                    "resource_access_id": "arn:aws:iam::xxxxxxxxxxxx:role/Branch-Export-Upload-tbd",
                    "bucket": "my-branch-export-bucket",
                    "prefix": "my-folder"
                    }
                    }' 'https://api2.branch.io/scheduled-exports/logs/subscribe?app_id=123456789009876543'
txt
# Example Request: Store Data in Branch's S3 Bucket

                    curl -X POST -H 'Content-Type: application/json' -H 'Accept: application/json' \
                    -H 'access-token: api_app_99999999999999999999999999999999' -d '{
                    "report": {
                    "cadence": "hourly",
                    "response_format": "csv",
                    "response_format_compression": "gz",
                    "report_type": "eo_install",
                    "report_fields": [
                    "id",
                    "timestamp",
                    "user_data_os",
                    "user_data_idfa",
                    "user_data_idfv",
                    "user_data_aaid"
                    ],
                    "filter": [
                    "eq",
                    "attributed",
                    "true"
                    ]
                    },
                    "destination": {
                    "subscription_type": "branch"
                    }
                    }' 'https://api2.branch.io/scheduled-exports/logs/subscribe?app_id=123456789009876543'
txt
# Example Request: Receive a Daily Email

                    curl -X POST -H 'Content-Type: application/json' -H 'Accept: application/json' \
                    -H 'access-token: api_app_99999999999999999999999999999999' -d '{
                    "report": {
                    "cadence": "hourly",
                    "response_format": "csv",
                    "response_format_compression": "gz",
                    "report_type": "eo_install",
                    "report_fields": [
                    "id",
                    "timestamp",
                    "user_data_os",
                    "user_data_idfa",
                    "user_data_idfv",
                    "user_data_aaid"
                    ],
                    "filter": [
                    "eq",
                    "attributed",
                    "true"
                    ]
                    },
                    "destination": {
                    "subscription_type": "email",
                    "recipient_emails": [ "user@example.com" ]
                    }
                    }' 'https://api2.branch.io/scheduled-exports/logs/subscribe?app_id=123456789009876543'

Example generic response

json
{
  "subscription_id": "0000aaaa-00-0a0a-0000",
  "status": "PENDING",
  "description": "Generating sample report. Subscription will finish after Report is uploaded",
  "subscription_url": "https://api2.branch.io/scheduled-exports/exports/logs/subscription/0000aaaa-00-0a0a-0000?app_id=123456789009876543"
}

Deactivate subscription ​

Request info ​

Endpoint

http
DELETE /scheduled-exports/logs/subscription/{subscription_id}?{app_id|organization_id}={id}

Request headers

HeaderDescriptionRequired
access-tokenKey that encapsulates the user's permission with regard to an organization. Obtained from Branch. Needed for authentication.Required
content-typeapplication/jsonRecommended
acceptapplication/jsonRecommended

Request query parameters

ParameterDescriptionRequired
subscription_idThe subscription_id for the subscription you want to deactivate.

You can only deactivate one subscription at a time.
Required
app_idThe app ID with which the Access Token is associated.Required if organization_id is not present
organization_idThe organization ID with which the Access Token is associated.Required if app_id is not present

Response info ​

Response body parameters

ParameterDescription
statusWhether your deactivation request was successful.
descriptionAdditional information about the status of your request.

Example request & response ​

txt
# Include either `app_id` or `organization_id` in request query

curl -X DELETE -H 'access-token: api_app_99999999999999999999999999999999' \
'https://api2.branch.io/scheduled-exports/logs/subscription/0000aaaa-00-0a0a-0000?app_id=123456789009876543'
json
{
  "status": "SUCCESS",
  "description": "Subscription deactivated successfully"
}

Get details on single subscription ​

Returns a single export subscription for a given subscription ID.

See what data is being exported and where data is exported to (Branch's cloud, your own cloud, or email).

Request info ​

Endpoint

http
GET /scheduled-exports/logs/subscription/{subscription_id}?{app_id|organization_id}={id}

Request headers

HeaderDescriptionRequired
access-tokenKey that encapsulates the user's permission with regard to an organization. Obtained from Branch. Needed for authentication.Required
content-typeapplication/jsonRecommended
acceptapplication/jsonRecommended

Request query parameters

ParameterDescriptionRequired
subscription_idThe relevant subscription ID.Required
app_idThe app ID with which the Access Token is associated.Required if organization_id is not present
organization_idThe organization ID with which the Access Token is associated.Required if app_id is not present

Response info ​

Response body parameters

ParameterDescription
subscription_idThe persistent ID created for and assigned to this subscription.
reportAn object describing the report to be generated.
report.cadenceHow frequently to generate the report, and for what time period.

Options:

- Daily
- Hourly
report.response_formatFormat that the report is delivered in.

Options:

- csv
- json
- parquet
report.response_format_compressionThe file compression method to use for the data.

Default: gz

Options:

- gz
- snappy
response.report_typeThe topic to subscribe to for log-level data, also called the "eo topic". This is the data source from which data should be exported.

See the "Available topics" section for a list of topics to choose from.
report.report_fieldsThe fields related to the topic that should be exported. These fields will be represented by columns in the CSV file.

See the "Available fields" section for a list of fields to choose from.
report.filterFilter used to limit which data points should be exported. These data points will be represented by rows in the CSV file.

Learn more in the "Cthulhu filter specification" section.
report.subscription_statusThe current status of this subscription.
destinationAn object containing information about where a finished report should be stored and how it can be accessed.
destination.subscription_typeWhere the finished report is stored and how it can be accessed.
Options:
- branch (data sent to Branch's AWS S3 bucket)
- cloud (data sent to your own cloud)
- email (data sent via a daily email)
destination.cloudIf destination.subscription_type is cloud, this parameter is populated with the cloud service you're using to store Branch data.
destination.resource_access_idIf destination.subscription_type is cloud, this parameter is populated with the ID for the resource you're using to store Branch data.
destination.bucketIf destination.subscription_type is cloud, this parameter is populated with the name of the bucket you're using to store Branch data.
destination.prefixIf destination.subscription_type is cloud, this parameter is populated with the prefix or folder you're using to store Branch data.

Example request & response ​

txt
# Include either `app_id` or `organization_id` in request query

curl -H 'access-token: api_app_99999999999999999999999999999999' \
'https://api2.branch.io/scheduled-exports/logs/subscription/0000aaaa-00-0a0a-0000?app_id=123456789009876543'
json
{
  "subscription_id": "0000aaaa-00-0a0a-0000",
  "report": {
    "cadence": "hourly",
    "filter": [
      "eq",
      "attributed",
      "true"
    ],
    "response_format": "csv",
    "response_format_compression": "gz",
    "report_type": "eo_install",
    "report_fields": [
      "id",
      "timestamp",
      "user_data_os",
      "user_data_idfa",
      "user_data_idfv",
      "user_data_aaid"
    ],
    "subscription_status": "ACTIVE"
  },
  "destination": {
    "cloud": null,
    "bucket": null,
    "prefix": null,
    "subscription_type": "branch",
    "resource_access_id": null
  }
}

Get details on all subscriptions ​

Returns all export subscriptions for a given app or organization ID.

See what data is being exported and where data is exported to (Branch's cloud, your own cloud, or email).

Request info ​

Endpoint

http
GET /scheduled-exports/logs/subscriptions?[app_id|organization_id]={id}

Request headers

HeaderDescriptionRequired
access-tokenKey that encapsulates the user's permission with regard to an organization. Obtained from Branch. Needed for authentication.Required
content-typeapplication/jsonRecommended
acceptapplication/jsonRecommended

Request query parameters

Provide one of the following two options:

ParameterDescriptionRequired
app_idThe app ID with which the Access Token and subscriptions are associated.Required if organization_id is not present
organization_idThe organization ID with which the Access Token and subscriptions are associated.Required if app_id is not present

Response info ​

Response body parameters

The API returns an array of subscriptions.

For each unique subscription, the API returns the following fields:

ParameterDescription
subscription_idThe persistent ID created for and assigned to this subscription.
reportAn object describing the report to be generated.
report.cadenceHow frequently to generate the report, and for what time period.

Options:

- Daily
- Hourly
report.response_formatFormat that the report is delivered in.

Options:

- csv
- json
- parquet
report.response_format_compressionThe file compression method to use for the data.

Default: gz

Options:

- gz
- snappy
response.report_typeThe topic to subscribe to for log-level data, also called the "eo topic". This is the data source from which data should be exported.

See the "Available topics" section for a list of topics to choose from.
report.report_fieldsThe fields related to the topic that should be exported. These fields will be represented by columns in the CSV file.

See the "Available fields" section for a list of fields to choose from.
report.filterFilter used to limit which data points should be exported. These data points will be represented by rows in the CSV file.

Learn more in the "Cthulhu filter specification" section.
report.subscription_statusThe current status of this subscription.
destinationAn object containing information about where a finished report should be stored and how it can be accessed.
destination.subscription_typeWhere the finished report is stored and how it can be accessed.

Options:

- branch (data sent to Branch's AWS S3 bucket)
- cloud (data sent to your own cloud)
- email (data sent via a daily email)
destination.cloudIf destination.subscription_type is cloud, this parameter is populated with the cloud service you're using to store Branch data.
destination.resource_access_idIf destination.subscription_type is cloud, this parameter is populated with the ID for the resource you're using to store Branch data.
destination.bucketIf destination.subscription_type is cloud, this parameter is populated with the name of the bucket you're using to store Branch data.
destination.prefixIf destination.subscription_type is cloud, this parameter is populated with the prefix or folder you're using to store Branch data.

Example request & response ​

curl
curl -H 'access-token: api_app_99999999999999999999999999999999' \
'https://api2.branch.io/scheduled-exports/logs/subscriptions?app_id=123456789009876543'
json
[
  {
    "subscription_id": "0000aaaa-00-0a0a-0000",
    "report": {
      "cadence": "hourly",
      "filter": [
        "eq",
        "attributed",
        "true"
      ],
      "response_format": "csv",
      "response_format_compression": "gz",
      "report_type": "eo_install",
      "report_fields": [
        "id",
        "timestamp",
        "user_data_os",
        "user_data_idfa",
        "user_data_idfv",
        "user_data_aaid"
      ],
      "subscription_status": "ACTIVE"
    },
    "destination": {
      "cloud": null,
      "bucket": null,
      "prefix": null,
      "subscription_type": "branch",
      "resource_access_id": null
    }
  },
  {
    "subscription_id": "222cc2-ccc-22c-2222",
    "report": {
      "cadence": "daily",
      "filter": [
        "eq",
        "attributed",
        "true"
      ],
      "response_format": "csv",
      "response_format_compression": "gz",
      "report_type": "eo_install",
      "report_fields": [
        "id",
        "timestamp",
        "user_data_os",
        "user_data_idfa",
        "user_data_idfv",
        "user_data_aaid"
      ],
      "subscription_status": "ACTIVE"
    },
    "destination": {
      "cloud": "s3",
      "bucket": "my-branch-export-bucket",
      "prefix": "my-folder",
      "subscription_type": "cloud",
      "resource_access_id": "arn:aws:iam::xxxxxxxxxxxx:role/Branch-Export-Upload-tbd"
    }
  }
]

Get details on single export job ​

Scheduled exports run at a regular cadence. Each individual run is considered a "job" and has a "job ID".

You can get details on an individual job via this endpoint, as long as you know the subscription_id and the job_id. This includes where data was exported to (Branch's cloud, your own cloud, or email).

If you do not know the job_id and are instead trying to discover jobs associated with a particular subscription, see the "Get details on many export jobs" section.

Request info ​

Endpoint

http
GET /scheduled-exports/logs/subscription/{subscription_id}/job/{job_id}

Request headers

HeaderDescriptionRequired
access-tokenKey that encapsulates the user's permission with regard to an organization. Obtained from Branch. Needed for authentication.Required
content-typeapplication/jsonRecommended
acceptapplication/jsonRecommended

Request path parameters

ParameterDescription
subscription_idThe relevant subscription ID.
job_idThe persistent identifier for this export job run.

Request query parameters

Provide one of the following two options:

ParameterDescriptionRequired
app_idThe app ID with which the Access Token and subscriptions are associated.Required if organization_id is not present
organization_idThe organization ID with which the Access Token and subscriptions are associated.Required if app_id is not present

Response info ​

Response body parameters

ParameterDescription
job_idThe persistent identifier for this export job run.
statusThe state that the job is in.

Options:
PENDING_GENERATION
PENDING_UPLOAD
RUNNING
SUCCEEDED
FAILED
start_dateThe earliest date for which exported objects will be included. Time zone is UTC.

Format: yyyy-MM-dd'T'HH:mm:ssZ
end_dateThe latest date for which exported objects will be included. Time zone is UTC.

Format: "yyyy-MM-dd'T'HH:mm:ssZ"

Note: This value includes data through the final millisecond. So if end_date is 2021-09-30T19:59:59, this export job run will include data through 2021-09-30T19:59:59.999.
export_urlIf the export job is for a subscription where destination.subscription_type is set to branch, this is an array of pre-signed S3 URLs for export files that you can download.
lines_exportedNumber of objects in the export (that is, CSV rows).

Example request & response ​

curl
curl -H 'access-token: api_app_99999999999999999999999999999999' \
'https://api2.branch.io/scheduled-exports/logs/subscription/0000aaaa-00-0a0a-0000/job/185c97bb-f928-4f0a-b295-63f2a087780e?app_id=123456789009876543'
json
{
  "job_id": "185c97bb-f928-4f0a-b295-63f2a087780e",
  "status": "SUCCEEDED",
  "start_date": "2021-09-16T01:00:00",
  "end_date": "2021-09-16T01:59:59",
  "export_url": [
    "https://branch-exports-web.s3.us-west-1.amazonaws.com/v2/y%3D2021/m%3D09/d%3D16/app_id%3D123456789009876543/job_id%3D185c97bb-f928-4f0a-b295-63f2a087780e/task_id%3D0/123456789009876543-2021-09-16-eo_install-v2-7b7b72ee4e1a68a1ab57b626d3bc3701f0f39f4b976141fc5fcadf83e5ba5605-FSQEXZ-0.csv.gz?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20210916T023737Z&X-Amz-SignedHeaders=host&X-Amz-Expires=604800&X-Amz-Credential=AKIA3HUFQARV3GLL7FKD%2F20210916%2Fus-west-1%2Fs3%2Faws4_request&X-Amz-Signature=19ad618f5c8a13bdf072925f664699c522b525187a968fb33442cb4abc915680"
  ],
  "lines_exported": 43
}

Get details on many export jobs ​

Scheduled exports run at a regular cadence. Each individual run is considered a "job" and has a "job ID".

You can get details on all recent export jobs for the subscription. This includes where data was exported to (Branch's cloud, your own cloud, or email).

Request info ​

Endpoint

http
POST /scheduled-exports/logs/subscription/{subscription_id}/jobs

Request headers

HeaderDescriptionRequired
access-tokenKey that encapsulates the user's permission with regard to an organization. Obtained from Branch. Needed for authentication.Yes
content-typeapplication/jsonRecommended
acceptapplication/jsonRecommended

Request path parameters

ParameterDescription
subscription_idThe relevant subscription ID.

Request query parameters

ParameterDescription
app_idThe app ID with which the Access Token and subscriptions are associated.
organization_idThe organization ID with which the Access Token and subscriptions are associated.

Request body parameters

ParameterDescriptionRequired
start_dateThe earliest date of export job runs to be included. Time zone is UTC.

Format: yyyy-MM-dd'T'HH:mm:ssZ
Yes
end_dateLatest date of export job runs to be included. Time zone is UTC.

Format: "yyyy-MM-dd'T'HH:mm:ssZ"
Yes

Response info ​

Response body parameters

The API returns an array of jobs.

For each unique job, the API returns the following fields:

ParameterDescription
job_idThe persistent identifier for this export job run.
statusThe state that the job is in.

Options:
PENDING_GENERATION
PENDING_UPLOAD
RUNNING
SUCCEEDED
FAILED
start_dateThe earliest date for which exported objects will be included. Time zone is UTC.

Format: yyyy-MM-dd'T'HH:mm:ssZ
end_dateThe latest date for which exported objects will be included. Time zone is UTC.

Format: "yyyy-MM-dd'T'HH:mm:ssZ"

Note: This value includes data through the final millisecond. So if end_date is 2021-09-30T19:59:59, this export job run will include data through 2021-09-30T19:59:59.999.
export_urlIf the export job is for a subscription where destination.subscription_type is set to branch, this is an array of pre-signed S3 URLs for export files that you can download.
lines_exportedNumber of objects in the export (that is, CSV rows).

Example request & response ​

curl
curl -X POST -H 'Content-Type: application/json' -H 'Accept: application/json' \
                    -H 'access-token: api_app_99999999999999999999999999999999' -d '{
                    "start_date": "2021-08-16T02:00:00",
                    "end_date": "2021-08-16T02:59:59"
                    }' 'https://api2.branch.io/scheduled-exports/logs/subscription/13dbe05c-175b-11ec-9621-0242ac130002/jobs?app_id=123456789009876543'
json
[
  {
    "job_id": "185c97bb-f928-4f0a-b295-63f2a087780e",
    "status": "SUCCEEDED",
    "start_date": "2021-09-16T01:00:00",
    "end_date": "2021-09-16T01:59:59",
    "export_url": [
      "https://branch-exports-web.s3.us-west-1.amazonaws.com/v2/y%3D2021/m%3D09/d%3D16/app_id%3D123456789009876543/job_id%3D185c97bb-f928-4f0a-b295-63f2a087780e/task_id%3D0/123456789009876543-2021-09-16-eo_install-v2-xxxxxxxx-FSQEXZ-0.csv.gz?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20210916T023737Z&X-Amz-SignedHeaders=host&X-Amz-Expires=604800&X-Amz-Credential=AKIA3HUFQARV3GLL7FKD%xxxxxxxx%2Fus-west-1%2Fs3%2Faws4_request&X-Amz-Signature=xxxxxxxxxxxxxxxxxx"
    ],
    "lines_exported": 43
  },
  {
    "job_id": "225c97bb-f348-3c0a-d545-88c2b093710f",
    "status": "SUCCEEDED",
    "start_date": "2021-08-16T02:00:00",
    "end_date": "2021-08-16T02:59:59",
    "export_url": [
      "https://branch-exports-web.s3.us-west-1.amazonaws.com/v2/y%3D2021/m%3D09/d%3D16/app_id%3D123456789009876543/job_id%3D225c97bb-f348-3c0a-d545-88c2b093710f/task_id%3D0/223456789009876543-2021-09-16-eo_install-v2-xxxxxxxx-FSQEXZ-2.csv.gz?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20210916T023737Z&X-Amz-SignedHeaders=host&X-Amz-Expires=604800&X-Amz-Credential=AKIA3HUFQARV3GLL7FKD%xxxxxxxx%2Fus-west-1%2Fs3%2Faws4_request&X-Amz-Signature=xxxxxxxxxxxxxxxxxx"
    ],
    "lines_exported": 86
  }
]

Appendix ​

Testing and best practices ​

Test export and cadence ​

  1. Set up the subscription.

    1. Ensure that the report.subscription_status field is set to ACTIVE.
    2. We recommend setting report.cadence to hourly so you can validate the export sooner.
  2. Wait for a test export run to complete and confirm the data looks as expected.

Subscription status pending ​

If you check the report.subscription_status and it's in the PENDING state, wait a few minutes and try again. You should see it update to ACTIVE.

Querying exported data ​

Once the value of report.subscription_status is ACTIVE, we recommend searching through a full day's worth of data initially (set via the start_date and end_date parameters), then narrowing down after that if you plan to export data one hour at a time.

Available topics ​

TopicHuman-readable name
eo_click_blockedBlocked Clicks
eo_commerce_event_blockedBlocked Commerce Events
eo_content_event_blockedBlocked Content Events
eo_branch_cta_view_blockedBlocked CTA Views
eo_custom_event_blockedBlocked Custom Events
eo_impression_blockedBlocked Impressions
eo_install_blockedBlocked Installs
eo_open_blockedBlocked Opens
eo_pageview_blockedBlocked Pageviews
eo_reinstall_blockedBlocked Reinstalls
eo_sms_sent_blockedBlocked SMS Sent
eo_user_lifecycle_event_blockedBlocked User Lifecycle Events
eo_web_session_start_blockedBlocked Web Session Starts
eo_clickClicks
eo_commerce_eventCommerce Events
eo_content_eventContent Events
eo_branch_cta_viewCTA Views
eo_custom_eventCustom Events
eo_impressionImpressions
eo_installInstalls
eo_openOpens
eo_pageviewPageviews
webhook2Postback Records
eo_reinstallReinstalls
skadnetwork_invalid_messagesSKAdNetwork Invalid Messages
skadnetwork_valid_messagesSKAdNetwork Valid Messages
eo_sms_sentSMS Sent
eo_user_lifecycle_eventUser Lifecycle Events
eo_web_session_startWeb Session Starts
eo_san_touchSelf-Attributing Network Touch

Export all fields ​

To export every available field, use ["all"] in place of the field list:

  • Scheduled Log Exports: "report_fields": ["all"]
  • Custom Exports: "fields": ["all"]

Before you use it:

  • Your Access Token needs all export permissions. These currently include Sensitive Data and Fraud Settings & Data. If Branch adds new export permissions, you need those too.
  • New fields appear in your export automatically as Branch adds them. Make sure your systems can handle new columns. Parquet is recommended.
  • Fields that don't apply to a report type still appear, with null values.

Available fields ​

FieldsTypeDescription
app_idLongApp ID (capitalize ID in Liveview)
app_nameStringApp Name
attributedBooleanAttributed
content_itemsArrayStructContent Items
custom_dataMapStringStringCustom Data
customer_event_aliasStringCustomer Event Alias
days_from_last_attributed_touch_to_eventIntegerDays From Last Attributed Touch To Event
deep_linkedBooleanDeep Linked
di_match_click_tokenLongDI Match Click Token
event_data_ad_typeenum { BANNER, INTERSTITIAL, REWARDED_VIDEO, NATIVE }Ad Type
event_data_affiliationStringAffiliation
event_data_couponStringCoupon
event_data_currencyStringCurrency
event_data_descriptionStringEvent Description
event_data_exchange_rateDoubleExchange Rate
event_data_revenueDoubleRevenue
event_data_revenue_in_usdDoubleRevenue In USD
event_data_search_queryStringSearch Query
event_data_shippingDoubleShipping
event_data_taxDoubleTax
event_data_transaction_idStringTransaction ID
event_data_local_currencyStringLocal Currency
event_data_local_currency_exchange_rateStringLocal Currency Exchange Rate
event_data_revenue_in_local_currencyStringRevenue in Local Currency
event_data_custom_param_1StringCustom parameter for event
event_data_custom_param_2StringCustom parameter for event
event_data_custom_param_3StringCustom parameter for event
event_timestampLongEvent Timestamp
existing_userBooleanExisting User
external_intent_uriStringExternal Intent URI
first_event_for_userBooleanFirst Event For User
hash_versionStringHash Version
hours_from_last_attributed_touch_to_eventIntegerHours From Last Attributed Touch To Event
idStringID
install_activity_attributedBooleanInstall Attributed
install_activity_data_has_clicked_adBooleanInstall Has Clicked Ad
install_activity_data_has_clicked_emailBooleanInstall Has Clicked Email
install_activity_timestampLongInstall Timestamp
install_activity_touch_data_additional_data_tilde_ad_idLongInstall Ad ID
install_activity_touch_data_additional_data_tilde_ad_set_idLongInstall Ad Set ID
install_activity_touch_data_additional_data_tilde_campaign_idLongInstall Campaign ID
install_activity_touch_data_additional_data_tilde_creative_idLongInstall Creative ID
install_activity_touch_data_dollar_3pStringInstall Partner 3p Value
install_activity_touch_data_plus_via_featuresStringInstall Features
install_activity_touch_data_plus_web_formatStringInstall Web Format
install_activity_touch_data_tilde_ad_nameStringInstall Ad Name
install_activity_touch_data_tilde_ad_set_nameStringInstall Ad Set Name
install_activity_touch_data_tilde_advertising_partner_idLongInstall Ad Partner ID
install_activity_touch_data_tilde_advertising_partner_nameStringInstall Ad Partner
install_activity_touch_data_tilde_agencyStringInstall Agency
install_activity_touch_data_tilde_agency_idLongInstall Agency ID
install_activity_touch_data_tilde_campaignStringInstall Campaign
install_activity_touch_data_tilde_channelStringInstall Channel
install_activity_touch_data_tilde_creative_nameStringInstall Creative Name
install_activity_touch_data_tilde_customer_ad_nameStringInstall Customer Ad Name
install_activity_touch_data_tilde_customer_ad_set_nameStringInstall Customer Ad Set Name
install_activity_touch_data_tilde_customer_campaignStringInstall Customer Campaign
install_activity_touch_data_tilde_customer_keywordStringInstall Customer Keyword
install_activity_touch_data_tilde_customer_placementStringInstall Customer Placement
install_activity_touch_data_tilde_customer_secondary_publisherStringInstall Customer Secondary Publisher
install_activity_touch_data_tilde_customer_sub_site_nameStringInstall Customer Sub Site Name
install_activity_touch_data_tilde_featureStringInstall Feature
install_activity_touch_data_tilde_journey_nameStringInstall Journey Name
install_activity_touch_data_tilde_keywordStringInstall Keyword
install_activity_touch_data_tilde_placementStringInstall Placement
install_activity_touch_data_tilde_secondary_publisherStringInstall Secondary Publisher
install_activity_touch_data_tilde_stageStringInstall Stage
install_activity_touch_data_tilde_tagsStringInstall Tags
install_activity_touch_data_tilde_view_nameStringInstall View Name
install_activity_touch_typeStringInstall Touch Type
last_attributed_touch_data_custom_fieldsStringLast Attributed Touch Custom Fields
last_attributed_touch_data_dollar_3pStringAd Partner (3p)
last_attributed_touch_data_dollar_marketing_titleStringMarketing Title
last_attributed_touch_data_plus_current_featureStringCurrent Feature
last_attributed_touch_data_tilde_idLongLast Attributed Touch ID
last_attributed_touch_data_plus_touch_idStringLast Attributed Touch Touch ID
last_cta_view_data_plus_touch_idStringLast CTA View Touch ID
last_attributed_touch_data_plus_via_featuresArrayStringVia Features
last_attributed_touch_data_plus_web_formatStringWeb Format
last_attributed_touch_data_tilde_ad_idStringAd ID
last_attributed_touch_data_tilde_ad_nameStringAd Name
last_attributed_touch_data_tilde_ad_set_idStringAd Set ID
last_attributed_touch_data_tilde_ad_set_nameStringAd Set Name
last_attributed_touch_data_tilde_advertising_account_nameStringAdvertising Account Name
last_attributed_touch_data_tilde_advertising_account_idStringAdvertising Account ID
last_attributed_touch_data_tilde_advertising_partner_idStringAd Partner ID
last_attributed_touch_data_tilde_advertising_partner_nameStringAd Partner
last_attributed_touch_data_tilde_agencyStringAgency
last_attributed_touch_data_tilde_agency_idStringAgency ID
last_attributed_touch_data_tilde_banner_dimensionsStringBanner Dimensions
last_attributed_touch_data_tilde_branch_ad_formatStringBranch Ad Format
last_attributed_touch_data_tilde_campaignStringCampaign
last_attributed_touch_data_tilde_campaign_idStringCampaign ID
last_attributed_touch_data_tilde_campaign_typeStringCampaign Type
last_attributed_touch_data_tilde_channelStringChannel
last_attributed_touch_data_tilde_creative_nameStringCreative Name
last_attributed_touch_data_tilde_creative_idStringCreative ID
last_attributed_touch_data_tilde_customer_ad_nameStringCustomer Ad Name
last_attributed_touch_data_tilde_customer_ad_set_nameStringCustomer Ad Set Name
last_attributed_touch_data_tilde_customer_campaignStringCustomer Campaign
last_attributed_touch_data_tilde_customer_keywordStringCustomer Keyword
last_attributed_touch_data_tilde_customer_placementStringCustomer Placement
last_attributed_touch_data_tilde_customer_secondary_publisherStringCustomer Secondary Publisher
last_attributed_touch_data_tilde_customer_sub_site_nameStringCustomer Sub Site Name
last_attributed_touch_data_tilde_external_touch_idStringExternal Touch ID
last_attributed_touch_data_tilde_featureStringFeature
last_attributed_touch_data_tilde_journey_idStringJourney ID
last_attributed_touch_data_tilde_journey_nameStringJourney Name
last_attributed_touch_data_tilde_keywordStringKeyword
last_attributed_touch_data_tilde_keyword_idStringKeyword ID
last_attributed_touch_data_tilde_optimization_modelStringOptimization Model
last_attributed_touch_data_tilde_placementStringPlacement
last_attributed_touch_data_tilde_placement_idStringPlacement ID
last_attributed_touch_data_tilde_secondary_ad_formatStringSecondary Ad Format
last_attributed_touch_data_tilde_secondary_publisherStringSecondary Publisher
last_attributed_touch_data_tilde_secondary_publisher_idStringSecondary Publisher ID
last_attributed_touch_data_tilde_stageStringStage
last_attributed_touch_data_tilde_sub_site_nameStringSub Site Name
last_attributed_touch_data_tilde_tagsArrayStringTags
last_attributed_touch_data_tilde_technology_partnerStringTechnology Partner
last_attributed_touch_data_tilde_touch_subtypeStringGoogle Video Ads "Engaged View"
last_attributed_touch_data_tilde_view_idStringView ID
last_attributed_touch_data_tilde_view_nameStringView Name
last_attributed_touch_timestampLongLast Attributed Touch Timestamp
last_attributed_touch_timestamp_isoStringLast Attributed Touch Timestamp (ISO)
last_attributed_touch_typeStringLast Attributed Touch Type
last_cta_view_data_custom_fieldsStringLast CTA View Custom Fields
last_cta_view_data_dollar_3pStringLast CTA View Ad Partner (3p)
last_attributed_touch_data_plus_referring_domainStringReferring Domain
last_cta_view_data_plus_via_featuresArrayStringLast CTA View Via Features
last_cta_view_data_plus_web_formatStringLast CTA View Web Format
last_cta_view_data_tilde_ad_idStringLast CTA View Ad ID
last_cta_view_data_tilde_ad_nameStringLast CTA View Ad Name
last_cta_view_data_tilde_ad_set_idStringLast CTA View Ad Set ID
last_cta_view_data_tilde_ad_set_nameStringLast CTA View Ad Set Name
last_cta_view_data_tilde_advertising_partner_nameStringLast CTA View Ad Partner
last_cta_view_data_tilde_agencyStringLast CTA View Agency
last_cta_view_data_tilde_banner_dimensionsStringLast CTA View Banner Dimensions
last_cta_view_data_tilde_branch_ad_formatStringLast CTA View Branch Ad Format
last_cta_view_data_tilde_campaignStringLast CTA View Campaign
last_cta_view_data_tilde_campaign_idStringLast CTA View Campaign ID
last_cta_view_data_tilde_campaign_typeStringLast CTA View Campaign Type
last_cta_view_data_tilde_channelStringLast CTA View Channel
last_cta_view_data_tilde_creative_idStringLast CTA View Creative ID
last_cta_view_data_tilde_creative_nameStringLast CTA View Creative Name
last_cta_view_data_tilde_external_touch_idLongLast CTA View External Touch ID
last_cta_view_data_tilde_featureStringLast CTA View Feature
last_cta_view_data_tilde_idLongLast CTA View ID
last_cta_view_data_tilde_keyword_idStringLast CTA View Keyword ID
last_cta_view_data_tilde_optimization_modelStringLast CTA View Optimization Model
last_cta_view_data_tilde_placementStringLast CTA View Placement
last_cta_view_data_tilde_secondary_ad_formatStringLast CTA View Secondary Ad Format
last_cta_view_data_tilde_secondary_publisherStringLast CTA View Secondary Publisher
last_cta_view_data_tilde_stageStringLast CTA View Stage
last_cta_view_data_tilde_tagsArrayStringLast CTA View Tags
last_cta_view_data_tilde_technology_partnerStringLast CTA View Technology Partner
last_cta_view_timestampLongLast CTA View Timestamp
last_cta_view_timestamp_isoStringLast CTA View Timestamp (ISO)
\+match_guaranteedbooleanFlag that determines if the app session was made with 100% accuracy. Only available in the Custom Exports API.
minutes_from_last_attributed_touch_to_eventIntegerMinutes From Last Attributed Touch To Event
nameStringName of event based on selected topic
organization_idLongOrganization ID
organization_nameStringOrganization Name
originStringOrigin
reengagement_activity_attributedBooleanReengagement Activity Attribute
reengagement_activity_data_has_clicked_adBooleanReengagement Has Clicked Ad
reengagement_activity_data_has_clicked_emailBooleanReengagement Has Clicked Email
reengagement_activity_timestampStringReengagement Timestamp
reengagement_activity_touch_data_additional_data_tilde_ad_idLongReengagement Ad ID
reengagement_activity_touch_data_additional_data_tilde_ad_set_idLongReengagement Ad Set ID
reengagement_activity_touch_data_additional_data_tilde_campaign_idLongReengagement Campaign ID
reengagement_activity_touch_data_additional_data_tilde_creative_idLongReengagement Creative ID
reengagement_activity_touch_data_dollar_3pStringReengagement Partner 3p Value
reengagement_activity_touch_data_plus_via_featuresStringReengagement Features
reengagement_activity_touch_data_plus_web_formatStringReengagement Web Format
reengagement_activity_touch_data_tilde_ad_nameStringReengagement Ad Name
reengagement_activity_touch_data_tilde_ad_set_nameStringReengagement Ad Set Name
reengagement_activity_touch_data_tilde_advertising_partner_idLongReengagement Advertising Partner ID
reengagement_activity_touch_data_tilde_advertising_partner_nameStringReengagement Advertising Partner Name
reengagement_activity_touch_data_tilde_agencyStringReengagement Agency
reengagement_activity_touch_data_tilde_agency_idLongReengagement Agency ID
reengagement_activity_touch_data_tilde_campaignStringReengagement Campaign
reengagement_activity_touch_data_tilde_channelStringReengagement Channel
reengagement_activity_touch_data_tilde_creative_nameStringReengagement Creative Name
reengagement_activity_touch_data_tilde_customer_ad_nameStringReengagement Customer Ad Name
reengagement_activity_touch_data_tilde_customer_ad_set_nameStringReengagement Customer Ad Set Name
reengagement_activity_touch_data_tilde_customer_campaignStringReengagement Customer Campaign
reengagement_activity_touch_data_tilde_customer_keywordStringReengagement Customer Keyword
reengagement_activity_touch_data_tilde_customer_placementStringReengagement Customer Placement
reengagement_activity_touch_data_tilde_customer_secondary_publisherStringReengagement Customer Secondary Publisher
reengagement_activity_touch_data_tilde_customer_sub_site_nameStringReengagement Customer Sub Site
reengagement_activity_touch_data_tilde_featureStringReengagement Feature
reengagement_activity_touch_data_tilde_journey_nameStringReengagement Journey Name
reengagement_activity_touch_data_tilde_keywordStringReengagement Keyword
reengagement_activity_touch_data_tilde_placementStringReengagement Placement
reengagement_activity_touch_data_tilde_secondary_publisherStringReengagement Secondary Publisher
reengagement_activity_touch_data_tilde_stageStringReengagement Stage
reengagement_activity_touch_data_tilde_tagsStringReengagement Tags
reengagement_activity_touch_data_tilde_view_nameStringReengagement View Name
reengagement_activity_touch_typeStringReengagement Touch Type
referrer_click_timestampLongReferrer Click Timestamp
seconds_from_install_to_eventIntegerSeconds From Install To Event
seconds_from_last_attributed_touch_to_eventIntegerSeconds From Last Attributed Touch To Event
seconds_from_last_attributed_touch_to_store_install_beginIntegerSeconds From Touch To Store Install Begin
site_event_items_countIntegerContent Items Count
store_install_begin_timestampLongStore Install Begin Timestamp
timestampLongTimestamp
timestamp_isoStringTimestamp (ISO)
user_data_aaidStringAAID
user_data_android_idStringAndroid ID
user_data_app_versionStringApp Version
user_data_brandStringBrand
user_data_browserStringBrowser
user_data_buildStringBuild
user_data_cpu_typeStringCPU Type
user_data_cross_platform_idStringCross Platform ID
user_data_developer_identityStringDeveloper Identity
user_data_device_typeStringDevice Type
user_data_environmentStringEnvironment
user_data_geo_city_codeIntegerCity Code
user_data_geo_city_enStringCity
user_data_geo_country_codeStringCountry Code
user_data_geo_country_enStringCountry
user_data_geo_dma_codeIntegerDMA Code
user_data_geo_latFloatLatitude
user_data_geo_lonFloatLongitude
user_data_geo_postal_codeStringPostal Code
user_data_geo_region_enStringRegion
user_data_geo_region_codeStringRegion Code
user_data_http_referrerStringHTTP Referrer
user_data_idfaStringIDFA
user_data_idfvStringIDFV
user_data_internet_connection_typeStringInternet Connection Type
user_data_ipStringIP Address
user_data_is_jailbrokenBooleanIs Jailbroken
user_data_kindle_idStringKindle ID
user_data_languageStringLanguage
user_data_limit_ad_trackingBooleanLimit Ad Tracking
user_data_modelStringModel
user_data_oaidStringHuawei OAID
user_data_osStringOS
user_data_os_versionStringOS Version
user_data_os_version_androidStringOS Version (Android)
user_data_past_cross_platform_idsArrayStringPast Cross Platform IDs
user_data_platformArrayStringPlatform
user_data_prob_cross_platform_idsArrayStructProbabilistic Cross Platform IDs
user_data_roku_ridaStringRoku Device ID
user_data_screen_heightIntegerScreen Height
user_data_screen_widthIntegerScreen Width
user_data_sdk_versionStringSDK Version
user_data_user_agentStringUser Agent
user_data_windows_aidStringWindows AID
user_data_device_localeStringDevice Locale
user_data_carrier_nameStringCarrier Name
user_data_opted_in_statusStringWhether the user opted in to ATT or not
user_data_app_storeStringThe app store the user downloaded from

Cthulhu filter specification ​

Cthulhu is a prefix notation syntax written in JSON for specifying filters on records (usually column-based records).

Purpose
Easily parses into an abstract syntax tree.

Glossary
any - any valid JSON basic value (number, string)
... - previous item in a list can repeat as many times as necessary

NameSpecExampleSQL equivalent
eq["eq",<>
<>
["eq","x", 1]x= 1
gt["gt",<>
<>
["gt","x", 1]x> 1
gte["gte",<>
<>
["gte","x", 1]x >= 1
lt["lt",<>
<>
["lt","x", 1]x< 1
lte["lte",<>
<>
["lte","x", 1]x <= 1
like["like",<>
<>
["like", "x", ". *foobar"]x LIKE "%
foobar"
between["between",<>
<>
<>
["between", "x",1, 2]x
BETWEEN
1 AND 2x >= 1 AND x <= 2
In["in", ,="">,="">["in","x", 1,2, 3]x IN (1,2,3)
and["and", , ...]["and",["gt","x", 1],["lt","x", 2]]x> 1 AND x < 2
or["or", , ...]["or",["eq","x", 1],["eq",
"x", 2]]
x = 1 OR x= 2
not["not",]["not",["eq","x", 1]]x != 1
array_contains["array_contains", , ]["array_contains","last_attributed_touch_data_tilde_tags","Share"]array_contains(array(1, 2, 3), 2)

Additional examples

FilterMeaning
["eq","last_attributed_touch_data_dollar_3p","a_tiktok_ads"]Where last_attributed_touch_data_dollar_3p equals a_tiktok_ads.
["eq","name","PURCHASE"]Where name equals PURCHASE.
["or",["eq","name","store_page"],["eq","name","store_category_page"],["eq","name","dynamic_home_page"]]Where name equals store_page, store_category_pay, or dynamic_home_page.
["and",["eq","last_attributed_touch_data_dollar_3p","a_google_adwords"],["not",["eq","last_attributed_touch_data_tilde_external_touch_id",""]]]Where last_attributed_touch_data_dollar_3p equals a_google_adwords, and last_attributed_touch_data_tilde_external_touch_id is not empty.