Retrieve reports data for project

Fetch a report based on various parameters such as project, functions, quizzes, paywalls, and time ranges.
This endpoint supports a variety of functions and filters for detailed analytical reporting.
Available functions:

  • totalSubscriptionsAndRevenue: Returns total subscriptions, total revenue, charged revenue, LTV, and average subscription amount.
  • subscriptionsByDay: Provides subscriptions and revenue trends over time.
  • subscriptionsByPriceId: Groups subscriptions by price ID and provides revenue and LTV details.
  • subscriptionsByCountry: Groups subscriptions by country and shows total revenue.
  • subscriptionsByPlatform: Groups subscriptions by user platform (iOS, Android, Windows, Mac, Linux, Unknown) taken from user_visits.user_platform. Counts active, trialing, past_due and canceled subscriptions that have a paid invoice or a refund.
  • subscriptionsByLocation: Groups subscriptions by rounded user_visits.user_latitude/user_longitude (top 3000 points) with count and revenue, for map display.
  • stepAnswers: Answers given on one quiz funnel step (step_event_name, e.g. Step 03 goals) by the users who reached it: per answer key (screen block), the number of users per answer. A multi-choice answer is split so every option is counted once per user; free input is limited to the top 10 values. Answers come from user properties of the quizzes in which the step was reached.
  • visitsByLocation: Groups all non-bot user visits matching the filters by rounded user_visits.user_latitude/user_longitude (top 3000 points) with visit and user counts, for map display.
  • purchasesByWeekdayHour: Counts purchases (active/trialing subscriptions with real payment) and revenue by day of week (1 = Monday) and hour of creation in UTC, for heatmap display Each row also carries visit_count (visits by visit time) and visit_purchase_count (purchases attributed to the visit time) for the conversion mode.
  • subscriptionsByStatus: Breaks down subscriptions by status (e.g., active, incomplete, etc.).
  • dailyCompletionRate: Tracks completion and conversion rates by day.
  • quizFunnel: Provides detailed funnel step conversion rates for quizzes. Accepts answers_user_property / answers_user_property_value to count only the users who gave that answer (also for throughFunnel). Supports the optional group_by=user_country_code parameter to split the funnel by visitor country.
  • paywallConversionByDays: Tracks paywall conversion rates by day.
  • paywallFunnel: Shows the paywall funnel conversion breakdown.
  • subscribeToInstallRate: Tracks the rate of rhe percent of users who purchased subscription and installed the app after (meaning - requested subscription status using API).
  • utmReport: Funnel metrics grouped by UTM, country, or platform.
    Default grouping is campaign UTM (source_campaign_medium and related orders).
    Pass utm_grouping=country for a visitor-level country breakdown (user_country_code)
    or utm_grouping=user_platform for a visitor-level platform breakdown (user_platform).
    Both visitor groupings honor quizzes[] and the date range; rows are sorted by users_count descending.
    Visitor metrics (users_count, quizes_started, and earlier funnel steps) use quiz engagement.
    Subscription/revenue columns still attribute via subscription.quiz_id.
  • metaAdsSpendByDay: Meta (Facebook) Ads spend aggregated by day from the
    ads_reports ClickHouse table (populated by the Meta/Facebook sync pipeline only).
    Supported filters: project, from, to, utm_source[], utm_medium[],
    utm_campaign[], utm_content[], utm_term[].
    Ignored filters: quizzes[], paywalls[], quizzesVersion[], paywallVersion[],
    payment_system, user_country_code, user_platform, experiment_id,
    experiment_variant, user_property, user_property_value, utm_grouping.
    Returns an array of daily rows with date, spend (USD when spend_usd is
    available), clicks, impressions, and purchases.
Recent Requests
Log in to see full request history
TimeStatusUser Agent
Retrieving recent requests…
LoadingLoading…
Query Params
integer
required

The project ID for which the graph is being retrieved.

functions[]
array of strings
required

A list of functions to be included in the graph. Example: totalSubscriptionsAndRevenue.

functions[]*
quizzes[]
array of strings

Optional list of quiz IDs for filtering.

quizzes[]
paywalls[]
array of strings

Optional list of paywall IDs for filtering.

paywalls[]
quizzesVersion[]
array of strings

Optional list of quiz versions for filtering.

