# List Publications

> List your Applivery App Publications using the Integrations API or Workspace API. Retrieve Publication IDs and metadata.

Source: https://docs.applivery.com/en/app-distribution/api/publications/list-publications/  •  Last updated: 2026-04-01

**Key topics:** Integrations API, Workspace API, API Authentication, Publication Listing, API Parameters, Applivery, App API Token, Service Account, JSON, REST API

---

**TL;DR:** Learn how to list Applivery application publications using the Integrations API (per-app) or Workspace API (workspace-level) to retrieve publication details.

Return a paginated list of Publications for a given App. Use this endpoint to query the current state of your Publications, retrieve `publishedApplicationId` values needed by other endpoints, or build dashboards and automation scripts that act on specific Publications.

Applivery provides two separate APIs for listing Publications, each requiring a different authentication credential.

---

## Choosing the Right API

| | Integrations API | Workspace API |
|---|---|---|
| **Designed for** | Per-app integrations and CI/CD pipelines | Workspace-level automation across multiple Apps |
| **Authentication** | App API Token (per-app) | Service Account token (Workspace-level) |
| **App context** | Implicit — token is already scoped to an App | Explicit — `organizationId` and `storeId` required in the path |
| **Typical users** | Scripts that look up a Publication's ID before updating it | Platform engineers querying Publications across multiple Apps |

