Applications API

API for managing apps added to Codemagic

APIs for managing applications are currently available for developers to preview. During the preview period, the API may change without advance notice.

Using the API with apps configured with codemagic.yaml:
Unlike with Workflow Editor, information about workflows in codemagic.yaml is not stored in Codemagic and is therefore not available before starting a build and cloning the repository. Therefore, the API does not return workflow information such as workflowId for codemagic.yaml workflows.

Retrieve all applications

GET /apps

Example

curl -H "Content-Type: application/json" \
     -H "x-auth-token: <API Token>" \
     --request GET https://api.codemagic.io/apps

Response

{
  "applications": [{
    "_id": "6172cc7d57278d06d4e915f1",
	"appName": "Foobar-App",
	"workflowIds": [
	  "5d85f242e941e00019e81bd2"
	],
	"workflows": {
	  "5d85f242e941e00019e81bd2": {
	    "name": "Android Workflow"
	   }
	}
  }]
}

Retrieve an application

GET /apps/:id

Based on the application id provided, returns the applications information.

Example

curl -H "Content-Type: application/json" \
     -H "x-auth-token: <API Token>" \
     --request GET https://api.codemagic.io/apps/<app_id>

Response

{
  "application": {
    "_id": "5d85eaa0e941e00019e81bc2",
    "appName": "counter_flutter",
    "branches": [
      "master"
    ],
    "workflowIds": [
      "5d85f242e941e00019e81bd2"
    ],
    "workflows": {
      "5d85f242e941e00019e81bd2": {
        "name": "Android Workflow"
      }
    }
  }
}

Add a new application

POST /apps

Adds a Git repository to the applications list.

Parameters

NameTypeDescription
repositoryUrlstringRequired. SSH or HTTPS URL for cloning the repository.
teamIdstringOptional. Team ID, if you wish to add an app directly to one of your teams. You must be an admin in the team specified.

Example

curl -H "Content-Type: application/json" \
     -H "x-auth-token: <API Token>" \
     -d '{
       "repositoryUrl": "git@github.com:my-organization/my-repo.git"
     }' \
     -X POST https://api.codemagic.io/apps  

Response

{
  "_id": "5c9c064185dd2310123b8e96",
  "appName": "my-repo"
}

Add a new application from a private repository

POST /apps/new

Creates an application from a private repository with an SSH key

Parameters

NameTypeDescription
repositoryUrlstringRequired. SSH or HTTPS URL for cloning the repository.
sshKeyJSONRequired.
projectTypestringflutter-app when adding Flutter application.
teamIdstringOptional. Team ID, if you wish to add an app directly to one of your teams. You must be an admin of the team specified.

sshKey parameter

NameTypeDescription
datastringRequired. base64-encoded private key file.
passphrasestringRequired. SSH key passphrase or null if it SSH key is without a passphrase.

To encode private key file and paste result to clipboard

base64 id_rsa | pbcopy

Example

  curl -H "Content-Type: application/json" \
       -H "x-auth-token: <API Token>" \
       -d '{
         "repositoryUrl": "git@github.com:my-organization/my-repo.git",
         "sshKey": {
           "data": "St89hgb-BASE64-ENCODED-SSH-KEY-FILE-H4ga7jgf==", 
           "passphrase": null
         }
       }' \
       -X POST https://api.codemagic.io/apps 

Response

{"application" : {
  "_id": "5c9c064185dd2310123b8e96",
  "appName": "my-repo"
}}

Modify application variables and secrets

For up-to-date information on managing environment variables and secrets for apps configured using codemagic.yaml, please refer to the Secrets and Environment Vars endpoints in Codemagic REST API documentation.