> ## Documentation Index
> Fetch the complete documentation index at: https://docs.appeeky.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Apps & Versions

> List your apps, get app details, and manage App Store versions

## List Apps

```
GET /v1/connect/apps
```

List apps in your App Store Connect account. Filter by bundle ID to find a specific app.

### Headers

| Header            | Required | Description            |
| ----------------- | -------- | ---------------------- |
| X-ASC-Issuer-Id   | Yes      | Your Issuer ID         |
| X-ASC-Key-Id      | Yes      | Your Key ID            |
| X-ASC-Private-Key | Yes\*    | Your private key (PEM) |

### Query Parameters

| Name     | Type    | Default | Description                                 |
| -------- | ------- | ------- | ------------------------------------------- |
| bundleId | string  | —       | Filter by bundle ID (e.g. `app.taperecord`) |
| limit    | integer | 50      | Max results (1-200)                         |
| cursor   | string  | —       | Pagination cursor                           |

### Response

```json theme={"theme":{"light":"github-light","dark":"github-dark"}}
{
  "data": {
    "data": [
      {
        "type": "apps",
        "id": "6759740679",
        "attributes": {
          "name": "Voice Tape Record",
          "bundleId": "app.taperecord",
          "sku": "apptaperecord",
          "primaryLocale": "en-US"
        }
      }
    ],
    "meta": { "paging": { "total": 1, "limit": 50 } }
  }
}
```

***

## Get App

```
GET /v1/connect/apps/:appId
```

Get details for a specific app by its App Store Connect app ID.

### Path Parameters

| Name  | Type   | Description                                           |
| ----- | ------ | ----------------------------------------------------- |
| appId | string | App Store Connect app ID (numeric, e.g. `6759740679`) |

### Response

Returns the app object with `name`, `bundleId`, `sku`, `primaryLocale`.

***

## List App Infos

```
GET /v1/connect/apps/:appId/app-infos
```

List App Info resources for an app. App Info resources are used for app-level localizable fields such as `name` and `subtitle`.

### Path Parameters

| Name  | Type   | Description                                           |
| ----- | ------ | ----------------------------------------------------- |
| appId | string | App Store Connect app ID (numeric, e.g. `6759740679`) |

### Query Parameters

| Name   | Type    | Default | Description         |
| ------ | ------- | ------- | ------------------- |
| limit  | integer | 50      | Max results (1-200) |
| cursor | string  | —       | Pagination cursor   |

### Response Fields

| Field         | Description                               |
| ------------- | ----------------------------------------- |
| appStoreState | App-level state for the App Info resource |

***

## List App Info Localizations

```
GET /v1/connect/app-infos/:appInfoId/localizations
```

List localizations for an App Info resource. This includes app-level localized fields like `name` and `subtitle`.

### Path Parameters

| Name      | Type   | Description                                              |
| --------- | ------ | -------------------------------------------------------- |
| appInfoId | string | App Info ID from `GET /v1/connect/apps/:appId/app-infos` |

### Response Fields

| Field             | Description                                        |
| ----------------- | -------------------------------------------------- |
| locale            | Localization code (e.g. `en-US`, `tr`)             |
| name              | Localized app name                                 |
| subtitle          | Localized subtitle shown in App Information        |
| privacyPolicyText | Privacy policy text for that locale (if available) |

***

## Update App Info Localization

```
PATCH /v1/connect/app-info-localizations/:localizationId
```

Update app-level localized fields. Use this endpoint to update fields visible under **App Information** in App Store Connect (such as subtitle).

### Path Parameters

| Name           | Type   | Description              |
| -------------- | ------ | ------------------------ |
| localizationId | string | App Info Localization ID |

### Request Body

```json theme={"theme":{"light":"github-light","dark":"github-dark"}}
{
  "attributes": {
    "name": "Voice Tape Record",
    "subtitle": "Audio recording & a retro VHS"
  }
}
```

| Attribute         | Type   | Description                   |
| ----------------- | ------ | ----------------------------- |
| name              | string | Localized app name            |
| subtitle          | string | Localized subtitle            |
| privacyPolicyText | string | Localized privacy policy text |

***

## List Versions

```
GET /v1/connect/apps/:appId/versions
```

List App Store versions for an app. Returns version string, platform, state, release type, and dates.

