The /reports/revenue resource provides access to revenue for all apps broken down by source (app sales, ads, iaps, returns, and educational).
Scope: All of the resources in this route require read access in the private scope (private:read).
Getting revenue totals
Request
GET /reports/revenue?start_date={start_date}&end_date={end_date}&products={products}&countries={countries}
Arguments
| Argument | Type | Description | 
|---|---|---|
| start_date | Date | (yyyy-MM-dd) Date, inclusive, to start reporting from. If you specify a granularity other than daily this will be rounded down to the nearest period. default: a long, long time ago. | 
| end_date | Date | (yyyy-MM-dd) Date, inclusive, to stop reporting. If you specify a granularity other than daily this will be rounded up to the nearest period. default: distant future. | 
| group_by | List | One or more pivots separated by a comma (,). Available pivots: product, country, date, and store. | 
| products | List | (productId | productId1, productId2, …) specific products to include in the response, default: all active products in account | 
| countries | List | (isoCode | isoCode1;isoCode2;isoCodeN) Countries to limit the report to (can be taken from /data/countries, default: include all countries) | 
| format | String> | Output format: JSON or CSV. Defaults to JSON.
 Note: To prevent excessive repetition, when format is set to csv sub-objects (like the product in /revenue/products/…) will not be fully serialized but only their reference will be.  | 
Response
| Field | Description | 
|---|---|
| sales | The amount of revenue generated from app downloads, after the store’s fee. | 
| iaps | The amount of revenue generated from in-app purchases, after the store’s fee. | 
| subscriptions | The amount of revenue generated from recurring in-app purchases, after the store’s fee. | 
| ads | The amount of revenue generated from ad publishing, after the store’s fee. | 
| edu | The amount of revenue generated from purchases through the Volume Purchase for Education program, after the store’s fee. | 
| business | The amount of revenue generated from purchases through the Volume Purchase for Business program, after the store’s fee. | 
| returns | The amount of money returned to users, after the store’s fee. | 
| total | The total revenue for the period, after the store’s fee, where total = sales + iaps + ads + edu – returns. | 
| gross_sales | The amount of revenue generated from app downloads, before the store’s fee. | 
| gross_iaps | The amount of revenue generated from in-app purchases, before the store’s fee. | 
| gross_subscriptions | The amount of revenue generated from recurring in-app purchases, before the store’s fee. | 
| gross_edu | The amount of revenue generated from purchases through the Volume Purchase for Education program, before the store’s fee. | 
| gross_business | The amount of revenue generated from purchases through the Volume Purchase for Business program, before the store’s fee. | 
| gross_returns | The amount of money returned to users, not including the store’s fee. | 
| gross_total | The total revenue for the period, before the store’s fee, where total = sales + iaps + ads + edu – returns. | 
Example Response
// /reports/revenue?start_date=-30
{
  "returns": "170.71",
  "edu": "5481.19",
  "ads": "25980.75",
  "sales": "12506.15",
  "iap": "6711.91",
  "subscriptions": "11661.84",
  "total": "50509.29",
  "gross_sales": "798.11",
  "gross_iap": "2947.29",
  "gross_subscriptions": "12020.66",
  "gross_edu": "0.00",
  "gross_returns": "25.10",
  "gross_total": "4262.28"
}
Getting revenue details
Request
GET /reports/revenue/?group_by={group_by}&start_date={start_date}&end_date={end_date}&products={products}&countries={countries}&format={format}
Arguments
| Argument | Type | Description | 
|---|---|---|
| start_date | Date | (yyyy-MM-dd) Date, inclusive, to start reporting from. If you specify a granularity other than daily this will be rounded down to the nearest period. default: a long, long time ago. | 
| end_date | Date | (yyyy-MM-dd) Date, inclusive, to stop reporting. If you specify a granularity other than daily this will be rounded up to the nearest period. default: distant future. | 
| group_by | List | One or more pivots separated by a comma (,). Available pivots: product, country, date, and store. | 
| products | List | (productId | productId1, productId2, …) specific products to include in the response, default: all active products in account | 
| countries | List | (isoCode | isoCode1;isoCode2;isoCodeN) Countries to limit the report to (can be taken from /data/countries, default: include all countries) | 
| format | String> | Output format: JSON or CSV. Defaults to JSON.
 Note: To prevent excessive repetition, when format is set to csv sub-objects (like the product in /revenue/products/…) will not be fully serialized but only their reference will be.  | 
Response
Just like other routes in the /reports family, the response can be grouped by a variety of values either one at a time or combined to produce a nested response. While the breakdown may change, the leaves of the response follow the same format as the totals object from the previous example.
Example Response grouped by day
// GET /reports/revenue/?group_by=dates&start_date=-30
{
  "2017-06-12": {
    "returns": "19.20",
    "edu": "0.00",
    "ads": "1023.01",
    "sales": "511.10",
    "iap": "2047.11",
    "subscriptions": "11661.84",
    "total": "3562.02",
    "gross_sales": "798.11",
    "gross_iap": "2947.29",
    "gross_subscriptions": "12020.66",
    "gross_edu": "0.00",
    "gross_returns": "25.10",
    "gross_total": "4262.28"
    "date": "2015-11-22"
  },
  ...
}
Example Response grouped by country
// GET /reports/revenue/?group_by=country&start_date=-30
{
  "US": {
    "returns": "19.20",
    "edu": "0.00",
    "ads": "1023.01",
    "sales": "511.10",
    "iap": "2047.11",
    "subscriptions": "11661.84",
    "total": "3562.02",
    "gross_sales": "798.11",
    "gross_iap": "2947.29",
    "gross_subscriptions": "12020.66",
    "gross_edu": "0.00",
    "gross_returns": "25.10",
    "gross_total": "4262.28"
    "date": "2017-06-12"
  },
  ...
}
Example Response grouped by products and country
// GET /reports/revenue/?group_by=product,date&start_date=-30
{
  "2017-06-12": {
    "5561990": {
      "returns": "19.20",
      "edu": "0.00",
      "ads": "1023.01",
      "sales": "511.10",
      "iap": "2047.11",
      "subscriptions": "11661.84",
      "total": "3562.02",
      "gross_sales": "798.11",
      "gross_iap": "2947.29",
      "gross_subscriptions": "12020.66",
      "gross_edu": "0.00",
      "gross_returns": "25.10",
      "gross_total": "4262.28"
      "date": "2017-06-12",
      "product_id": 5561990
    },
    ...
  },
  ...
}