Apple App Store Search
Search app listings from the Apple App Store through Frevana.
Purpose
This skill is for searching Apple App Store app listings.
Inputs:
term (or --q / --query)
- optional
country (default: us)
- optional
lang (default: en-us)
- optional
num (1 to 200, default: 10)
- optional
page (0-indexed, default: 0)
- optional
disallow_explicit (boolean)
- optional
property (e.g. developer)
- optional
category_id (numeric genre ID, e.g. 6014 for Games)
- optional
device (desktop | tablet | mobile, default: desktop)
- optional
output; defaults to ./out/apple-app-store-search-<timestamp>-<pid>.json
- optional SerpAPI flags:
serpapi_output (json | html), no_cache, async, zero_trace
Output:
- validated response JSON with Apple App Store search results
- the same validated JSON saved to a local file on every successful run
This skill validates that the response is JSON, saves it to disk, and returns it unchanged on stdout. Do not rewrite or reshape the returned data unless the user explicitly asks for a transformation.
What This Skill Needs
- user-provided
term
- optional
country, lang, num, page, disallow_explicit, property, category_id, device
FREVANA_TOKEN in the environment variables, or an explicit --token override for the current run
curl
bash
python3
Execution Order
Use this flow so the request stays simple and reliable:
- Confirm the user has provided
term.
- Prefer the script over ad hoc
curl commands.
- Let the script read
FREVANA_TOKEN first.
- In interactive shell usage, if
FREVANA_TOKEN is missing, the script may prompt for it.
- In non-interactive or agent workflows, fail fast if the token is missing and tell the user to set
FREVANA_TOKEN or pass --token explicitly.
- Run the script once. It prints the validated JSON to stdout and saves the same JSON to a file.
- Use the saved JSON file for any follow-up parsing or summarization instead of calling the search API again.
- Return the validated response JSON, or summarize the search results if the user does not need the full payload.
Commands
Basic search
bash <skill-path>/scripts/search_apple_app_store.sh \
--term "instagram"
Aliases --query and --q are accepted for --term.
Search with region, language, category, and device
bash <skill-path>/scripts/search_apple_app_store.sh \
--term "games" \
--country us \
--lang en-us \
--category-id 6014 \
--num 20 \
--page 0 \
--device mobile
Search by developer name
bash <skill-path>/scripts/search_apple_app_store.sh \
--term "Apple" \
--property developer
Save response JSON to a specific file
bash <skill-path>/scripts/search_apple_app_store.sh \
--term "instagram" \
--output ./out/my-apple-search.json
Token override for the current run
bash <skill-path>/scripts/search_apple_app_store.sh \
--term "instagram" \
--token "your bearer token"
Fixed Request Shape
The script sends this payload shape, omitting optional fields that were not provided:
{
"term": "instagram",
"country": "us",
"lang": "en-us",
"num": 10,
"page": 0,
"disallow_explicit": false,
"property": "developer",
"category_id": 6014,
"device": "desktop"
}
Only term is required. Do not invent optional parameter values when the user did not provide them.
Response Shape
The API returns JSON. Common sections include:
search_metadata
search_parameters
organic_results
Output
- Success: the script validates that the response body is JSON, writes it to a file, prints the saved path to stderr, and prints the JSON to stdout
- Default file path:
./out/apple-app-store-search-<timestamp>-<pid>.json
- With
--output: the same JSON is written to the specified file path instead of the default path
- Failure: the script prints the response body or parsing error and exits non-zero
Notes
- Require
--term (or --q/--query)
--num must be an integer from 1 to 200
--page is 0-indexed (>= 0)
--device must be desktop, tablet, or mobile
- If
curl is missing, stop and tell the user to install curl
- If
python3 is missing, stop and tell the user to install python3
- Do not echo the Bearer token back to the user
- Summarize search results instead of dumping raw JSON unless the user asks for the full payload
Example Prompts
中文
- "搜索 Apple App Store 上的 instagram"
- "查一下 App Store 开发者 Apple 的应用, country=us,lang=en-us"
- "搜索 App Store 中的游戏应用,category_id=6014,移动端结果"
English
- "Search Apple App Store for instagram"
- "Look up App Store apps by developer Apple in country=us, lang=en-us"
- "Search App Store games category 6014 on mobile device"
1---2name: apple-app-store-search3description: Use when the user wants Apple App Store search results through Frevana, including searching apps by query term, developer, category, country, language, device type, or pagination.4---56# Apple App Store Search78Search app listings from the Apple App Store through Frevana.910## Purpose1112This skill is for **searching Apple App Store app listings**.1314Inputs:1516- `term` (or `--q` / `--query`)17- optional `country` (default: `us`)18- optional `lang` (default: `en-us`)19- optional `num` (1 to 200, default: 10)20- optional `page` (0-indexed, default: 0)21- optional `disallow_explicit` (boolean)22- optional `property` (e.g. `developer`)23- optional `category_id` (numeric genre ID, e.g. 6014 for Games)24- optional `device` (`desktop` | `tablet` | `mobile`, default: `desktop`)25- optional `output`; defaults to `./out/apple-app-store-search-<timestamp>-<pid>.json`26- optional SerpAPI flags: `serpapi_output` (`json` | `html`), `no_cache`, `async`, `zero_trace`2728Output:2930- validated response JSON with Apple App Store search results31- the same validated JSON saved to a local file on every successful run3233This skill validates that the response is JSON, saves it to disk, and returns it unchanged on stdout. Do **not** rewrite or reshape the returned data unless the user explicitly asks for a transformation.3435## What This Skill Needs3637- user-provided `term`38- optional `country`, `lang`, `num`, `page`, `disallow_explicit`, `property`, `category_id`, `device`39- `FREVANA_TOKEN` in the environment variables, or an explicit `--token` override for the current run40- `curl`41- `bash`42- `python3`4344## Execution Order4546Use this flow so the request stays simple and reliable:47481. Confirm the user has provided `term`.492. Prefer the script over ad hoc `curl` commands.503. Let the script read `FREVANA_TOKEN` first.514. In interactive shell usage, if `FREVANA_TOKEN` is missing, the script may prompt for it.525. In non-interactive or agent workflows, fail fast if the token is missing and tell the user to set `FREVANA_TOKEN` or pass `--token` explicitly.536. Run the script once. It prints the validated JSON to stdout and saves the same JSON to a file.547. Use the saved JSON file for any follow-up parsing or summarization instead of calling the search API again.558. Return the validated response JSON, or summarize the search results if the user does not need the full payload.5657## Commands5859### Basic search6061```bash62bash <skill-path>/scripts/search_apple_app_store.sh \63 --term "instagram"64```6566Aliases `--query` and `--q` are accepted for `--term`.6768### Search with region, language, category, and device6970```bash71bash <skill-path>/scripts/search_apple_app_store.sh \72 --term "games" \73 --country us \74 --lang en-us \75 --category-id 6014 \76 --num 20 \77 --page 0 \78 --device mobile79```8081### Search by developer name8283```bash84bash <skill-path>/scripts/search_apple_app_store.sh \85 --term "Apple" \86 --property developer87```8889### Save response JSON to a specific file9091```bash92bash <skill-path>/scripts/search_apple_app_store.sh \93 --term "instagram" \94 --output ./out/my-apple-search.json95```9697### Token override for the current run9899```bash100bash <skill-path>/scripts/search_apple_app_store.sh \101 --term "instagram" \102 --token "your bearer token"103```104105## Fixed Request Shape106107The script sends this payload shape, omitting optional fields that were not provided:108109```json110{111 "term": "instagram",112 "country": "us",113 "lang": "en-us",114 "num": 10,115 "page": 0,116 "disallow_explicit": false,117 "property": "developer",118 "category_id": 6014,119 "device": "desktop"120}121```122123Only `term` is required. Do not invent optional parameter values when the user did not provide them.124125## Response Shape126127The API returns JSON. Common sections include:128129- `search_metadata`130- `search_parameters`131- `organic_results`132133## Output134135- Success: the script validates that the response body is JSON, writes it to a file, prints the saved path to stderr, and prints the JSON to stdout136- Default file path: `./out/apple-app-store-search-<timestamp>-<pid>.json`137- With `--output`: the same JSON is written to the specified file path instead of the default path138- Failure: the script prints the response body or parsing error and exits non-zero139140## Notes141142- Require `--term` (or `--q`/`--query`)143- `--num` must be an integer from 1 to 200144- `--page` is 0-indexed (`>= 0`)145- `--device` must be `desktop`, `tablet`, or `mobile`146- If `curl` is missing, stop and tell the user to install `curl`147- If `python3` is missing, stop and tell the user to install `python3`148- Do not echo the Bearer token back to the user149- Summarize search results instead of dumping raw JSON unless the user asks for the full payload150151## Example Prompts152153### 中文154155- "搜索 Apple App Store 上的 instagram"156- "查一下 App Store 开发者 Apple 的应用, country=us,lang=en-us"157- "搜索 App Store 中的游戏应用,category_id=6014,移动端结果"158159### English160161- "Search Apple App Store for instagram"162- "Look up App Store apps by developer Apple in country=us, lang=en-us"163- "Search App Store games category 6014 on mobile device"