### Query Parameters

| Name     | Type    | Default | Description                      |
| -------- | ------- | ------- | -------------------------------- |
| platform | string  | —       | Filter: `IOS`, `MAC_OS`, `TV_OS` |
| limit    | integer | 50      | Max results (1-200)              |
| cursor   | string  | —       | Pagination cursor                |

### Response Fields

| Field               | Description                                                  |
| ------------------- | ------------------------------------------------------------ |
| versionString       | Version number (e.g. `1.1`)                                  |
| platform            | `IOS`, `MAC_OS`, or `TV_OS`                                  |
| appStoreState       | `PREPARE_FOR_SUBMISSION`, `READY_FOR_SALE`, `REJECTED`, etc. |
| releaseType         | `MANUAL`, `AFTER_APPROVAL`, `SCHEDULED`                      |
| earliestReleaseDate | Scheduled release date (if applicable)                       |
| createdDate         | When the version was created                                 |

***

## Create Version

```
POST /v1/connect/apps/:appId/versions
```

Create a new App Store version for an app.

### Request Body

```json theme={"theme":{"light":"github-light","dark":"github-dark"}}
{
  "versionString": "1.2",
  "platform": "IOS"
}
```

| Field         | Type   | Required | Description                        |
| ------------- | ------ | -------- | ---------------------------------- |
| versionString | string | Yes      | Version number (e.g. `1.2`, `2.0`) |
| platform      | string | Yes      | `IOS`, `MAC_OS`, or `TV_OS`        |

***

## Update Version

```
PATCH /v1/connect/versions/:versionId
```

Update version-level attributes.

### Request Body

```json theme={"theme":{"light":"github-light","dark":"github-dark"}}
{
  "attributes": {
    "versionString": "1.2",
    "copyright": "2026 Your Company",
    "releaseType": "MANUAL",
    "earliestReleaseDate": "2026-03-15T00:00:00Z",
    "downloadable": true
  }
}
```

| Attribute           | Type    | Description                             |
| ------------------- | ------- | --------------------------------------- |
| versionString       | string  | Version number                          |
| copyright           | string  | Copyright notice                        |
| releaseType         | string  | `MANUAL`, `AFTER_APPROVAL`, `SCHEDULED` |
| earliestReleaseDate | string  | ISO 8601 date for scheduled release     |
| downloadable        | boolean | Whether the version is downloadable     |

***

## Code Example

<CodeGroup>
  ```bash cURL theme={"theme":{"light":"github-light","dark":"github-dark"}}
  # Find app by bundle ID
  curl -X GET "https://api.appeeky.com/v1/connect/apps?bundleId=app.taperecord" \
    -H "X-API-Key: YOUR_APEEKY_KEY" \
    -H "X-ASC-Issuer-Id: YOUR_ISSUER_ID" \
    -H "X-ASC-Key-Id: YOUR_KEY_ID" \
    -H "X-ASC-Private-Key: YOUR_PRIVATE_KEY"

  # List versions
  curl -X GET "https://api.appeeky.com/v1/connect/apps/6759740679/versions" \
    -H "X-API-Key: YOUR_APEEKY_KEY" \
    -H "X-ASC-Issuer-Id: YOUR_ISSUER_ID" \
    -H "X-ASC-Key-Id: YOUR_KEY_ID" \
    -H "X-ASC-Private-Key: YOUR_PRIVATE_KEY"
  ```

  ```javascript JavaScript theme={"theme":{"light":"github-light","dark":"github-dark"}}
  const headers = {
    "X-API-Key": "YOUR_APEEKY_KEY",
    "X-ASC-Issuer-Id": "YOUR_ISSUER_ID",
    "X-ASC-Key-Id": "YOUR_KEY_ID",
    "X-ASC-Private-Key": process.env.ASC_PRIVATE_KEY,
  };

  // List apps
  const apps = await fetch("https://api.appeeky.com/v1/connect/apps?bundleId=app.taperecord", {
    headers,
  }).then((r) => r.json());

  // List versions
  const appId = apps.data.data[0].id;
  const versions = await fetch(
    `https://api.appeeky.com/v1/connect/apps/${appId}/versions`,
    { headers }
  ).then((r) => r.json());
  ```
</CodeGroup>
