Documentation Index
Fetch the complete documentation index at: https://docs.asccli.sh/llms.txt
Use this file to discover all available pages before exploring further.
API Notes
Quirks, tips, and behaviors for specific App Store Connect API endpointsThis page documents quirks and tips for specific App Store Connect API endpoints. Use it as a reference when encountering unexpected behavior or implementing new features.
Analytics & Sales Reports
Date Format Requirements
Date formats vary by report frequency:- DAILY/WEEKLY:
YYYY-MM-DD(e.g.,2024-01-15) - MONTHLY:
YYYY-MM(e.g.,2024-01) - YEARLY:
YYYY(e.g.,2024)
Vendor Number
Vendor number comes from Sales and Trends → Reports URL (vendorNumber=... parameter).
Set it globally:
Pagination Quirks
Use--paginate with asc analytics view --request-id ... --date ... to avoid missing instances on later pages. Without pagination, you may only receive partial data.
Long-Running Operations
Long analytics runs may require raisingASC_TIMEOUT:
Finance Reports
Finance reports use Apple fiscal months (YYYY-MM), not calendar months.
Report Type Mapping
API--report-type values map to App Store Connect UI options:
API --report-type | UI Option | --region Code(s) |
|---|---|---|
FINANCIAL | All Countries or Regions (Single File) | ZZ (consolidated) |
FINANCIAL | All Countries or Regions (Multiple Files) | US, EU, JP, etc. |
FINANCE_DETAIL | All Countries or Regions (Detailed) | Z1 (required) |
| Not available | Transaction Tax (Single File) | N/A |
Important Notes
FINANCE_DETAILreports require region codeZ1(the only valid region for detailed reports)- Transaction Tax reports are NOT available via API; download manually from App Store Connect
- Region codes reference: https://developer.apple.com/help/app-store-connect/reference/financial-report-regions-and-currencies/
Sandbox Testers
The current CLI supports these sandbox tester operations: Example:Territory Codes
Territory uses 3-letter App Store territory codes:USA- United StatesJPN- JapanGBR- United KingdomDEU- Germany- etc.
API Version Differences
- List/view/update/clear-history: Use the current CLI surface under
asc sandbox ... - Historical create/delete endpoints used older API coverage and are not exposed by the current CLI
Game Center
Game Center Detail ID
Most Game Center endpoints require a Game Center detail ID, resolved via:Releases
Game Center resources often need a linked Game Center app version before they become active in App Store Connect:Image Uploads
Image uploads follow a three-step flow:- Reserve upload slot: Request upload URL from API
- Upload file: PUT file to reserved URL
- Commit upload: Notify API of completion
Challenges Minimum Platform Versions
ThechallengesMinimumPlatformVersions relationship on gameCenterDetails uses appStoreVersions linkages.
Important:
- Live API rejects
gameCenterAppVersionsfor this relationship - The relationship endpoint is replace-only (PATCH)
- GET relationship requests are rejected with “does not allow ‘GET_RELATIONSHIP’… Allowed operation is: REPLACE”
- Setting
challengesMinimumPlatformVersionsrequires a live App Store version - Non-live versions fail with
ENTITY_ERROR.RELATIONSHIP.INVALID.MIN_CHALLENGES_VERSION_MUST_BE_LIVE
Authentication & Rate Limiting
JWT Token Validity
JWTs issued for App Store Connect are valid for 10 minutes. The CLI handles renewal automatically.Automatic Retries
Automatic retries apply only to:- Methods: GET/HEAD requests
- Status codes: 429 (rate limit) and 503 (service unavailable)
Retry-After Headers
Retry-After headers are honored when present. The CLI respects server-specified delays.Permission Errors (403)
Some endpoints return 403 when the API key role lacks permission:- Finance reports: Requires Admin or Finance role
- Reviews: Requires App Manager or higher
- Sales reports: Requires Sales or Admin role
Devices
No DELETE Endpoint
Devices can only be enabled/disabled via PATCH. There is no DELETE endpoint.Registration Requirements
- iOS: UDID (Unique Device Identifier)
- macOS: Hardware UUID
Device Management Location
Device management UI lives in the Apple Developer portal, not App Store Connect.Device Limits
- Device reset is limited to once per membership year
- Disabling does not free slots
- Plan device registrations accordingly
Pass Type IDs
Include Parameter Rejection
Live API rejectsinclude=passTypeId and fields[passTypeIds] on /v1/passTypeIds/{id}/certificates despite the OpenAPI spec allowing them.
The CLI does not expose those parameters for pass-type-ids certificates list to avoid API errors.
Example (working):
--includeis not available onasc pass-type-ids certificates list.- Use supported filters like
--id,--certificate-type, or--fieldsinstead.
General API Quirks
Relationship Operations
- Some relationships are replace-only (PATCH), not append
- GET relationship requests may be rejected for certain endpoints
- Related resources may need to be in specific states (e.g., “live”)
Pagination
Always use--paginate for complete results:
--paginate, only the first page is returned (default limit varies by endpoint).
Filters and Sorting
Use explicit filter flags instead of generic--filter expressions:
- prefix for descending:
Response Delays
Some operations return success but take time to process:- Build processing (can take 10-30 minutes)
- Screenshot processing
- Review submissions
Debugging API Issues
Enable debug logging to see full HTTP request/response details:- Request method, URL, headers, body
- Response status, headers, body
- Retry attempts and timing
Additional Resources
- OpenAPI Specification:
docs/openapi/latest.json - Endpoint Index:
docs/openapi/paths.txt - API Documentation: https://sosumi.ai/documentation/appstoreconnectapi/ (preferred over developer.apple.com)
- Official API Reference: https://developer.apple.com/documentation/appstoreconnectapi/
docs/openapi/latest.json.