Favicon

You are here: Home > Distribución de Apps > API > Publicaciones > POST - Crear una Publicación

POST - Crear una Publicación

Crea Publicaciones en la Store Enterprise de Applivery usando la Integrations API o la Workspace API. Controla la distribución y el acceso a la app.

7 min read

TL;DR

Crea y gestiona publicaciones del App Store de Applivery de forma programática usando la API de Integraciones o la API de Workspace.

Crea una nueva Publicación en la Store Enterprise de Applivery. Una Publicación es la configuración de distribución que controla cómo y a quién se pone a disposición una Build específico (o conjunto de Builds) de una App — incluyendo su slug de URL, modo de seguridad, visibilidad, filtros de acceso y sobreescrituras de branding.

Para una visión general conceptual de las Publicaciones y su relación con las Builds, consulta Cómo distribuir tus apps.

Applivery proporciona dos APIs independientes para crear Publicaciones, cada una con una credencial de autenticación diferente.


Cómo elegir la API correcta

Integrations API Workspace API
Diseñada para Pipelines de CI/CD por app Automatización a nivel de Workspace en varias Apps
Autenticación App API Token (por app) token de una cuenta de servicio (a nivel de Workspace)
Contexto de app Implícito — el token ya está vinculado a una App Explícito — se requieren organizationId y storeId en la ruta
Usuarios típicos Scripts que publican automáticamente tras subir una Build Platform engineers que gestionan Publicaciones de varias Apps
Warning

El acceso a las distintas APIs puede no estar disponible en tu plan actual. Consulta la disponibilidad en nuestra página de precios.


Integrations API

Usa este endpoint para crear Publicaciones dentro del ámbito de una sola app. La autenticación usa un App API Token, vinculado a la App específica.

Para crear un App API Token, consulta Autenticación de la API de Apps.

Endpoint

POST https://api.applivery.io/v1/integrations/distributions

Autenticación

Authorization: Bearer <your_app_token>

Formato de la petición

application/json


Parámetros

Los parámetros están agrupados por área de configuración.

Parámetros obligatorios

Parámetro Tipo Descripción
slug String El identificador amigable para URL de esta Publicación. Debe ser único en tu Workspace. Se usa para construir la URL de la Publicación: yourworkspace.applivery.com/{slug}. Solo se permiten letras minúsculas, números y guiones.
security String Modo de autenticación. Valores permitidos: public, password, logged. Consulta los modos de seguridad a continuación.
visibility String Visibilidad de la Publicación. Valores permitidos: active, inactive, unlisted. Consulta los modos de visibilidad a continuación.
filter.type String Estrategia de selección de Build. Valores permitidos: last, build, Builds, gitBranch, gitTag, tag. Consulta la configuración de filtros a continuación.

Filtro de selección de Build

Parámetro Tipo Obligatorio Descripción
filter.type String Estrategia de selección de Build. Consulta la configuración de filtros.
filter.value String Condicional Obligatorio para los tipos de filtro gitBranch, gitTag y tag. El nombre de rama, git tag o build tag a coincidir.
filter.ios String Condicional ID de la Build para iOS. Obligatorio cuando filter.type es build y la App tiene Builds de iOS.
filter.android String Condicional ID de la Build para Android. Obligatorio cuando filter.type es build y la App tiene Builds de Android.
filter.macos String Condicional ID de la Build para macOS. Obligatorio cuando filter.type es build y la App tiene Builds de macOS.
filter.Builds Array Condicional Obligatorio cuando filter.type es Builds. Array de objetos con buildPlatform e id.
filter.Builds[].buildPlatform String Condicional Identificador de plataforma. Valores admitidos: ios, macos, android, ps4, ps5, switch, xbox-one, xbox-series.
filter.Builds[].id String Condicional ID de la Build para la plataforma especificada.

Control de acceso

Parámetro Tipo Obligatorio Descripción
password String Condicional Obligatorio cuando security es password. La contraseña que deben introducir los usuarios para acceder a la Publicación.
groups Array No Restringe el acceso a Grupos de usuarios específicos. Soporta lógica AND/OR. Cada array interno es una cláusula AND; cada elemento externo es una cláusula OR. P. ej. para permitir usuarios en group1 Y group2, O usuarios en group3: [["group1","group2"],["group3"]]. Solo aplica cuando security es logged.
activateUserAudiences Boolean No Si se habilita el acceso basado en audiencias para esta Publicación.
userAudienceMap Array No Array de asignaciones de audiencias. Cada elemento define una audiencia y su preferencia de notificación.
userAudienceMap[].id String Condicional ID de la audiencia a asignar a esta Publicación.
userAudienceMap[].notifyNewBuildsProcessed Boolean No Si los usuarios de esta audiencia deben recibir notificaciones cuando se procesa un nuevo Build.
allowedCountries Array No Códigos de país ISO 3166-1 alpha-2 desde los que se permite el acceso. Si se configura, solo los usuarios de estos países pueden acceder a la Publicación. No puede combinarse con blockedCountries.
blockedCountries Array No Códigos de país ISO 3166-1 alpha-2 desde los que se bloquea el acceso. No puede combinarse con allowedCountries.

