[GH-ISSUE #168] Add Age Rating Declaration CLI support (content rating, gambling, etc.) #51

Closed
opened 2026-02-26 21:33:00 +03:00 by kerem · 0 comments
Owner

Originally created by @rudrankriyam on GitHub (Jan 25, 2026).
Original GitHub issue: https://github.com/rudrankriyam/App-Store-Connect-CLI/issues/168

Summary

Add support for managing App Store age rating declarations including content ratings, gambling, violence, and other sensitive content settings. This is a tedious manual process in App Store Connect that would benefit greatly from CLI automation.

Background

Age rating declarations are required for every app submission and include settings for:

  • Gambling and contest content
  • Alcohol, tobacco, and drug references
  • Violence and horror themes
  • Sexual content and nudity
  • Profanity and crude humor
  • Kids age band classification

Current State

Not implemented. Users must manually configure these settings in the App Store Connect web UI for each version.

Verified API Endpoints

Based on the App Store Connect OpenAPI spec:

Method Path Description
PATCH /v1/ageRatingDeclarations/{id} Update age rating declaration
GET /v1/appStoreVersions/{id}/ageRatingDeclaration Get via App Store Version
GET /v1/appInfos/{id}/ageRatingDeclaration Get via App Info

Note: Age rating declarations are accessed through their relationship to AppStoreVersion or AppInfo - there's no direct list endpoint.

Desired Feature

Commands

# Get current age rating declaration for an app
asc age-rating get --app "com.example.app" [--output json|table|markdown]

# Update age rating declaration
asc age-rating set --app "com.example.app" \
  --gambling true \
  --gambling-simulated "FREQUENT_OR_INTENSE" \
  --alcohol-tobacco-drug-use "NONE" \
  --violence "NONE" \
  --sexual-content-nudity "INFREQUENT_OR_MILD" \
  --profanity-humor "NONE" \
  --horror-fear "NONE" \
  --mature-suggestive "NONE" \
  --contests "NONE" \
  --medical-treatment "NONE" \
  --seventeen-plus false \
  --unrestricted-web-access false \
  --kids-age-band "FIVE_AND_UNDER"

Attribute Types

Boolean fields:

  • gambling - Real gambling content
  • seventeenPlus - 17+ content
  • unrestrictedWebAccess - Unrestricted web access

Enum fields (values: NONE, INFREQUENT_OR_MILD, FREQUENT_OR_INTENSE):

  • alcoholTobaccoOrDrugUseOrReferences
  • contests
  • gamblingSimulated
  • medicalOrTreatmentInformation
  • profanityOrCrudeHumor
  • sexualContentGraphicAndNudity
  • sexualContentOrNudity
  • horrorOrFearThemes
  • matureOrSuggestiveThemes
  • violenceCartoonOrFantasy
  • violenceRealistic
  • violenceRealisticProlongedGraphicOrSadistic

Enum for kids age band:

  • kidsAgeBand: FIVE_AND_UNDER, SIX_TO_EIGHT, NINE_TO_ELEVEN

Examples

# Get current ratings
asc age-rating get --app "com.example.app"

# Simple app - no sensitive content
asc age-rating set --app "com.example.app" \
  --gambling false \
  --alcohol-tobacco-drug-use "NONE" \
  --violence "NONE" \
  --sexual-content-nudity "NONE" \
  --profanity-humor "NONE" \
  --kids-age-band "FIVE_AND_UNDER"

# Game with violence and simulated gambling
asc age-rating set --app "com.example.app" \
  --gambling false \
  --gambling-simulated "FREQUENT_OR_INTENSE" \
  --violence-realistic "FREQUENT_OR_INTENSE" \
  --violence-cartoon "INFREQUENT_OR_MILD" \
  --kids-age-band "NINE_TO_ELEVEN"
  • versions - App Store version management
  • app-info - App metadata management (#152)
  • submit - App submission

Priority

Medium - Useful for automation, saves manual work, but not critical for CI/CD.

Notes

  • The age rating declaration is tied to a specific AppStoreVersion or AppInfo
  • Updates require the age rating declaration ID (obtained via the version)
  • Some attributes have been deprecated (e.g., gamblingAndContests)
Originally created by @rudrankriyam on GitHub (Jan 25, 2026). Original GitHub issue: https://github.com/rudrankriyam/App-Store-Connect-CLI/issues/168 ## Summary Add support for managing App Store age rating declarations including content ratings, gambling, violence, and other sensitive content settings. This is a tedious manual process in App Store Connect that would benefit greatly from CLI automation. ## Background Age rating declarations are required for every app submission and include settings for: - Gambling and contest content - Alcohol, tobacco, and drug references - Violence and horror themes - Sexual content and nudity - Profanity and crude humor - Kids age band classification ## Current State Not implemented. Users must manually configure these settings in the App Store Connect web UI for each version. ## Verified API Endpoints Based on the App Store Connect OpenAPI spec: | Method | Path | Description | |--------|------|-------------| | `PATCH` | `/v1/ageRatingDeclarations/{id}` | Update age rating declaration | | `GET` | `/v1/appStoreVersions/{id}/ageRatingDeclaration` | Get via App Store Version | | `GET` | `/v1/appInfos/{id}/ageRatingDeclaration` | Get via App Info | **Note:** Age rating declarations are accessed through their relationship to `AppStoreVersion` or `AppInfo` - there's no direct list endpoint. ## Desired Feature ### Commands ```bash # Get current age rating declaration for an app asc age-rating get --app "com.example.app" [--output json|table|markdown] # Update age rating declaration asc age-rating set --app "com.example.app" \ --gambling true \ --gambling-simulated "FREQUENT_OR_INTENSE" \ --alcohol-tobacco-drug-use "NONE" \ --violence "NONE" \ --sexual-content-nudity "INFREQUENT_OR_MILD" \ --profanity-humor "NONE" \ --horror-fear "NONE" \ --mature-suggestive "NONE" \ --contests "NONE" \ --medical-treatment "NONE" \ --seventeen-plus false \ --unrestricted-web-access false \ --kids-age-band "FIVE_AND_UNDER" ``` ### Attribute Types **Boolean fields:** - `gambling` - Real gambling content - `seventeenPlus` - 17+ content - `unrestrictedWebAccess` - Unrestricted web access **Enum fields** (values: `NONE`, `INFREQUENT_OR_MILD`, `FREQUENT_OR_INTENSE`): - `alcoholTobaccoOrDrugUseOrReferences` - `contests` - `gamblingSimulated` - `medicalOrTreatmentInformation` - `profanityOrCrudeHumor` - `sexualContentGraphicAndNudity` - `sexualContentOrNudity` - `horrorOrFearThemes` - `matureOrSuggestiveThemes` - `violenceCartoonOrFantasy` - `violenceRealistic` - `violenceRealisticProlongedGraphicOrSadistic` **Enum for kids age band:** - `kidsAgeBand`: `FIVE_AND_UNDER`, `SIX_TO_EIGHT`, `NINE_TO_ELEVEN` ### Examples ```bash # Get current ratings asc age-rating get --app "com.example.app" # Simple app - no sensitive content asc age-rating set --app "com.example.app" \ --gambling false \ --alcohol-tobacco-drug-use "NONE" \ --violence "NONE" \ --sexual-content-nudity "NONE" \ --profanity-humor "NONE" \ --kids-age-band "FIVE_AND_UNDER" # Game with violence and simulated gambling asc age-rating set --app "com.example.app" \ --gambling false \ --gambling-simulated "FREQUENT_OR_INTENSE" \ --violence-realistic "FREQUENT_OR_INTENSE" \ --violence-cartoon "INFREQUENT_OR_MILD" \ --kids-age-band "NINE_TO_ELEVEN" ``` ### Related Commands - `versions` - App Store version management - `app-info` - App metadata management (#152) - `submit` - App submission ### Priority Medium - Useful for automation, saves manual work, but not critical for CI/CD. ### Notes - The age rating declaration is tied to a specific `AppStoreVersion` or `AppInfo` - Updates require the age rating declaration ID (obtained via the version) - Some attributes have been deprecated (e.g., `gamblingAndContests`)
kerem 2026-02-26 21:33:00 +03:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/App-Store-Connect-CLI#51
No description provided.