Create a new publication in the Applivery App Store. A publication is the distribution configuration that controls how and to whom a specific build (or set of builds) of an app is made available — including its URL slug, security mode, visibility, access filters, and branding overrides.
For a conceptual overview of publications and how they relate to builds, see How to Distribute Your Apps.
Applivery provides two separate APIs for creating publications, each requiring a different authentication credential.
Choosing the right API
Integrations API | Workspace API | |
|---|---|---|
Designed for | Per-app 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 — |
Typical users | Scripts that auto-publish after a build is uploaded | Platform engineers managing publications across multiple apps |
Access to the different APIs might not be available in your current plan. Please check availability on our pricing page.
Integrations API
Use this endpoint when creating 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.
Endpoint
POST https://api.applivery.io/v1/integrations/distributions
Authentication
Authorization: Bearer <your_app_token>
Request format
application/json
Parameters
Parameters are grouped by area of configuration.
Required parameters
Parameter | Type | Description |
|---|---|---|
| String | The URL-friendly identifier for this publication. Must be unique within your workspace. Used to construct the publication URL: |
| String | Authentication mode. Allowed values: |
| String | Publication visibility. Allowed values: |
| String | Build selection strategy. Allowed values: |
Build Selection Filter
Parameter | Type | Required | Description |
|---|---|---|---|
| String | Yes | Build selection strategy. See Filter configuration. |
| String | Conditional | Required for |
| String | Conditional | Build ID for the iOS build. Required when |
| String | Conditional | Build ID for the Android build. Required when |
| String | Conditional | Build ID for the macOS build. Required when |
| Array | Conditional | Required when |
| String | Conditional | Platform identifier. Supported values: |
| String | Conditional | Build ID for the specified platform. |
Access Control
Parameter | Type | Required | Description |
|---|---|---|---|
| String | Conditional | Required when |
| Array | No | Restricts access to specific user groups. Supports AND/OR logic. Each inner array is an AND clause; each outer element is an OR clause. E.g. to allow users in group1 AND group2, OR users in group3: |
| Boolean | No | Whether to enable audience-based access for this publication. |
| Array | No | Array of audience assignments. Each element defines an audience and its notification preference. |
| String | Conditional | ID of the audience to assign to this publication. |
| Boolean | No | Whether users in this audience should receive notifications when a new build is processed. |
| Array | No | ISO 3166-1 alpha-2 country codes to allow access from. If set, only users from these countries can access the publication. Cannot be combined with |
| Array | No | ISO 3166-1 alpha-2 country codes to block access from. Cannot be combined with |
Build Display Options
| Parameter | Type | Required | Description |
|---|---|---|---|
tags |
Array | No | Tags to categorize this publication. Comma-separated. E.g. ["staging", "sprint-42"]. |
showHistory |
Boolean | No | Whether users can browse and install previous builds of the app. Default: false. |
showDevInfo |
Boolean | No | Whether to display technical build information (git metadata, certificate details, tags) to users. Default: false. |
expirationDate |
String | No | ISO 8601 timestamp after which the publication becomes unavailable for download. Use to create time-limited distributions, beta programs, or promotional campaigns. E.g. "2025-12-31T23:59:59Z". Once expired, the publication behaves as if set to inactive. |
Legal Terms
Parameter | Type | Required | Description |
|---|---|---|---|
| Boolean | No | Whether users must accept legal terms before accessing the publication. |
| String | Conditional | Required when |
Branding and App configuration overrides
Parameter | Type | Required | Description |
|---|---|---|---|
| String | No | Overrides the app name displayed in the publication. |
| String | No | Overrides the app description displayed in the publication. |
| String | No | Overrides the store logo for this publication. |
| String | No | Overrides the primary branding color (hex format). E.g. |
| String | No | Overrides the button color (hex format). |
Security modes
Value | Description |
|---|---|
| No authentication required. Anyone with the publication URL can access and download. |
| A password (specified in the |
| Users must be logged in with an Applivery account or your workspace SSO to access the publication. |
Visibility modes
Value | Description |
|---|---|
| The publication is listed in the App Store and accessible to all authorized users. |
| The publication is not accessible to anyone. |
| The publication is not listed in the App Store but is accessible to anyone who has the direct URL. |
Filter configuration
| Description |
|---|---|
| Always serves the most recently processed build. No additional |
| Serves a specific build, identified by |
| Serves specific builds per platform, defined in |
| Serves the latest build matching the git branch specified in |
| Serves the build matching the git tag specified in |
| Serves builds matching the Applivery build tag specified in |
Example Request
Minimal publication — public, always serving the latest build:
curl 'https://api.applivery.io/v1/integrations/distributions' \
-X POST \
-H 'Authorization: Bearer YOUR_APP_TOKEN' \
-H 'Content-Type: application/json' \
-d '{
"slug": "my-app-staging",
"security": "public",
"visibility": "active",
"filter": {
"type": "last"
}
}'
Private publication with group access control and build history:
curl 'https://api.applivery.io/v1/integrations/distributions' \
-X POST \
-H 'Authorization: Bearer YOUR_APP_TOKEN' \
-H 'Content-Type: application/json' \
-d '{
"slug": "my-app-internal",
"security": "logged",
"visibility": "active",
"filter": {
"type": "gitBranch",
"value": "develop"
},
"groups": [["qa-team", "developers"]],
"showHistory": true,
"showDevInfo": true,
"tags": ["internal", "qa"]
}'
Responses
The distributionUrl field in the response contains the full public URL of the created publication. Share this URL with your users to give them access to the publication.
{
"status": true,
"data": {
"id": "string",
"updatedAt": "string",
"createdAt": "string",
"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"]],
"visibility": "active",
"showHistory": true,
"showDevInfo": true,
"distributionUrl": "string",
"terms": {
"active": true,
"text": "string"
}
}
}
Slug already in use.
{
"status": false,
"error": {
"code": 5024,
"message": "Slug already used"
}
}
{
"status": false,
"error": {
"code": 4002,
"message": "No auth token"
}
}
{
"status": false,
"error": {
"code": 3001,
"message": "Entity not found"
}
}
Workspace API
Use this endpoint when creating publications at the workspace level — for example, in platform engineering workflows 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.
Endpoint
POST https://api.applivery.io/v1/organizations/{organizationId}/stores/{storeId}/pubApps
Path parameters
Parameter | Type | Required | Description |
|---|---|---|---|
| String | Yes | The unique identifier of your Applivery organization. |
| String | Yes | The unique identifier of the store (app project) to create the publication in. |
Authentication
Authorization: Bearer <your_service_account_token>
Example request
curl 'https://api.applivery.io/v1/organizations/ORG_ID/stores/STORE_ID/pubApps' \
-X POST \
-H 'Authorization: Bearer YOUR_SERVICE_ACCOUNT_TOKEN' \
-H 'Content-Type: application/json' \
-d '{
"slug": "my-app-release",
"security": "public",
"visibility": "active",
"filter": {
"type": "last"
}
}'
The request body parameters and response schema are identical to the Integrations API.