EDD REST API - Stats

The EDD REST API can return a great deal of statistical information about your store using the /stats/ endpoint. The stats query is used for retrieving earnings/sales stats from your store. It can be used to retrieve total earnings for the current month, last year, a specific date rage, etc, as well as the same options for sales. It can also be used for retrieving earnings / sales stats for any or all products.

The stats endpoint is:

http://example.com/edd-api/stats/?key=c281cf0a95be875d9eeb284fb004c938&token=5f9432f3ffa5945755ebc66179810d70&type=<QUERY TYPE>

Note that the  stats query requires a type parameter to be passed. There are two type options:

  • sales - For retrieving sale stats.
  • earnings - For retrieving earning stats.

Both  sales and earnings query types include additional parameters for date and product options:

  • date - The date to retrieve earnings or sales for. This has three accepted values:
    • today - Will retrieve stats for the current day.
    • yesterday - Will retrieve stats for the previous day.
    • range - Will retrieve stats for a date range.
      • startdate - Format: YYYYMMDD. Example: 20120224 = 2012/02/24
      • enddate - Format: YYYYMMDD. Example: 20120531 = 2012/02/24
  • product - used to retrieve sale or earnings stats for a specific product, or all products. This option has two accepted values:
    • # - The product ID to retrieve stats for.
    • all - Retrieve stats for all products. This option does not support paging.

Note: the product and date options cannot be combined. You may only use one or the other.

A basic earnings stats query looks like this:

http://example.com/edd-api/stats/?key=c281cf0a95be875d9eeb284fb004c938&token=5f9432f3ffa5945755ebc66179810d70&type=earnings

And the response is:

{
    "earnings": {
        "current_month": 20,
        "last_month": 311.96,
        "totals": 1302.2764
    }
}

A basic sales stats query looks like this:

http://yoursite.com/edd-api/stats/?key=c281cf0a95be875d9eeb284fb004c938&token=5f9432f3ffa5945755ebc66179810d70&type=sales

And the response is:

{
    "sales": {
        "current_month": 1,
        "last_month": 18,
        "totals": 71
    }
}

If passing a date of  today or yesterday, the query looks like this:

http://yoursite.com/edd-api/stats/?key=c281cf0a95be875d9eeb284fb004c938&token=5f9432f3ffa5945755ebc66179810d70&type=sales&date=today

And the response:

{
    "sales": {
        "today": 1
    }
}

If passing a date range, the query will be:

http://yoursite.com/edd-api/stats/?key=c281cf0a95be875d9eeb284fb004c938&token=5f9432f3ffa5945755ebc66179810d70&type=sales&date=range&startdate=20130201&enddate=20130210

And the response:

{
    "totals": 12,
    "sales": {
        "20130201": 0,
        "20130202": 0,
        "20130203": 0,
        "20130204": 0,
        "20130205": 0,
        "20130206": 1,
        "20130207": 0,
        "20130208": 0,
        "20130209": 11,
        "20130210": 0
    }
}

Each item in the  sales object represents the day and the value is the amount.

If passing the  product parameter, like so

http://yoursite.com/edd-api/stats/?key=c281cf0a95be875d9eeb284fb004c938&token=5f9432f3ffa5945755ebc66179810d70&type=sales&product=all

the response will be:

{
    "sales": [
        {
            "test-2": "6"
        },
        {
            "simple-notices-pro": "48"
        },
        {
            "love-it-pro": "13"
        },
        {
            "test-product-2-2": "0"
        },
        {
            "test-product-1-2": "0"
        }
    ]
}

Or for an individual product:

http://yoursite.com/edd-api/stats/?key=c281cf0a95be875d9eeb284fb004c938&token=5f9432f3ffa5945755ebc66179810d70&type=sales&product=16

Response:

{
    "sales": [
        {
            "simple-notices-pro": "48"
        }
    ]
}