# Every endpoint The commands above cover the journey. For anything else, `storebound api` calls **every operation** of the App Store Connect API (1303 operations, OpenAPI 4.5.1) and of the Google Play Developer APIs (Android Publisher v3: 145, Play Developer Reporting v1beta1: 25), generated from the official specs pinned in `specs/` (source URLs, dates and SHA-256 in `specs/SOURCES.json`). Same credentials, same retries on 429 / 5xx (Retry-After honoured), JSON:API documents on the Apple side. ```sh storebound api list --store apple --search "customerReviews" # find an operation storebound api apple apps_getCollection --param 'filter[bundleId]=com.example.app' storebound api apple GET /v1/apps/123/appStoreVersions --all-pages # METHOD path works too storebound api play reviews.list --param packageName=com.example.app --all-pages --json storebound api play POST /v1beta1/apps/com.example.app/crashRateMetricSet:query --body query.json storebound api coverage # counts per API and resource, what commands wrap ``` - **GET runs right away** (so do the Reporting API `:query` calls and other POSTs that only read). - **Every write is a dry run by default**: it prints the exact request (method, URL, body; the credential is never shown) and is only sent with `--yes` from an interactive terminal. - **Owner-only operations** (submit, release, delete, cancel, refunds, prices, testers and users, review replies, product page tests, Play `edits.commit`, app signing; the list is in `cli/api/gate.ts`) also ask you to type the operation id before anything is sent. - **Agents read, never write**: MCP has one tool for this, `api_get` (GET operations only). Under MCP or the desktop app no write goes out, whatever the flags. - Small on purpose: one table row per operation plus generic helpers (`cli/api/`), typed from the rows (path and required parameters, JSON:API request and response shapes). `bun tools/gen-api.ts` regenerates the tables and [docs/api-coverage.md](api-coverage.md) (every operation, its gate and the commands that already call it); CI fails when they are stale. --- [All docs](README.md) ยท [README](../README.md)