Favicon

You are here: Home > Distribución de Apps > API > Builds > POST - Cargar una Build

POST - Cargar una Build

Applivery ofrece dos APIs para cargar Builds: la Integrations API para CI/CD y la Workspace API para gestión multi-app. Elige la que mejor se adapte a tu caso.

5 min read

TL;DR

Applivery ofrece dos APIs para subir builds: la API de Integraciones para CI/CD usando un App API Token, y la API de Workspace para escenarios multi-app usando una Cuenta de servicio.

Applivery proporciona dos APIs independientes para cargar Builds, cada una diseñada para un caso de uso diferente y que requiere una credencial de autenticación distinta. Es importante entender cuál aplica a tu flujo de trabajo antes de integrarte.


Cómo elegir la API correcta

Integrations API Workspace API
Diseñada para Pipelines de CI/CD, herramientas de build e integraciones por app Automatización a nivel de Workspace y gestión multi-app
Autenticación App API Token (por app) token de una cuenta de servicio (a nivel de Workspace)
URL base https://upload.applivery.io https://upload.applivery.io
Contexto de app Implícito — el token ya está vinculado a una App Explícito — se requieren organizationId y applicationId en la ruta
Usuarios típicos Fastlane, Bitrise, Jenkins, Azure DevOps, scripts de CI propios Platform engineers que gestionan varias Apps de forma programática
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 cargar Builds desde un pipeline de CI/CD o cualquier integración que opere dentro del ámbito de una sola app. La autenticación usa un App API Token, vinculado a la App específica a la que estás subiendo.

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

Endpoint

POST https://upload.applivery.io/v1/integrations/builds

Autenticación

Authorization: Bearer <your_app_token>

Formato de la petición

multipart/form-data

Parámetros

Archivo de build

Parámetro Tipo Obligatorio Descripción
build File El archivo de Build a cargar. Formatos admitidos: .ipa, .apk, .aab. Consulta las Plataformas de Build personalizadas para formatos adicionales.
buildPlatform String Condicional Obligatorio al cargar una Plataforma de Build personalizada. Valores: ios, android o un identificador de plataforma personalizado.
packageName String Condicional Obligatorio cuando el archivo de Build no puede procesarse automáticamente (p. ej., plataformas personalizadas). El identificador único de la App.
packageVersion String Condicional Obligatorio cuando el archivo de Build no puede procesarse automáticamente. La cadena de versión de esta Build.
packageIcon File Condicional Obligatorio cuando el archivo de Build no puede procesarse automáticamente. Debe ser .png o .jpeg.

Metadatos de la Build

Parámetro Tipo Obligatorio Descripción
versionName String No Etiqueta de versión legible para esta Build. P. ej. RC-1, v2.4.0-beta.
tags Array No Lista de etiquetas separadas por comas para categorizar la Build. P. ej. staging, sprint-42, hotfix.
changelog String No Notas de la versión o descripción de los cambios en esta Build. Admite texto plano.

Notificaciones

Parámetro Tipo Obligatorio Descripción
notifyCollaborators Boolean No Si se debe enviar una notificación por email a los Colaboradores de la app y del Workspace. Por defecto: false.
notifyEmployees Boolean No Si se debe enviar una notificación por email a los empleados de la store. Por defecto: false.
notifyMessage String No Mensaje personalizado para incluir en el email de notificación. P. ej. ¡Nuevo Build listo para pruebas!.
notifyLanguage String No Idioma del email de notificación. Valores admitidos: en, es, fr, de, it, zh, pt, ru.
filter Array anidado No Limita las notificaciones a grupos de empleados específicos. Admite lógica AND/OR. Cada array interno es una cláusula AND; cada elemento externo es una cláusula OR.

Información del deployer de CI/CD

Estos campos opcionales rellenan los metadatos de despliegue de la Build en el panel de Applivery, facilitando rastrear una Build hasta su origen en CI/CD.

