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 |
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 | Sí | 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"
}
}
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 | Sí | El identificador único de tu organización en Applivery. |
applicationId |
String | Sí | 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'