About asc-reports
asc-reports is a CLI feature for downloading App Store Connect sales and finance reports, as well as requesting and retrieving analytics reports. It parses Apple's compressed TSV responses into JSON or table output.
Key features
- 01Download sales and finance reports
- 02Request and manage analytics reports
- 03Parse compressed TSV into JSON
- 04Display results as tables
- 05Resolve vendor number from account
Use cases
- 01Reviewing app sales and subscription activity
- 02Retrieving regional financial summaries
- 03Tracking app engagement and performance analytics
Install
Copy the command and run it in a terminal.
npx skills add https:/ / github.com/ tddworks/ asc-cli-skills --skill asc-reportsAfter installing, type/asc-reportsin Claude Code to confirm it loaded.
Bundled filesreferences/commands.md
Details
From the project READMEasc Sales & Finance Reports
Download sales and trends data and financial reports from App Store Connect. See commands.md for detailed flag reference and valid enum values.
Commands
Download a sales report
asc sales-reports download \
[--vendor-number <VENDOR_NUMBER>] \
--report-type SALES \
--sub-type SUMMARY \
--frequency DAILY \
[--report-date 2024-01-15] \
[--output json|table] \
[--pretty]
--vendor-number is auto-resolved from the active account if saved via asc auth login --vendor-number or asc auth update --vendor-number. Explicit --vendor-number overrides the stored value. --report-date is optional only for DAILY frequency — omit to get the latest available daily report. For WEEKLY, MONTHLY, and YEARLY frequencies, --report-date is mandatory (Apple returns PARAMETER_ERROR.INVALID without it).
Download a finance report
asc finance-reports download \
[--vendor-number <VENDOR_NUMBER>] \
--report-type FINANCIAL \
--region-code US \
--report-date 2024-01 \
[--output json|table] \
[--pretty]
--vendor-number is auto-resolved from the active account if saved. All other flags are required for finance reports (including --report-date).
Report Types Quick Reference
| Sales Report Type | Description |
|---|---|
SALES | App and in-app purchase sales |
PRE_ORDER | Pre-order data |
SUBSCRIPTION | Auto-renewable subscription activity |
SUBSCRIPTION_EVENT | Subscription lifecycle events |
SUBSCRIBER | Active subscriber counts |
INSTALLS | First-time downloads |
FIRST_ANNUAL | First annual subscription renewals |
WIN_BACK_ELIGIBILITY | Win-back offer eligible users |
| Finance Report Type | Description |
|---|---|
FINANCIAL | Financial summary with proceeds |
FINANCE_DETAIL | Detailed financial breakdown |
Output Format
Reports return dynamic TSV data from Apple, parsed into JSON arrays. Column names vary by report type.
{
"data" : [
{
"Provider" : "APPLE",
"SKU" : "com.example.app",
"Title" : "My App",
"Units" : "10",
"Developer Proceeds" : "6.99",
"Currency of Proceeds" : "USD"
}
]
}
Use --output table for a tabular view of the same data.
Typical Workflow
# 0. Save vendor number once (found in App Store Connect → Payments and Financial Reports)
asc auth update --vendor-number 88012345
# 1. Get daily sales summary (vendor number auto-resolved)
asc sales-reports download \
--report-type SALES \
--sub-type SUMMARY \
--frequency DAILY \
--report-date 2024-01-15 \
--pretty
# 2. Check monthly subscription metrics
asc sales-reports download \
--report-type SUBSCRIPTION \
--sub-type SUMMARY \
--frequency MONTHLY \
--report-date 2024-01 \
--pretty
# 3. Download financial report for US proceeds
asc finance-reports download \
--report-type FINANCIAL \
--region-code US \
--report-date 2024-01 \
--pretty
Important Notes
- Vendor number auto-resolution: Save it once with
asc auth update --vendor-number <number>orasc auth login --vendor-number <number>. All report commands auto-resolve from the active account. Use--vendor-numberto override. - The vendor number can be found in App Store Connect under "Sales and Trends" → "Payments and Financial Reports"
- Reports are gzip-compressed TSV from Apple's API — the CLI handles decompression and parsing automatically
--report-dateis only optional for DAILY frequency; WEEKLY, MONTHLY, and YEARLY require it. Weekly dates must be a Sunday.- Not all report type + sub-type + frequency combinations are valid; Apple returns an error for unsupported combinations
- Finance reports require
--region-code(e.g.US,EU,JP,AU) and--report-date - Daily reports are typically available after a 1-day delay; monthly reports after the month ends
Analytics Reports
Multi-step workflow for app engagement, commerce, usage, framework, and performance analytics.
Commands
# Create a report request
asc analytics-reports request --app-id <id> --access-type ONE_TIME_SNAPSHOT|ONGOING
# List existing requests
asc analytics-reports list --app-id <id> [--access-type ONGOING]
# Delete a request
asc analytics-reports delete --request-id <id>
# List reports by category
asc analytics-reports reports --request-id <id> [--category APP_USAGE|APP_STORE_ENGAGEMENT|COMMERCE|FRAMEWORK_USAGE|PERFORMANCE]
# List instances by granularity
asc analytics-reports instances --report-id <id> [--granularity DAILY|WEEKLY|MONTHLY]
# Get download URLs
asc analytics-reports segments --instance-id <id>
Analytics Workflow
# 1. Request analytics
asc analytics-reports request --app-id 6450000000 --access-type ONE_TIME_SNAPSHOT --pretty
# 2. List commerce reports
asc analytics-reports reports --request-id req-abc --category COMMERCE --pretty
# 3. Get daily instances
asc analytics-reports instances --report-id rpt-xyz --granularity DAILY --pretty
# 4. Get download URLs
asc analytics-reports segments --instance-id inst-123 --pretty
Analytics responses include CAEOAS affordances guiding the agent through each step of the hierarchy.
Reference
See commands.md for the full list of valid enum values for each flag.