Tool reference
The 55 tools a standard App Listing Agent account can use over MCP. This page is generated from the same definitions the server returns from tools/list.
What your agent actually sees
Tool discovery is filtered by the connection. A scoped API key only lists tools its scopes allow, and the Claude connector endpoint (/api/mcp/claude) does not include the AI image generation, image editing and screenshot translation tools.
Onboarding and readiness
get_onboarding_status
Returns the connected account's projects, store connection status, approval policy, onboarding progress and the suggested next step.
readApproval: Not needed (read-only)No usage charge| Parameter | Type | Required | Description |
|---|---|---|---|
projectId | string | No | Project ID selected during agent authorization |
list_importable_apps
Lists the apps available through the saved App Store Connect account. Missing credentials are configured through a secure browser connection flow, not in chat.
readApproval: Not needed (read-only)No usage chargecreate_onboarding_project
Creates or imports one iOS or Android project. An app that already has a store-console record, even if unpublished, is imported as existing; an app without one is created as a local pre-store project. A request ID makes retries idempotent.
writeApproval: Follows your approval policyNo usage charge| Parameter | Type | Required | Description |
|---|---|---|---|
requestId | string | Yes | Stable unique request ID used to make retries idempotent |
name | string | Yes | Customer-facing app/project name |
storeType | string | Yes | Target store platformOne of: ios, android |
storeRecordStatus | string | Yes | Whether the app already exists in App Store Connect/Play Console, even if unpublishedOne of: existing, not_created |
appStoreAppId | string | No | Numeric App Store app ID for iOS |
playStorePackage | string | No | Google Play package name for Android |
primaryLocale | string | No | Primary locale, default en-US |
attach_onboarding_store_record
Links an existing App Store Connect or Google Play Console record to a local pre-store project. Repeating the same identifier is idempotent.
writeApproval: Follows your approval policyNo usage charge| Parameter | Type | Required | Description |
|---|---|---|---|
projectId | string | Yes | Existing App Listing Agent pre-store project ID |
appStoreAppId | string | No | Numeric App Store app ID for an iOS project |
playStorePackage | string | No | Google Play package name for an Android project |
get_store_connection_link
Returns a secure browser link for connecting App Store Connect or Google Play credentials, plus the current connection state. Credentials are entered in the browser, not in chat.
readApproval: Not needed (read-only)No usage chargeset_approval_policy
Changes the account's approval policy (read only, drafts with approval, or publishing with approval). The change takes effect only after the account owner approves it in App Listing Agent.
writeApproval: Always needs your approvalNo usage charge| Parameter | Type | Required | Description |
|---|---|---|---|
mode | string | Yes | Operating mode: read_only, draft_with_approval or publish_with_approvalOne of: read_only, draft_with_approval, publish_with_approval |
run_store_readiness_audit
Checks a project's store listing for launch blockers and returns each blocker, whether draft work can continue, the approval boundary and a suggested next step. It does not change listing content or publish anything.
writeApproval: Follows your approval policyUses plan allowance (AI)| Parameter | Type | Required | Description |
|---|---|---|---|
projectId | string | No | Project ID; defaults to the first onboarding project |
show_readiness_report
Displays an interactive readiness report from the fields returned by a readiness audit (project, ready, blockers, approvalBoundary, nextAction). Displaying the report does not run an audit or change any data.
readApproval: Not needed (read-only)No usage charge| Parameter | Type | Required | Description |
|---|---|---|---|
project | object | Yes | |
ready | boolean | Yes | |
blockers | object[] | Yes | |
approvalBoundary | string | Yes | |
nextAction | string | Yes |
complete_onboarding
Marks onboarding complete once an approval policy is set and the first readiness audit has run.
writeApproval: Follows your approval policyNo usage chargeMetadata
translate_metadata
Translates supplied store listing fields into one or more non-English locales using AI and caches the result. By default it returns the translations without saving them (metadataSaved=false). With saveToLocaleDraft=true it also saves the translated fields to each locale draft in App Listing Agent, leaving other fields unchanged. It does not publish to a store. Uses plan allowance.
translateApproval: Follows your approval policyUses plan allowance (AI)| Parameter | Type | Required | Description |
|---|---|---|---|
projectId | string | Yes | The project ID |
store | string | Yes | Target storeOne of: appstore, playstore |
locales | string[] | Yes | Target locales to translate to |
force | boolean | No | Force re-translation even if cached |
saveToLocaleDraft | boolean | No | When true, also saves the translated fields to each target locale draft in App Listing Agent. Other fields in those locales are unchanged. Nothing is published to a store. |
metadata | object | Yes | Metadata fields to translate. Only send fields relevant to the target store. |
update_metadata
Saves listing fields for one locale, including English, as a local draft in App Listing Agent. Only supplied fields change. App Store fields: title, subtitle, description, keywords, whatsNew, promotionalText. Google Play fields: title, shortDescription, fullDescription. Over-length values are rejected, not truncated. It does not publish to a store.
writeApproval: Follows your approval policyNo usage charge| Parameter | Type | Required | Description |
|---|---|---|---|
projectId | string | Yes | The project ID |
store | string | Yes | Target storeOne of: appstore, playstore |
locale | string | Yes | Locale to update (e.g., en-US, fr-FR, de-DE) |
metadata | object | Yes | Metadata fields to update. Only send fields relevant to the target store. |
read_metadata
Returns the locally saved listing fields for a project: the primary locale by default, or a specific locale or all locales.
readApproval: Not needed (read-only)No usage charge| Parameter | Type | Required | Description |
|---|---|---|---|
projectId | string | Yes | The project ID |
locale | string | No | Optional: specific locale to read (e.g., en-US, fr-FR). Overrides primaryOnly. |
primaryOnly | boolean | No | Only return the primary locale. Defaults to true. Set to false to return all locales. |
check_metadata_compliance
Uses AI to check a locale's listing text and legal-document prerequisites against App Store or Google Play review guidelines. Returns issues grouped by severity with guideline references. It does not change the listing, and results do not guarantee store approval. Uses plan allowance.
writeApproval: Follows your approval policyUses plan allowance (AI)| Parameter | Type | Required | Description |
|---|---|---|---|
projectId | string | Yes | The project ID |
locale | string | No | Locale to check (e.g., en-US, fr-FR). Defaults to the project's primary locale. |
storeType | string | No | Which store's guidelines to check against. Defaults to ios.One of: ios, android |
upload_app_store_metadata
Uploads saved listing fields for the chosen locales to App Store Connect. dryRun=true returns a preview without uploading. A live upload requires store credentials, publish permission and the account owner's approval of the exact change in App Listing Agent.
publishApproval: Always needs your approvalStore operation| Parameter | Type | Required | Description |
|---|---|---|---|
projectId | string | Yes | The project ID |
locales | string[] | Yes | Locales to upload |
dryRun | boolean | No | When true, returns a preview of the upload without sending anything to the store. |
translations | object | No | Optional translations to upload (uses cached if not provided) |
upload_google_play_metadata
Uploads saved listing fields for the chosen locales to Google Play Console. dryRun=true returns a preview without uploading. A live upload requires store credentials, publish permission and the account owner's approval of the exact change in App Listing Agent.
publishApproval: Always needs your approvalStore operation| Parameter | Type | Required | Description |
|---|---|---|---|
projectId | string | Yes | The project ID |
locales | string[] | Yes | Locales to upload (iOS locales auto-converted to Android) |
dryRun | boolean | No | When true, returns a preview of the upload without sending anything to the store. |
translations | object | No | Optional translations to upload (uses cached if not provided) |
upload_metadata_to_both_stores
Uploads saved listing fields to both App Store Connect and Google Play Console in one operation. dryRun=true returns both previews without uploading. A live upload requires credentials for both stores, publish permission and the account owner's approval.
publishApproval: Always needs your approvalStore operation| Parameter | Type | Required | Description |
|---|---|---|---|
projectId | string | Yes | The project ID |
locales | string[] | Yes | Locales to upload |
dryRun | boolean | No | When true, returns a preview of the upload without sending anything to the store. |
Screenshots and graphics
generate_screenshot
Uses AI to create one marketing screenshot from a raw app screenshot and saves it to the project. It does not upload to a store. Uses plan allowance.
screenshotsApproval: Follows your approval policyUses plan allowance (AI)| Parameter | Type | Required | Description |
|---|---|---|---|
projectId | string | Yes | The project ID |
rawImageUrl | string | Yes | URL of the raw app screenshot |
headline | string | Yes | Marketing headline text (max 50 chars) |
subtitle | string | No | Optional supporting marketing text beneath the headline (keep short, about 55-60 chars max). |
styleSource | object | Yes | Style source - app category template, reference image, or custom style config |
anchorImageUrl | string | No | Optional: previously generated screenshot to use as style anchor |
provider | string | No | Optional image generation service. The default service is used when omitted.One of: gemini, kie |
model | string | No | Optional model identifier for the selected image service. |
resizeToSizes | string[] | No | Optional: resize to specific App Store sizesOne of: 6.9, 6.5, 6.3, 6.1, 5.5, ipad-13, ipad-12.9, ipad-11, watch-ultra-3, watch-ultra, watch-10, watch-7, watch-4, watch-3 |
generate_screenshot_set
Uses AI to create a set of marketing screenshots with a shared visual style from several raw app screenshots and saves them to the project. Runs as a background job and returns a job ID. It does not upload to a store. Uses plan allowance.
screenshotsApproval: Follows your approval policyUses plan allowance (AI)| Parameter | Type | Required | Description |
|---|---|---|---|
projectId | string | Yes | The project ID |
screenshots | object[] | Yes | Array of screenshots to generate (max 10) |
styleSource | object | Yes | Style source - category template, reference image, or custom style config |
deviceFrame | string | No | Device frame style. "iphone" (default): iPhone mockup. "android": Pixel-style mockup. "generic": brand-neutral device shape (works for both stores). "none": no device frame, just app UI on background.One of: iphone, android, generic, none |
provider | string | No | Optional image generation service. The default service is used when omitted.One of: gemini, kie |
model | string | No | Optional model identifier for the selected image service. |
resizeToSizes | string[] | No | Optional: resize to specific App Store sizesOne of: 6.9, 6.5, 6.3, 6.1, 5.5, ipad-13, ipad-12.9, ipad-11, watch-ultra-3, watch-ultra, watch-10, watch-7, watch-4, watch-3 |
generate_screenshots_from_plan
Uses AI to create a set of marketing screenshots from raw app screenshots, following a supplied headline and emphasis plan for each image, and saves them to the project. Runs as a background job and returns a job ID. It does not upload to a store. Uses plan allowance.
screenshotsApproval: Follows your approval policyUses plan allowance (AI)| Parameter | Type | Required | Description |
|---|---|---|---|
projectId | string | Yes | The project ID |
screenshots | object[] | Yes | Raw screenshots with headlines and optional enhancements (max 10) |
styleSource | object | Yes | Style source - category template, reference image, or custom style config |
appContext | object | No | Optional app context used as generation input |
deviceFrame | string | No | Device frame style. "iphone" (default): iPhone mockup. "android": Pixel-style mockup. "generic": brand-neutral device shape (works for both stores). "none": no device frame, just app UI on background.One of: iphone, android, generic, none |
provider | string | No | Optional image generation service. The default service is used when omitted.One of: gemini, kie |
model | string | No | Optional model identifier for the selected image service. |
resizeToSizes | string[] | No | Optional: resize to specific App Store sizesOne of: 6.9, 6.5, 6.3, 6.1, 5.5, ipad-13, ipad-12.9, ipad-11, watch-ultra-3, watch-ultra, watch-10, watch-7, watch-4, watch-3 |
get_screenshot_job_status
Returns the status and results of a screenshot generation job by job ID. It does not start or cancel work.
screenshotsApproval: Not needed (read-only)No usage charge| Parameter | Type | Required | Description |
|---|---|---|---|
jobId | string | Yes | The job ID returned by the screenshot generation tool |
translate_screenshots
Uses AI to create localized copies of a project's existing marketing screenshots with translated headline text for the chosen locales. Runs as a background job and returns a job ID. It does not upload to a store. Uses plan allowance.
translateApproval: Follows your approval policyUses plan allowance (AI)| Parameter | Type | Required | Description |
|---|---|---|---|
projectId | string | Yes | The project ID |
targetLocales | string[] | Yes | Target locales to translate to (e.g. ["de-DE", "fr-FR", "ja", "es-ES"]) |
displayTypes | string[] | No | Optional: specific display types to translate (e.g. ["APP_IPHONE_69"]). If omitted, translates all device sizes that have screenshots. |
screenshotIds | string[] | No | Optional: specific screenshot IDs to translate. If omitted, translates all screenshots in each set. |
translateInAppText | boolean | No | Whether to also translate visible in-app UI text within the screenshots (default: false) |
preserveInPhoneUI | boolean | No | If true, keep phone/app UI text exactly as-is and translate only marketing text outside the device. Overrides translateInAppText unless translationMode is ui_full. |
translateMarketingOnly | boolean | No | Alias for preserving in-phone UI while translating only the App Store marketing copy. |
translationInstructions | string | No | Optional custom guidance appended to the provider prompt, e.g. "Use short natural Spanish, avoid clipping, preserve phone UI." |
translationMode | string | No | Translation preset. literal = faithful translation, marketing_short = concise App Store copy, transcreate = natural localized rewrite, ui_full = translate marketing and in-app UI text.One of: literal, marketing_short, transcreate, ui_full |
textLengthPolicy | object | No | Optional text fit constraints for generated localized screenshots. |
provider | string | No | Optional image translation service. The default service is used when omitted.One of: kie, fal, openai |
model | string | No | Optional model identifier for the selected image service. |
perScreenshotInstructions | object | No | Optional screenshot-specific guidance keyed by screenshot id or 1-based screenshot number like "02". Values can be a string or an object with headline/subtitle/instructions/headlineMaxChars/subtitleMaxChars. |
translate_custom_page_screenshots
Uses AI to create localized copies of the screenshots on one Custom Product Page locale for other locales of that page. Runs as a background job and returns a job ID. It does not upload to a store. Uses plan allowance.
translateApproval: Follows your approval policyUses plan allowance (AI)| Parameter | Type | Required | Description |
|---|---|---|---|
projectId | string | Yes | The project ID |
pageId | string | Yes | The custom product page ID |
sourceLocale | string | Yes | Source CPP localization locale, e.g. "en-US". Screenshots are read from this locale. |
targetLocales | string[] | Yes | Target locales to generate translated screenshots for (e.g. ["de-DE", "fr-FR", "ja"]). |
displayTypes | string[] | No | Optional: specific App Store display types to translate (e.g. ["APP_IPHONE_69"]). If omitted, translates all display types attached to the source CPP localization. |
screenshotIds | string[] | No | Optional: specific CPP screenshot IDs to translate. If omitted, translates all screenshots matching the selected display types. |
translateInAppText | boolean | No | Whether to also translate visible in-app UI text within the screenshots (default: false). |
preserveInPhoneUI | boolean | No | If true, keep phone/app UI text exactly as-is and translate only marketing text outside the device. Overrides translateInAppText unless translationMode is ui_full. |
translateMarketingOnly | boolean | No | Alias for preserving in-phone UI while translating only the App Store marketing copy. |
translationInstructions | string | No | Optional custom guidance appended to the provider prompt, e.g. "Use short natural Spanish, avoid clipping, preserve phone UI." |
translationMode | string | No | Translation preset. literal = faithful translation, marketing_short = concise App Store copy, transcreate = natural localized rewrite, ui_full = translate marketing and in-app UI text.One of: literal, marketing_short, transcreate, ui_full |
textLengthPolicy | object | No | Optional text fit constraints for generated localized screenshots. |
provider | string | No | Optional image translation service. The default service is used when omitted.One of: kie, fal, openai |
model | string | No | Optional model identifier for the selected image service. |
perScreenshotInstructions | object | No | Optional screenshot-specific guidance keyed by CPP screenshot id or 1-based screenshot number like "02". Values can be a string or an object with headline/subtitle/instructions/headlineMaxChars/subtitleMaxChars. |
get_screenshot_translation_job_status
Returns the status and results of a screenshot translation job by job ID, including any continuation job. It does not start or cancel work.
screenshotsApproval: Not needed (read-only)No usage charge| Parameter | Type | Required | Description |
|---|---|---|---|
jobId | string | Yes | The screenshot translation job ID |
get_screenshots
Returns a project's saved screenshot sets with image URLs, headlines and translated locales, and displays them to the user in an image gallery. Image contents are not described in the result. It does not create, edit or publish images.
readApproval: Not needed (read-only)No usage charge| Parameter | Type | Required | Description |
|---|---|---|---|
projectId | string | Yes | The project ID |
displayType | string | No | Optional: specific display type to get (e.g. "APP_IPHONE_69"). If omitted, returns all display types. |
locale | string | No | Optional: get translated screenshots for this locale. If omitted, returns primary screenshots. |
includeTranslatedLocales | boolean | No | If true, also lists which locales have translated versions available (default: false) |
upload_screenshot_asset
Stores a raw app screenshot or style reference image in App Listing Agent and returns its URL for later screenshot work. The stored URL is publicly accessible. It does not generate artwork or publish to a store.
screenshotsApproval: Follows your approval policyNo usage charge| Parameter | Type | Required | Description |
|---|---|---|---|
projectId | string | Yes | The project ID |
filename | string | Yes | Filename to use in storage, e.g. "sl-snore-event-list.png". |
category | string | No | Storage category. Use raw for simulator captures, reference for existing style screenshots, temp for short-lived helper assets. Defaults to raw.One of: raw, reference, temp |
sourceUrl | string | No | Public URL to fetch and upload. Provide exactly one of sourceUrl, dataUrl, or imageDataBase64. |
dataUrl | string | No | Data URL in the form data:image/png;base64,... Provide exactly one of sourceUrl, dataUrl, or imageDataBase64. |
imageDataBase64 | string | No | Raw base64 image bytes. Provide contentType when using this field. Provide exactly one of sourceUrl, dataUrl, or imageDataBase64. |
contentType | string | No | Content type for imageDataBase64 inputs, defaults to image/png. |
edit_screenshot
Uses AI to change one saved screenshot as described (for example text, layout, colours, background or device frame), optionally guided by reference images, and replaces that screenshot in the project. It does not upload to a store. Uses plan allowance.
screenshotsApproval: Follows your approval policyUses plan allowance (AI)| Parameter | Type | Required | Description |
|---|---|---|---|
projectId | string | Yes | The project ID |
displayType | string | Yes | Display type (e.g. "APP_IPHONE_69") |
screenshotId | string | Yes | The screenshot ID within the set |
locale | string | No | Optional: locale of a translated screenshot to edit. If omitted, edits the primary screenshot. |
prompt | string | Yes | What to change — describe the edit in detail (e.g. "Fix the text overflow on the headline", "Make the background gradient darker", "Center the device mockup") |
referenceImageUrls | string[] | No | Optional: reference image URLs for the AI to use as context (e.g. the base language screenshot, a style reference, etc.) |
import_screenshots
Saves finished marketing screenshots as a project screenshot set for one device size. Image URLs are downloaded and stored; previously stored images are also accepted. It does not upload to a store.
screenshotsApproval: Follows your approval policyNo usage charge| Parameter | Type | Required | Description |
|---|---|---|---|
projectId | string | Yes | The project ID |
deviceSize | string | Yes | Target device size. iOS: 6.9 = iPhone 16 Pro Max (required), ipad-13 = iPad Pro M4. Apple Watch: watch-10 = 416×496 Series 10/11, watch-7 = 396×484, watch-4 = 368×448. Android: play-phone = 1080×1920, play-tablet = 1920×1200, play-feature-graphic = 1024×500 landscape banner.One of: 6.9, 6.5, 6.3, 6.1, 5.5, ipad-13, ipad-12.9, ipad-11, watch-ultra-3, watch-ultra, watch-10, watch-7, watch-4, watch-3, play-phone, play-tablet, play-feature-graphic |
screenshots | object[] | Yes | Array of screenshots to import, in display order |
generate_feature_graphic
Uses AI to create a 1024×500 Google Play feature graphic for an Android project from a headline and app details, and saves it to the project. It does not upload to Google Play. Uses plan allowance.
screenshotsApproval: Follows your approval policyUses plan allowance (AI)| Parameter | Type | Required | Description |
|---|---|---|---|
projectId | string | Yes | The project ID of an Android project |
headline | string | Yes | Main marketing headline/tagline for the banner (short, punchy, max ~50 chars) |
rawImageUrl | string | No | Optional: URL of a raw app screenshot to incorporate as a visual element in the banner. If omitted, generates a standalone branded graphic. |
locale | string | No | Target locale (default: project primary locale) |
appName | string | No | App name for branding (auto-detected from project if omitted) |
appDescription | string | No | Short app description for context (auto-detected from project if omitted) |
styleSource | object | Yes | Style source: { type: "category", category: "..." } or { type: "reference", referenceImageUrl: "..." } or { type: "custom", style: { gradientColors: { primary, secondary }, fontStyle, styleDescription, decorativeElements? } } |
import_google_play_graphics
Copies an Android project's existing phone screenshots, tablet screenshots and feature graphic from Google Play into App Listing Agent. It does not change the Google Play listing.
screenshotsApproval: Follows your approval policyNo usage charge| Parameter | Type | Required | Description |
|---|---|---|---|
projectId | string | Yes | The Android project ID |
displayTypes | string[] | No | Which image types to pull. Defaults to all types if not specified.One of: PLAY_PHONE, PLAY_TABLET, PLAY_FEATURE_GRAPHIC |
locales | string[] | No | Optional: specific locales to pull. Defaults to all locales with images. |
suggest_headlines
Uses AI to suggest marketing headline text for an existing screenshot based on the app's listing. It does not create or change an image. Uses plan allowance.
screenshotsApproval: Follows your approval policyUses plan allowance (AI)| Parameter | Type | Required | Description |
|---|---|---|---|
projectId | string | Yes | The project ID |
screenshotUrl | string | Yes | URL of the screenshot to analyze |
appMetadata | object | Yes | App metadata for context |
appCategory | string | No | Optional app categoryOne of: kids, productivity, fitness, social, finance, utility, entertainment, education, lifestyle, health |
numberOfSuggestions | number | No |
Utilities
list_locales
Lists the locale codes supported by the App Store or Google Play.
readApproval: Not needed (read-only)No usage charge| Parameter | Type | Required | Description |
|---|---|---|---|
store | string | Yes | Which store to list locales forOne of: appstore, playstore |
check_project_configuration
Checks whether a project has the store identifiers, credentials and base listing fields needed for store operations, and lists anything missing. It does not change the project.
readApproval: Not needed (read-only)No usage charge| Parameter | Type | Required | Description |
|---|---|---|---|
projectId | string | Yes | The project ID to validate |
Icons
generate_icon
Uses AI to create an app icon from a description, the app's listing, a reference image or its current App Store icon, and saves iOS and Android sizes to the project. It does not upload to a store. Uses plan allowance.
screenshotsApproval: Follows your approval policyUses plan allowance (AI)| Parameter | Type | Required | Description |
|---|---|---|---|
projectId | string | Yes | The project ID |
source | object | Yes | Icon source - prompt, app metadata, reference image, or App Store app ID |
style | string | No | Icon style (flat, 3d, minimalist, cute, gradient)One of: flat, 3d, minimalist, gradient, cute, mascot, glassmorphism, neon, duotone, clay, watercolor, sketch, pixel, isometric, metallic, geometric, line, retro |
colors | object | No | |
background | string | No | Background styleOne of: solid, gradient |
generate_icon_variations
Uses AI to create four style variations (flat, 3D, minimalist, gradient) of an app icon concept and saves them to the project. It does not upload to a store. Uses plan allowance.
screenshotsApproval: Follows your approval policyUses plan allowance (AI)| Parameter | Type | Required | Description |
|---|---|---|---|
projectId | string | Yes | The project ID |
prompt | string | Yes | Prompt describing the icon concept (10-500 chars) |
colors | object | No |
import_app_store_icon
Copies an app's current icon from its public App Store page and returns iOS (1024×1024) and Android (512×512) versions. It does not create new artwork.
writeApproval: Follows your approval policyNo usage charge| Parameter | Type | Required | Description |
|---|---|---|---|
projectId | string | Yes | The project ID |
appId | string | Yes | Numeric App Store app ID |
resize_icon
Creates iOS (1024×1024) and Android (512×512) versions of an existing icon image and returns their URLs. It does not create new artwork.
screenshotsApproval: Follows your approval policyNo usage charge| Parameter | Type | Required | Description |
|---|---|---|---|
projectId | string | Yes | The project ID |
imageUrl | string | Yes | URL of the icon image to resize |
Legal documents
update_legal_document
Publishes or replaces the app's hosted privacy policy or terms of service at a public URL. This is a public change, not a draft: it requires publish permission and the account owner's approval of the exact text in App Listing Agent. It does not update App Store Connect.
publishApproval: Always needs your approvalNo usage charge| Parameter | Type | Required | Description |
|---|---|---|---|
projectId | string | Yes | The project ID |
type | string | Yes | Type of legal documentOne of: privacy_policy, terms_of_service |
content | string | Yes | Markdown content of the legal document |
read_legal_documents
Returns the project's privacy policy and terms of service, whether each is published, and their public URLs.
readApproval: Not needed (read-only)No usage charge| Parameter | Type | Required | Description |
|---|---|---|---|
projectId | string | Yes | The project ID |
set_app_store_privacy_policy_url
Sets the App Store Connect privacy policy URL, for every localization, to the app's already published hosted privacy policy. Requires a linked App Store app, store credentials, publish permission and the account owner's approval. Terms of service are not supported.
publishApproval: Always needs your approvalStore operation| Parameter | Type | Required | Description |
|---|---|---|---|
projectId | string | Yes | The project ID |
type | string | No | Which legal document to push. Only privacy_policy is supported.One of: privacy_policy |
Custom product pages and custom store listings
list_custom_product_pages
Lists a project's iOS Custom Product Pages saved in App Listing Agent, with their locales and screenshots.
readApproval: Not needed (read-only)No usage charge| Parameter | Type | Required | Description |
|---|---|---|---|
projectId | string | Yes | The project ID |
create_custom_product_page
Creates a draft iOS Custom Product Page in App Listing Agent. It is not created in App Store Connect until the pages are synced.
writeApproval: Follows your approval policyNo usage charge| Parameter | Type | Required | Description |
|---|---|---|---|
projectId | string | Yes | The project ID |
name | string | Yes | Reference name for the custom product page (max 64 chars) |
localizations | object[] | No | Optional initial localizations |
update_custom_product_page
Renames a draft iOS Custom Product Page in App Listing Agent.
writeApproval: Follows your approval policyNo usage charge| Parameter | Type | Required | Description |
|---|---|---|---|
projectId | string | Yes | The project ID |
pageId | string | Yes | The custom product page ID |
name | string | No | New reference name (max 64 chars) |
update_custom_product_page_localization
Creates or updates the promotional text for one locale of a draft iOS Custom Product Page in App Listing Agent.
writeApproval: Follows your approval policyNo usage charge| Parameter | Type | Required | Description |
|---|---|---|---|
projectId | string | Yes | The project ID |
pageId | string | Yes | The custom product page ID |
locale | string | Yes | Locale code (e.g., en-US) |
promotionalText | string | No | Promotional text (max 170 chars) |
sync_custom_product_pages
Transfers iOS Custom Product Pages between App Listing Agent and App Store Connect. direction=pull imports pages from App Store Connect. direction=push creates or updates pages, localizations and screenshots in App Store Connect; confirmed=false returns a preview, and a live push requires the account owner's approval. A screenshot push makes each page's screenshots match the local draft, removing ones that are not in it.
publishApproval: Always needs your approvalStore operation| Parameter | Type | Required | Description |
|---|---|---|---|
projectId | string | Yes | The project ID |
direction | string | Yes | Pull from or push to App Store ConnectOne of: pull, push |
pageIds | string[] | No | Optional custom product page IDs to push |
locales | string[] | No | Optional locale codes to push for each page (useful for chunking large localized CPP screenshot pushes) |
pushAll | boolean | No | Push all pending local CPP changes (default behavior when no pageIds are provided) |
force | boolean | No | Push all CPP pages even when marked synced |
confirmed | boolean | No | Required for push direction to mutate ASC. Set false to preview. |
add_custom_product_page_screenshot
Adds an already stored image to one locale of a draft iOS Custom Product Page. It is not sent to App Store Connect until the pages are synced.
screenshotsApproval: Follows your approval policyNo usage charge| Parameter | Type | Required | Description |
|---|---|---|---|
projectId | string | Yes | The project ID |
pageId | string | Yes | The custom product page ID |
locale | string | Yes | Locale code |
displayType | string | Yes | Screenshot display type (e.g., APP_IPHONE_69) |
imageUrl | string | Yes | Public URL of the uploaded image |
imageKey | string | No | Optional App Listing Agent storage key |
fileName | string | Yes | Original file name |
fileSize | number | No | Optional file size in bytes |
list_custom_store_listings
Lists a project's Android Custom Store Listings saved in App Listing Agent, with their targeting, locales and assets.
readApproval: Not needed (read-only)No usage charge| Parameter | Type | Required | Description |
|---|---|---|---|
projectId | string | Yes | The project ID |
create_custom_store_listing
Creates a draft Android Custom Store Listing in App Listing Agent. It is not created in Google Play until the listings are synced.
writeApproval: Follows your approval policyNo usage charge| Parameter | Type | Required | Description |
|---|---|---|---|
projectId | string | Yes | The project ID |
name | string | Yes | Internal name for the listing |
targetingType | string | No | Targeting typeOne of: COUNTRY, PRE_REGISTRATION, INSTALL_STATE |
targetingCountries | string[] | No | Country codes for COUNTRY targeting |
localizations | object[] | No | Optional initial localizations |
update_custom_store_listing
Changes the name or country targeting of a draft Android Custom Store Listing in App Listing Agent.
writeApproval: Follows your approval policyNo usage charge| Parameter | Type | Required | Description |
|---|---|---|---|
projectId | string | Yes | The project ID |
listingId | string | Yes | The custom store listing ID |
name | string | No | New internal name |
targetingType | string | No | Targeting typeOne of: COUNTRY, PRE_REGISTRATION, INSTALL_STATE |
targetingCountries | string[] | No | Country codes |
update_custom_store_listing_localization
Updates the title, short description or full description for one locale of a draft Android Custom Store Listing in App Listing Agent.
writeApproval: Follows your approval policyNo usage charge| Parameter | Type | Required | Description |
|---|---|---|---|
projectId | string | Yes | The project ID |
listingId | string | Yes | The custom store listing ID |
locale | string | Yes | Locale code |
title | string | No | Title (max 30 chars) |
shortDescription | string | No | Short description (max 80 chars) |
fullDescription | string | No | Full description (max 4000 chars) |
sync_custom_store_listings
Transfers Android Custom Store Listings between App Listing Agent and Google Play. direction=pull imports listings from Google Play. direction=push with confirmed=true sends local changes to Google Play and requires the account owner's approval.
publishApproval: Always needs your approvalStore operation| Parameter | Type | Required | Description |
|---|---|---|---|
projectId | string | Yes | The project ID |
direction | string | Yes | Pull from or push to Play StoreOne of: pull, push |
confirmed | boolean | No | Required for push direction. Set to true to confirm push. |
add_custom_store_listing_screenshot
Adds an already stored screenshot to one locale of a draft Android Custom Store Listing. It is not sent to Google Play until the listings are synced.
screenshotsApproval: Follows your approval policyNo usage charge| Parameter | Type | Required | Description |
|---|---|---|---|
projectId | string | Yes | The project ID |
listingId | string | Yes | The custom store listing ID |
locale | string | Yes | Locale code |
imageType | string | Yes | Screenshot typeOne of: phone, 7inch, 10inch |
imageUrl | string | Yes | Public URL of the uploaded image |
imageKey | string | Yes | App Listing Agent storage key |
fileName | string | Yes | Original file name |
fileSize | number | Yes | File size in bytes |
set_custom_store_listing_icon
Sets an already stored icon on one locale of a draft Android Custom Store Listing. It is not sent to Google Play until the listings are synced.
screenshotsApproval: Follows your approval policyNo usage charge| Parameter | Type | Required | Description |
|---|---|---|---|
projectId | string | Yes | The project ID |
listingId | string | Yes | The custom store listing ID |
locale | string | Yes | Locale code |
imageUrl | string | Yes | Public URL of the uploaded icon |
imageKey | string | Yes | App Listing Agent storage key |
set_custom_store_listing_feature_graphic
Sets an already stored feature graphic on one locale of a draft Android Custom Store Listing. It is not sent to Google Play until the listings are synced.
screenshotsApproval: Follows your approval policyNo usage charge| Parameter | Type | Required | Description |
|---|---|---|---|
projectId | string | Yes | The project ID |
listingId | string | Yes | The custom store listing ID |
locale | string | Yes | Locale code |
imageUrl | string | Yes | Public URL of the uploaded feature graphic |
imageKey | string | Yes | App Listing Agent storage key |
Campaign text
write_custom_page_text
Uses AI to write promotional text for an iOS Custom Product Page, or title and descriptions for an Android Custom Store Listing, and returns it. It does not create images or publish to a store. Uses plan allowance.
writeApproval: Follows your approval policyUses plan allowance (AI)| Parameter | Type | Required | Description |
|---|---|---|---|
projectId | string | Yes | The project ID |
pageId | string | Yes | The custom page or listing ID |
locale | string | Yes | Target locale for content generation |
targetAudience | string | No | Description of the target audience (e.g., "fitness beginners", "power users") |
keywords | string[] | No | Keywords to emphasize in the generated content |
tone | string | No | Writing toneOne of: professional, casual, urgent, playful, informative |
translate_custom_page_text
Uses AI to translate a Custom Product Page or Custom Store Listing's text from a source locale into target locales. With apply=true it saves the translations to those draft locales. It does not publish to a store. Uses plan allowance.
translateApproval: Follows your approval policyUses plan allowance (AI)| Parameter | Type | Required | Description |
|---|---|---|---|
projectId | string | Yes | The project ID |
pageId | string | Yes | The custom page or listing ID |
sourceLocale | string | Yes | Source locale to translate from |
targetLocales | string[] | Yes | Target locales to translate to |
apply | boolean | No | If true, saves the translations to the draft locales. Default false. |