# App Store

> The public App Store, open to anyone with no token.

Source: https://storeware.ai/docs/api-reference/rest/app-store

## Search the public App Store

`GET /api/v1/public/apps`

Public apps only, with no token. `best`, the default, ranks by a Bayesian rating score and then by active installs; nothing in the order is paid for.

Open to anyone: it needs no token and no permission.

**Parameters**

| Parameter | In | Type | Description |
| --- | --- | --- | --- |
| `q` | query | string | Words to search names, taglines, tags and descriptions. |
| `category` | query | string | One of `marketing`, `sales`, `customer-service`, `shipping`, `inventory`, `store-design`, `analytics`, `finance`, `productivity`, `wholesale`, `ai-and-agents`, `developer-tools`. |
| `sort` | query | string | One of `best`, `relevance`, `popular`, `newest`, `name`. |
| `limit` | query | integer | From 1 to 60. |
| `offset` | query | integer | At least 0. |

**Answers** `200`

| Field | Type | Description |
| --- | --- | --- |
| `data` | object |  |
| `data.apps` | array of [PublicAppCard](https://storeware.ai/docs/api-reference/rest/objects#publicappcard) |  |
| `data.total` | integer |  |

```bash
curl "https://api.storeware.ai/api/v1/public/apps" \
  -H "Authorization: Bearer $TOKEN"
```

## Count the public apps in each category

`GET /api/v1/public/apps/categories`

Open to anyone: it needs no token and no permission.

**Answers** `200`

| Field | Type | Description |
| --- | --- | --- |
| `data` | array of object |  |
| `data[].category` | string | One of `marketing`, `sales`, `customer-service`, `shipping`, `inventory`, `store-design`, `analytics`, `finance`, `productivity`, `wholesale`, `ai-and-agents`, `developer-tools`. |
| `data[].apps` | integer |  |

```bash
curl "https://api.storeware.ai/api/v1/public/apps/categories" \
  -H "Authorization: Bearer $TOKEN"
```

## List the App Store’s collections

`GET /api/v1/public/apps/collections`

Collections people at Storeware put together, each with its public apps in order. No app can pay to be in one.

Open to anyone: it needs no token and no permission.

**Answers** `200`

| Field | Type | Description |
| --- | --- | --- |
| `data` | array of object |  |
| `data[].slug` | string |  |
| `data[].title` | string |  |
| `data[].description` | string or null |  |
| `data[].apps` | array of [PublicAppCard](https://storeware.ai/docs/api-reference/rest/objects#publicappcard) |  |

```bash
curl "https://api.storeware.ai/api/v1/public/apps/collections" \
  -H "Authorization: Bearer $TOKEN"
```

## Get a public app’s listing

`GET /api/v1/public/apps/{slug}`

What the listing shows, its price in `currency` (US dollars when left out), what its ratings add up to and the newest ten.

Open to anyone: it needs no token and no permission.

**Parameters**

| Parameter | In | Type | Description |
| --- | --- | --- | --- |
| `slug` | path | string | The slug. |
| `currency` | query | string | A billing currency, such as `usd` or `eur`. |

**Answers** `200`

| Field | Type | Description |
| --- | --- | --- |
| `data` | object |  |
| `data.slug` | string |  |
| `data.name` | string |  |
| `data.tagline` | string or null |  |
| `data.iconUrl` | string or null |  |
| `data.developerName` | string |  |
| `data.primaryCategory` | string or null |  |
| `data.categories` | array of string |  |
| `data.activeInstalls` | integer | Merchant shops with the app installed now. |
| `data.listedAt` | string (date-time) or null |  |
| `data.rating` | object |  |
| `data.rating.average` | number or null | Average stars to one decimal, or null with none. |
| `data.rating.count` | integer | Published ratings from shops still open. |
| `data.builtForStoreware` | boolean | Holds the Built for Storeware badge, earned on published criteria and never sold. |
| `data.descriptionHtml` | string or null |  |
| `data.screenshots` | array of object |  |
| `data.screenshots[].url` | string |  |
| `data.screenshots[].alt` | string or null |  |
| `data.screenshots[].width` | integer |  |
| `data.screenshots[].height` | integer |  |
| `data.videoUrl` | string or null |  |
| `data.tags` | array of string |  |
| `data.languages` | array of string |  |
| `data.homepageUrl` | string or null |  |
| `data.supportUrl` | string or null |  |
| `data.privacyUrl` | string or null |  |
| `data.termsUrl` | string or null |  |
| `data.docsUrl` | string or null |  |
| `data.unlisted` | boolean |  |
| `data.pricing` | object |  |
| `data.pricing.free` | boolean |  |
| `data.pricing.from` | object or null |  |
| `data.pricing.from.amountMinor` | integer |  |
| `data.pricing.from.currency` | string |  |
| `data.pricing.from.interval` | string |  |
| `data.pricing.trialDays` | integer |  |
| `data.pricing.plans` | array of object |  |
| `data.pricing.plans[].key` | string |  |
| `data.pricing.plans[].name` | string |  |
| `data.pricing.plans[].amountMinor` | integer |  |
| `data.pricing.plans[].currency` | string |  |
| `data.pricing.plans[].interval` | string |  |
| `data.pricing.plans[].trialDays` | integer |  |
| `data.ratings` | object |  |
| `data.ratings.summary` | object |  |
| `data.ratings.summary.average` | number or null |  |
| `data.ratings.summary.count` | integer |  |
| `data.ratings.summary.distribution` | array of integer | How many ratings gave 5, 4, 3, 2 and 1 stars, in that order. Up to 5 items. At least 5 items. |
| `data.ratings.recent` | array of [PublicAppRating](https://storeware.ai/docs/api-reference/rest/objects#publicapprating) |  |

```bash
curl "https://api.storeware.ai/api/v1/public/apps/$SLUG" \
  -H "Authorization: Bearer $TOKEN"
```

## List a public app’s ratings

`GET /api/v1/public/apps/{slug}/ratings`

Newest first. Only ratings that count: published, from merchant shops that had the app at least three days and are still open.

Open to anyone: it needs no token and no permission.

**Parameters**

| Parameter | In | Type | Description |
| --- | --- | --- | --- |
| `slug` | path | string | The slug. |
| `limit` | query | integer | From 1 to 50. |
| `offset` | query | integer | At least 0. |

**Answers** `200`

| Field | Type | Description |
| --- | --- | --- |
| `data` | object |  |
| `data.summary` | object |  |
| `data.summary.average` | number or null |  |
| `data.summary.count` | integer |  |
| `data.summary.distribution` | array of integer | How many ratings gave 5, 4, 3, 2 and 1 stars, in that order. Up to 5 items. At least 5 items. |
| `data.ratings` | array of [PublicAppRating](https://storeware.ai/docs/api-reference/rest/objects#publicapprating) |  |

```bash
curl "https://api.storeware.ai/api/v1/public/apps/$SLUG/ratings" \
  -H "Authorization: Bearer $TOKEN"
```