:::warning
Access to the different APIs might not be available in your current plan. Please check availability on our [pricing page](https://www.applivery.com/app-distribution-pricing/).
:::

---

## Integrations API

Use this endpoint when listing Publications within the scope of a single app. Authentication uses an **App API Token**, scoped to the specific App.

To create an App API Token, see [Apps API Authentication](https://docs.applivery.com/en/app-distribution/api/app-api-token/).

### Endpoint

```
GET https://api.applivery.io/v1/integrations/distributions
```

### Authentication

```
Authorization: Bearer <your_app_token>
```

### Query parameters

All parameters are optional. When no filters are applied, the endpoint returns all Publications for the App associated with the token.

| Parameter | Type | Description |
|---|---|---|
| `slug` | String | Filter by Publication slug. Returns only the Publication matching this exact slug. |
| `security` | String | Filter by security mode. Allowed values: `public`, `password`, `logged`. |
| `visibility` | String | Filter by visibility state. Allowed values: `active`, `inactive`, `unlisted`. |
| `filter-type` | String | Filter by build selection strategy. Allowed values: `last`, `build`, `builds`, `gitBranch`, `gitTag`, `tag`. |
| `page` | Integer | Page number for pagination. Starts at `1`. |
| `limit` | Integer | Maximum number of Publications to return per page. |

### Example Request

```bash
curl 'https://api.applivery.io/v1/integrations/distributions?visibility=active&security=public' \
  -X GET \
  -H 'Authorization: Bearer YOUR_APP_TOKEN'
```

### Responses

**✓ 200 OK**

```json
{
  "status": true,
  "data": {
    "items": [
      {
        "id": "string",
        "updatedAt": "2025-10-23T07:54:26.518Z",
        "createdAt": "2024-07-23T08:10:46.471Z",
        "application": "string",
        "applicationInfo": {
          "id": "string",
          "slug": "string",
          "name": "string",
          "picture": "string"
        },
        "slug": "string",
        "filter": {
          "type": "last",
          "value": "string",
          "ios": "string",
          "android": "string",
          "windows": "string",
          "macos": "string",
          "builds": [
            {
              "buildPlatform": "string",
              "id": "string"
            }
          ]
        },
        "security": "public",
        "tags": ["string"],
        "groups": [["string"]],
        "activateUserAudiences": false,
        "userAudienceMap": [],
        "visibility": "active",
        "showHistory": false,
        "showDevInfo": false,
        "expirationDate": "string",
        "distributionUrl": "string",
        "terms": {
          "active": true,
          "text": "string"
        },
        "configuration": {
          "branding": {
            "logo": "string",
            "primaryColor": "string",
            "useAppIcon": false
          },
          "application": {
            "description": "string",
            "name": "string"
          }
        },
        "allowedCountries": [],
        "blockedCountries": []
      }
    ],
    "totalDocs": 0,
    "limit": 0,
    "hasPrevPage": true,
    "hasNextPage": true,
    "page": 0,
    "totalPages": 0,
    "pagingCounter": 0,
    "prevPage": 0,
    "nextPage": 0
  }
}
```

**✗ 401 Unauthorized**

```json
{
  "status": false,
  "error": {
    "code": 4002,
    "message": "No auth token"
  }
}
```

**✗ 404 Not Found**

```json
{
  "status": false,
  "error": {
    "code": 3001,
    "message": "Entity not found"
  }
}
```

### Key response fields

| Field | Description |
|---|---|
| `id` | The unique identifier of the Publication (`publishedApplicationId`). Use this value in [PUT – Update](https://docs.applivery.com/en/app-distribution/api/publications/update-publication/) and [DELETE](https://docs.applivery.com/en/app-distribution/api/publications/delete-publication/) endpoints. |
| `slug` | The URL-friendly identifier used to construct the Publication URL. |
| `distributionUrl` | The full public URL of the Publication. Share this with users to give them access. |
| `security` | Current security mode: `public`, `password`, or `logged`. |
| `visibility` | Current visibility state: `active`, `inactive`, or `unlisted`. |
| `filter.type` | Build selection strategy currently configured: `last`, `build`, `builds`, `gitBranch`, `gitTag`, or `tag`. |
| `expirationDate` | ISO 8601 timestamp after which the Publication becomes unavailable. `null` if no expiration is set. |
| `activateUserAudiences` | Whether audience-based access control is enabled for this Publication. |
| `userAudienceMap` | Array of audience assignments for this Publication. |
| `allowedCountries` | Country codes from which access is explicitly allowed. Empty array means no restriction. |
| `blockedCountries` | Country codes from which access is explicitly blocked. Empty array means no restriction. |
| `configuration` | Branding and app name/description overrides applied to this Publication. |
| `terms` | Legal terms configuration — whether acceptance is required and the terms text. |

### Pagination fields

| Field | Description |
|---|---|
| `totalDocs` | Total number of Publications matching the query. |
| `page` | Current page number. |
| `totalPages` | Total number of pages. |
| `limit` | Number of results per page. |
| `hasNextPage` | Whether there is a subsequent page of results. |
| `hasPrevPage` | Whether there is a previous page of results. |
| `nextPage` | Page number of the next page, or `null` if on the last page. |
| `prevPage` | Page number of the previous page, or `null` if on the first page. |

---

## Workspace API

Use this endpoint when listing Publications at the Workspace level — for example, in automation pipelines that operate across multiple Apps using a single credential.

Authentication uses a **Service Account** token, which is Workspace-scoped and not tied to any individual app.

To create a Service Account, see [Service Accounts](https://docs.applivery.com/en/platform/api/service-accounts/).

### Endpoint

```
GET https://api.applivery.io/v1/organizations/{organizationId}/stores/{storeId}/pubApps
```

### Path parameters

| Parameter | Type | Required | Description |
|---|---|---|---|
| `organizationId` | String | Yes | The unique identifier of your Applivery organization. |
| `storeId` | String | Yes | The unique identifier of the store (app project) whose Publications you want to list. |

### Authentication

```
Authorization: Bearer <your_service_account_token>
```

### Query parameters

The Workspace API accepts the same query parameters as the Integrations API. 

### Example Request

```bash
curl 'https://api.applivery.io/v1/organizations/ORG_ID/stores/STORE_ID/pubApps?visibility=active' \
  -X GET \
  -H 'Authorization: Bearer YOUR_SERVICE_ACCOUNT_TOKEN'
```

The response schema is identical to the Integrations API.