Parámetro Tipo Descripción
deployer.name String Nombre visible del sistema CI/CD. P. ej. Jenkins CI, Bitrise, GitHub Actions.
deployer.info.commitMessage String Mensaje del commit de Git asociado a esta Build.
deployer.info.commit String SHA del commit de Git. P. ej. f52ace0.
deployer.info.branch String Nombre de la rama de Git. P. ej. develop, release/2.4.
deployer.info.tag String Etiqueta de Git asociada a esta Build. P. ej. RC-1, v2.4.0.
deployer.info.triggerTimestamp String Timestamp Unix (ms) de cuando se disparó la Build de CI. P. ej. 1558359012580.
deployer.info.buildUrl String URL directa a la ejecución de la Build de CI.
deployer.info.ciUrl String URL base de la plataforma de CI.
deployer.info.repositoryUrl String URL del repositorio de control de versiones.
deployer.info.buildNumber String Número de build de la plataforma de CI. P. ej. 173.

Ejemplo de petición

curl 'https://upload.applivery.io/v1/integrations/builds' \
  -X POST \
  --retry 5 \
  --fail \
  -H 'Authorization: Bearer YOUR_APP_TOKEN' \
  -F '[email protected]' \
  -F 'versionName=v2.4.0-rc1' \
  -F 'tags=staging, sprint-42' \
  -F 'changelog=Fixed crash on login screen' \
  -F 'notifyCollaborators=true' \
  -F 'notifyEmployees=false' \
  -F 'notifyMessage=New build ready for QA' \
  -F 'notifyLanguage=en' \
  -F 'filter[0][0]=group1' \
  -F 'filter[0][1]=group2' \
  -F 'filter[1][0]=group3' \
  -F 'deployer.name=GitHub Actions' \
  -F 'deployer.info.commitMessage=Fix crash on login' \
  -F 'deployer.info.commit=f52ace0' \
  -F 'deployer.info.branch=release/2.4' \
  -F 'deployer.info.tag=v2.4.0-rc1' \
  -F 'deployer.info.triggerTimestamp=1558359012580' \
  -F 'deployer.info.buildUrl=https://github.com/myorg/myapp/actions/runs/123' \
  -F 'deployer.info.ciUrl=https://github.com/myorg/myapp/actions' \
  -F 'deployer.info.repositoryUrl=https://github.com/myorg/myapp' \
  -F 'deployer.info.buildNumber=173'

Respuestas

{
  "status": true,
  "data": {
    "id": "string",
    "status": "pending",
    "tags": ["string"],
    "versionName": "string",
    "application": "string",
    "applicationInfo": {
      "id": "string",
      "name": "string",
      "slug": "string",
      "picture": "string"
    },
    "changelog": "string",
    "info": {
      "icon": "string",
      "android": {
        "targetSdkVersion": "string",
        "minSDKVersion": "string",
        "packageName": "string",
        "platformBuildVersionName": "string",
        "platformBuildVersionCode": "string",
        "versionName": "string",
        "versionCode": "string",
        "icon": "string"
      },
      "ios": {
        "plist": {
          "CFBundleDisplayName": "string",
          "CFBundleSupportedPlatforms": ["string"],
          "MinimumOSVersion": "string",
          "CFBundleIdentifier": "string",
          "CFBundleShortVersionString": "string",
          "CFBundleVersion": "string",
          "CFBundleName": "string",
          "CFBundleIcons": ["string"],
          "UIDeviceFamily": ["string"]
        },
        "mobileprovision": {
          "ExpirationDate": "2019-08-24T14:15:22Z",
          "TeamIdentifier": "string",
          "ProvisionsAllDevices": true,
          "TeamName": "string",
          "ProvisionedDevices": "string",
          "signingType": "ad-hoc"
        }
      },
      "pkg": {
        "CFBundleDisplayName": "string",
        "CFBundleIdentifier": "string",
        "CFBundleShortVersionString": "string",
        "CFBundleVersion": "string",
        "CFBundleName": "string"
      }
    },
    "size": 0,
    "processTime": 0,
    "queuedTime": 0,
    "versionCode": "string",
    "os": "ios",
    "deployer": {
      "name": "string",
      "info": {
        "commitMessage": "string",
        "commit": "string",
        "branch": "string",
        "triggerTimestamp": "string",
        "buildUrl": "string",
        "ciUrl": "string",
        "repositoryUrl": "string",
        "buildNumber": "string",
        "tag": "string"
      }
    },
    "uploadedBy": {
      "id": "string",
      "email": "[email protected]",
      "firstName": "string",
      "lastName": "string",
      "picture": "string"
    },
    "originalExtension": "string",
    "storageProvider": {
      "id": "string",
      "name": "string",
      "region": "string"
    },
    "updatedAt": "2019-08-24T14:15:22Z",
    "createdAt": "2019-08-24T14:15:22Z"
  }
}
{
  "status": false,
  "error": {
    "code": 5024,
    "message": "Slug already used"
  }
}
{
  "status": false,
  "error": {
    "code": 3002,
    "message": "Token Expired"
  }
}
{
  "status": false,
  "error": {
    "code": 3001,
    "message": "Entity not found"
  }
}
Note

