Skip to content

listings

Manage store listings, metadata, images, and country availability.

Commands

CommandDescription
listings getGet store listing(s)
listings updateUpdate a store listing
listings deleteDelete a store listing for a language
listings pullDownload listings to Fastlane-format directory
listings pushUpload listings from Fastlane-format directory
listings images listList images for a language and type
listings images uploadUpload an image
listings images deleteDelete an image
listings availabilityGet country availability for a track

listings get

Retrieve store listing details for one language or all languages.

Synopsis

bash
gpc listings get [options]

Options

FlagShortTypeDefaultDescription
--langstringLanguage code (BCP 47). Omit to get all languages.

Example

Get the default language listing:

bash
gpc listings get --app com.example.myapp

Get a specific language:

bash
gpc listings get --app com.example.myapp --lang ja-JP
json
{
  "language": "ja-JP",
  "title": "My App",
  "shortDescription": "Short description in Japanese",
  "fullDescription": "Full description in Japanese",
  "video": ""
}

listings update

Update a store listing for a specific language.

Synopsis

bash
gpc listings update --lang <language> [options]

Options

FlagShortTypeDefaultDescription
--langstring(required)Language code (BCP 47)
--titlestringApp title (max 30 chars)
--shortstringShort description (max 80 chars)
--fullstringFull description (max 4000 chars)
--full-filestringRead full description from a file
--videostringYouTube video URL

Example

Update title and short description:

bash
gpc listings update \
  --app com.example.myapp \
  --lang en-US \
  --title "My App" \
  --short "The best app for productivity"

Update full description from a file:

bash
gpc listings update \
  --app com.example.myapp \
  --lang en-US \
  --full-file ./metadata/en-US/full_description.txt

Preview changes without applying:

bash
gpc listings update \
  --app com.example.myapp \
  --lang en-US \
  --title "New Title" \
  --dry-run

listings delete

Delete a store listing for a specific language.

Synopsis

bash
gpc listings delete --lang <language>

Options

FlagShortTypeDefaultDescription
--langstring(required)Language code (BCP 47)

Example

bash
gpc listings delete --app com.example.myapp --lang fr-FR

listings pull

Download all store listings to a local Fastlane-compatible directory structure.

Synopsis

bash
gpc listings pull [options]

Options

FlagShortTypeDefaultDescription
--dirstringmetadataOutput directory path

Example

bash
gpc listings pull --app com.example.myapp --dir ./metadata

Creates the following directory structure:

metadata/
  en-US/
    title.txt
    short_description.txt
    full_description.txt
    video.txt
  ja-JP/
    title.txt
    short_description.txt
    full_description.txt
    video.txt
json
{
  "directory": "./metadata",
  "languages": ["en-US", "ja-JP"],
  "count": 2
}

listings push

Upload store listings from a local Fastlane-compatible directory structure.

Synopsis

bash
gpc listings push [options]

Options

FlagShortTypeDefaultDescription
--dirstringmetadataSource directory path
--dry-runbooleanfalsePreview changes without applying

Example

Push all metadata:

bash
gpc listings push --app com.example.myapp --dir ./metadata

Preview what would change:

bash
gpc listings push --app com.example.myapp --dir ./metadata --dry-run
json
{
  "dryRun": true,
  "changes": [
    { "language": "en-US", "field": "title", "action": "update" },
    { "language": "ja-JP", "field": "fullDescription", "action": "update" }
  ]
}

listings images list

List all images for a specific language and image type.

Synopsis

bash
gpc listings images list --lang <language> --type <type>

Options

FlagShortTypeDefaultDescription
--langstring(required)Language code (BCP 47)
--typestring(required)Image type (see below)

Valid image types: phoneScreenshots, sevenInchScreenshots, tenInchScreenshots, tvScreenshots, wearScreenshots, icon, featureGraphic, tvBanner.

Example

bash
gpc listings images list \
  --app com.example.myapp \
  --lang en-US \
  --type phoneScreenshots
json
{
  "images": [
    { "id": "1", "sha256": "abc123", "url": "https://lh3.googleusercontent.com/..." },
    { "id": "2", "sha256": "def456", "url": "https://lh3.googleusercontent.com/..." }
  ]
}

listings images upload

Upload an image file to a specific language and image type slot.

Synopsis

bash
gpc listings images upload <file> --lang <language> --type <type>

Options

FlagShortTypeDefaultDescription
--langstring(required)Language code (BCP 47)
--typestring(required)Image type

Example

bash
gpc listings images upload ./screenshots/home.png \
  --app com.example.myapp \
  --lang en-US \
  --type phoneScreenshots

listings images delete

Delete a specific image by ID.

Synopsis

bash
gpc listings images delete --lang <language> --type <type> --id <imageId>

Options

FlagShortTypeDefaultDescription
--langstring(required)Language code (BCP 47)
--typestring(required)Image type
--idstring(required)Image ID to delete

Example

bash
gpc listings images delete \
  --app com.example.myapp \
  --lang en-US \
  --type phoneScreenshots \
  --id 1

listings availability

Get country availability for a specific track.

Synopsis

bash
gpc listings availability [options]

Options

FlagShortTypeDefaultDescription
--trackstringproductionTrack name

Example

bash
gpc listings availability --app com.example.myapp --track production
json
{
  "countries": [
    { "countryCode": "US", "available": true },
    { "countryCode": "JP", "available": true },
    { "countryCode": "DE", "available": true }
  ]
}

Released under the MIT License.