Reference
search_app_listing
Find the user’s app on the App Store so a saved project carries its real identity.
What it does
- Read-only
- Idempotent
- Open world
- Account required
Stop typing what Apple already published. Search by app or developer name and each result comes back with the app’s exact name, its seller, its icon, its bundle ID and its numeric app ID, plus the App Store Connect languages and the iPhone devices ShotOps would apply if you linked it. Hand the chosen result’s app ID to save_project as appListing and the project it creates is the real app rather than a guess. Read-only: it renders nothing, writes nothing and changes no project.
You can ask: “Find the Tidebook app so the project carries its real name and languages.”
Open-world because the answer comes from Apple, not from ShotOps: the same term can return something different tomorrow, so the result is not a thing to cache.
Finding a public listing proves nothing about who owns the app. The bundle ID on the project stays freely editable, and a store release verifies ownership separately.
Input
termstringrequiredat least 1 characterat most 200 charactersWhat to search the App Store for — the app name as the user said it ("Duolingo"), or the developer's name. Each result carries the app ID to pass as save_project's
appListing.countrystringoptionalpattern ^[A-Za-z]{2}$The two-letter App Store storefront to search, e.g. "dk". Defaults to "us". An app released in one country only is invisible to a search of any other, so pass the user's own storefront when they say the app is not showing up.
Result
okbooleanoptionalresultsarrayoptionaleach item
object
appIdstringrequiredApple’s numeric app ID, as a string. Pass it as save_project’s
appListing.bundleIdstringrequirednamestringrequiredsellerstringrequiredstoreUrlstringoptionalThe listing’s own App Store page. Carries the storefront, so it is the reference to reuse for a non-US app.
iconUrlstringoptionalThe app icon on Apple’s CDN. Shown as project chrome; never downloaded and never rendered into a strip.
localesarrayrequiredThe App Store Connect locales this listing’s languages map to, in catalog order.
each item
string
baseLocalestringrequiredThe caption base the other locales inherit from. Derived — Apple never says which language is primary.
outputsarrayrequiredThe ShotOps output devices this listing fills. iPhone only, and EMPTY for an iPad-only app.
each item
string
supportsIpadbooleanrequiredThe listing supports iPad. Recorded, and applied to no output until iPad panels ship.
storefrontstringrequiredThe two-letter storefront this was read from. It decides
baseLocale.droppedLanguageCodesarrayoptionalApple language codes this build maps no App Store Connect locale for. Omitted when nothing was dropped.
each item
string
messagestringoptional
Example
That request maps to this call:
{
"name": "search_app_listing",
"arguments": {
"term": "Tidebook tide forecast"
}
}Up to ten matching apps. Each carries appId, bundleId, name, seller, iconUrl, storeUrl, and the locales, baseLocale and outputs linking it would apply. Let the user pick — the icon and the seller are what prove which app is theirs.
Access and cost
- Needs an account, on both doors. An unsigned local server has no way to reach the App Store and says so.
- Free and unmetered. Searching spends no cloud credits.
- Apple’s public listing data only — the same page anyone can open. No Apple or App Store Connect credential is involved.
When it refuses
- The user’s app does not come back.
- An app released in one country is invisible to a search of any other. Pass
countrywith their two-letter storefront, or ask them for the App Store link and hand that straight to save_project’sappListing. - Several results look alike.
- Do not guess. Show the names, sellers and icons and let the user say which one is theirs — linking the wrong app puts the wrong bundle ID and the wrong language list on the project.
- The reply says the App Store is rate-limiting or unreachable.
- Apple throttles lookups per server. Wait a moment and try again; nothing was saved or changed, and the user can still name the project themselves.
Where this fits
What the agent is told
The title and description the server publishes on tools/list — this is the copy a model chooses between, reproduced verbatim.
Find an app on the App Store
Find the user’s app on the App Store so the project you save carries its real identity instead of a name you typed: search by app or developer name and every result comes back with the app’s exact name, its seller, its icon, its bundle ID and its numeric app ID, plus the App Store Connect languages and the iPhone device set ShotOps would apply. Let the USER confirm which one is theirs — the icon and the seller name are what prove it — then pass that result’s `appId` (or `storeUrl`) as `appListing` on save_project. Pass `country` to search another storefront; an app released in one country is invisible to a search of any other. Free and unmetered: it renders nothing, saves nothing and changes no project. Finding a public listing proves nothing about who owns the app, and no Apple or store credential is involved. Needs an account.