I'm experiencing an issue with the App Store Connect Analytics Reports API where a ONE_TIME_SNAPSHOT report request consistently returns zero report instances (for both Standard and Detailed reports) even though the request itself appears to be valid and active.
I want to emphasize: this is not a privacy threshold issue. The problem affects Standard reports, which should not be subject to the same thresholding restrictions as Detailed reports.
Environment:
- API: App Store Connect API
- Endpoint chain: /v1/analyticsReportRequests → /v1/analyticsReportRequests/{id}/reports → /v1/analyticsReports/{id}/instances
- Authentication: JWT with Admin role, App Manager scope
- Reproducibility: 100% — tested across multiple report categories, both Standard and Detailed
What I Did:
- Created a ONE_TIME_SNAPSHOT report request via POST /v1/analyticsReportRequests. The request was accepted and returned successfully:
{ "data": { "type": "analyticsReportRequests", "id": "4431f553-1091-481a-8312-a2de920df806", "attributes": { "accessType": "ONE_TIME_SNAPSHOT", "stoppedDueToInactivity": false } } }
- I then fetched the available reports under this request via GET /v1/analyticsReportRequests/4431f553-1091-481a-8312-a2de920df806/reports, which returned multiple report objects. For example:
{ "data": [ { "type": "analyticsReports", "id": "r15-4431f553-1091-481a-8312-a2de920df806", "attributes": { "name": "App Store Discovery and Engagement Detailed", "category": "APP_STORE_ENGAGEMENT" } } ] }
-
When I try to fetch the actual report instances via GET /v1/analyticsReports/r15-4431f553-1091-481a-8312-a2de920df806/instances, I consistently get an empty response
-
I also tried the Standard version of the same report — "App Store Discovery and Engagement Standard" — and the result is identical: zero instances returned. This rules out Apple's privacy thresholds as the cause, since Standard reports are not subject to the same minimum-user thresholding that Detailed reports are.
What I Expected: At least one report instance with a processingDate and a downloadable URL, since the report request is active (stoppedDueToInactivity is false) and was created as a ONE_TIME_SNAPSHOT.
Troubleshooting I've Already Done:
- Waited 24–48 hours after creating the report request before polling for instances, as the documentation suggests data may not be immediately available.
- Verified the app has active downloads and engagement data (the app is live on the App Store with steady traffic).
- Tried multiple report categories under the same request (not just APP_STORE_ENGAGEMENT) — all return 0 instances.
- Tested both Standard and Detailed report variants — both return empty instances, confirming this is not a privacy threshold issue.
- Created entirely new ONE_TIME_SNAPSHOT requests on different days — same result.
- Confirmed the JWT token has the correct role and permissions.
- Verified via GET /v1/analyticsReportRequests that the request status shows stoppedDueToInactivity: false, ruling out an expired or inactive request.
- Tested with both filtered and unfiltered instance queries (with and without filter[processingDate] and filter[granularity] parameters).
Questions:
- Is there a known delay or prerequisite before ONE_TIME_SNAPSHOT instances become available beyond the ~24 hours mentioned in the docs?
- Could this be a backend issue where snapshot generation is silently failing without surfacing an error?
- Are there minimum data thresholds an app must meet before Standard report instances are generated?
I've seen several other developers reporting identical symptoms in these forums, across both Standard and Detailed reports, and across both ONE_TIME_SNAPSHOT and ONGOING request types — with no resolution so far. Any insight from Apple engineers would be greatly appreciated.
Happy to provide additional request/response logs if needed.
Thanks in advance.