A powerful CLI for Apple App Store Connect API
Project description
asc-cli
A powerful command-line interface for Apple App Store Connect API.
Overview
asc-cli brings App Store Connect to your terminal. Manage subscriptions, pricing, TestFlight, and more without leaving the command line.
# Configure pricing for all territories
asc subscriptions pricing set --product pro.monthly --price 2.99
# Add a free trial
asc subscriptions offers create --product pro.monthly --type free-trial --duration 14d
# List TestFlight builds
asc testflight builds list --app "My App"
# Submit for review
asc apps submit --app "My App" --version 1.0.0
Features
- Subscriptions - Create, configure, and manage auto-renewable subscriptions
- Pricing - Set prices across 175 territories with a single command
- Introductory Offers - Configure free trials, pay-as-you-go, and pay-up-front offers
- Promotional Offers - Manage promotional pricing campaigns
- TestFlight - Manage builds, beta groups, and testers
- App Management - Submit apps, manage versions, and more
- Bulk Operations - Apply changes across multiple products/territories
Installation
Using pip
pip install asc-cli
Using Homebrew (coming soon)
brew install yooz-labs/tap/asc-cli
From source
git clone https://github.com/yooz-labs/asc-cli.git
cd asc-cli
pip install -e .
Quick Start
1. Get API Credentials
- Go to App Store Connect
- Navigate to Users and Access → Integrations → App Store Connect API
- Generate a new key with Admin or App Manager role
- Download the
.p8private key file - Note the Key ID and Issuer ID
2. Configure Authentication
# Interactive setup
asc auth login
# Or set environment variables
export ASC_ISSUER_ID="your-issuer-id"
export ASC_KEY_ID="your-key-id"
export ASC_PRIVATE_KEY_PATH="~/.asc/AuthKey_XXXXX.p8"
3. Start Using
# List your apps
asc apps list
# Get subscription info
asc subscriptions list --app "My App"
# Set pricing
asc subscriptions pricing set --subscription "pro.monthly" --price 2.99
Command Reference
Authentication
asc auth login # Interactive authentication setup
asc auth status # Check authentication status
asc auth logout # Remove stored credentials
Apps
asc apps list # List all apps
asc apps info <bundle-id> # Get app details
asc apps submit # Submit for App Review
Subscriptions
asc subscriptions list # List subscription groups
asc subscriptions create # Create a new subscription
asc subscriptions delete <id> # Delete a subscription
asc subscriptions pricing list # List current pricing
asc subscriptions pricing set # Set pricing
asc subscriptions offers list # List introductory offers
asc subscriptions offers create # Create an offer
asc subscriptions offers delete # Delete an offer
TestFlight
asc testflight builds list # List builds
asc testflight builds expire <id> # Expire a build
asc testflight groups list # List beta groups
asc testflight groups create # Create a beta group
asc testflight testers list # List testers
asc testflight testers add # Add a tester
asc testflight testers remove # Remove a tester
Bulk Operations
asc bulk pricing --file pricing.yaml # Apply pricing from YAML
asc bulk offers --file offers.yaml # Apply offers from YAML
Configuration Files
Pricing Configuration (pricing.yaml)
subscriptions:
- product_id: com.example.app.pro.monthly
base_price: 2.99
currency: USD
territories: all # or list specific ones
- product_id: com.example.app.pro.yearly
base_price: 29.99
currency: USD
territories:
- USA
- GBR
- DEU
Offers Configuration (offers.yaml)
introductory_offers:
- product_id: com.example.app.pro.monthly
type: free-trial
duration: 14 # days
territories: all
- product_id: com.example.app.pro.monthly
type: pay-as-you-go
duration: 3 # months
price: 1.99
territories: all
Environment Variables
| Variable | Description |
|---|---|
ASC_ISSUER_ID |
App Store Connect Issuer ID |
ASC_KEY_ID |
API Key ID |
ASC_PRIVATE_KEY_PATH |
Path to .p8 private key file |
ASC_PRIVATE_KEY |
Private key contents (alternative to path) |
Contributing
Contributions are welcome! Please read our Contributing Guide for details.
Legal
This tool is not affiliated with, endorsed by, or sponsored by Apple Inc. App Store Connect is a trademark of Apple Inc.
Users are responsible for complying with Apple's App Store Connect API Terms of Service.
Documentation
Full documentation available at docs.yooz.live/tools/asc-cli.
License
BSD 3-Clause License - see LICENSE for details.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file asc_cli-0.2.0.tar.gz.
File metadata
- Download URL: asc_cli-0.2.0.tar.gz
- Upload date:
- Size: 154.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2c491bdeaf528f9714003265cee95094cd78bd708cd6d7f026ceb466898f049e
|
|
| MD5 |
a2ef2beca8d4080efa74247004756fd1
|
|
| BLAKE2b-256 |
77753ed5b2b09a7632aa211439831d5463ee84cf422cebb59125941206b4ba71
|
Provenance
The following attestation bundles were made for asc_cli-0.2.0.tar.gz:
Publisher:
pypi.yml on yooz-labs/asc-cli
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
asc_cli-0.2.0.tar.gz -
Subject digest:
2c491bdeaf528f9714003265cee95094cd78bd708cd6d7f026ceb466898f049e - Sigstore transparency entry: 791152824
- Sigstore integration time:
-
Permalink:
yooz-labs/asc-cli@ca262fdeef2bc143b3227eb5aa077faae3c73e7d -
Branch / Tag:
refs/tags/v0.2.0 - Owner: https://github.com/yooz-labs
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
pypi.yml@ca262fdeef2bc143b3227eb5aa077faae3c73e7d -
Trigger Event:
release
-
Statement type:
File details
Details for the file asc_cli-0.2.0-py3-none-any.whl.
File metadata
- Download URL: asc_cli-0.2.0-py3-none-any.whl
- Upload date:
- Size: 26.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
77dedc21805eb623a2801d70c3ed0b3694021213184b7d2b0fcfeb28e8af4757
|
|
| MD5 |
3a533f819617f92a68760c54a151f472
|
|
| BLAKE2b-256 |
b1dd4f7928ae77e297f829cff7a46b1421c6ed0072c550aa87a99a2e15996795
|
Provenance
The following attestation bundles were made for asc_cli-0.2.0-py3-none-any.whl:
Publisher:
pypi.yml on yooz-labs/asc-cli
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
asc_cli-0.2.0-py3-none-any.whl -
Subject digest:
77dedc21805eb623a2801d70c3ed0b3694021213184b7d2b0fcfeb28e8af4757 - Sigstore transparency entry: 791152834
- Sigstore integration time:
-
Permalink:
yooz-labs/asc-cli@ca262fdeef2bc143b3227eb5aa077faae3c73e7d -
Branch / Tag:
refs/tags/v0.2.0 - Owner: https://github.com/yooz-labs
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
pypi.yml@ca262fdeef2bc143b3227eb5aa077faae3c73e7d -
Trigger Event:
release
-
Statement type: