Team Members & Invitations with asc
Manage your App Store Connect team: list members, assign roles, revoke access, and control pending invitations. Built for directory integration and automated access workflows.
Authentication
asc auth login --key-id <id> --issuer-id <id> --private-key-path ~/.asc/AuthKey.p8
CAEOAS — Affordances Guide Next Steps
Every JSON response includes "affordances" — ready-to-run commands with IDs pre-filled:
TeamMember affordances:
{
"id": "u-abc123",
"username": "jdoe@example.com",
"roles": ["DEVELOPER", "APP_MANAGER"],
"affordances": {
"remove": "asc users remove --user-id u-abc123",
"updateRoles": "asc users update --user-id u-abc123 --role DEVELOPER --role APP_MANAGER"
}
}
UserInvitationRecord affordances:
{
"id": "inv-xyz789",
"email": "new@example.com",
"roles": ["DEVELOPER"],
"affordances": {
"cancel": "asc user-invitations cancel --invitation-id inv-xyz789"
}
}
Available Roles
Use uppercase values with --role:
ADMIN · FINANCE · ACCOUNT_HOLDER · SALES · MARKETING · APP_MANAGER · DEVELOPER · ACCESS_TO_REPORTS · CUSTOMER_SUPPORT · CREATE_APPS · CLOUD_MANAGED_DEVELOPER_ID · CLOUD_MANAGED_APP_DISTRIBUTION · GENERATE_INDIVIDUAL_KEYS
Typical Workflows
Offboard a departing employee
DEPARTED_EMAIL="former@example.com"
# Check for an active team member
USER_ID=$(asc users list | jq -r --arg e "$DEPARTED_EMAIL" \
'.data[] | select(.username == $e) | .id')
if [ -n "$USER_ID" ]; then
asc users remove --user-id "$USER_ID"
echo "Access revoked."
else
# Check for a pending invitation that hasn't been accepted yet
INV_ID=$(asc user-invitations list | jq -r --arg e "$DEPARTED_EMAIL" \
'.data[] | select(.email == $e) | .id')
[ -n "$INV_ID" ] && asc user-invitations cancel --invitation-id "$INV_ID"
fi
Onboard a new developer
asc user-invitations invite \
--email new-hire@example.com \
--first-name Alex \
--last-name Smith \
--role DEVELOPER
Promote a developer to App Manager
# Get the user's ID first
USER_ID=$(asc users list | jq -r '.data[] | select(.username == "dev@example.com") | .id')
# Update replaces all roles — include every role you want them to keep
asc users update --user-id "$USER_ID" --role APP_MANAGER --role DEVELOPER
Audit: list all admins
asc users list --role ADMIN --output table
Output Flags
--pretty # Pretty-print JSON
--output table # Aligned table
--output markdown # Markdown table
Full Command Reference
See commands.md for all flags, filters, and examples.