Pricing principles

AppTweak has designed the API pricing around 3 core principles:

  • All data are not created equal: some data points are easier to fetch, store, and compute than others. As a consequence, the pricing will change depending on the kind of data requested.
  • App stores evolve on a day-to-day basis— but not significantly. As a consequence, requesting the evolution of the same value(s) over a specific date range should not cost a multiple of the first data point.
  • AppTweak won't always be able to return values in the past. As a consequence, we take great care to not charge for "unknown" data points.

The algorithm used to charge your account works as follows:

  1. When receiving a request, we compute the maximum cost incurred by the request based on the requested data. This cost is based on the parameters of the request, assuming that every single requested data point is available in our database.
  2. If your account has enough credits, we gather the requested data from our databases.
  3. We compute the actual cost of the request by inspecting the response we are giving back and removing the cost for any missing data.
  4. Your account will only be charged for that final cost.

Price per request

As you can see on the left-side menu, our API endpoints are split between current and historical.

Current endpoints:
Current endpoints allow you to query data points and get the last known value available in our database.
The price of these requests is determined as:

price = 1
FOR EACH app requested (if applicable)
  FOR EACH keyword requested (if applicable)
    FOR EACH requested data point
        IF data point available
        price = price + base data point price
      END
    END
  END
END

This means that you effectively pay the data point price for each requested element, but only if it's available.

Historical endpoints:
Historical endpoints allow you to query data points over a date range and get the daily values over that date range.
The price of these requests is determined as:

price = 1
FOR EACH app requested (if applicable)
  FOR EACH keyword requested (if applicable)
    FOR EACH requested data point
      FOR EACH date IN requested date range
        IF data point available on date
          IF first available data point on date range
            price = price + base data point price
          ELSE
            price = price + base data point price / 10
          END
        END
      END
    END
  END
END

This means that you pay the full price for each element for the first available data point in the date range, but each additional day only costs 10% of the base price.

Price per data point

CategoryDatapoint nameEndpoints servedcredit base pricecredit/extra day
App Metadataapplies to all attributesApp Metadata - Current10-
App MetricsdownloadsApp Metrics - Current/History50050
revenuesApp Metrics - Current/History50050
app_powerApp Metrics - Current/History101
ratingsApp Metrics - Current/History101
App Category Ranking-App Category Ranking - Current/History101
App Keyword RankingrankApp Keyword Ranking - Current/History303
installsApps - Keywords Metrics Current/History505
App ReviewsreviewApp Reviews Displayed1-
reviewApp Reviews Search1-
reviewApp Reviews Stats101
Keyword MetricsvolumeKeyword Metrics - Current/History505
difficultyKeyword Metrics - Current10-
is_brandedKeyword Metrics - Current10-
resultsKeyword Metrics - Current/History101
all_installsKeyword Metrics - Current50-
Keyword Search-Keyword Search - Current/History505
Keyword SuggestionskeywordKeyword Suggestions - App1-
keywordKeyword Suggestions - Category10-
keywordKeyword Suggestions - Trending10-
keywordKeyword Suggestions - Volume Change10-
Top Charts-Top Charts Current/History101

Example

Example: a request returns download estimates for 45 days for 1 app. The number of necessary credits is 1 (cost of request) + 500 (datapoint base price) + 44 (days) * 50 credits (per extra day) = 2701 credits