Skip to main content
Version: 5.3.6

App APIs

Upload an app​

This allows you to upload an single iOS, Android or macOS file.

POST /api/apps/upload

Parameters​

info

Authentication required.

AttributeTypeRequiredDescription
fileFiletruean App file
channel_keyStringfalseChannel key
Create a new App if leave it empty
nameStringfalsethe name of App
Use app name from parsed metadata in given file if leave it empty
release_typeStringfalseEg, debug, beta, adhoc, release, enterprise į­‰
sourceStringfalsethe source of upload (default is api)
changelogStringfalseChangelog
Avaiables in plain text or JSON formatted struct
branchStringfalsea branch name from git
git_commitStringfalsegit commit
ci_urlStringfalsethe build url of a C
custom_fieldsStringfalseJSON formatted custom fileds
It could configures and display title,
value and icon from fontawesome in a Release page from an App

For changelog attribute which it accepts both plain text and JSON formatted contents:

plain text:

message 1\nmessage 2

JSON:

[
{
"message": "message 1",
"author": "admin",
"email": "admin@zealot.com",
"date": "2021-11-11 11:11:11"
},
{
"message": "message 1",
"author": "developer",
"email": "developer@zealot.com",
"date": "2021-11-11 11:11:11"
}
]

For custom_fields attribute which it use JSON formatted struct to build from each key-value. for example, Display country name like country=China with icon flag:

curl -X POST \
'https://YOUR_ZEALOT_URL/api/apps/upload' \
--form 'token="token"' \
--form 'channel_key="channel_key"' \
+ --form 'custom_fields="[{"name":"country","value":"China","icon":"fas fa-flag"}]"' \
--form 'file=@/path/to/your/app'

Return body​

{
"id": 50,
"version": 7,
"app_name": "Test Android",
"bundle_id": "com.test.app",
"release_version": "1.0",
"build_version": "1",
"source": "SOURCE",
"branch": "master",
"git_commit": "e9de48513dbb6abfbxxxxxxxxxxxxxxxxxxxxxxxx",
"ci_url": "",
"size": 1565486,
"icon_url": "/uploads/apps/a1/r1/icons/app_icon.png",
"release_url": "https://YOUR_ZEALOT_URL/channels/1XmpC/releases/1",
"install_url": "https://YOUR_ZEALOT_URL/download/releases/1",
"qrcode_url": "https://YOUR_ZEALOT_URL/channels/1XmpC/releases/1/qrcode?size=thumb",
"changelog": [
{
"message": "Changelog message 1"
},
{
"message": "Changelog message 2"
}
],
"text_changelog": "- Changelog message 1\n- Changelog message 2",
"custom_fields": [],
"created_at": "2021-09-01T11:43:33.977+08:00",
"app": {
"id": 1,
"name": "App name"
},
"scheme": {
"id": 8,
"name": "Test"
},
"channel": {
"slug": "1XmpC",
"name": "Android",
"device_type": "android",
"bundle_id": "*",
"git_url": null,
"has_password": false
}
}

List apps​

Get a list of app.

This function takes pagination parameters page and per_page to restrict the list of app.

GET /api/apps

Parameters​

AttributeTypeRequiredDescription
pageIntegerfalsePage number (default: 1)
per_pageIntegerfalseNumber of items to list per page (default: 25, max: 100).

Return body​

[
{
"id": 1,
"name": "Zealot",
"schemes": [
{
"id": 1,
"name": "Adhoc",
"channels": [
{
"slug": "X1IXN",
"name": "Android",
"device_type": "android",
"bundle_id": "*",
"git_url": null,
"has_password": false
},
{
"slug": "O1qHk",
"name": "iOS",
"device_type": "ios",
"bundle_id": "*",
"git_url": null,
"has_password": false
}
]
},
{
"id": 2,
"name": "Production",
"channels": [
{
"slug": "l19Tl",
"name": "Android",
"device_type": "android",
"bundle_id": "*",
"git_url": null,
"has_password": false
},
{
"slug": "8selv",
"name": "iOS",
"device_type": "ios",
"bundle_id": "*",
"git_url": null,
"has_password": false
}
]
}
]
}
]

Get an app​

Allows you to receive information about an app like name, scheme, channel.

GET /api/apps/:id

Parameters​

AttributeTypeRequiredDescription
idIntegertrueID

Return body​

{
"id": 1,
"name": "Zealot",
"schemes": [
{
"id": 5,
"name": "Test App",
"channels": [
{
"slug": "X1IXN",
"name": "Android",
"device_type": "android",
"bundle_id": "*",
"git_url": null,
"has_password": false
},
{
"slug": "O1qHk",
"name": "iOS",
"device_type": "ios",
"bundle_id": "*",
"git_url": null,
"has_password": false
}
]
}
]
}

Get versions list of app​

Get a list of apps by the given channel key

GET /api/apps/versions

Parameters​

AttributeTypeRequiredDescription
channel_keyStringtrueChannel key
pageIntegerfalsePage number (default: 1)
per_pageIntegerfalseNumber of items to list per page (default: 25, max: 100).

Return body​

{
"app_name": "Zealot iOS",
"bundle_id": "*",
"git_url": null,
"app": {
"id": 3,
"name": "Zealot"
},
"scheme": {
"id": 5,
"name": "AdHoc"
},
"releases": [
{
"version": 2,
"app_name": "Zealot iOS",
"bundle_id": "im.ews.zealot",
"release_version": "1.0.0",
"build_version": "10292024",
"source": "Web",
"branch": "",
"git_commit": "",
"ci_url": "",
"size": 79712596,
"icon_url": "https://tryzealot.ews.im/uploads/apps/a3/r21/icons/8ab13dc08321f9f3412a9fa98689d9c3.png",
"install_url": "itms-services://?action=download-manifest&url=https://tryzealot.ews.im/api/apps/O1qHk/1/install",
"changelog": [],
"created_at": "2019-12-25T14:26:06.608+08:00"
},
{
"version": 1,
"app_name": "Zealot iOS",
"bundle_id": "im.ews.zealot",
"release_version": "1.0.0",
"build_version": "10291524",
"source": "Web",
"branch": "",
"git_commit": "",
"ci_url": "",
"size": 79712596,
"icon_url": "https://tryzealot.ews.im/uploads/apps/a3/r21/icons/8ab13dc08321f9f3412a9fa98689d9c3.png",
"install_url": "itms-services://?action=download-manifest&url=https://tryzealot.ews.im/api/apps/O1qHk/1/install",
"changelog": [],
"created_at": "2019-12-25T14:26:06.608+08:00"
},
]
}

Get the latest version of app​

Allows you to receive the latest information about a Release version from App like app metadata, changelog, icon url, install (download) url.

GET /api/apps/latest

Parameters​

AttributeTypeRequiredDescription
channel_keyStringtrueChannel key
release_versionStringtrueRelease version
build_versionStringtrueBuild version

Return body​

{
"app_name": "Zealot iOS",
"bundle_id": "*",
"git_url": null,
"app": {
"id": 3,
"name": "Zealot"
},
"scheme": {
"id": 5,
"name": "AdHoc"
},
"releases": {
"version": 1,
"app_name": "Zealot iOS",
"bundle_id": "im.ews.zealot",
"release_version": "1.0.0",
"build_version": "10291524",
"source": "Web",
"branch": "",
"git_commit": "",
"ci_url": "",
"size": 79712596,
"icon_url": "https://tryzealot.ews.im/uploads/apps/a3/r21/icons/8ab13dc08321f9f3412a9fa98689d9c3.png",
"install_url": "itms-services://?action=download-manifest&url=https://tryzealot.ews.im/api/apps/O1qHk/1/install",
"changelog": [],
"created_at": "2019-12-25T14:26:06.608+08:00"
}
}

Check version exists​

Allows you to check the Release exists by given query, query accepts two combo group:

  • bundle_id, release_version and build_verion
  • bundle_id and git_commit
GET /api/apps/version_exist

Parameters​

AttributeTypeRequiredDescription
channel_keyStringtrueChannel key
bundle_idStringtruebundle_id or package_name
release_versionStringfalseRelease version
build_versionStringfalseBuild version
git_commitStringfalsegit commit hash

Return body​

  • Return 200 if release existed.
  • Return 404 if release not existed.

Success returns:

{
"version": 1,
"app_name": "Zealot iOS",
"bundle_id": "im.ews.zealot",
"release_version": "4.1.1",
"build_version": "10291524",
"source": "Web",
"branch": "",
"git_commit": "",
"ci_url": "",
"size": 79712596,
"icon_url": "https://tryzealot.ews.im/uploads/apps/a3/r21/icons/8ab13dc08321f9f3412a9fa98689d9c3.png",
"install_url": "itms-services://?action=download-manifest&url=https://tryzealot.ews.im/api/apps/O1qHk/1/install",
"changelog": [],
"created_at": "2019-12-25T14:26:06.608+08:00"
}

Not found returns:

{
"error": "Not found release"
}

Create an app​

Create an app by given name.

POST /api/apps

Parameters​

info

Authentication required.

AttributeTypeRequiredDescription
nameStringtrueThe name of App

Return body​

  • Return 422 if name is missing or empty.
  • Return 201 and response body if successful
[
{
"id": 1,
"name": "Zealot",
"schemes": []
}
]

Update an app​

Update app metadata by given ID.

PUT /api/apps/:id

Parameters​

info

Authentication required.

AttributeTypeRequiredDescription
idIntegertrueID
nameStringtrueThe name of App

Return body​

  • Return 404 if app not existed.
  • Return 200 and response body if successful
[
{
"id": 1,
"name": "New Zealot",
"schemes": []
}
]

Destroy an app​

Destroy an app by given ID, this will also destroy all related schemes, channels and releases.

DELETE /api/apps/:id

Parameters​

info

Authentication required.

AttributeTypeRequiredDescription
idIntegertrueID

Return body​

  • Return 404 if app not existed.
  • Return 200 if success.