{"openapi":"3.1.0","info":{"title":"Apple App Store Search \u0026 Reviews","version":"1.0.0","description":"![x402 Atlas](data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0OCIgaGVpZ2h0PSI0OCIgdmlld0JveD0iMCAwIDQ4IDQ4IiBmaWxsPSJub25lIj48ZyBzdHJva2U9IiMxRTQwQUYiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCI+PHBhdGggZD0iTTI0IDdWMjhNMjQgMjhMOCA0Mk0yNCAyOEw0MCA0MiIgc3Ryb2tlLXdpZHRoPSIyLjEiLz48cGF0aCBkPSJNMjQgN0w4IDQyTTI0IDdMNDAgNDJNMTUgMjhIMzMiIHN0cm9rZS13aWR0aD0iMi43Ii8+PC9nPjxnIGZpbGw9IiMxRTQwQUYiPjxjaXJjbGUgY3g9IjgiIGN5PSI0MiIgcj0iMy4yIi8+PGNpcmNsZSBjeD0iNDAiIGN5PSI0MiIgcj0iMy4yIi8+PGNpcmNsZSBjeD0iMTUiIGN5PSIyOCIgcj0iMy4yIi8+PGNpcmNsZSBjeD0iMzMiIGN5PSIyOCIgcj0iMy4yIi8+PGNpcmNsZSBjeD0iMjQiIGN5PSIyOCIgcj0iMi45Ii8+PC9nPjxjaXJjbGUgY3g9IjI0IiBjeT0iNyIgcj0iNC4yIiBmaWxsPSIjMTRCOEE2Ii8+PC9zdmc+)\n\n**Apple App Store Search \u0026 Reviews** is an independently documented x402 Atlas bridge at https://appstore.use.x402atlas.com.\nThis document describes only this bridge; it does not aggregate routes, schemas,\nor content from any other bridge.\n\n## How payment works\n\nPaid operations use the [x402 payment protocol](https://x402.org) and settle in\nUSDC. Atlas supports deployments on Base, Polygon, and Arbitrum, plus configured\nSolana networks. This bridge currently advertises Arbitrum One (`eip155:42161`), Base (`eip155:8453`), Polygon (`eip155:137`), Solana mainnet (`solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp`).\n\n1. Send the HTTP request without a payment signature.\n2. Read the `402 Payment Required` response. Its `accepts` entries are the\n   authoritative network, asset, amount, and recipient options for that call.\n3. Select an option, sign it with an x402-compatible wallet or SDK, and repeat\n   the request with the `PAYMENT-SIGNATURE` header. The successful response is\n   returned after verification and settlement.\n\nTypeScript clients can automate the challenge, signing, and retry flow with\n[`x402-fetch`](https://www.npmjs.com/package/x402-fetch) or\n[`x402-axios`](https://www.npmjs.com/package/x402-axios). Fund a dedicated\nwallet only with the working USDC balance it needs and keep that key separate\nfrom treasury accounts.\n\n## Pricing\n\nAtlas route prices start at $0.005 per successful call. This bridge's fallback\nprice is $0.005; operations below state their exact configured price in\n`x-x402` and `x-payment-info`. The live `402` challenge remains authoritative.\n\n## Worked payment example\n\nRequest one documented operation without a signature to inspect its live terms:\n\n```bash\ncurl -i 'https://appstore.use.x402atlas.com/product?country=us\u0026product_id=1069513131'\n# HTTP/1.1 402 Payment Required\n# Read accepts[].network, asset, amount, and payTo from this response.\n```\n\nSign one accepted option and repeat the identical request with the\n`PAYMENT-SIGNATURE` header. Do not invent or cache payment terms; read them from\nthe current challenge.\n\n## Use this API\n\n- Interactive reference: https://appstore.use.x402atlas.com/docs\n- OpenAPI 3.1 specification: https://appstore.use.x402atlas.com/openapi.json\n- Agent-readable route corpus: https://appstore.use.x402atlas.com/llms.txt\n- Endpoint index: https://appstore.use.x402atlas.com/index.json\n\nUse the operation schemas and examples below to construct requests. Copy the\nserver URL, path, method, parameters, and request body from the operation you\nwant to call. Path and query examples are concrete and can be used directly.\n\n## Atlas response metadata\n\nSuccessful JSON responses include an additive top-level `_atlas` block, kept\nseparate from the bridge's data fields. `_atlas.docs` links this bridge's\n`/llms.txt` corpus. `_atlas.related` suggests adjacent APIs, each with a callable\n`url`, its own `docs` link, and a short `summary`. Suppress this block by sending\n`X-Atlas-Meta: none` or by adding `?_atlas=0` to the request.\n\n## Errors and compatibility\n\nValidation failures use HTTP `400`. Paid operations may return `402` before\ndispatch. Upstream and internal failures use the documented `5xx` responses.\nClients should rely on documented fields and tolerate additive response fields,\nincluding `_atlas` unless they explicitly opt out.\n\n## Protocol reference\n\n- x402 protocol and SDKs: https://x402.org","x-guidance":"Use the operation schemas and examples to construct requests. Paid operations return an HTTP 402 challenge with the authoritative payment terms."},"servers":[{"url":"https://appstore.use.x402atlas.com"}],"tags":[{"name":"Apple App Store Search \u0026 Reviews"}],"paths":{"/product":{"get":{"description":"Apple App Store product details: pass a numeric `product_id` (required — an app's App Store id, e.g. `1069513131`, from `/search`) to pull its full profile. Returns `{ queried_at, product }`, where `product` carries `id`, `title`, `snippet`, `developer`, `rating`, `rating_count`, `price`, `age_rating`, `logo`, `description`, `iphone_screenshots`, `ipad_screenshots`, `version_history` (release notes \u0026 dates) and `information` (seller, size, category, copyright). Optional `country` (two-letter, default `us`). An unknown `product_id` still returns `200` with a `note` hint (the lookup ran, so the request is billed).\n\n**Price:** $0.02 per call.","operationId":"appstore_GET_product","parameters":[{"name":"country","in":"query","description":"Optional two-letter store country (e.g. us, gb)","schema":{"description":"Optional two-letter store country (e.g. us, gb)","maxLength":2,"type":"string"},"example":"us"},{"name":"product_id","in":"query","required":true,"description":"Numeric App Store app id (from /appstore/search)","schema":{"description":"Numeric App Store app id (from /appstore/search)","maxLength":32,"pattern":"^[0-9]+$","type":"string"},"example":"1069513131"}],"responses":{"200":{"description":"Success.","content":{"application/json":{"schema":{"properties":{"product":{"properties":{"age_rating":{"type":"string"},"description":{"type":"string"},"developer":{"properties":{"id":{"type":"integer"},"link":{"type":"string"},"name":{"type":"string"}},"type":"object"},"id":{"type":"string"},"information":{"properties":{"age_rating":{"type":"string"},"category":{"type":"string"},"copyright":{"type":"string"},"seller":{"type":"string"},"size":{"type":"string"}},"type":"object"},"ipad_screenshots":{"items":{"type":"string"},"type":"array"},"iphone_screenshots":{"items":{"type":"string"},"type":"array"},"logo":{"type":"string"},"price":{"type":"string"},"rating":{"type":"number"},"rating_count":{"type":"string"},"snippet":{"type":"string"},"title":{"type":"string"},"version_history":{"items":{"properties":{"release_date":{"type":"string"},"release_notes":{"type":"string"},"release_version":{"type":"string"}},"type":"object"},"type":"array"}},"type":"object"},"queried_at":{"format":"date-time","type":"string"}},"required":["queried_at","product"],"type":"object"},"example":{"product":{"age_rating":"12+","developer":{"name":"Grailr LLC"},"id":"1069513131","price":"Free","rating":4.8,"rating_count":"51K Ratings","title":"CARROT Weather: Alerts \u0026 Radar"},"queried_at":"2026-07-11T12:00:00Z"}}}},"400":{"description":"Validation error — the request was rejected before the handler ran.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment required. The response carries an x402 payment challenge.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentRequired"}}}},"500":{"description":"Unexpected internal error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"security":[{"x402Payment":[]}],"summary":"Apple App Store product details — full profile for a single app by product_id: rating, price, description, version history, screenshots \u0026 metadata as clean JSON.","tags":["Apple App Store Search \u0026 Reviews"],"x-payment-info":{"price":{"amount":"0.02","currency":"USD","mode":"fixed"},"protocols":[{"x402":{}}]},"x-x402":{"discoverable":true,"enabled":true,"paid":true,"price":"$0.02","service_name":"Apple App Store Search \u0026 Reviews"}}},"/reviews":{"get":{"description":"Apple App Store reviews: pass a numeric `product_id` (required — an app's App Store id, e.g. `1069513131`, from `/search`) to pull its reviews. Returns `{ product_id, queried_at, info, reviews }`, where `info` carries `total_page_count`, `results_count` and `reviews_for_current_version`, and each review has `id`, `title`, `text`, `rating`, `review_date`, `reviewed_version`, `author` and `helpfulness_vote_information`. Page through with `page` (use `info.total_page_count`). Optional `sort` (`mostrecent` default, `mosthelpful`, `mostfavorable`, `mostcritical` — iOS store only) and `country` (two-letter, default `us`). No reviews returns `200` with an empty `reviews` list.\n\n**Price:** $0.02 per call.","operationId":"appstore_GET_reviews","parameters":[{"name":"country","in":"query","description":"Optional two-letter store country (e.g. us, gb)","schema":{"description":"Optional two-letter store country (e.g. us, gb)","maxLength":2,"type":"string"},"example":"us"},{"name":"page","in":"query","description":"Optional page number","schema":{"description":"Optional page number","minimum":1,"type":"integer"},"example":1},{"name":"product_id","in":"query","required":true,"description":"Numeric App Store app id (from /appstore/search)","schema":{"description":"Numeric App Store app id (from /appstore/search)","maxLength":32,"pattern":"^[0-9]+$","type":"string"},"example":"1069513131"},{"name":"sort","in":"query","description":"Optional order: mostrecent (default), mosthelpful, mostfavorable, mostcritical","schema":{"default":"mostrecent","description":"Optional order: mostrecent (default), mosthelpful, mostfavorable, mostcritical","enum":["mostrecent","mosthelpful","mostfavorable","mostcritical"],"type":"string"},"example":"mostrecent"}],"responses":{"200":{"description":"Success.","content":{"application/json":{"schema":{"properties":{"info":{"properties":{"results_count":{"type":"integer"},"reviews_for_current_version":{"type":"integer"},"total_page_count":{"type":"integer"}},"type":"object"},"product_id":{"type":"string"},"queried_at":{"format":"date-time","type":"string"},"reviews":{"items":{"properties":{"author":{"properties":{"author_id":{"type":"string"},"name":{"type":"string"}},"type":"object"},"helpfulness_vote_information":{"type":"string"},"id":{"type":"string"},"position":{"type":"integer"},"rating":{"type":"number"},"review_date":{"type":"string"},"reviewed_version":{"type":"string"},"text":{"type":"string"},"title":{"type":"string"}},"type":"object"},"type":"array"}},"required":["product_id","queried_at","reviews"],"type":"object"},"example":{"info":{"results_count":500,"total_page_count":10},"product_id":"1069513131","queried_at":"2026-07-11T12:00:00Z","reviews":[{"author":{"name":"rainlover"},"id":"7417861364","rating":5,"review_date":"2026-07-01","reviewed_version":"5.9.0","text":"Accurate and hilarious.","title":"Best weather app"}]}}}},"400":{"description":"Validation error — the request was rejected before the handler ran.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment required. The response carries an x402 payment challenge.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentRequired"}}}},"500":{"description":"Unexpected internal error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"security":[{"x402Payment":[]}],"summary":"Apple App Store reviews — pull an app's user reviews by numeric product_id: title, text, rating, version, author \u0026 date, with paging \u0026 sort, as clean JSON.","tags":["Apple App Store Search \u0026 Reviews"],"x-payment-info":{"price":{"amount":"0.02","currency":"USD","mode":"fixed"},"protocols":[{"x402":{}}]},"x-x402":{"discoverable":true,"enabled":true,"paid":true,"price":"$0.02","service_name":"Apple App Store Search \u0026 Reviews"}}},"/search":{"get":{"description":"Apple App Store search: pass a `term` (required, e.g. \"weather\" or \"habit tracker\") to search the App Store. Returns `{ term, queried_at, results }`, where each result is an app with `id`, `title`, `bundle_id`, `version`, `developer`, `price`, `rating`, `genres`, `age_rating`, `description`, `size_in_bytes`, `link`, `logos` and `screenshots`. Use an app's `id` with `/product` for the full profile or `/reviews` for its reviews. Optional `country` (two-letter, default `us`), `lang` (e.g. `en-us`), `num` (1–200, default 10) and `page` control localization and paging. A term with no matches returns `200` with an empty `results` list.\n\n**Price:** $0.02 per call.","operationId":"appstore_GET_search","parameters":[{"name":"country","in":"query","description":"Optional two-letter store country (e.g. us, gb)","schema":{"description":"Optional two-letter store country (e.g. us, gb)","maxLength":2,"type":"string"},"example":"us"},{"name":"lang","in":"query","description":"Optional language code (e.g. en-us)","schema":{"description":"Optional language code (e.g. en-us)","maxLength":12,"type":"string"},"example":"en-us"},{"name":"num","in":"query","description":"Optional results per page, 1–200 (default 10)","schema":{"default":10,"description":"Optional results per page, 1–200 (default 10)","maximum":200,"minimum":1,"type":"integer"},"example":10},{"name":"page","in":"query","description":"Optional page number","schema":{"description":"Optional page number","minimum":1,"type":"integer"},"example":1},{"name":"term","in":"query","required":true,"description":"App Store search query (app name, category, or keyword)","schema":{"description":"App Store search query (app name, category, or keyword)","maxLength":200,"type":"string"},"example":"weather"}],"responses":{"200":{"description":"Success.","content":{"application/json":{"schema":{"properties":{"queried_at":{"format":"date-time","type":"string"},"results":{"items":{"properties":{"age_rating":{"type":"string"},"bundle_id":{"type":"string"},"description":{"type":"string"},"developer":{"properties":{"id":{"type":"integer"},"link":{"type":"string"},"name":{"type":"string"}},"type":"object"},"genres":{"items":{"properties":{"id":{"type":"integer"},"name":{"type":"string"},"primary":{"type":"boolean"}},"type":"object"},"type":"array"},"id":{"description":"App Store app id","type":"integer"},"link":{"type":"string"},"logos":{"items":{"properties":{"link":{"type":"string"},"size":{"type":"string"}},"type":"object"},"type":"array"},"minimum_os_version":{"type":"string"},"position":{"type":"integer"},"price":{"properties":{"amount":{"type":"number"},"currency":{"type":"string"},"symbol":{"type":"string"},"type":{"type":"string"}},"type":"object"},"rating":{"items":{"properties":{"count":{"type":"integer"},"rating":{"type":"number"},"type":{"type":"string"}},"type":"object"},"type":"array"},"release_note":{"type":"string"},"screenshots":{"additionalProperties":{"items":{"properties":{"link":{"type":"string"},"size":{"type":"string"}},"type":"object"},"type":"array"},"description":"Screenshot media grouped by device family (e.g. iphone, ipad)","type":"object"},"size_in_bytes":{"type":"integer"},"title":{"type":"string"},"version":{"type":"string"}},"required":["title"],"type":"object"},"type":"array"},"term":{"description":"Echoed search term","type":"string"}},"required":["term","queried_at","results"],"type":"object"},"example":{"queried_at":"2026-07-11T12:00:00Z","results":[{"bundle_id":"com.grailr.CARROTWeather","developer":{"name":"Grailr LLC"},"id":1069513131,"position":1,"price":{"type":"Free"},"rating":[{"count":51000,"rating":4.8,"type":"App Store"}],"title":"CARROT Weather: Alerts \u0026 Radar"}],"term":"weather"}}}},"400":{"description":"Validation error — the request was rejected before the handler ran.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment required. The response carries an x402 payment challenge.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentRequired"}}}},"500":{"description":"Unexpected internal error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"security":[{"x402Payment":[]}],"summary":"Apple App Store search — find iOS apps by term and get id, developer, price, rating, genres, description, size, icon \u0026 screenshots as clean JSON.","tags":["Apple App Store Search \u0026 Reviews"],"x-payment-info":{"price":{"amount":"0.02","currency":"USD","mode":"fixed"},"protocols":[{"x402":{}}]},"x-x402":{"discoverable":true,"enabled":true,"paid":true,"price":"$0.02","service_name":"Apple App Store Search \u0026 Reviews"}}},"/v2/product/{product_id}":{"get":{"description":"Apple App Store product details: pass a numeric `product_id` (required — an app's App Store id, e.g. `1069513131`, from `/search`) to pull its full profile. Returns `{ queried_at, product }`, where `product` carries `id`, `title`, `snippet`, `developer`, `rating`, `rating_count`, `price`, `age_rating`, `logo`, `description`, `iphone_screenshots`, `ipad_screenshots`, `version_history` (release notes \u0026 dates) and `information` (seller, size, category, copyright). Optional `country` (two-letter, default `us`). An unknown `product_id` still returns `200` with a `note` hint (the lookup ran, so the request is billed).\n\n**Price:** $0.02 per call.","operationId":"appstore_GET_v2_product_product_id","parameters":[{"name":"product_id","in":"path","required":true,"description":"Numeric App Store app id (from /appstore/search)","schema":{"description":"Numeric App Store app id (from /appstore/search)","maxLength":32,"pattern":"^[0-9]+$","type":"string"},"example":"886427730"},{"name":"country","in":"query","description":"Optional two-letter store country (e.g. us, gb)","schema":{"description":"Optional two-letter store country (e.g. us, gb)","maxLength":2,"type":"string"},"example":"us"}],"responses":{"200":{"description":"Success.","content":{"application/json":{"schema":{"properties":{"note":{"description":"Present only when no app matched: a hint that product_id must be a numeric App Store id. The paid lookup still ran.","type":"string"},"product":{"properties":{"age_rating":{"type":"string"},"description":{"type":"string"},"developer":{"properties":{"id":{"type":"integer"},"link":{"type":"string"},"name":{"type":"string"}},"type":"object"},"id":{"type":"string"},"information":{"properties":{"age_rating":{"type":"string"},"category":{"type":"string"},"copyright":{"type":"string"},"seller":{"type":"string"},"size":{"type":"string"}},"type":"object"},"ipad_screenshots":{"items":{"type":"string"},"type":"array"},"iphone_screenshots":{"items":{"type":"string"},"type":"array"},"logo":{"type":"string"},"price":{"type":"string"},"rating":{"type":"number"},"rating_count":{"type":"string"},"snippet":{"type":"string"},"title":{"type":"string"},"version_history":{"items":{"properties":{"release_date":{"type":"string"},"release_notes":{"type":"string"},"release_version":{"type":"string"}},"type":"object"},"type":"array"}},"type":"object"},"queried_at":{"format":"date-time","type":"string"}},"required":["queried_at","product"],"type":"object"},"example":{"product":{"age_rating":"12+","developer":{"name":"Grailr LLC"},"id":"1069513131","price":"Free","rating":4.8,"rating_count":"51K Ratings","title":"CARROT Weather: Alerts \u0026 Radar"},"queried_at":"2026-07-11T12:00:00Z"}}}},"400":{"description":"Validation error — the request was rejected before the handler ran.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment required. The response carries an x402 payment challenge.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentRequired"}}}},"500":{"description":"Unexpected internal error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"security":[{"x402Payment":[]}],"summary":"Apple App Store product details (path variant) — full profile for a single app by product_id in the URL: rating, price, description, version history, screenshots \u0026 metadata as clean JSON.","tags":["Apple App Store Search \u0026 Reviews"],"x-payment-info":{"price":{"amount":"0.02","currency":"USD","mode":"fixed"},"protocols":[{"x402":{}}]},"x-x402":{"discoverable":true,"enabled":true,"paid":true,"price":"$0.02","service_name":"Apple App Store Search \u0026 Reviews"}}},"/v2/product/{product_id}/reviews":{"get":{"description":"Apple App Store reviews: pass a numeric `product_id` (required — an app's App Store id, e.g. `1069513131`, from `/search`) to pull its reviews. Returns `{ product_id, queried_at, info, reviews }`, where `info` carries `total_page_count`, `results_count` and `reviews_for_current_version`, and each review has `id`, `title`, `text`, `rating`, `review_date`, `reviewed_version`, `author` and `helpfulness_vote_information`. Page through with `page` (use `info.total_page_count`). Optional `sort` (`mostrecent` default, `mosthelpful`, `mostfavorable`, `mostcritical` — iOS store only) and `country` (two-letter, default `us`). No reviews returns `200` with an empty `reviews` list.\n\n**Price:** $0.02 per call.","operationId":"appstore_GET_v2_product_product_id_reviews","parameters":[{"name":"product_id","in":"path","required":true,"description":"Numeric App Store app id (from /appstore/search)","schema":{"description":"Numeric App Store app id (from /appstore/search)","maxLength":32,"pattern":"^[0-9]+$","type":"string"},"example":"886427730"},{"name":"country","in":"query","description":"Optional two-letter store country (e.g. us, gb)","schema":{"description":"Optional two-letter store country (e.g. us, gb)","maxLength":2,"type":"string"},"example":"us"},{"name":"page","in":"query","description":"Optional page number","schema":{"description":"Optional page number","minimum":1,"type":"integer"},"example":1},{"name":"sort","in":"query","description":"Optional order: mostrecent (default), mosthelpful, mostfavorable, mostcritical","schema":{"default":"mostrecent","description":"Optional order: mostrecent (default), mosthelpful, mostfavorable, mostcritical","enum":["mostrecent","mosthelpful","mostfavorable","mostcritical"],"type":"string"},"example":"mostrecent"}],"responses":{"200":{"description":"Success.","content":{"application/json":{"schema":{"properties":{"info":{"properties":{"results_count":{"type":"integer"},"reviews_for_current_version":{"type":"integer"},"total_page_count":{"type":"integer"}},"type":"object"},"note":{"description":"Present only when no reviews matched: a hint that product_id must be a numeric App Store id. The paid lookup still ran.","type":"string"},"product_id":{"type":"string"},"queried_at":{"format":"date-time","type":"string"},"reviews":{"items":{"properties":{"author":{"properties":{"author_id":{"type":"string"},"name":{"type":"string"}},"type":"object"},"helpfulness_vote_information":{"type":"string"},"id":{"type":"string"},"position":{"type":"integer"},"rating":{"type":"number"},"review_date":{"type":"string"},"reviewed_version":{"type":"string"},"text":{"type":"string"},"title":{"type":"string"}},"type":"object"},"type":"array"}},"required":["product_id","queried_at","reviews"],"type":"object"},"example":{"info":{"results_count":500,"total_page_count":10},"product_id":"1069513131","queried_at":"2026-07-11T12:00:00Z","reviews":[{"author":{"name":"rainlover"},"id":"7417861364","rating":5,"review_date":"2026-07-01","reviewed_version":"5.9.0","text":"Accurate and hilarious.","title":"Best weather app"}]}}}},"400":{"description":"Validation error — the request was rejected before the handler ran.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment required. The response carries an x402 payment challenge.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentRequired"}}}},"500":{"description":"Unexpected internal error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"security":[{"x402Payment":[]}],"summary":"Apple App Store reviews (path variant) — an app's user reviews by product_id in the URL: title, text, rating, version, author \u0026 date, with paging \u0026 sort, as clean JSON.","tags":["Apple App Store Search \u0026 Reviews"],"x-payment-info":{"price":{"amount":"0.02","currency":"USD","mode":"fixed"},"protocols":[{"x402":{}}]},"x-x402":{"discoverable":true,"enabled":true,"paid":true,"price":"$0.02","service_name":"Apple App Store Search \u0026 Reviews"}}}},"components":{"schemas":{"Error":{"properties":{"error":{"properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"type":"object"}},"required":["error"],"type":"object"},"PaymentRequired":{"description":"x402 payment-required envelope. The exact shape comes from the x402 SDK and includes per-network accepted payment options. See https://x402.org for the canonical schema.","type":"object"}},"securitySchemes":{"x402Payment":{"description":"Pay the route via x402 (https://x402.org). The 402 response carries the payment challenge; resubmit with a PAYMENT-SIGNATURE header.","scheme":"x402","type":"http"}}}}
