We run an analytics query every day; this worked fine for the past 6 years or so. Two days ago this query has stopped working. It always returns a non-descript 400 Bad Request.
Here's the exact query:
curl \
-H 'Accept: application/a-gzip' \
-H 'Authorization: Bearer <TOKEN>' \
'https://api.appstoreconnect.apple.com/v1/salesReports?filter[frequency]=DAILY&filter[reportType]=SALES&filter[reportSubType]=SUMMARY&filter[version]=1_0&filter[vendorNumber]=<VENDOR>'
And the response:
<!doctype html><html lang="en"><head><title>HTTP Status 400 – Bad Request</title><style type="text/css">body {font-family:Tahoma,Arial,sans-serif;} h1, h2, h3, b {color:white;background-color:#525D76;} h1 {font-size:22px;} h2 {font-size:16px;} h3 {font-size:14px;} p {font-size:12px;} a {color:black;} .line {height:1px;background-color:#525D76;border:none;}</style></head><body><h1>HTTP Status 400 – Bad Request</h1></body></html>
I have confirmed that the <TOKEN> is correct (with an incorrect token I get a specific error message). Same with missing or incorrect filter parameters: the API returns an exact error message. I have also confirmed that our vendor number is correct (from AppstoreConnect › Payments and Financial Reports, top left corner), though specifying an invalid vendor number yields the same non-descript 400 Bad Request.
With seemingly valid filter parameters, (no matter the report type or frequency or specifying a date) I always get the generic 400 Bad Request.
Has something changed in the API?
Topic:
App Store Distribution & Marketing
SubTopic:
App Store Connect API