Opciones de visualización de Builds

Parámetro Tipo Obligatorio Descripción
tags Array No Tags para categorizar esta Publicación. P. ej. ["staging", "sprint-42"].
showHistory Boolean No Si los usuarios pueden explorar e instalar Builds anteriores de la App. Por defecto: false.
showDevInfo Boolean No Si se muestra información técnica de la Build (metadatos de git, detalles del certificado, tags) a los usuarios. Por defecto: false.
expirationDate String No Timestamp ISO 8601 a partir del cual la Publicación deja de estar disponible para descarga. Útil para distribuciones con fecha límite, programas beta o campañas promocionales. P. ej. "2025-12-31T23:59:59Z". Una vez caducada, la Publicación se comporta como si estuviera en inactive.

Términos legales

Parámetro Tipo Obligatorio Descripción
terms.active Boolean No Si los usuarios deben aceptar los términos legales antes de acceder a la Publicación.
terms.text String Condicional Obligatorio cuando terms.active es true. El texto de los términos legales a mostrar.

Sobreescrituras de branding y configuración de app

Parámetro Tipo Obligatorio Descripción
configuration.application.name String No Sobreescribe el nombre de la App mostrado en la Publicación.
configuration.application.description String No Sobreescribe la descripción de la App mostrada en la Publicación.
configuration.branding.logo String No Sobreescribe el logo de la store para esta Publicación.
configuration.branding.primaryColor String No Sobreescribe el color de branding primario (formato hex). P. ej. #FF5733.
configuration.branding.buttonColor String No Sobreescribe el color del botón (formato hex).

Modos de seguridad

Valor Descripción
public No se requiere autenticación. Cualquier persona con la URL de la Publicación puede acceder y descargar.
password Se requiere una contraseña (especificada en el campo password) para acceder a la Publicación.
logged Los usuarios deben estar conectados con una cuenta de Applivery o tu SSO de Workspace para acceder a la Publicación.

Modos de visibilidad

Valor Descripción
active La Publicación está listada en la Store Enterprise y accesible para todos los usuarios autorizados.
inactive La Publicación no es accesible para nadie.
unlisted La Publicación no está listada en la Store Enterprise, pero es accesible para cualquier persona que tenga la URL directa.

Configuración de filtros

filter.type Descripción
last Sirve siempre la Build procesado más recientemente. No se necesita filter.value adicional.
build Sirve una Build específico, identificado por filter.ios, filter.android o filter.macos.
Builds Sirve Builds específicos por plataforma, definidos en filter.Builds. Soporta plataformas personalizadas.
gitBranch Sirve el último Build que coincide con la rama git especificada en filter.value. P. ej. develop.
gitTag Sirve la Build que coincide con el git tag especificado en filter.value. P. ej. v2.4.0.
tag Sirve las Builds que coinciden con la Build tag de Applivery especificado en filter.value.

Ejemplos de petición

Publicación mínima — pública, sirviendo siempre el último 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"
    }
  }'

Publicación privada con control de acceso por grupos e historial de builds:

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"]
  }'

Respuestas

Note

El campo distributionUrl de la respuesta contiene la URL pública completa de la Publicación creada. Comparte esta URL con tus usuarios para darles acceso a la Publicación.

{
  "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"
    }
  }
}

El slug ya está en uso.

{
  "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

Usa este endpoint para crear Publicaciones a nivel de Workspace — por ejemplo, en flujos de trabajo de platform engineering que operan en varias Apps usando una sola credencial.

La autenticación usa un token de cuenta de servicio, con ámbito de Workspace y no vinculado a ninguna app individual.

Para crear un token de una cuenta de servicio, consulta Cuentas de servicio.

Endpoint

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

Parámetros de ruta

Parámetro Tipo Obligatorio Descripción
organizationId String El identificador único de tu organización en Applivery.
storeId String El identificador único de la store (proyecto de app) en la que crear la Publicación.

Autenticación

Authorization: Bearer <your_service_account_token>

Ejemplo de petición

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"
    }
  }'

Los parámetros del cuerpo de la petición y el esquema de respuesta son idénticos a los de la Integrations API.

Una publicación en Applivery controla cómo se distribuye un build específico de una app, incluyendo su URL, seguridad, visibilidad y filtros de acceso.

Los parámetros obligatorios son `slug` (identificador de URL), `security` (modo de autenticación), `visibility` (visibilidad de la publicación) y `filter.type` (estrategia de selección de Build).

Puedes usar un App API Token (para la Integrations API) o un Service Account token (para la Workspace API).

Usa la Integrations API para crear publicaciones dentro del ámbito de una sola app, normalmente en pipelines de CI/CD por app.

Los valores permitidos para `security` son `public`, `password` y `logged`.

Los valores permitidos para `visibility` son `active`, `inactive` y `unlisted`.

El `slug` es el identificador amigable para URL de la publicación, usado para construir la URL de la publicación (yourworkspace.applivery.com/{slug}).

Las estrategias disponibles son `last`, `build`, `builds`, `gitBranch`, `gitTag` y `tag`, especificadas en el parámetro `filter.type`.

Last updated: June 8, 2026