El status de la Build en la respuesta será inicialmente pending. Applivery procesa la Build de forma asíncrona — el estado se actualizará a success o error una vez finalizado el procesamiento. Usa el endpoint GET – Detalles de la Build para hacer polling del estado final si es necesario.

Para la lista completa de códigos de error durante el procesamiento de builds, consulta Códigos de procesamiento de Builds.


Workspace API

Usa este endpoint para cargar Builds a nivel de Workspace — por ejemplo, en flujos de trabajo de platform engineering donde una sola credencial gestiona varias Apps en una organización.

La autenticación usa un token de cuenta de servicio, con ámbito de Workspace y no vinculado a ninguna app individual. El contexto de la app se proporciona explícitamente mediante parámetros de ruta.

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

Endpoint

POST https://upload.applivery.io/v1/organizations/{organizationId}/apps/{applicationId}/builds

Parámetros de ruta

Parámetro Tipo Obligatorio Descripción
organizationId String El identificador único de tu organización en Applivery.
applicationId String El identificador único de la App a la que cargar la Build.

Autenticación

Authorization: Bearer <your_service_account_token>

Formato de la petición

multipart/form-data

Parámetros

La Workspace API acepta los mismos parámetros de archivo de build, metadatos, notificaciones y deployer que la Integrations API.

Ejemplo de petición

curl 'https://upload.applivery.io/v1/organizations/ORG_ID/apps/APP_ID/builds' \
  -X POST \
  -H 'Authorization: Bearer YOUR_SERVICE_ACCOUNT_TOKEN' \
  -F '[email protected]' \
  -F 'versionName=v3.1.0' \
  -F 'changelog=Performance improvements' \
  -F 'notifyCollaborators=true' \
  -F 'deployer.name=Internal Deploy Bot' \
  -F 'deployer.info.branch=main' \
  -F 'deployer.info.buildNumber=88'

Applivery ofrece la Integrations API para pipelines de CI/CD y la Workspace API para automatización a nivel de workspace.

La Integrations API requiere un App API Token para la autenticación.

La URL base de la Integrations API es `https://upload.applivery.io`.

Las peticiones a la Integrations API deben usar el tipo de contenido `multipart/form-data`.

La Integrations API admite los formatos `.ipa`, `.apk` y `.aab` para cargar builds. Las Plataformas de Build personalizadas también están admitidas.

El parámetro `buildPlatform` es obligatorio de forma condicional al cargar una Plataforma de Build personalizada.

Establece el parámetro `notifyCollaborators` en `true` al cargar una build para enviar notificaciones por email.

Puedes incluir el nombre del deployer, el mensaje de commit, el SHA del commit, la rama y la etiqueta para poblar los metadatos de despliegue de la Build.

Last updated: June 8, 2026