Descargar una Build de forma programática requiere un proceso de dos pasos: primero generar un token de descarga de corta duración y luego usar ese token para resolver la URL de descarga real. La URL de descarga se sirve mediante una respuesta de redirección.
A diferencia de otros endpoints de builds, el endpoint de token de descarga solo está disponible a través de la Workspace API y requiere un token de una cuenta de servicio o un token de sesión de usuario obtenido al iniciar sesión. La Integrations API (App API Token) no admite este endpoint.
Para crear un token de una cuenta de servicio, consulta Cuentas de servicio.
Resumen: flujo de descarga
Paso 1: Genera un token de descarga
GET /v1/organizations/{organizationId}/apps/{applicationId}/builds/{buildId}/downloadToken
→ devuelve { token, expiresAt }
Paso 2: Resuelve la URL de descarga
GET https://download-api.applivery.io/v1/download/{token}
→ redirección HTTP 302 a la URL real del archivo
Genera un token de corta duración y uso único que autoriza la descarga de un archivo de Build concreto.
Endpoint
GET https://api.applivery.io/v1/organizations/{organizationId}/apps/{applicationId}/builds/{buildId}/downloadToken
Autenticación
Authorization: Bearer <your_service_account_token>
Parámetros de ruta
| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
organizationId |
String | Sí | El identificador único (o slug) de tu organización en Applivery. |
applicationId |
String | Sí | El identificador único de la App a la que pertenece la Build. |
buildId |
String | Sí | El identificador único de la Build que quieres descargar. Devuelto por POST – Subir una Build y GET – Lista de Builds. |
Parámetros de consulta
| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
type |
String | Sí | Especifica el formato de archivo para el que generar el token de descarga. Consulta los valores a continuación. |
Valores de type
| Valor | Descripción |
|---|---|
auto |
Comportamiento por defecto. Devuelve un .apk para Builds Android, o el manifest (.plist) para Builds Apple. Esta es la opción estándar para flujos de instalación OTA. |
file |
Devuelve el archivo binario original. Para Builds Apple, es el archivo .ipa o .pkg en lugar del manifest. Úsalo cuando necesites el archivo real en vez de un enlace de instalación OTA. |
aab |
Para Builds Android subidos originalmente como .aab, devuelve el archivo .aab original en lugar del .apk universal que genera Applivery. |
Ejemplo de petición
curl 'https://api.applivery.io/v1/organizations/MY_ORG_SLUG/apps/MY_APP_ID/builds/MY_BUILD_ID/downloadToken?type=file' \
-X GET \
-H 'Accept: application/json' \
-H 'Authorization: Bearer YOUR_SERVICE_ACCOUNT_TOKEN'
Respuestas
{
"status": true,
"data": {
"token": "string",
"expiresAt": "string"
}
}
Build aún no procesada. La Build existe pero aún no ha terminado de procesarse. Solo las Builds con status: processed pueden generar tokens de descarga.
{
"status": false,
"error": {
"code": 5014,
"message": "Build Not Processed"
}
}
{
"status": false,
"error": {
"code": 4002,
"message": "No auth token"
}
}
{
"status": false,
"error": {
"code": 3001,
"message": "Entity not found"
}
}
| Campo | Descripción |
|---|---|
token |
La cadena del token de descarga. Pásalo como parámetro de ruta en el paso 2 para resolver la URL de descarga. |
expiresAt |
Timestamp ISO 8601 que indica cuándo caduca el token. Los tokens son de corta duración — úsalos pronto tras generarlos. |
Usa el token obtenido en el paso 1 para obtener la URL de descarga real del archivo. La API responde con una redirección HTTP 302 Found al almacenamiento del archivo.
No se requiere autenticación. Este endpoint es público — el propio token actúa como credencial. Cualquier persona con el token puede descargar el archivo, así que trátalo como información sensible y no lo compartas más allá del destinatario previsto.
Endpoint
GET https://download-api.applivery.io/v1/download/{token}
Parámetros de ruta
| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
token |
String | Sí | El token de descarga devuelto en el paso 1. |
Ejemplo de petición
curl -L 'https://download-api.applivery.io/v1/download/YOUR_DOWNLOAD_TOKEN' \
-o downloaded_build.ipa
El flag -L indica a curl que siga la redirección 302 automáticamente. Sin él, recibirás la respuesta de redirección con la cabecera Location que contiene la URL real del archivo, pero el archivo no se descargará.
Comportamiento de redirección por plataforma
La URL en la cabecera de redirección Location varía según la plataforma y el valor del parámetro type usado en el paso 1:
| Plataforma | Valor de type |
Destino de la redirección |
|---|---|---|
| Android | auto |
Archivo .apk universal |
| Android | aab |
Archivo .aab original |
| Apple | auto |
Manifest OTA (.plist) — para instalación OTA mediante MDM o enlace directo |
| Apple | file |
Binario original — .ipa para iOS, .pkg para macOS |
Respuestas
Redirección a la URL del archivo.
La respuesta no tiene cuerpo. La URL de descarga real está en la cabecera de respuesta Location. Sigue la redirección para descargar el archivo.
Token caducado. Los tokens de descarga son de corta duración. Si ha caducado, genera uno nuevo desde el paso 1.
{
"status": false,
"error": {
"code": 4005,
"message": "Token Expired"
}
}
{
"status": false,
"error": {
"code": 3001,
"message": "Entity not found"
}
}
Ejemplo completo: descargar un archivo de Build
# Paso 1: Genera el token de descarga
TOKEN=$(curl -s \
'https://api.applivery.io/v1/organizations/MY_ORG/apps/MY_APP/builds/MY_BUILD/downloadToken?type=file' \
-H 'Authorization: Bearer YOUR_SERVICE_ACCOUNT_TOKEN' \
| jq -r '.data.token')
# Paso 2: Descarga el archivo siguiendo la redirección
curl -L \
"https://download-api.applivery.io/v1/download/$TOKEN" \
-o my_build.ipa