quizzesVersion[]
date
required

The start date for the graph data. Example: 2024-11-18.

date
required

The end date for the graph data. Example: 2024-11-25.

utm_source[]
array of strings

Optional UTM source for filtering.

utm_source[]
utm_medium[]
array of strings

Optional UTM medium for filtering.

utm_medium[]
utm_campaign[]
array of strings

Optional UTM campaign for filtering.

utm_campaign[]
utm_content[]
array of strings

Optional UTM content for filtering.

utm_content[]
utm_term[]
array of strings

Optional UTM term for filtering.

utm_term[]
string
enum
Defaults to source_campaign_medium

Grouping dimension for utmReport (ignored by other functions).
UTM orders (source_campaign_medium, source_medium_campaign, source_campaign_content,
source_campaign_content_term) split rows by campaign tags.
campaign, content and campaign_content return a flat list of campaigns / ads.
quiz, quiz_source, quiz_source_campaign_content, quiz_country and quiz_platform group by quiz
first (each row also has quiz_id and quiz_name); ad spend columns are not available for them.
country returns one row per user_country_code (visitor geo).
user_platform returns one row per user_platform (ios / android / web, etc.).
Combine with quizzes[], from, and to for a per-quiz visitor breakdown.

Multi-level groupings are drilled down one level at a time: the first request returns the first level,
pass the values of the levels above (utm_source[], utm_campaign[], utm_medium[], utm_content[],
drill_quiz_id[]) to get the next level.

drill_quiz_id[]
array of integers

utmReport drill-down for the quiz groupings: the quiz whose next level (source / country / platform)
is requested. Unlike quizzes[] it also tells the API to go one level deeper.

drill_quiz_id[]
filter_utm_source[]
array of strings

utmReport only. Limits the whole report to these UTM sources. Unlike utm_source[], which is the
drill-down value of the level above (and decides which level is returned), the filter_utm_* parameters
never change the grouping level. The same applies to filter_utm_medium[], filter_utm_campaign[],
filter_utm_content[] and filter_utm_term[].

filter_utm_source[]
filter_utm_medium[]
array of strings

utmReport only. Limits the report to these UTM mediums (see filter_utm_source[]).

filter_utm_medium[]
filter_utm_campaign[]
array of strings

utmReport only. Limits the report to these UTM campaigns (see filter_utm_source[]).

filter_utm_campaign[]
filter_utm_content[]
array of strings

utmReport only. Limits the report to these UTM contents (see filter_utm_source[]).

filter_utm_content[]
filter_utm_term[]
array of strings

utmReport only. Limits the report to these UTM terms (see filter_utm_source[]).

filter_utm_term[]
drill_user_country_code[]
array of strings

utmReport drill-down below a country row (e.g. utm_grouping=country with split_by_day=1, or
quiz_country): the country whose next level is requested. Also applies as a country filter.

drill_user_country_code[]
drill_user_platform[]
array of strings

utmReport drill-down below a platform row (see drill_user_country_code[]).

drill_user_platform[]
boolean
Defaults to false

utmReport only. Adds the visit day as the deepest level of any grouping: rows of the deepest level
are split into one row per day (visit_day, YYYY-MM-DD in the project time zone, ascending).
Purchases and revenue are attributed to the day of the visit, not the day of the payment;
ad columns are matched by ad day where available.

string

stepAnswers only: funnel step event name as returned in the quizFunnel labels, e.g. Step 03 goals.

string

quizFunnel, throughFunnel, stepAnswers: answer key (user property name, the quiz screen block name or screen id).
Together with answers_user_property_value narrows the funnel to the users who gave that answer.

string

The answer; for a multi-choice screen one of the selected options.

string
enum

Optional grouping, applies to functions[]=quizFunnel. When set to user_country_code, the funnel results are grouped by visitor country. The response for that function changes to { "group_by": "user_country_code", "groups": { "<COUNTRY>": { "labels": [...], "datasets": [...] } } }, where each country keeps the same chart shape as the ungrouped funnel (visitors with no country are bucketed under unknown). Without this parameter the funnel returns the original { labels, datasets } shape.

Allowed:
Responses

Language
Credentials
Header
LoadingLoading…
Response
Click Try It! to start a request and see the response here! Or choose an example:
application/json