Bitrise.io API v0.1 (Work In Progress)
GitHub

Bitrise.io API v0.1 (Work In Progress)

The API is work-in-progress

The API is work-in-progress, we’ll add docs for new endpoints here as we progress, and might change things a bit if required.

API domain/host and versioning

The Bitrise API’s host is: https://api.bitrise.io/

Every endpoint except the root one is versioned, and the version have to be included in the URL right after the host.

Example: https://api.bitrise.io/v0.1/me (requires authentication)

Right now we have only one version, v0.1.

There’s no long term compatibility promise for v0.1, although we try to do our best to not to break anything unless we have to. Once we’re happy with v0.1 we’ll “freeze” it as v1.0, for which we’ll provide long term support.

Authentication

The current API supports only one type of authentication, user generated Personal Access Tokens.

Right now every API endpoint requires authentication, there’s no endpoint which you can call without including the authentication information, except the “root” URL (https://api.bitrise.io).

To acquire a Personal Access Token for your user, sign in with that user on bitrise.io, go to your Account Settings page, and select the Security tab on the left side.

Here you can manage your account’s Two Factor Authentication settings, as well as your Personal Access Tokens.

To get started with the API simply click the Generate new token button, and save the generated Personal Access Token somewhere safe.

Availability of the generated token

The generated token is shown only once, when it’s generated! There’s no way to see the token value again! You can of course generate as many Access Tokens as you like, and delete the ones you don’t need anymore.

Once you have the token you can start interacting with the API.

To provide the required access token you have to add a HEADER to your requests, with the key Authorization and value token THE-ACCESS-TOKEN.

An example API call with auth, using curl:

curl -H 'Authorization: token THE-ACCESS-TOKEN' https://api.bitrise.io/v0.1/me

Response

Every endpoint responds with a JSON formatted response.

Pagination

When you call an endpoint which returns a list of items you always have to be prepared that you might not get the whole list in a single response, you’ll have to iterate through the “pages” to retrieve all the items.

The response of the endpoint will include a paging object, with total_item_count and page_item_limit properties, and if there’s a “next” page available it’ll also include a next “anchor” item.

Example:

{
  "data": [ ... ],
  "paging": {
    "total_item_count": 3,
    "page_item_limit": 2,
    "next": "518e869d56f2adfd"
  }
}

_next_ property of the _paging_ object

The _next_ property of the _paging_ object is only included if there’s at least one more page available. If there’s no _next_ property inside _paging_ that means that there’s no more page to retrieve.

The page_item_limit property can be set with the query parameter named limit at the GET requests, so you can specify the size of the response pages. The default and also maximum value for this parameter is 50.

Example:

If you want to iterate through all the items this is what you have to do:

  1. First call the endpoint without any pagination parameters
  2. From the response process the paging object.
  3. If the paging object includes a next item, simply call the exact same endpoint with an additional next= query parameter, and pass the value you got in the response as the value of the next parameter.

That’s all.

A quick example, iterating through all of your registered apps:

  1. First call https://api.bitrise.io/v0.1/me/apps
  2. Process the items (data property)
  3. Then check the paging (root) property.
  4. If there’s a next property inside paging simply call the endpoint again, with the next query parameter
    • Example: https://api.bitrise.io/v0.1/me/apps?next=NEXTVALUE, where NEXTVALUE is the value of the next property you got in your previous response.
  5. Repeate this until the paging object does not include a next property, which means that the page you received was the last one.

Endpoints

Root URLs

Both / and /v0.1 are considered as root URLs, and return the same response at the moment (of course this will change in the future, once we have more than one version of the API).

These are the only endpoints which do not require authentication.

An example curl request:

curl https://api.bitrise.io/v0.1

GET /me

You can use this endpoint to get information about your account (identified by the Access Token).

Example curl request

curl -H 'Authorization: token THE-ACCESS-TOKEN' 'https://api.bitrise.io/v0.1/me'

Example response

{
  "data": {
    "avatar_url": "",
    "slug": "8e82ac7601178f17",
    "username": "api-demo"
  }
}

GET /users/USER-SLUG

Get information about a specific user account.

Example curl request

curl -H 'Authorization: token THE-ACCESS-TOKEN' 'https://api.bitrise.io/v0.1/users/USER-SLUG'

Example response

{
  "data": {
    "avatar_url": "",
    "slug": "8e82ac7601178f17",
    "username": "api-demo"
  }
}

GET /organizations

List the organizations you are part of.

Example curl request

curl -H 'Authorization: token THE-ACCESS-TOKEN' 'https://api.bitrise.io/v0.1/organizations'

Example response

{
  "data": [
    {
      "avatar_icon_url": "https://bitrise-public-content-production.s3.amazonaws.com/org-icons/default_avatar-01.png",
      "name": "APIDemoOrg",
      "slug": "e1ec3dea540bcf21"
    },
    {
      "avatar_icon_url": "https://bitrise-public-content-production.s3.amazonaws.com/org-icons/default_avatar-03.png",
      "name": "SecondApiDemoOrg",
      "slug": "04da60feea593f6c"
    }
  ]
}

GET /organizations/ORG-SLUG

Get information about a specific oraganization account.

Example curl request

curl -H 'Authorization: token THE-ACCESS-TOKEN' 'https://api.bitrise.io/v0.1/organizations/USER-SLUG'

Example response

{
  "data": {
    "avatar_icon_url": "https://bitrise-public-content-production.s3.amazonaws.com/org-icons/default_avatar-01.png",
    "name": "APIDemoOrg",
    "slug": "e1ec3dea540bcf21"
  }
}

GET /apps

Retrieve the apps you have access to. This includes the apps created / owned by you, as well as apps where you’re a Team member (either added directly, or through an Organization’s Group). All the apps you have access to (similar to the Dashboard on bitrise.io.

_/m_/apps__ endpoint

The _/m_/apps__ endpoint is also working and the same as above, but it’s deprecated.

Example curl request

curl -H 'Authorization: token THE-ACCESS-TOKEN' 'https://api.bitrise.io/v0.1/apps?limit=2'

Example response

{
  "data": [
    {
      "is_disabled": false,
      "is_public": false,
      "owner": {
        "account_type": "organization",
        "name": "APIDemoOrg",
        "slug": "e1ec3dea540bcf21"
      },
      "project_type": "ios",
      "provider": "github",
      "repo_owner": "bitrise-samples",
      "repo_slug": "sample-apps-ios-swift-xcode6",
      "repo_url": "https://github.com/bitrise-samples/sample-apps-ios-swift-xcode6.git",
      "slug": "93f256e365d929d3",
      "status": 1,
      "title": "sample-apps-ios-swift-xcode6"
    },
    {
      "is_disabled": false,
      "is_public": false,
      "owner": {
        "account_type": "user",
        "name": "api-demo",
        "slug": "8e82ac7601178f17"
      },
      "project_type": "xamarin",
      "provider": "github",
      "repo_owner": "bitrise-samples",
      "repo_slug": "sample-apps-xamarin-cross-platform",
      "repo_url": "https://github.com/bitrise-samples/sample-apps-xamarin-cross-platform.git",
      "slug": "f46e89061e967f27",
      "status": 1,
      "title": "sample-apps-xamarin-cross-platform"
    }
  ],
  "paging": {
    "next": "13533d589b89fb4b",
    "page_item_limit": 2,
    "total_item_count": 5
  }
}

Sorting parameters for app list

There are two available sorting parameter for this endpoint:

Example curl request

Request:

curl -H 'Authorization: token THE-ACCESS-TOKEN' 'https://api.bitrise.io/v0.1/apps?limit=2&sort_by=last_build_at'

Response:

{
  "data": [
    {
      "is_disabled": false,
      "is_public": false,
      "owner": {
        "account_type": "organization",
        "name": "APIDemoOrg",
        "slug": "e1ec3dea540bcf21"
      },
      "project_type": "ios",
      "provider": "github",
      "repo_owner": "bitrise-samples",
      "repo_slug": "sample-apps-ios-swift-xcode6",
      "repo_url": "https://github.com/bitrise-samples/sample-apps-ios-swift-xcode6.git",
      "slug": "93f256e365d929d3",
      "status": 1,
      "title": "sample-apps-ios-swift-xcode6"
    },
    {
      "is_disabled": false,
      "is_public": false,
      "owner": {
        "account_type": "user",
        "name": "api-demo",
        "slug": "8e82ac7601178f17"
      },
      "project_type": "android",
      "provider": "github",
      "repo_owner": "bitrise-samples",
      "repo_slug": "sample-apps-android-sdk22",
      "repo_url": "https://github.com/bitrise-samples/sample-apps-android-sdk22.git",
      "slug": "669403bffbe35909",
      "status": 1,
      "title": "sample-apps-android-sdk22"
    }
  ],
  "paging": {
    "next": "13533d589b89fb4b",
    "page_item_limit": 2,
    "total_item_count": 5
  }
}

GET /users/USER-SLUG/apps

Also you can list apps for a specific user, obviously only those applicaitons with be listed in this response, which you have required rights. This endpoint works and responses the same as the /apps one, so you can use the same parameters too.

_/me_ subroute

This endpoint doesn’t work with the __/me__ subroute.

Example curl request

curl -H 'Authorization: token THE-ACCESS-TOKEN' 'https://api.bitrise.io/v0.1/users/USER-SLUG/apps?limit=2'

Example response

{
  "data": [
    {
      "is_disabled": false,
      "is_public": false,
      "owner": {
        "account_type": "user",
        "name": "api-demo",
        "slug": "8e82ac7601178f17"
      },
      "project_type": "xamarin",
      "provider": "github",
      "repo_owner": "bitrise-samples",
      "repo_slug": "sample-apps-xamarin-cross-platform",
      "repo_url": "https://github.com/bitrise-samples/sample-apps-xamarin-cross-platform.git",
      "slug": "f46e89061e967f27",
      "status": 1,
      "title": "sample-apps-xamarin-cross-platform"
    },
    {
      "is_disabled": false,
      "is_public": false,
      "owner": {
        "account_type": "user",
        "name": "api-demo",
        "slug": "8e82ac7601178f17"
      },
      "project_type": "macos",
      "provider": "github",
      "repo_owner": "bitrise-samples",
      "repo_slug": "sample-apps-osx-10-12",
      "repo_url": "https://github.com/bitrise-samples/sample-apps-osx-10-12.git",
      "slug": "13533d589b89fb4b",
      "status": 1,
      "title": "sample-apps-osx-10-12"
    }
  ],
  "paging": {
    "next": "669403bffbe35909",
    "page_item_limit": 2,
    "total_item_count": 4
  }
}

GET /organizations/ORG-SLUG/apps

Also you can list apps for a specific oraganization, it works the very same way as the /users/USER-SLUG/apps one.

_/me_ subroute

This endpoint doesn’t work with the __/me__ subroute.

Example curl request

curl -H 'Authorization: token THE-ACCESS-TOKEN' 'https://api.bitrise.io/v0.1/organizations/USER-SLUG/apps?limit=2'

Example response

{
  "data": [
    {
      "is_disabled": false,
      "is_public": false,
      "owner": {
        "account_type": "organization",
        "name": "APIDemoOrg",
        "slug": "e1ec3dea540bcf21"
      },
      "project_type": "ios",
      "provider": "github",
      "repo_owner": "bitrise-samples",
      "repo_slug": "sample-apps-ios-swift-xcode6",
      "repo_url": "https://github.com/bitrise-samples/sample-apps-ios-swift-xcode6.git",
      "slug": "93f256e365d929d3",
      "status": 1,
      "title": "sample-apps-ios-swift-xcode6"
    }
  ],
  "paging": {
    "page_item_limit": 2,
    "total_item_count": 1
  }
}

POST /apps/register

Add a new application

Example curl request

curl -H 'Authorization: token THE-ACCESS-TOKEN' 'https://api.bitrise.io/v0.1/apps/APP-SLUG' -d '{"provider":"github","is_public":false,"repo_url":"git@github.com:api_demo/example-repository.git","type":"git","git_repo_slug":"example-repository","git_owner":"api_demo"}'

Example response

{
  "status": "ok",
  "slug": "022d8a3124f1225d"
}

POST /apps/APP-SLUG/register-ssh-key

Register an SSH key to a specific application

Example curl request

curl -H 'Authorization: token THE-ACCESS-TOKEN' 'https://api.bitrise.io/v0.1/apps/APP-SLUG/register-ssh-key' -d '{"auth_ssh_private_key":"your-private-ssh-key","auth_ssh_public_key":"your-public-ssh-key","is_register_key_into_provider_service":false}'

Example response

{
  "status": "ok",
}

POST /apps/APP-SLUG/register-webhook

Register a webhook for a specific application

Example curl request

curl -H 'Authorization: token THE-ACCESS-TOKEN' 'https://api.bitrise.io/v0.1/apps/APP-SLUG/register-webhook'

Example response

{
  "status": "ok",
}

POST /apps/APP-SLUG/finish

Save the application at the end of the application add process

Parameters:

Example curl request

curl -H 'Authorization: token THE-ACCESS-TOKEN' 'https://api.bitrise.io/v0.1/apps/APP-SLUG/finish' -d '{"project_type":"ios","stack_id":"osx-vs4mac-stable","config":"default-ios-config","mode":"manual","envs":{"env1":"val1","env2":"val2"},"organization_slug":"e1ec3dea540bcf21"}'

Example response

{
	"status": "ok",
	"build_trigger_token": "ewUL_74D1PrKtBe5LF19Dg",
	"branch_name": "master",
	"is_webhook_auto_reg_supported": true
}

GET /apps/{APP-SLUG}

Get a specific app’s data.

Example curl request

curl -H 'Authorization: token THE-ACCESS-TOKEN' 'https://api.bitrise.io/v0.1/apps/APP-SLUG'

Example response

{
  "data": {
    "is_disabled": false,
    "is_public": false,
    "owner": {
      "account_type": "user",
      "name": "api-demo",
      "slug": "8e82ac7601178f17"
    },
    "project_type": "android",
    "provider": "github",
    "repo_owner": "bitrise-samples",
    "repo_slug": "sample-apps-android-sdk22",
    "repo_url": "https://github.com/bitrise-samples/sample-apps-android-sdk22.git",
    "slug": "669403bffbe35909",
    "status": 1,
    "title": "sample-apps-android-sdk22"
  }
}

GET /apps/{APP-SLUG}/bitrise.yml

Download the bitrise.yml of your application.

Example curl request

curl -H 'Authorization: token THE-ACCESS-TOKEN' 'https://api.bitrise.io/v0.1/apps/APP-SLUG/bitrise.yml'

Example response

app:
  envs:
  - BITRISE_PROJECT_PATH: sample-apps-osx-10-12.xcodeproj
    opts:
      is_expand: false
  - BITRISE_SCHEME: sample-apps-osx-10-12
    opts:
      is_expand: false
default_step_lib_source: https://github.com/bitrise-io/bitrise-steplib.git
format_version: 1.3.1
trigger_map:
- push_branch: '*'
  workflow: primary
- pull_request_source_branch: '*'
  workflow: primary
workflows:
  deploy:
    steps:
    - activate-ssh-key@3.1.1:
        run_if: ''
    - git-clone@3.4.2: {}
    - script@1.1.3:
        title: Do anything with Script step
    - certificate-and-profile-installer@1.8.4: {}
    - xcode-test-mac:
        inputs:
        - project_path: $BITRISE_PROJECT_PATH
        - scheme: $BITRISE_SCHEME
    - xcode-archive-mac@1.4.0:
        inputs:
        - project_path: $BITRISE_PROJECT_PATH
        - scheme: $BITRISE_SCHEME
    - deploy-to-bitrise-io@1.2.9: {}
  primary:
    steps:
    - activate-ssh-key@3.1.1:
        run_if: ''
    - git-clone@3.4.2: {}
    - script@1.1.3:
        title: Do anything with Script step
    - certificate-and-profile-installer@1.8.4: {}
    - xcode-test-mac@1.1.0:
        inputs:
        - project_path: $BITRISE_PROJECT_PATH
        - scheme: $BITRISE_SCHEME
    - deploy-to-bitrise-io@1.2.9: {}

POST /apps/{APP-SLUG}/bitrise.yml

Upload a new bitrise.yml for your application.

Example curl request

curl -X POST -H 'Authorization: token THE-ACCESS-TOKEN' 'https://api.bitrise.io/v0.1/apps/APP-SLUG/bitrise.yml' -d '{"app_config_datastore_yaml":"app:\n  envs:\n  - BITRISE_PROJECT_PATH: sample-apps-osx-10-12.xcodeproj\n    opts:\n      is_expand: false\n  - BITRISE_SCHEME: sample-apps-osx-10-12\n    opts:\n      is_expand: false\ndefault_step_lib_source: https://github.com/bitrise-io/bitrise-steplib.git\nformat_version: 1.3.1\ntrigger_map:\n- push_branch: '*'\n  workflow: primary\n- pull_request_source_branch: '*'\n  workflow: primary\nworkflows:\n  deploy:\n    steps:\n    - activate-ssh-key@3.1.1:\n        run_if: ''\n    - git-clone@3.4.2: {}\n    - script@1.1.3:\n        title: Do anything with Script step\n    - certificate-and-profile-installer@1.8.4: {}\n    - xcode-test-mac:\n        inputs:\n        - project_path: $BITRISE_PROJECT_PATH\n        - scheme: $BITRISE_SCHEME\n    - xcode-archive-mac@1.4.0:\n        inputs:\n        - project_path: $BITRISE_PROJECT_PATH\n        - scheme: $BITRISE_SCHEME\n    - deploy-to-bitrise-io@1.2.9: {}\n  primary:\n    steps:\n    - activate-ssh-key@3.1.1:\n        run_if: ''\n    - git-clone@3.4.2: {}\n    - script@1.1.3:\n        title: Do anything with Script step\n    - certificate-and-profile-installer@1.8.4: {}\n    - xcode-test-mac@1.1.0:\n        inputs:\n        - project_path: $BITRISE_PROJECT_PATH\n        - scheme: $BITRISE_SCHEME\n    - deploy-to-bitrise-io@1.2.9: {}\n"}'

Example response

{
  "app": {
    "envs": [
      {
        "BITRISE_PROJECT_PATH": "sample-apps-osx-10-12.xcodeproj",
        "opts": {
          "is_expand": false
        }
      },
      {
        "BITRISE_SCHEME": "sample-apps-osx-10-12",
        "opts": {
          "is_expand": false
        }
      }
    ]
  },
  "default_step_lib_source": "https://github.com/bitrise-io/bitrise-steplib.git",
  "format_version": "1.3.1",
  "trigger_map": [
    {
      "push_branch": "*",
      "workflow": "primary"
    },
    {
      "pull_request_source_branch": "*",
      "workflow": "primary"
    }
  ],
  "workflows": {
    "deploy": {
      "steps": [
        {
          "activate-ssh-key@3.1.1": {
            "run_if": ""
          }
        },
        {
          "git-clone@3.4.2": {}
        },
        {
          "script@1.1.3": {
            "title": "Do anything with Script step"
          }
        },
        {
          "certificate-and-profile-installer@1.8.4": {}
        },
        {
          "xcode-test-mac": {
            "inputs": [
              {
                "project_path": "$BITRISE_PROJECT_PATH"
              },
              {
                "scheme": "$BITRISE_SCHEME"
              }
            ]
          }
        },
        {
          "xcode-archive-mac@1.4.0": {
            "inputs": [
              {
                "project_path": "$BITRISE_PROJECT_PATH"
              },
              {
                "scheme": "$BITRISE_SCHEME"
              }
            ]
          }
        },
        {
          "deploy-to-bitrise-io@1.2.9": {}
        }
      ]
    },
    "primary": {
      "steps": [
        {
          "activate-ssh-key@3.1.1": {
            "run_if": ""
          }
        },
        {
          "git-clone@3.4.2": {}
        },
        {
          "script@1.1.3": {
            "title": "Do anything with Script step"
          }
        },
        {
          "certificate-and-profile-installer@1.8.4": {}
        },
        {
          "xcode-test-mac@1.1.0": {
            "inputs": [
              {
                "project_path": "$BITRISE_PROJECT_PATH"
              },
              {
                "scheme": "$BITRISE_SCHEME"
              }
            ]
          }
        },
        {
          "deploy-to-bitrise-io@1.2.9": {}
        }
      ]
    }
  }
}

POST /apps/{APP-SLUG}/provisioning-profiles

Add provisioning profile for a specific application. This is the first phase of the provisioning profile upload process, calling this endpoint a new provisioning profile object is created and its slug and a presigned upload URL will be retrieved.

Example curl request

curl -X POST -H 'Authorization: token THE-ACCESS-TOKEN' 'https://api.bitrise.io/v0.1/apps/APP-SLUG/provisioning-profiles' -d '{"upload_file_name":"sample.provisionprofile","upload_file_size":2047}'

Example response

{
  "data":{
    "upload_file_name":"sample.provisionprofile",
    "upload_file_size":2047,
    "slug":"01C6FA6P6HRQT5PQ8RMMVVXE6W",
    "processed":false,
    "is_expose":true,
    "is_protected":false,
    "upload_url":"https://concrete-userfiles-production.s3-us-west-2.amazonaws.com/build_certificates/uploads/30067/original/certs.p12?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=AKIAIOC7N256G7J2W2TQ%2F20180216%2Fus-west-2%2Fs3%2Faws4_request&X-Amz-Date=20180216T124240Z&X-Amz-Expires=600&X-Amz-SignedHeaders=content-length%3Bhost&X-Amz-Signature=2bf42176650f00405abfd7b7757635c9be16b43e98013abb7f750d3c658be28e"
  }
}

After this call you have to upload to AWS your provisioning profile file with the presigned URL.

Example curl request

curl -T sample.provisionprofile 'https://concrete-userfiles-production.s3-us-west-2.amazonaws.com/build_certificates/uploads/30067/original/certs.p12?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=AKIAIOC7N256G7J2W2TQ%2F20180216%2Fus-west-2%2Fs3%2Faws4_request&X-Amz-Date=20180216T124240Z&X-Amz-Expires=600&X-Amz-SignedHeaders=content-length%3Bhost&X-Amz-Signature=2bf42176650f00405abfd7b7757635c9be16b43e98013abb7f750d3c658be28e'

POST /apps/{APP-SLUG}/provisioning-profiles/{PROVISIONING-PROFILE-SLUG}/uploaded

After the provisioning profile is uploaded to AWS, you have to confirm the upload with this endpoint.

Example curl request

curl -X POST -H  'Authorization: token THE-ACCESS-TOKEN' 'https://api.bitrise.io/v0.1/apps/APP-SLUG/provisioning-profiles/PROVISIONING-PROFILE-SLUG/uploaded'

Example response

{
  "data":{
    "upload_file_name":"sample.provisionprofile",
    "upload_file_size":2047,
    "slug":"01C6FA6P6HRQT5PQ8RMMVVXE6W",
    "processed":false,
    "is_expose":true,
    "is_protected":false
  }
}

GET /apps/{APP-SLUG}/provisioning-profiles

List provisioning profiles for a specific application.

Example curl request

curl -X POST -H  'Authorization: token THE-ACCESS-TOKEN' 'https://api.bitrise.io/v0.1/apps/APP-SLUG/provisioning-profiles'

Example response

{
  "data": [
    {
      "upload_file_name":"sample.provisionprofile",
      "upload_file_size":2047,
      "slug":"01C6FA6P6HRQT5PQ8RMMVVXE6W",
      "processed":false,
      "is_expose":true,
      "is_protected":false
    },
    {
      "upload_file_name":"sample2.provisionprofile",
      "upload_file_size":2047,
      "slug":"01C6FA6P6HRQT5PQ8RMMVVXE5T",
      "processed":true,
      "is_expose":true,
      "is_protected":true
    }
  ],
  "paging": {
    "page_item_limit": 50,
    "total_item_count": 2
  }
}

GET /apps/{APP-SLUG}/provisioning-profiles/{PROVISIONING-PROFILE-SLUG}

Get a specific provisioning profile’s data.

Example curl request

curl -X POST -H  'Authorization: token THE-ACCESS-TOKEN' 'https://api.bitrise.io/v0.1/apps/APP-SLUG/provisioning-profiles/PROVISIONING-PROFILE-SLUG'

Example response

{
  "data": {
    "upload_file_name":"sample.provisionprofile",
    "upload_file_size":2047,
    "slug":"01C6FA6P6HRQT5PQ8RMMVVXE6W",
    "processed":false,
    "is_expose":true,
    "is_protected":false,
    "download_url":"https://concrete-userfiles-production.s3-us-west-2.amazonaws.com/prov_profile_documents/uploads/80144/original/sample.provisionprofile?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=AKIAIOC7N256G7J2W2TQ%2F20180322%2Fus-west-2%2Fs3%2Faws4_request&X-Amz-Date=20180322T091652Z&X-Amz-Expires=600&X-Amz-SignedHeaders=host&X-Amz-Signature=6dd7bb3db72aafb2d434da7b1a8f80a82a3a7a0276e84620137ed64de5025ab2"
  }
}

_download_url_

The _download_url_ is generated only when the provisioning profile’s _is_protected_ attribute is _false_.

PATCH /apps/{APP-SLUG}/provisioning-profiles/{PROVISIONING-PROFILE-SLUG}

Set a specific subset of provisioning profile attributes. You can update the is_protected, is_expose and processed attributes of a provisioning profile object. There are some constraints:

  1. once the is_protected flag is set with value true it cannot be changed anymore
  2. when the value of is_protected is true, then the is_expose flag cannot be set to other value
  3. once processed flag set to true, then its value cannot be changed anymore

Violating these constraints the response will be Bad Request.

_/apps/{APP-SLUG}/provisionig-profiles/{PROVISIONING-PROFILE-SLUG}/uploaded_

The previous _/apps/{APP-SLUG}/provisionig-profiles/{PROVISIONING-PROFILE-SLUG}/uploaded_ endpoint will have the same effect as this one with the request body {"processed":true}.

Example curl request

curl -X PATCH -H  'Authorization: token THE-ACCESS-TOKEN' 'https://api.bitrise.io/v0.1/apps/APP-SLUG/provisioning-profiles/PROVISIONING-PROFILE-SLUG -d '{"is_protected":true}'

Example response

{
  "data":{
    "upload_file_name":"sample.provisionprofile",
    "upload_file_size":2047,
    "slug":"01C6FA6P6HRQT5PQ8RMMVVXE6W",
    "processed":false,
    "is_expose":true,
    "is_protected":true
  }
}

POST /apps/{APP-SLUG}/build-certificates

Add certificate file for a specific application. This is the first phase of the certificate file upload process, calling this endpoint a new certificate object is created and its slug and a presigned upload URL will be retrieved.

Example curl request

curl -X POST -H 'Authorization: token THE-ACCESS-TOKEN' 'https://api.bitrise.io/v0.1/apps/APP-SLUG/build-certificates' -d '{"upload_file_name":"sample_cert.p12","upload_file_size":1023}'

Example response

{
  "data":{
    "upload_file_name":"sample_cert.p12",
    "upload_file_size":1023,
    "slug":"01C6FA2R4CB772QTDETBE0MENP",
    "processed":false,
    "certificate_password":"",
    "is_expose":true,
    "is_protected":false,
    "upload_url":"https://concrete-userfiles-production.s3-us-west-2.amazonaws.com/build_certificates/uploads/30067/original/certs.p12?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=AKIAIOC7N256G7J2W2TQ%2F20180216%2Fus-west-2%2Fs3%2Faws4_request&X-Amz-Date=20180216T124240Z&X-Amz-Expires=600&X-Amz-SignedHeaders=content-length%3Bhost&X-Amz-Signature=2bf42176650f00405abfd7b7757635c9be16b43e98013abb7f750d3c658be28e"
  }
}

After this call you have to upload to AWS your certificate file with the presigned URL.

Example curl request

curl -T sample_cert.p12 'https://concrete-userfiles-production.s3-us-west-2.amazonaws.com/build_certificates/uploads/30067/original/certs.p12?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=AKIAIOC7N256G7J2W2TQ%2F20180216%2Fus-west-2%2Fs3%2Faws4_request&X-Amz-Date=20180216T124240Z&X-Amz-Expires=600&X-Amz-SignedHeaders=content-length%3Bhost&X-Amz-Signature=2bf42176650f00405abfd7b7757635c9be16b43e98013abb7f750d3c658be28e

POST /apps/{APP-SLUG}/build-certificates/{BUILD-CERTIFICATE-SLUG}/uploaded

After the certificate file is uploaded to AWS, you have to confirm the upload with this endpoint.

Example curl request

curl -X POST -H 'Authorization: token THE-ACCESS-TOKEN' 'https://api.bitrise.io/v0.1/apps/APP-SLUG/build-certificates/BUILD-CERTIFICATE-SLUG/uploaded'

Example response

{
  "data":{
    "upload_file_name":"sample_cert.p12",
    "upload_file_size":1023,
    "slug":"01C6FA2R4CB772QTDETBE0MENP",
    "processed":true,
    "certificate_password":"",
    "is_expose":true,
    "is_protected":false
  }
}

GET /apps/{APP-SLUG}/build-certificates

List build certificates for a specific application.

Example curl request

curl -X POST -H  'Authorization: token THE-ACCESS-TOKEN' 'https://api.bitrise.io/v0.1/apps/APP-SLUG/build-certificates'

Example response

{
  "data": [
    {
      "upload_file_name":"sample_cert.p12",
      "upload_file_size":1023,
      "slug":"01C6FA2R4CB772QTDETBE0MENP",
      "processed":true,
      "certificate_password":"",
      "is_expose":true,
      "is_protected":false
    },
    {
      "upload_file_name":"sample_cert_2.p12",
      "upload_file_size":1023,
      "slug":"01C6FA2R4CB772QTDETBE0MEMO",
      "processed":true,
      "certificate_password":"s0m3-s3cr3t-ch4r4ct3r5",
      "is_expose":true,
      "is_protected":true
    }
  ],
  "paging": {
    "page_item_limit": 50,
    "total_item_count": 2
  }
}

GET /apps/{APP-SLUG}/build-certificates/{BUILD-CERTIFICATE-SLUG}

Get a specific build certificate’s data.

Example curl request

curl -X POST -H  'Authorization: token THE-ACCESS-TOKEN' 'https://api.bitrise.io/v0.1/apps/APP-SLUG/build-certificates/BUILD-CERTIFICATE-SLUG'

Example response

{
  "data": {
    "upload_file_name":"sample_cert.p12",
    "upload_file_size":1023,
    "slug":"01C6FA2R4CB772QTDETBE0MENP",
    "processed":true,
    "certificate_password":"",
    "is_expose":true,
    "is_protected":false,
    "download_url":"https://concrete-userfiles-production.s3-us-west-2.amazonaws.com/prov_profile_documents/uploads/80144/original/sample.provisionprofile?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=AKIAIOC7N256G7J2W2TQ%2F20180322%2Fus-west-2%2Fs3%2Faws4_request&X-Amz-Date=20180322T091652Z&X-Amz-Expires=600&X-Amz-SignedHeaders=host&X-Amz-Signature=6dd7bb3db72aafb2d434da7b1a8f80a82a3a7a0276e84620137ed64de5025ab2"
  }
}

When does the _download_url_ get generated?

The _download_url_ is generated only when the build certificate’s _is_protected_ attribute is _false_.

PATCH /apps/{APP-SLUG}/build-certificates/{BUILD-CERTIFICATE-SLUG}

Set a specific subset of build certificate attributes. You can update the is_protected, is_expose, certificate_password and processed attributes of a build certificate object. There are some constraints:

  1. once the is_protected flag is set with value true it cannot be changed anymore
  2. when the value of is_protected is true, then the is_expose flag cannot be set to other value
  3. once processed flag set to true, then its value cannot be changed anymore

Violating these constraints the response will be Bad Request.

_/apps/{APP-SLUG}/build-certificates/{BUILD-CERTIFICATE-SLUG}/uploaded_ endpoint

The previous _/apps/{APP-SLUG}/build-certificates/{BUILD-CERTIFICATE-SLUG}/uploaded_ endpoint will have the same effect as this one with the request body {"processed":true}.

Example curl request

curl -X PATCH -H  'Authorization: token THE-ACCESS-TOKEN' 'https://api.bitrise.io/v0.1/apps/APP-SLUG/build-certificates/BUILD-CERTIFICATE-SLUG -d '{"is_protected":true}'

Example response

{
  "data":{
    "upload_file_name":"sample_cert.p12",
    "upload_file_size":1023,
    "slug":"01C6FA2R4CB772QTDETBE0MENP",
    "processed":true,
    "certificate_password":"",
    "is_expose":true,
    "is_protected":true
  }
}

GET /apps/{APP-SLUG}/builds

Get the builds of a specific app.

Status codes (status) and related status texts (status_text):

Build times:

Example curl request

curl -H 'Authorization: token THE-ACCESS-TOKEN' 'https://api.bitrise.io/v0.1/apps/APP-SLUG/builds?limit=3'

Example response

{
  "data": [
    {
      "abort_reason": null,
      "branch": "master",
      "build_number": 48,
      "commit_hash": null,
      "commit_message": null,
      "commit_view_url": null,
      "environment_prepare_finished_at": null,
      "finished_at": null,
      "is_on_hold": false,
      "original_build_params": {
        "branch": "master",
        "workflow_id": "primary"
      },
      "pull_request_id": 0,
      "pull_request_target_branch": null,
      "pull_request_view_url": null,
      "slug": "53e40ec7fccecd8f",
      "stack_config_type": "standard1",
      "stack_identifier": "linux-docker-android",
      "started_on_worker_at": "2018-08-23T08:21:19Z",
      "status": 0,
      "status_text": "in-progress",
      "tag": null,
      "triggered_at": "2018-08-23T08:21:18Z",
      "triggered_by": "bitrise_api_doc",
      "triggered_workflow": "primary"
    },
    {
      "abort_reason": null,
      "branch": "master",
      "build_number": 47,
      "commit_hash": null,
      "commit_message": null,
      "commit_view_url": null,
      "environment_prepare_finished_at": "2018-08-23T08:10:23Z",
      "finished_at": "2018-08-23T08:11:52Z",
      "is_on_hold": false,
      "original_build_params": {
        "branch": "master",
        "workflow_id": "primary"
      },
      "pull_request_id": 0,
      "pull_request_target_branch": null,
      "pull_request_view_url": null,
      "slug": "b44d9487b71bbf9a",
      "stack_config_type": "standard1",
      "stack_identifier": "linux-docker-android",
      "started_on_worker_at": "2018-08-23T08:09:25Z",
      "status": 1,
      "status_text": "success",
      "tag": null,
      "triggered_at": "2018-08-23T08:09:24Z",
      "triggered_by": "bitrise_api_doc",
      "triggered_workflow": "primary"
    },
    {
      "abort_reason": null,
      "branch": "master",
      "build_number": 46,
      "commit_hash": null,
      "commit_message": null,
      "commit_view_url": null,
      "environment_prepare_finished_at": "2018-07-18T15:00:31Z",
      "finished_at": "2018-07-18T15:01:47Z",
      "is_on_hold": false,
      "original_build_params": {
        "branch": "master",
        "workflow_id": "primary"
      },
      "pull_request_id": 0,
      "pull_request_target_branch": null,
      "pull_request_view_url": null,
      "slug": "8f37186d581dc101",
      "stack_config_type": "standard1",
      "stack_identifier": "linux-docker-android",
      "started_on_worker_at": "2018-07-18T14:59:34Z",
      "status": 1,
      "status_text": "success",
      "tag": null,
      "triggered_at": "2018-07-18T14:59:32Z",
      "triggered_by": "bitrise_api_doc",
      "triggered_workflow": "primary"
    }
  ],
  "paging": {
    "next": "a38bec3ffe7bf674",
    "page_item_limit": 3,
    "total_item_count": 48
  }
}

Filtering parameters for build list

It’s possible to filter the builds with URL query parameters. These parameters evaluated with a logical AND operator.

Available parameters:
Example curl requests

Request with status filtering (aborted builds):

curl -H 'Authorization: token THE-ACCESS-TOKEN' 'https://api.bitrise.io/v0.1/apps/APP-SLUG/builds?status=3'

Response:

{
  "data": [
    {
      "abort_reason": "User api-demo requested to abort this build with reason: canceled through the API",
      "branch": "master",
      "build_number": 12,
      "commit_hash": null,
      "commit_message": "this build will be aborted through the API",
      "commit_view_url": null,
      "environment_prepare_finished_at": "2017-06-20T22:35:03Z",
      "finished_at": "2017-06-20T22:35:15Z",
      "is_on_hold": false,
      "original_build_params": {
        "branch": "master",
        "commit_message": "this build will be aborted through the API"
      },
      "pull_request_id": 0,
      "pull_request_target_branch": null,
      "pull_request_view_url": null,
      "slug": "ce86c8475d31d288",
      "stack_config_type": "standard1",
      "stack_identifier": "linux-docker-android",
      "started_on_worker_at": "2017-06-20T22:35:03Z",
      "status": 3,
      "status_text": "aborted",
      "tag": null,
      "triggered_at": "2017-06-20T22:35:02Z",
      "triggered_by": null,
      "triggered_workflow": "primary"
    },
    {
      "abort_reason": "User api-demo requested to abort this build with reason: This is an example abort build",
      "branch": "master",
      "build_number": 10,
      "commit_hash": null,
      "commit_message": "Abort example",
      "commit_view_url": null,
      "environment_prepare_finished_at": "2017-05-30T15:47:17Z",
      "finished_at": "2017-05-30T15:47:32Z",
      "is_on_hold": false,
      "original_build_params": {
        "branch": "master",
        "commit_message": "Abort example"
      },
      "pull_request_id": 0,
      "pull_request_target_branch": null,
      "pull_request_view_url": null,
      "slug": "3247e2920496e846",
      "stack_config_type": null,
      "stack_identifier": null,
      "started_on_worker_at": "2017-05-30T15:47:17Z",
      "status": 3,
      "status_text": "aborted",
      "tag": null,
      "triggered_at": "2017-05-30T15:47:17Z",
      "triggered_by": null,
      "triggered_workflow": "primary"
    }
  ],
  "paging": {
    "page_item_limit": 50,
    "total_item_count": 2
  }
}

Request with branch filtering (builds on develop branch):

curl -H 'Authorization: token THE-ACCESS-TOKEN' 'https://api.bitrise.io/v0.1/apps/APP-SLUG/builds?branch=develop'

Response:

{
  "data": [
    {
      "abort_reason": null,
      "branch": "develop",
      "build_number": 15,
      "commit_hash": null,
      "commit_message": null,
      "commit_view_url": null,
      "environment_prepare_finished_at": "2017-08-17T07:46:00Z",
      "finished_at": "2017-08-17T07:47:25Z",
      "is_on_hold": false,
      "original_build_params": {
        "branch": "develop"
      },
      "pull_request_id": 0,
      "pull_request_target_branch": null,
      "pull_request_view_url": null,
      "slug": "1e79f459d59ec74b",
      "stack_config_type": "standard1",
      "stack_identifier": "linux-docker-android",
      "started_on_worker_at": "2017-08-17T07:46:00Z",
      "status": 1,
      "status_text": "success",
      "tag": null,
      "triggered_at": "2017-08-17T07:45:59Z",
      "triggered_by": "curl",
      "triggered_workflow": "primary"
    }
  ],
  "paging": {
    "page_item_limit": 50,
    "total_item_count": 1
  }
}

Request with trigger_event_type filtering (builds triggered by pull request):

curl -H 'Authorization: token THE-ACCESS-TOKEN' 'https://api.bitrise.io/v0.1/apps/APP-SLUG/builds?trigger_event_type=pull-request'

Response:

{
  "data": [
    {
      "abort_reason": null,
      "branch": "gradle-plugin-v3",
      "build_number": 22,
      "commit_hash": "cad2bc7b90085a9cfab58bbc7ead52ea913b9c13",
      "commit_message": "gradle android plugin v3, gradle v4",
      "commit_view_url": "https://github.com/bitrise-samples/sample-apps-android-sdk22/commit/cad2bc7b90085a9cfab58bbc7ead52ea913b9c13",
      "environment_prepare_finished_at": "2018-02-23T14:28:15Z",
      "finished_at": "2018-02-23T14:29:41Z",
      "is_on_hold": false,
      "original_build_params": {
        "branch": "gradle-plugin-v3",
        "branch_dest": "master",
        "commit_hash": "cad2bc7b90085a9cfab58bbc7ead52ea913b9c13",
        "commit_message": "gradle android plugin v3, gradle v4",
        "pull_request_head_branch": "pull/4/head",
        "pull_request_id": 4,
        "pull_request_merge_branch": "pull/4/merge",
        "pull_request_repository_url": "https://github.com/bitrise-samples/sample-apps-android-sdk22.git"
      },
      "pull_request_id": 4,
      "pull_request_target_branch": "master",
      "pull_request_view_url": "https://github.com/bitrise-samples/sample-apps-android-sdk22/pull/4",
      "slug": "2a009816d8b62496",
      "stack_config_type": "standard1",
      "stack_identifier": "linux-docker-android",
      "started_on_worker_at": "2018-02-23T14:27:07Z",
      "status": 1,
      "status_text": "success",
      "tag": null,
      "triggered_at": "2018-02-23T14:25:57Z",
      "triggered_by": "webhook",
      "triggered_workflow": "primary"
    },
    {
      "abort_reason": null,
      "branch": "create_dev_file",
      "build_number": 17,
      "commit_hash": "b170936b1281a1cfd01fd7d19559793aae1b891a",
      "commit_message": "Create dev.txt\n\nAdd a file",
      "commit_view_url": "https://github.com/bitrise-samples/sample-apps-android-sdk22/commit/b170936b1281a1cfd01fd7d19559793aae1b891a",
      "environment_prepare_finished_at": "2017-08-17T08:48:31Z",
      "finished_at": "2017-08-17T08:50:13Z",
      "is_on_hold": false,
      "original_build_params": {
        "branch": "create_dev_file",
        "branch_dest": "master",
        "commit_hash": "b170936b1281a1cfd01fd7d19559793aae1b891a",
        "commit_message": "Create dev.txt\n\nAdd a file",
        "pull_request_head_branch": "pull/3/head",
        "pull_request_id": 3,
        "pull_request_merge_branch": "pull/3/merge",
        "pull_request_repository_url": "https://github.com/slapec93/sample-apps-android-sdk22.git"
      },
      "pull_request_id": 3,
      "pull_request_target_branch": "master",
      "pull_request_view_url": "https://github.com/bitrise-samples/sample-apps-android-sdk22/pull/3",
      "slug": "62f841f1497f5f30",
      "stack_config_type": "standard1",
      "stack_identifier": "linux-docker-android",
      "started_on_worker_at": "2017-08-17T08:47:26Z",
      "status": 1,
      "status_text": "success",
      "tag": null,
      "triggered_at": "2017-08-17T08:47:25Z",
      "triggered_by": "webhook",
      "triggered_workflow": "primary"
    },
    {
      "abort_reason": null,
      "branch": "master",
      "build_number": 16,
      "commit_hash": null,
      "commit_message": null,
      "commit_view_url": null,
      "environment_prepare_finished_at": "2017-08-17T08:31:31Z",
      "finished_at": "2017-08-17T08:33:05Z",
      "is_on_hold": false,
      "original_build_params": {
        "branch": "master",
        "pull_request_id": 3
      },
      "pull_request_id": 3,
      "pull_request_target_branch": "master",
      "pull_request_view_url": "https://github.com/bitrise-samples/sample-apps-android-sdk22/pull/3",
      "slug": "b5e4e86ff62ef8ec",
      "stack_config_type": "standard1",
      "stack_identifier": "linux-docker-android",
      "started_on_worker_at": "2017-08-17T08:30:29Z",
      "status": 1,
      "status_text": "success",
      "tag": null,
      "triggered_at": "2017-08-17T08:30:28Z",
      "triggered_by": "curl",
      "triggered_workflow": "primary"
    }
  ],
  "paging": {
    "page_item_limit": 50,
    "total_item_count": 3
  }
}

Request with before filtering (builds triggered before 04.25.2017 1:34pm):

curl -H 'Authorization: token THE-ACCESS-TOKEN' 'https://api.bitrise.io/v0.1/apps/APP-SLUG/builds?before=1493127294'

Response:

{
  "data": [
    {
      "abort_reason": null,
      "branch": "master",
      "build_number": 6,
      "commit_hash": null,
      "commit_message": "unwatch test",
      "commit_view_url": null,
      "environment_prepare_finished_at": "2017-04-25T12:05:48Z",
      "finished_at": "2017-04-25T12:09:26Z",
      "is_on_hold": false,
      "original_build_params": {
        "branch": "master",
        "commit_message": "unwatch test"
      },
      "pull_request_id": 0,
      "pull_request_target_branch": null,
      "pull_request_view_url": null,
      "slug": "cabbf96b36031c45",
      "stack_config_type": null,
      "stack_identifier": null,
      "started_on_worker_at": "2017-04-25T12:04:38Z",
      "status": 1,
      "status_text": "success",
      "tag": null,
      "triggered_at": "2017-04-25T12:04:37Z",
      "triggered_by": null,
      "triggered_workflow": "primary"
    },
    {
      "abort_reason": null,
      "branch": "master",
      "build_number": 5,
      "commit_hash": null,
      "commit_message": null,
      "commit_view_url": null,
      "environment_prepare_finished_at": "2017-04-25T11:48:15Z",
      "finished_at": "2017-04-25T11:51:47Z",
      "is_on_hold": false,
      "original_build_params": {
        "branch": "master"
      },
      "pull_request_id": 0,
      "pull_request_target_branch": null,
      "pull_request_view_url": null,
      "slug": "8b2a7f96da727174",
      "stack_config_type": null,
      "stack_identifier": null,
      "started_on_worker_at": "2017-04-25T11:46:44Z",
      "status": 1,
      "status_text": "success",
      "tag": null,
      "triggered_at": "2017-04-25T11:34:59Z",
      "triggered_by": null,
      "triggered_workflow": "primary"
    },
    {
      "abort_reason": null,
      "branch": "master",
      "build_number": 4,
      "commit_hash": null,
      "commit_message": null,
      "commit_view_url": null,
      "environment_prepare_finished_at": "2017-04-25T11:43:18Z",
      "finished_at": "2017-04-25T11:46:42Z",
      "is_on_hold": false,
      "original_build_params": {
        "branch": "master"
      },
      "pull_request_id": 0,
      "pull_request_target_branch": null,
      "pull_request_view_url": null,
      "slug": "de020764ecdc8e57",
      "stack_config_type": null,
      "stack_identifier": null,
      "started_on_worker_at": "2017-04-25T11:43:18Z",
      "status": 1,
      "status_text": "success",
      "tag": null,
      "triggered_at": "2017-04-25T11:34:57Z",
      "triggered_by": null,
      "triggered_workflow": "primary"
    },
    {
      "abort_reason": null,
      "branch": "master",
      "build_number": 3,
      "commit_hash": null,
      "commit_message": null,
      "commit_view_url": null,
      "environment_prepare_finished_at": "2017-04-25T11:39:24Z",
      "finished_at": "2017-04-25T11:43:16Z",
      "is_on_hold": false,
      "original_build_params": {
        "branch": "master"
      },
      "pull_request_id": 0,
      "pull_request_target_branch": null,
      "pull_request_view_url": null,
      "slug": "23c891eab2caad9c",
      "stack_config_type": null,
      "stack_identifier": null,
      "started_on_worker_at": "2017-04-25T11:38:11Z",
      "status": 1,
      "status_text": "success",
      "tag": null,
      "triggered_at": "2017-04-25T11:34:54Z",
      "triggered_by": null,
      "triggered_workflow": "primary"
    },
    {
      "abort_reason": null,
      "branch": "master",
      "build_number": 2,
      "commit_hash": null,
      "commit_message": null,
      "commit_view_url": null,
      "environment_prepare_finished_at": "2017-04-25T11:34:52Z",
      "finished_at": "2017-04-25T11:38:10Z",
      "is_on_hold": false,
      "original_build_params": {
        "branch": "master"
      },
      "pull_request_id": 0,
      "pull_request_target_branch": null,
      "pull_request_view_url": null,
      "slug": "851f3cfcded7e20f",
      "stack_config_type": null,
      "stack_identifier": null,
      "started_on_worker_at": "2017-04-25T11:34:52Z",
      "status": 1,
      "status_text": "success",
      "tag": null,
      "triggered_at": "2017-04-25T11:34:52Z",
      "triggered_by": null,
      "triggered_workflow": "primary"
    },
    {
      "abort_reason": null,
      "branch": "master",
      "build_number": 1,
      "commit_hash": null,
      "commit_message": null,
      "commit_view_url": null,
      "environment_prepare_finished_at": "2017-04-25T11:06:55Z",
      "finished_at": "2017-04-25T11:10:47Z",
      "is_on_hold": false,
      "original_build_params": {
        "branch": "master"
      },
      "pull_request_id": 0,
      "pull_request_target_branch": null,
      "pull_request_view_url": null,
      "slug": "51d5915205deede2",
      "stack_config_type": null,
      "stack_identifier": null,
      "started_on_worker_at": "2017-04-25T11:06:55Z",
      "status": 1,
      "status_text": "success",
      "tag": null,
      "triggered_at": "2017-04-25T11:06:54Z",
      "triggered_by": null,
      "triggered_workflow": "primary"
    }
  ],
  "paging": {
    "page_item_limit": 50,
    "total_item_count": 6
  }
}

Request with after filtering (builds triggered after 06.20.2017 10:35pm):

curl -H 'Authorization: token THE-ACCESS-TOKEN' 'https://api.bitrise.io/v0.1/apps/APP-SLUG/builds?after=1497998102'

Response:

{
  "data": [
    {
      "abort_reason": null,
      "branch": "master",
      "build_number": 48,
      "commit_hash": null,
      "commit_message": null,
      "commit_view_url": null,
      "environment_prepare_finished_at": null,
      "finished_at": null,
      "is_on_hold": false,
      "original_build_params": {
        "branch": "master",
        "workflow_id": "primary"
      },
      "pull_request_id": 0,
      "pull_request_target_branch": null,
      "pull_request_view_url": null,
      "slug": "53e40ec7fccecd8f",
      "stack_config_type": "standard1",
      "stack_identifier": "linux-docker-android",
      "started_on_worker_at": "2018-08-23T08:21:19Z",
      "status": 0,
      "status_text": "in-progress",
      "tag": null,
      "triggered_at": "2018-08-23T08:21:18Z",
      "triggered_by": "bitrise_api_doc",
      "triggered_workflow": "primary"
    },
    {
      "abort_reason": null,
      "branch": "master",
      "build_number": 47,
      "commit_hash": null,
      "commit_message": null,
      "commit_view_url": null,
      "environment_prepare_finished_at": "2018-08-23T08:10:23Z",
      "finished_at": "2018-08-23T08:11:52Z",
      "is_on_hold": false,
      "original_build_params": {
        "branch": "master",
        "workflow_id": "primary"
      },
      "pull_request_id": 0,
      "pull_request_target_branch": null,
      "pull_request_view_url": null,
      "slug": "b44d9487b71bbf9a",
      "stack_config_type": "standard1",
      "stack_identifier": "linux-docker-android",
      "started_on_worker_at": "2018-08-23T08:09:25Z",
      "status": 1,
      "status_text": "success",
      "tag": null,
      "triggered_at": "2018-08-23T08:09:24Z",
      "triggered_by": "bitrise_api_doc",
      "triggered_workflow": "primary"
    },
    {
      "abort_reason": null,
      "branch": "master",
      "build_number": 46,
      "commit_hash": null,
      "commit_message": null,
      "commit_view_url": null,
      "environment_prepare_finished_at": "2018-07-18T15:00:31Z",
      "finished_at": "2018-07-18T15:01:47Z",
      "is_on_hold": false,
      "original_build_params": {
        "branch": "master",
        "workflow_id": "primary"
      },
      "pull_request_id": 0,
      "pull_request_target_branch": null,
      "pull_request_view_url": null,
      "slug": "8f37186d581dc101",
      "stack_config_type": "standard1",
      "stack_identifier": "linux-docker-android",
      "started_on_worker_at": "2018-07-18T14:59:34Z",
      "status": 1,
      "status_text": "success",
      "tag": null,
      "triggered_at": "2018-07-18T14:59:32Z",
      "triggered_by": "bitrise_api_doc",
      "triggered_workflow": "primary"
    },
    {
      "abort_reason": null,
      "branch": "master",
      "build_number": 45,
      "commit_hash": null,
      "commit_message": null,
      "commit_view_url": null,
      "environment_prepare_finished_at": "2018-07-16T06:49:34Z",
      "finished_at": "2018-07-16T06:50:49Z",
      "is_on_hold": false,
      "original_build_params": {
        "branch": "master",
        "workflow_id": "primary"
      },
      "pull_request_id": 0,
      "pull_request_target_branch": null,
      "pull_request_view_url": null,
      "slug": "a38bec3ffe7bf674",
      "stack_config_type": "standard1",
      "stack_identifier": "linux-docker-android",
      "started_on_worker_at": "2018-07-16T06:49:34Z",
      "status": 1,
      "status_text": "success",
      "tag": null,
      "triggered_at": "2018-07-16T06:49:33Z",
      "triggered_by": "bitrise_api_doc",
      "triggered_workflow": "primary"
    },
    {
      "abort_reason": null,
      "branch": "master",
      "build_number": 44,
      "commit_hash": null,
      "commit_message": null,
      "commit_view_url": null,
      "environment_prepare_finished_at": "2018-07-16T06:44:42Z",
      "finished_at": "2018-07-16T06:45:52Z",
      "is_on_hold": false,
      "original_build_params": {
        "branch": "master",
        "workflow_id": "primary"
      },
      "pull_request_id": 0,
      "pull_request_target_branch": null,
      "pull_request_view_url": null,
      "slug": "9d622a33d82807e4",
      "stack_config_type": "standard1",
      "stack_identifier": "linux-docker-android",
      "started_on_worker_at": "2018-07-16T06:44:41Z",
      "status": 1,
      "status_text": "success",
      "tag": null,
      "triggered_at": "2018-07-16T06:44:41Z",
      "triggered_by": "bitrise_api_doc",
      "triggered_workflow": "primary"
    },
    {
      "abort_reason": null,
      "branch": "master",
      "build_number": 43,
      "commit_hash": null,
      "commit_message": null,
      "commit_view_url": null,
      "environment_prepare_finished_at": "2018-07-16T06:33:58Z",
      "finished_at": "2018-07-16T06:35:19Z",
      "is_on_hold": false,
      "original_build_params": {
        "branch": "master",
        "workflow_id": "primary"
      },
      "pull_request_id": 0,
      "pull_request_target_branch": null,
      "pull_request_view_url": null,
      "slug": "0e78f1184bfd58e1",
      "stack_config_type": "standard1",
      "stack_identifier": "linux-docker-android",
      "started_on_worker_at": "2018-07-16T06:33:12Z",
      "status": 1,
      "status_text": "success",
      "tag": null,
      "triggered_at": "2018-07-16T06:33:11Z",
      "triggered_by": "bitrise_api_doc",
      "triggered_workflow": "primary"
    },
    {
      "abort_reason": null,
      "branch": "master",
      "build_number": 42,
      "commit_hash": null,
      "commit_message": null,
      "commit_view_url": null,
      "environment_prepare_finished_at": "2018-06-07T10:47:36Z",
      "finished_at": "2018-06-07T10:48:59Z",
      "is_on_hold": false,
      "original_build_params": {
        "branch": "master",
        "workflow_id": "primary"
      },
      "pull_request_id": 0,
      "pull_request_target_branch": null,
      "pull_request_view_url": null,
      "slug": "62e607b18c435abf",
      "stack_config_type": "standard1",
      "stack_identifier": "linux-docker-android",
      "started_on_worker_at": "2018-06-07T10:46:51Z",
      "status": 1,
      "status_text": "success",
      "tag": null,
      "triggered_at": "2018-06-07T10:46:50Z",
      "triggered_by": "bitrise_api_doc",
      "triggered_workflow": "primary"
    },
    {
      "abort_reason": null,
      "branch": "master",
      "build_number": 41,
      "commit_hash": null,
      "commit_message": null,
      "commit_view_url": null,
      "environment_prepare_finished_at": "2018-06-07T07:55:34Z",
      "finished_at": "2018-06-07T07:57:17Z",
      "is_on_hold": false,
      "original_build_params": {
        "branch": "master",
        "workflow_id": "primary"
      },
      "pull_request_id": 0,
      "pull_request_target_branch": null,
      "pull_request_view_url": null,
      "slug": "dd30bebef83bd8e7",
      "stack_config_type": "standard1",
      "stack_identifier": "linux-docker-android",
      "started_on_worker_at": "2018-06-07T07:54:33Z",
      "status": 1,
      "status_text": "success",
      "tag": null,
      "triggered_at": "2018-06-07T07:54:32Z",
      "triggered_by": "bitrise_api_doc",
      "triggered_workflow": "primary"
    },
    {
      "abort_reason": null,
      "branch": "master",
      "build_number": 40,
      "commit_hash": null,
      "commit_message": null,
      "commit_view_url": null,
      "environment_prepare_finished_at": "2018-06-06T15:00:12Z",
      "finished_at": "2018-06-06T15:01:56Z",
      "is_on_hold": false,
      "original_build_params": {
        "branch": "master",
        "workflow_id": "primary"
      },
      "pull_request_id": 0,
      "pull_request_target_branch": null,
      "pull_request_view_url": null,
      "slug": "0e6eae3178fc404d",
      "stack_config_type": "standard1",
      "stack_identifier": "linux-docker-android",
      "started_on_worker_at": "2018-06-06T14:58:57Z",
      "status": 1,
      "status_text": "success",
      "tag": null,
      "triggered_at": "2018-06-06T14:58:57Z",
      "triggered_by": "bitrise_api_doc",
      "triggered_workflow": "primary"
    },
    {
      "abort_reason": null,
      "branch": "master",
      "build_number": 39,
      "commit_hash": null,
      "commit_message": null,
      "commit_view_url": null,
      "environment_prepare_finished_at": "2018-06-06T13:33:50Z",
      "finished_at": "2018-06-06T13:35:21Z",
      "is_on_hold": false,
      "original_build_params": {
        "branch": "master",
        "workflow_id": "primary"
      },
      "pull_request_id": 0,
      "pull_request_target_branch": null,
      "pull_request_view_url": null,
      "slug": "39b5ffcd4533efbf",
      "stack_config_type": "standard1",
      "stack_identifier": "linux-docker-android",
      "started_on_worker_at": "2018-06-06T13:32:57Z",
      "status": 1,
      "status_text": "success",
      "tag": null,
      "triggered_at": "2018-06-06T13:32:00Z",
      "triggered_by": "bitrise_api_doc",
      "triggered_workflow": "primary"
    },
    {
      "abort_reason": null,
      "branch": "master",
      "build_number": 38,
      "commit_hash": null,
      "commit_message": null,
      "commit_view_url": null,
      "environment_prepare_finished_at": "2018-06-06T13:31:30Z",
      "finished_at": "2018-06-06T13:32:55Z",
      "is_on_hold": false,
      "original_build_params": {
        "branch": "master",
        "workflow_id": "primary"
      },
      "pull_request_id": 0,
      "pull_request_target_branch": null,
      "pull_request_view_url": null,
      "slug": "a42187e56ecb05bc",
      "stack_config_type": "standard1",
      "stack_identifier": "linux-docker-android",
      "started_on_worker_at": "2018-06-06T13:30:36Z",
      "status": 1,
      "status_text": "success",
      "tag": null,
      "triggered_at": "2018-06-06T13:30:36Z",
      "triggered_by": "bitrise_api_doc",
      "triggered_workflow": "primary"
    },
    {
      "abort_reason": null,
      "branch": "master",
      "build_number": 37,
      "commit_hash": null,
      "commit_message": null,
      "commit_view_url": null,
      "environment_prepare_finished_at": "2018-05-28T09:25:44Z",
      "finished_at": "2018-05-28T09:27:05Z",
      "is_on_hold": false,
      "original_build_params": {
        "branch": "master",
        "workflow_id": "primary"
      },
      "pull_request_id": 0,
      "pull_request_target_branch": null,
      "pull_request_view_url": null,
      "slug": "b5d8ecabd4231264",
      "stack_config_type": "standard1",
      "stack_identifier": "linux-docker-android",
      "started_on_worker_at": "2018-05-28T09:24:49Z",
      "status": 1,
      "status_text": "success",
      "tag": null,
      "triggered_at": "2018-05-28T09:24:49Z",
      "triggered_by": "bitrise_api_doc",
      "triggered_workflow": "primary"
    },
    {
      "abort_reason": null,
      "branch": "master",
      "build_number": 36,
      "commit_hash": null,
      "commit_message": null,
      "commit_view_url": null,
      "environment_prepare_finished_at": "2018-05-28T08:48:48Z",
      "finished_at": "2018-05-28T08:50:37Z",
      "is_on_hold": false,
      "original_build_params": {
        "branch": "master",
        "workflow_id": "primary"
      },
      "pull_request_id": 0,
      "pull_request_target_branch": null,
      "pull_request_view_url": null,
      "slug": "fc3faedc50a610ea",
      "stack_config_type": "standard1",
      "stack_identifier": "linux-docker-android",
      "started_on_worker_at": "2018-05-28T08:47:50Z",
      "status": 1,
      "status_text": "success",
      "tag": null,
      "triggered_at": "2018-05-28T08:47:49Z",
      "triggered_by": "bitrise_api_doc",
      "triggered_workflow": "primary"
    },
    {
      "abort_reason": null,
      "branch": "master",
      "build_number": 35,
      "commit_hash": null,
      "commit_message": null,
      "commit_view_url": null,
      "environment_prepare_finished_at": "2018-05-14T12:12:26Z",
      "finished_at": "2018-05-14T12:13:57Z",
      "is_on_hold": false,
      "original_build_params": {
        "branch": "master",
        "workflow_id": "primary"
      },
      "pull_request_id": 0,
      "pull_request_target_branch": null,
      "pull_request_view_url": null,
      "slug": "2a0b62127f2a91ec",
      "stack_config_type": "standard1",
      "stack_identifier": "linux-docker-android",
      "started_on_worker_at": "2018-05-14T12:11:25Z",
      "status": 1,
      "status_text": "success",
      "tag": null,
      "triggered_at": "2018-05-14T12:11:24Z",
      "triggered_by": "bitrise_api_doc",
      "triggered_workflow": "primary"
    },
    {
      "abort_reason": null,
      "branch": "master",
      "build_number": 34,
      "commit_hash": null,
      "commit_message": null,
      "commit_view_url": null,
      "environment_prepare_finished_at": "2018-04-19T14:42:28Z",
      "finished_at": "2018-04-19T14:44:00Z",
      "is_on_hold": false,
      "original_build_params": {
        "branch": "master",
        "workflow_id": "primary"
      },
      "pull_request_id": 0,
      "pull_request_target_branch": null,
      "pull_request_view_url": null,
      "slug": "226f809ae60c822d",
      "stack_config_type": "standard1",
      "stack_identifier": "linux-docker-android",
      "started_on_worker_at": "2018-04-19T14:41:22Z",
      "status": 1,
      "status_text": "success",
      "tag": null,
      "triggered_at": "2018-04-19T14:41:22Z",
      "triggered_by": "bitrise_api_doc",
      "triggered_workflow": "primary"
    },
    {
      "abort_reason": null,
      "branch": "master",
      "build_number": 33,
      "commit_hash": null,
      "commit_message": null,
      "commit_view_url": null,
      "environment_prepare_finished_at": "2018-04-19T11:43:51Z",
      "finished_at": "2018-04-19T11:45:14Z",
      "is_on_hold": false,
      "original_build_params": {
        "branch": "master",
        "workflow_id": "primary"
      },
      "pull_request_id": 0,
      "pull_request_target_branch": null,
      "pull_request_view_url": null,
      "slug": "366312bf17cff615",
      "stack_config_type": "standard1",
      "stack_identifier": "linux-docker-android",
      "started_on_worker_at": "2018-04-19T11:43:51Z",
      "status": 1,
      "status_text": "success",
      "tag": null,
      "triggered_at": "2018-04-19T11:42:54Z",
      "triggered_by": "bitrise_api_doc",
      "triggered_workflow": "primary"
    },
    {
      "abort_reason": null,
      "branch": "master",
      "build_number": 32,
      "commit_hash": null,
      "commit_message": null,
      "commit_view_url": null,
      "environment_prepare_finished_at": "2018-04-19T11:42:27Z",
      "finished_at": "2018-04-19T11:43:50Z",
      "is_on_hold": false,
      "original_build_params": {
        "branch": "master",
        "workflow_id": "primary"
      },
      "pull_request_id": 0,
      "pull_request_target_branch": null,
      "pull_request_view_url": null,
      "slug": "5a4c6dfb253fd4df",
      "stack_config_type": "standard1",
      "stack_identifier": "linux-docker-android",
      "started_on_worker_at": "2018-04-19T11:41:26Z",
      "status": 1,
      "status_text": "success",
      "tag": null,
      "triggered_at": "2018-04-19T11:41:25Z",
      "triggered_by": "bitrise_api_doc",
      "triggered_workflow": "primary"
    },
    {
      "abort_reason": null,
      "branch": "master",
      "build_number": 31,
      "commit_hash": null,
      "commit_message": null,
      "commit_view_url": null,
      "environment_prepare_finished_at": "2018-04-19T10:03:39Z",
      "finished_at": "2018-04-19T10:05:16Z",
      "is_on_hold": false,
      "original_build_params": {
        "branch": "master",
        "workflow_id": "primary"
      },
      "pull_request_id": 0,
      "pull_request_target_branch": null,
      "pull_request_view_url": null,
      "slug": "8d01153a2176eb92",
      "stack_config_type": "standard1",
      "stack_identifier": "linux-docker-android",
      "started_on_worker_at": "2018-04-19T10:02:27Z",
      "status": 1,
      "status_text": "success",
      "tag": null,
      "triggered_at": "2018-04-19T10:02:26Z",
      "triggered_by": "bitrise_api_doc",
      "triggered_workflow": "primary"
    },
    {
      "abort_reason": null,
      "branch": "master",
      "build_number": 30,
      "commit_hash": null,
      "commit_message": null,
      "commit_view_url": null,
      "environment_prepare_finished_at": "2018-04-19T09:55:59Z",
      "finished_at": "2018-04-19T09:57:21Z",
      "is_on_hold": false,
      "original_build_params": {
        "branch": "master",
        "workflow_id": "primary"
      },
      "pull_request_id": 0,
      "pull_request_target_branch": null,
      "pull_request_view_url": null,
      "slug": "7b0d2eceefb419ff",
      "stack_config_type": "standard1",
      "stack_identifier": "linux-docker-android",
      "started_on_worker_at": "2018-04-19T09:55:01Z",
      "status": 1,
      "status_text": "success",
      "tag": null,
      "triggered_at": "2018-04-19T09:55:00Z",
      "triggered_by": "bitrise_api_doc",
      "triggered_workflow": "primary"
    },
    {
      "abort_reason": null,
      "branch": "master",
      "build_number": 29,
      "commit_hash": null,
      "commit_message": null,
      "commit_view_url": null,
      "environment_prepare_finished_at": "2018-04-19T08:14:06Z",
      "finished_at": "2018-04-19T08:15:53Z",
      "is_on_hold": false,
      "original_build_params": {
        "branch": "master",
        "workflow_id": "primary"
      },
      "pull_request_id": 0,
      "pull_request_target_branch": null,
      "pull_request_view_url": null,
      "slug": "e2c7befadbb34320",
      "stack_config_type": "standard1",
      "stack_identifier": "linux-docker-android",
      "started_on_worker_at": "2018-04-19T08:12:42Z",
      "status": 1,
      "status_text": "success",
      "tag": null,
      "triggered_at": "2018-04-19T08:12:41Z",
      "triggered_by": "bitrise_api_doc",
      "triggered_workflow": "primary"
    },
    {
      "abort_reason": null,
      "branch": "master",
      "build_number": 28,
      "commit_hash": null,
      "commit_message": null,
      "commit_view_url": null,
      "environment_prepare_finished_at": "2018-04-11T12:14:39Z",
      "finished_at": "2018-04-11T12:16:16Z",
      "is_on_hold": false,
      "original_build_params": {
        "branch": "master",
        "workflow_id": "primary"
      },
      "pull_request_id": 0,
      "pull_request_target_branch": null,
      "pull_request_view_url": null,
      "slug": "2669ae9ae4185120",
      "stack_config_type": "standard1",
      "stack_identifier": "linux-docker-android",
      "started_on_worker_at": "2018-04-11T12:13:40Z",
      "status": 1,
      "status_text": "success",
      "tag": null,
      "triggered_at": "2018-04-11T12:13:39Z",
      "triggered_by": "bitrise_api_doc",
      "triggered_workflow": "primary"
    },
    {
      "abort_reason": null,
      "branch": "master",
      "build_number": 27,
      "commit_hash": null,
      "commit_message": null,
      "commit_view_url": null,
      "environment_prepare_finished_at": "2018-04-11T11:18:51Z",
      "finished_at": "2018-04-11T11:20:32Z",
      "is_on_hold": false,
      "original_build_params": {
        "branch": "master",
        "workflow_id": "primary"
      },
      "pull_request_id": 0,
      "pull_request_target_branch": null,
      "pull_request_view_url": null,
      "slug": "ef73302cb5127653",
      "stack_config_type": "standard1",
      "stack_identifier": "linux-docker-android",
      "started_on_worker_at": "2018-04-11T11:17:19Z",
      "status": 1,
      "status_text": "success",
      "tag": null,
      "triggered_at": "2018-04-11T11:13:56Z",
      "triggered_by": "bitrise_api_doc",
      "triggered_workflow": "primary"
    },
    {
      "abort_reason": null,
      "branch": "master",
      "build_number": 26,
      "commit_hash": null,
      "commit_message": null,
      "commit_view_url": null,
      "environment_prepare_finished_at": "2018-04-11T11:15:55Z",
      "finished_at": "2018-04-11T11:17:18Z",
      "is_on_hold": false,
      "original_build_params": {
        "branch": "master",
        "workflow_id": "primary"
      },
      "pull_request_id": 0,
      "pull_request_target_branch": null,
      "pull_request_view_url": null,
      "slug": "d7084f3be385d180",
      "stack_config_type": "standard1",
      "stack_identifier": "linux-docker-android",
      "started_on_worker_at": "2018-04-11T11:14:34Z",
      "status": 1,
      "status_text": "success",
      "tag": null,
      "triggered_at": "2018-04-11T11:12:41Z",
      "triggered_by": "bitrise_api_doc",
      "triggered_workflow": "primary"
    },
    {
      "abort_reason": null,
      "branch": "master",
      "build_number": 25,
      "commit_hash": null,
      "commit_message": null,
      "commit_view_url": null,
      "environment_prepare_finished_at": "2018-04-11T11:13:10Z",
      "finished_at": "2018-04-11T11:14:33Z",
      "is_on_hold": false,
      "original_build_params": {
        "branch": "master",
        "workflow_id": "primary"
      },
      "pull_request_id": 0,
      "pull_request_target_branch": null,
      "pull_request_view_url": null,
      "slug": "eddd8244fecb7eeb",
      "stack_config_type": "standard1",
      "stack_identifier": "linux-docker-android",
      "started_on_worker_at": "2018-04-11T11:12:08Z",
      "status": 1,
      "status_text": "success",
      "tag": null,
      "triggered_at": "2018-04-11T11:12:08Z",
      "triggered_by": "bitrise_api_doc",
      "triggered_workflow": "primary"
    },
    {
      "abort_reason": null,
      "branch": "master",
      "build_number": 24,
      "commit_hash": null,
      "commit_message": null,
      "commit_view_url": null,
      "environment_prepare_finished_at": "2018-04-11T10:54:10Z",
      "finished_at": "2018-04-11T10:55:27Z",
      "is_on_hold": false,
      "original_build_params": {
        "branch": "master",
        "workflow_id": "primary"
      },
      "pull_request_id": 0,
      "pull_request_target_branch": null,
      "pull_request_view_url": null,
      "slug": "2f05c9e0f85dfc60",
      "stack_config_type": "standard1",
      "stack_identifier": "linux-docker-android",
      "started_on_worker_at": "2018-04-11T10:52:56Z",
      "status": 1,
      "status_text": "success",
      "tag": null,
      "triggered_at": "2018-04-11T10:52:56Z",
      "triggered_by": "bitrise_api_doc",
      "triggered_workflow": "primary"
    },
    {
      "abort_reason": null,
      "branch": "gradle-plugin-v3",
      "build_number": 23,
      "commit_hash": "cad2bc7b90085a9cfab58bbc7ead52ea913b9c13",
      "commit_message": "gradle android plugin v3, gradle v4",
      "commit_view_url": "https://github.com/bitrise-samples/sample-apps-android-sdk22/commit/cad2bc7b90085a9cfab58bbc7ead52ea913b9c13",
      "environment_prepare_finished_at": "2018-03-08T11:18:53Z",
      "finished_at": "2018-03-08T11:20:17Z",
      "is_on_hold": false,
      "original_build_params": {
        "branch": "gradle-plugin-v3",
        "commit_hash": "cad2bc7b90085a9cfab58bbc7ead52ea913b9c13",
        "commit_message": "gradle android plugin v3, gradle v4"
      },
      "pull_request_id": 0,
      "pull_request_target_branch": null,
      "pull_request_view_url": null,
      "slug": "fe2a0055cc8aa878",
      "stack_config_type": "standard1",
      "stack_identifier": "linux-docker-android",
      "started_on_worker_at": "2018-03-08T11:18:53Z",
      "status": 1,
      "status_text": "success",
      "tag": null,
      "triggered_at": "2018-03-08T11:18:10Z",
      "triggered_by": "manual-api-demo",
      "triggered_workflow": "primary"
    },
    {
      "abort_reason": null,
      "branch": "gradle-plugin-v3",
      "build_number": 22,
      "commit_hash": "cad2bc7b90085a9cfab58bbc7ead52ea913b9c13",
      "commit_message": "gradle android plugin v3, gradle v4",
      "commit_view_url": "https://github.com/bitrise-samples/sample-apps-android-sdk22/commit/cad2bc7b90085a9cfab58bbc7ead52ea913b9c13",
      "environment_prepare_finished_at": "2018-02-23T14:28:15Z",
      "finished_at": "2018-02-23T14:29:41Z",
      "is_on_hold": false,
      "original_build_params": {
        "branch": "gradle-plugin-v3",
        "branch_dest": "master",
        "commit_hash": "cad2bc7b90085a9cfab58bbc7ead52ea913b9c13",
        "commit_message": "gradle android plugin v3, gradle v4",
        "pull_request_head_branch": "pull/4/head",
        "pull_request_id": 4,
        "pull_request_merge_branch": "pull/4/merge",
        "pull_request_repository_url": "https://github.com/bitrise-samples/sample-apps-android-sdk22.git"
      },
      "pull_request_id": 4,
      "pull_request_target_branch": "master",
      "pull_request_view_url": "https://github.com/bitrise-samples/sample-apps-android-sdk22/pull/4",
      "slug": "2a009816d8b62496",
      "stack_config_type": "standard1",
      "stack_identifier": "linux-docker-android",
      "started_on_worker_at": "2018-02-23T14:27:07Z",
      "status": 1,
      "status_text": "success",
      "tag": null,
      "triggered_at": "2018-02-23T14:25:57Z",
      "triggered_by": "webhook",
      "triggered_workflow": "primary"
    },
    {
      "abort_reason": null,
      "branch": "gradle-plugin-v3",
      "build_number": 21,
      "commit_hash": "cad2bc7b90085a9cfab58bbc7ead52ea913b9c13",
      "commit_message": "gradle android plugin v3, gradle v4",
      "commit_view_url": "https://github.com/bitrise-samples/sample-apps-android-sdk22/commit/cad2bc7b90085a9cfab58bbc7ead52ea913b9c13",
      "environment_prepare_finished_at": "2018-02-23T14:25:52Z",
      "finished_at": "2018-02-23T14:27:06Z",
      "is_on_hold": false,
      "original_build_params": {
        "branch": "gradle-plugin-v3",
        "commit_hash": "cad2bc7b90085a9cfab58bbc7ead52ea913b9c13",
        "commit_message": "gradle android plugin v3, gradle v4"
      },
      "pull_request_id": 0,
      "pull_request_target_branch": null,
      "pull_request_view_url": null,
      "slug": "dc60d8be63011e29",
      "stack_config_type": "standard1",
      "stack_identifier": "linux-docker-android",
      "started_on_worker_at": "2018-02-23T14:25:52Z",
      "status": 1,
      "status_text": "success",
      "tag": null,
      "triggered_at": "2018-02-23T14:25:51Z",
      "triggered_by": "webhook",
      "triggered_workflow": "primary"
    },
    {
      "abort_reason": null,
      "branch": "master",
      "build_number": 20,
      "commit_hash": null,
      "commit_message": "generate an APK",
      "commit_view_url": null,
      "environment_prepare_finished_at": "2017-11-08T13:24:33Z",
      "finished_at": "2017-11-08T13:26:54Z",
      "is_on_hold": false,
      "original_build_params": {
        "branch": "master",
        "commit_message": "generate an APK",
        "workflow_id": "gen-apk"
      },
      "pull_request_id": 0,
      "pull_request_target_branch": null,
      "pull_request_view_url": null,
      "slug": "ddf4134555e833d8",
      "stack_config_type": "standard1",
      "stack_identifier": "linux-docker-android",
      "started_on_worker_at": "2017-11-08T13:24:33Z",
      "status": 1,
      "status_text": "success",
      "tag": null,
      "triggered_at": "2017-11-08T13:24:33Z",
      "triggered_by": "manual-api-demo",
      "triggered_workflow": "gen-apk"
    },
    {
      "abort_reason": null,
      "branch": "master",
      "build_number": 19,
      "commit_hash": null,
      "commit_message": null,
      "commit_view_url": null,
      "environment_prepare_finished_at": "2017-08-17T09:13:11Z",
      "finished_at": "2017-08-17T09:14:37Z",
      "is_on_hold": false,
      "original_build_params": {
        "branch": "master",
        "workflow_id": "secondary"
      },
      "pull_request_id": 0,
      "pull_request_target_branch": null,
      "pull_request_view_url": null,
      "slug": "8ee5e483b79fdfd4",
      "stack_config_type": "standard1",
      "stack_identifier": "linux-docker-android",
      "started_on_worker_at": "2017-08-17T09:12:05Z",
      "status": 1,
      "status_text": "success",
      "tag": null,
      "triggered_at": "2017-08-17T09:10:41Z",
      "triggered_by": "curl",
      "triggered_workflow": "secondary"
    },
    {
      "abort_reason": null,
      "branch": "master",
      "build_number": 18,
      "commit_hash": null,
      "commit_message": null,
      "commit_view_url": null,
      "environment_prepare_finished_at": "2017-08-17T09:10:31Z",
      "finished_at": "2017-08-17T09:12:04Z",
      "is_on_hold": false,
      "original_build_params": {
        "branch": "master"
      },
      "pull_request_id": 0,
      "pull_request_target_branch": null,
      "pull_request_view_url": null,
      "slug": "601e080954bbd57b",
      "stack_config_type": "standard1",
      "stack_identifier": "linux-docker-android",
      "started_on_worker_at": "2017-08-17T09:09:24Z",
      "status": 1,
      "status_text": "success",
      "tag": null,
      "triggered_at": "2017-08-17T09:09:23Z",
      "triggered_by": "curl",
      "triggered_workflow": "primary"
    },
    {
      "abort_reason": null,
      "branch": "create_dev_file",
      "build_number": 17,
      "commit_hash": "b170936b1281a1cfd01fd7d19559793aae1b891a",
      "commit_message": "Create dev.txt\n\nAdd a file",
      "commit_view_url": "https://github.com/bitrise-samples/sample-apps-android-sdk22/commit/b170936b1281a1cfd01fd7d19559793aae1b891a",
      "environment_prepare_finished_at": "2017-08-17T08:48:31Z",
      "finished_at": "2017-08-17T08:50:13Z",
      "is_on_hold": false,
      "original_build_params": {
        "branch": "create_dev_file",
        "branch_dest": "master",
        "commit_hash": "b170936b1281a1cfd01fd7d19559793aae1b891a",
        "commit_message": "Create dev.txt\n\nAdd a file",
        "pull_request_head_branch": "pull/3/head",
        "pull_request_id": 3,
        "pull_request_merge_branch": "pull/3/merge",
        "pull_request_repository_url": "https://github.com/slapec93/sample-apps-android-sdk22.git"
      },
      "pull_request_id": 3,
      "pull_request_target_branch": "master",
      "pull_request_view_url": "https://github.com/bitrise-samples/sample-apps-android-sdk22/pull/3",
      "slug": "62f841f1497f5f30",
      "stack_config_type": "standard1",
      "stack_identifier": "linux-docker-android",
      "started_on_worker_at": "2017-08-17T08:47:26Z",
      "status": 1,
      "status_text": "success",
      "tag": null,
      "triggered_at": "2017-08-17T08:47:25Z",
      "triggered_by": "webhook",
      "triggered_workflow": "primary"
    },
    {
      "abort_reason": null,
      "branch": "master",
      "build_number": 16,
      "commit_hash": null,
      "commit_message": null,
      "commit_view_url": null,
      "environment_prepare_finished_at": "2017-08-17T08:31:31Z",
      "finished_at": "2017-08-17T08:33:05Z",
      "is_on_hold": false,
      "original_build_params": {
        "branch": "master",
        "pull_request_id": 3
      },
      "pull_request_id": 3,
      "pull_request_target_branch": "master",
      "pull_request_view_url": "https://github.com/bitrise-samples/sample-apps-android-sdk22/pull/3",
      "slug": "b5e4e86ff62ef8ec",
      "stack_config_type": "standard1",
      "stack_identifier": "linux-docker-android",
      "started_on_worker_at": "2017-08-17T08:30:29Z",
      "status": 1,
      "status_text": "success",
      "tag": null,
      "triggered_at": "2017-08-17T08:30:28Z",
      "triggered_by": "curl",
      "triggered_workflow": "primary"
    },
    {
      "abort_reason": null,
      "branch": "develop",
      "build_number": 15,
      "commit_hash": null,
      "commit_message": null,
      "commit_view_url": null,
      "environment_prepare_finished_at": "2017-08-17T07:46:00Z",
      "finished_at": "2017-08-17T07:47:25Z",
      "is_on_hold": false,
      "original_build_params": {
        "branch": "develop"
      },
      "pull_request_id": 0,
      "pull_request_target_branch": null,
      "pull_request_view_url": null,
      "slug": "1e79f459d59ec74b",
      "stack_config_type": "standard1",
      "stack_identifier": "linux-docker-android",
      "started_on_worker_at": "2017-08-17T07:46:00Z",
      "status": 1,
      "status_text": "success",
      "tag": null,
      "triggered_at": "2017-08-17T07:45:59Z",
      "triggered_by": "curl",
      "triggered_workflow": "primary"
    },
    {
      "abort_reason": null,
      "branch": "master",
      "build_number": 14,
      "commit_hash": null,
      "commit_message": null,
      "commit_view_url": null,
      "environment_prepare_finished_at": "2017-07-19T16:29:59Z",
      "finished_at": "2017-07-19T16:31:38Z",
      "is_on_hold": false,
      "original_build_params": {
        "branch": "master"
      },
      "pull_request_id": 0,
      "pull_request_target_branch": null,
      "pull_request_view_url": null,
      "slug": "9fb8eaaa4bdd3763",
      "stack_config_type": "standard1",
      "stack_identifier": "linux-docker-android",
      "started_on_worker_at": "2017-07-19T16:28:51Z",
      "status": 1,
      "status_text": "success",
      "tag": null,
      "triggered_at": "2017-07-19T16:28:50Z",
      "triggered_by": "manual-api-demo",
      "triggered_workflow": "primary"
    },
    {
      "abort_reason": null,
      "branch": "master",
      "build_number": 13,
      "commit_hash": null,
      "commit_message": null,
      "commit_view_url": null,
      "environment_prepare_finished_at": "2017-07-19T16:26:33Z",
      "finished_at": "2017-07-19T16:27:50Z",
      "is_on_hold": false,
      "original_build_params": {
        "branch": "master"
      },
      "pull_request_id": 0,
      "pull_request_target_branch": null,
      "pull_request_view_url": null,
      "slug": "78c605ea44677118",
      "stack_config_type": "standard1",
      "stack_identifier": "linux-docker-android",
      "started_on_worker_at": "2017-07-19T16:23:01Z",
      "status": 1,
      "status_text": "success",
      "tag": null,
      "triggered_at": "2017-07-19T16:23:00Z",
      "triggered_by": "manual-api-demo",
      "triggered_workflow": "primary"
    },
    {
      "abort_reason": "User api-demo requested to abort this build with reason: canceled through the API",
      "branch": "master",
      "build_number": 12,
      "commit_hash": null,
      "commit_message": "this build will be aborted through the API",
      "commit_view_url": null,
      "environment_prepare_finished_at": "2017-06-20T22:35:03Z",
      "finished_at": "2017-06-20T22:35:15Z",
      "is_on_hold": false,
      "original_build_params": {
        "branch": "master",
        "commit_message": "this build will be aborted through the API"
      },
      "pull_request_id": 0,
      "pull_request_target_branch": null,
      "pull_request_view_url": null,
      "slug": "ce86c8475d31d288",
      "stack_config_type": "standard1",
      "stack_identifier": "linux-docker-android",
      "started_on_worker_at": "2017-06-20T22:35:03Z",
      "status": 3,
      "status_text": "aborted",
      "tag": null,
      "triggered_at": "2017-06-20T22:35:02Z",
      "triggered_by": null,
      "triggered_workflow": "primary"
    }
  ],
  "paging": {
    "page_item_limit": 50,
    "total_item_count": 37
  }
}

Request with workflow filtering (builds triggered with secondary workflow):

curl -H 'Authorization: token THE-ACCESS-TOKEN' 'https://api.bitrise.io/v0.1/apps/APP-SLUG/builds?workflow=secondary'

Response:

{
  "data": [
    {
      "abort_reason": null,
      "branch": "master",
      "build_number": 19,
      "commit_hash": null,
      "commit_message": null,
      "commit_view_url": null,
      "environment_prepare_finished_at": "2017-08-17T09:13:11Z",
      "finished_at": "2017-08-17T09:14:37Z",
      "is_on_hold": false,
      "original_build_params": {
        "branch": "master",
        "workflow_id": "secondary"
      },
      "pull_request_id": 0,
      "pull_request_target_branch": null,
      "pull_request_view_url": null,
      "slug": "8ee5e483b79fdfd4",
      "stack_config_type": "standard1",
      "stack_identifier": "linux-docker-android",
      "started_on_worker_at": "2017-08-17T09:12:05Z",
      "status": 1,
      "status_text": "success",
      "tag": null,
      "triggered_at": "2017-08-17T09:10:41Z",
      "triggered_by": "curl",
      "triggered_workflow": "secondary"
    }
  ],
  "paging": {
    "page_item_limit": 50,
    "total_item_count": 1
  }
}

Request with commit_message filtering (builds with commit message __):

curl -H 'Authorization: token THE-ACCESS-TOKEN' 'https://api.bitrise.io/v0.1/apps/APP-SLUG/builds?commit_message=build%20will%20be%20aborted'

Response:

{
  "data": [
    {
      "abort_reason": "User api-demo requested to abort this build with reason: canceled through the API",
      "branch": "master",
      "build_number": 12,
      "commit_hash": null,
      "commit_message": "this build will be aborted through the API",
      "commit_view_url": null,
      "environment_prepare_finished_at": "2017-06-20T22:35:03Z",
      "finished_at": "2017-06-20T22:35:15Z",
      "is_on_hold": false,
      "original_build_params": {
        "branch": "master",
        "commit_message": "this build will be aborted through the API"
      },
      "pull_request_id": 0,
      "pull_request_target_branch": null,
      "pull_request_view_url": null,
      "slug": "ce86c8475d31d288",
      "stack_config_type": "standard1",
      "stack_identifier": "linux-docker-android",
      "started_on_worker_at": "2017-06-20T22:35:03Z",
      "status": 3,
      "status_text": "aborted",
      "tag": null,
      "triggered_at": "2017-06-20T22:35:02Z",
      "triggered_by": null,
      "triggered_workflow": "primary"
    }
  ],
  "paging": {
    "page_item_limit": 50,
    "total_item_count": 1
  }
}

Request with build_number filtering (builds with commit message __):

curl -H 'Authorization: token THE-ACCESS-TOKEN' 'https://api.bitrise.io/v0.1/apps/APP-SLUG/builds?build_number=3'

Response:

{
  "data": [
    {
      "abort_reason": null,
      "branch": "master",
      "build_number": 3,
      "commit_hash": null,
      "commit_message": null,
      "commit_view_url": null,
      "environment_prepare_finished_at": "2017-04-25T11:39:24Z",
      "finished_at": "2017-04-25T11:43:16Z",
      "is_on_hold": false,
      "original_build_params": {
        "branch": "master"
      },
      "pull_request_id": 0,
      "pull_request_target_branch": null,
      "pull_request_view_url": null,
      "slug": "23c891eab2caad9c",
      "stack_config_type": null,
      "stack_identifier": null,
      "started_on_worker_at": "2017-04-25T11:38:11Z",
      "status": 1,
      "status_text": "success",
      "tag": null,
      "triggered_at": "2017-04-25T11:34:54Z",
      "triggered_by": null,
      "triggered_workflow": "primary"
    }
  ],
  "paging": {
    "page_item_limit": 50,
    "total_item_count": 1
  }
}

Sorting parameters for build list

There are two available sorting parameter for this endpoint:

List sorting with _running_first

Sorting the list by _running_first_ doesn’t support paging parameters.

Example curl request

Request:

curl -H 'Authorization: token THE-ACCESS-TOKEN' 'https://api.bitrise.io/v0.1/apps/APP-SLUG/builds?sort_by=running_first'

Response:

{
  "data": [
    {
      "abort_reason": null,
      "branch": "master",
      "build_number": 48,
      "commit_hash": null,
      "commit_message": null,
      "commit_view_url": null,
      "environment_prepare_finished_at": null,
      "finished_at": null,
      "is_on_hold": false,
      "original_build_params": {
        "branch": "master",
        "workflow_id": "primary"
      },
      "pull_request_id": 0,
      "pull_request_target_branch": null,
      "pull_request_view_url": null,
      "slug": "53e40ec7fccecd8f",
      "stack_config_type": "standard1",
      "stack_identifier": "linux-docker-android",
      "started_on_worker_at": "2018-08-23T08:21:19Z",
      "status": 0,
      "status_text": "in-progress",
      "tag": null,
      "triggered_at": "2018-08-23T08:21:18Z",
      "triggered_by": "bitrise_api_doc",
      "triggered_workflow": "primary"
    },
    {
      "abort_reason": null,
      "branch": "master",
      "build_number": 47,
      "commit_hash": null,
      "commit_message": null,
      "commit_view_url": null,
      "environment_prepare_finished_at": "2018-08-23T08:10:23Z",
      "finished_at": "2018-08-23T08:11:52Z",
      "is_on_hold": false,
      "original_build_params": {
        "branch": "master",
        "workflow_id": "primary"
      },
      "pull_request_id": 0,
      "pull_request_target_branch": null,
      "pull_request_view_url": null,
      "slug": "b44d9487b71bbf9a",
      "stack_config_type": "standard1",
      "stack_identifier": "linux-docker-android",
      "started_on_worker_at": "2018-08-23T08:09:25Z",
      "status": 1,
      "status_text": "success",
      "tag": null,
      "triggered_at": "2018-08-23T08:09:24Z",
      "triggered_by": "bitrise_api_doc",
      "triggered_workflow": "primary"
    },
    {
      "abort_reason": null,
      "branch": "master",
      "build_number": 46,
      "commit_hash": null,
      "commit_message": null,
      "commit_view_url": null,
      "environment_prepare_finished_at": "2018-07-18T15:00:31Z",
      "finished_at": "2018-07-18T15:01:47Z",
      "is_on_hold": false,
      "original_build_params": {
        "branch": "master",
        "workflow_id": "primary"
      },
      "pull_request_id": 0,
      "pull_request_target_branch": null,
      "pull_request_view_url": null,
      "slug": "8f37186d581dc101",
      "stack_config_type": "standard1",
      "stack_identifier": "linux-docker-android",
      "started_on_worker_at": "2018-07-18T14:59:34Z",
      "status": 1,
      "status_text": "success",
      "tag": null,
      "triggered_at": "2018-07-18T14:59:32Z",
      "triggered_by": "bitrise_api_doc",
      "triggered_workflow": "primary"
    },
    {
      "abort_reason": null,
      "branch": "master",
      "build_number": 45,
      "commit_hash": null,
      "commit_message": null,
      "commit_view_url": null,
      "environment_prepare_finished_at": "2018-07-16T06:49:34Z",
      "finished_at": "2018-07-16T06:50:49Z",
      "is_on_hold": false,
      "original_build_params": {
        "branch": "master",
        "workflow_id": "primary"
      },
      "pull_request_id": 0,
      "pull_request_target_branch": null,
      "pull_request_view_url": null,
      "slug": "a38bec3ffe7bf674",
      "stack_config_type": "standard1",
      "stack_identifier": "linux-docker-android",
      "started_on_worker_at": "2018-07-16T06:49:34Z",
      "status": 1,
      "status_text": "success",
      "tag": null,
      "triggered_at": "2018-07-16T06:49:33Z",
      "triggered_by": "bitrise_api_doc",
      "triggered_workflow": "primary"
    },
    {
      "abort_reason": null,
      "branch": "master",
      "build_number": 44,
      "commit_hash": null,
      "commit_message": null,
      "commit_view_url": null,
      "environment_prepare_finished_at": "2018-07-16T06:44:42Z",
      "finished_at": "2018-07-16T06:45:52Z",
      "is_on_hold": false,
      "original_build_params": {
        "branch": "master",
        "workflow_id": "primary"
      },
      "pull_request_id": 0,
      "pull_request_target_branch": null,
      "pull_request_view_url": null,
      "slug": "9d622a33d82807e4",
      "stack_config_type": "standard1",
      "stack_identifier": "linux-docker-android",
      "started_on_worker_at": "2018-07-16T06:44:41Z",
      "status": 1,
      "status_text": "success",
      "tag": null,
      "triggered_at": "2018-07-16T06:44:41Z",
      "triggered_by": "bitrise_api_doc",
      "triggered_workflow": "primary"
    },
    {
      "abort_reason": null,
      "branch": "master",
      "build_number": 43,
      "commit_hash": null,
      "commit_message": null,
      "commit_view_url": null,
      "environment_prepare_finished_at": "2018-07-16T06:33:58Z",
      "finished_at": "2018-07-16T06:35:19Z",
      "is_on_hold": false,
      "original_build_params": {
        "branch": "master",
        "workflow_id": "primary"
      },
      "pull_request_id": 0,
      "pull_request_target_branch": null,
      "pull_request_view_url": null,
      "slug": "0e78f1184bfd58e1",
      "stack_config_type": "standard1",
      "stack_identifier": "linux-docker-android",
      "started_on_worker_at": "2018-07-16T06:33:12Z",
      "status": 1,
      "status_text": "success",
      "tag": null,
      "triggered_at": "2018-07-16T06:33:11Z",
      "triggered_by": "bitrise_api_doc",
      "triggered_workflow": "primary"
    },
    {
      "abort_reason": null,
      "branch": "master",
      "build_number": 42,
      "commit_hash": null,
      "commit_message": null,
      "commit_view_url": null,
      "environment_prepare_finished_at": "2018-06-07T10:47:36Z",
      "finished_at": "2018-06-07T10:48:59Z",
      "is_on_hold": false,
      "original_build_params": {
        "branch": "master",
        "workflow_id": "primary"
      },
      "pull_request_id": 0,
      "pull_request_target_branch": null,
      "pull_request_view_url": null,
      "slug": "62e607b18c435abf",
      "stack_config_type": "standard1",
      "stack_identifier": "linux-docker-android",
      "started_on_worker_at": "2018-06-07T10:46:51Z",
      "status": 1,
      "status_text": "success",
      "tag": null,
      "triggered_at": "2018-06-07T10:46:50Z",
      "triggered_by": "bitrise_api_doc",
      "triggered_workflow": "primary"
    },
    {
      "abort_reason": null,
      "branch": "master",
      "build_number": 41,
      "commit_hash": null,
      "commit_message": null,
      "commit_view_url": null,
      "environment_prepare_finished_at": "2018-06-07T07:55:34Z",
      "finished_at": "2018-06-07T07:57:17Z",
      "is_on_hold": false,
      "original_build_params": {
        "branch": "master",
        "workflow_id": "primary"
      },
      "pull_request_id": 0,
      "pull_request_target_branch": null,
      "pull_request_view_url": null,
      "slug": "dd30bebef83bd8e7",
      "stack_config_type": "standard1",
      "stack_identifier": "linux-docker-android",
      "started_on_worker_at": "2018-06-07T07:54:33Z",
      "status": 1,
      "status_text": "success",
      "tag": null,
      "triggered_at": "2018-06-07T07:54:32Z",
      "triggered_by": "bitrise_api_doc",
      "triggered_workflow": "primary"
    },
    {
      "abort_reason": null,
      "branch": "master",
      "build_number": 40,
      "commit_hash": null,
      "commit_message": null,
      "commit_view_url": null,
      "environment_prepare_finished_at": "2018-06-06T15:00:12Z",
      "finished_at": "2018-06-06T15:01:56Z",
      "is_on_hold": false,
      "original_build_params": {
        "branch": "master",
        "workflow_id": "primary"
      },
      "pull_request_id": 0,
      "pull_request_target_branch": null,
      "pull_request_view_url": null,
      "slug": "0e6eae3178fc404d",
      "stack_config_type": "standard1",
      "stack_identifier": "linux-docker-android",
      "started_on_worker_at": "2018-06-06T14:58:57Z",
      "status": 1,
      "status_text": "success",
      "tag": null,
      "triggered_at": "2018-06-06T14:58:57Z",
      "triggered_by": "bitrise_api_doc",
      "triggered_workflow": "primary"
    },
    {
      "abort_reason": null,
      "branch": "master",
      "build_number": 39,
      "commit_hash": null,
      "commit_message": null,
      "commit_view_url": null,
      "environment_prepare_finished_at": "2018-06-06T13:33:50Z",
      "finished_at": "2018-06-06T13:35:21Z",
      "is_on_hold": false,
      "original_build_params": {
        "branch": "master",
        "workflow_id": "primary"
      },
      "pull_request_id": 0,
      "pull_request_target_branch": null,
      "pull_request_view_url": null,
      "slug": "39b5ffcd4533efbf",
      "stack_config_type": "standard1",
      "stack_identifier": "linux-docker-android",
      "started_on_worker_at": "2018-06-06T13:32:57Z",
      "status": 1,
      "status_text": "success",
      "tag": null,
      "triggered_at": "2018-06-06T13:32:00Z",
      "triggered_by": "bitrise_api_doc",
      "triggered_workflow": "primary"
    },
    {
      "abort_reason": null,
      "branch": "master",
      "build_number": 38,
      "commit_hash": null,
      "commit_message": null,
      "commit_view_url": null,
      "environment_prepare_finished_at": "2018-06-06T13:31:30Z",
      "finished_at": "2018-06-06T13:32:55Z",
      "is_on_hold": false,
      "original_build_params": {
        "branch": "master",
        "workflow_id": "primary"
      },
      "pull_request_id": 0,
      "pull_request_target_branch": null,
      "pull_request_view_url": null,
      "slug": "a42187e56ecb05bc",
      "stack_config_type": "standard1",
      "stack_identifier": "linux-docker-android",
      "started_on_worker_at": "2018-06-06T13:30:36Z",
      "status": 1,
      "status_text": "success",
      "tag": null,
      "triggered_at": "2018-06-06T13:30:36Z",
      "triggered_by": "bitrise_api_doc",
      "triggered_workflow": "primary"
    },
    {
      "abort_reason": null,
      "branch": "master",
      "build_number": 37,
      "commit_hash": null,
      "commit_message": null,
      "commit_view_url": null,
      "environment_prepare_finished_at": "2018-05-28T09:25:44Z",
      "finished_at": "2018-05-28T09:27:05Z",
      "is_on_hold": false,
      "original_build_params": {
        "branch": "master",
        "workflow_id": "primary"
      },
      "pull_request_id": 0,
      "pull_request_target_branch": null,
      "pull_request_view_url": null,
      "slug": "b5d8ecabd4231264",
      "stack_config_type": "standard1",
      "stack_identifier": "linux-docker-android",
      "started_on_worker_at": "2018-05-28T09:24:49Z",
      "status": 1,
      "status_text": "success",
      "tag": null,
      "triggered_at": "2018-05-28T09:24:49Z",
      "triggered_by": "bitrise_api_doc",
      "triggered_workflow": "primary"
    },
    {
      "abort_reason": null,
      "branch": "master",
      "build_number": 36,
      "commit_hash": null,
      "commit_message": null,
      "commit_view_url": null,
      "environment_prepare_finished_at": "2018-05-28T08:48:48Z",
      "finished_at": "2018-05-28T08:50:37Z",
      "is_on_hold": false,
      "original_build_params": {
        "branch": "master",
        "workflow_id": "primary"
      },
      "pull_request_id": 0,
      "pull_request_target_branch": null,
      "pull_request_view_url": null,
      "slug": "fc3faedc50a610ea",
      "stack_config_type": "standard1",
      "stack_identifier": "linux-docker-android",
      "started_on_worker_at": "2018-05-28T08:47:50Z",
      "status": 1,
      "status_text": "success",
      "tag": null,
      "triggered_at": "2018-05-28T08:47:49Z",
      "triggered_by": "bitrise_api_doc",
      "triggered_workflow": "primary"
    },
    {
      "abort_reason": null,
      "branch": "master",
      "build_number": 35,
      "commit_hash": null,
      "commit_message": null,
      "commit_view_url": null,
      "environment_prepare_finished_at": "2018-05-14T12:12:26Z",
      "finished_at": "2018-05-14T12:13:57Z",
      "is_on_hold": false,
      "original_build_params": {
        "branch": "master",
        "workflow_id": "primary"
      },
      "pull_request_id": 0,
      "pull_request_target_branch": null,
      "pull_request_view_url": null,
      "slug": "2a0b62127f2a91ec",
      "stack_config_type": "standard1",
      "stack_identifier": "linux-docker-android",
      "started_on_worker_at": "2018-05-14T12:11:25Z",
      "status": 1,
      "status_text": "success",
      "tag": null,
      "triggered_at": "2018-05-14T12:11:24Z",
      "triggered_by": "bitrise_api_doc",
      "triggered_workflow": "primary"
    },
    {
      "abort_reason": null,
      "branch": "master",
      "build_number": 34,
      "commit_hash": null,
      "commit_message": null,
      "commit_view_url": null,
      "environment_prepare_finished_at": "2018-04-19T14:42:28Z",
      "finished_at": "2018-04-19T14:44:00Z",
      "is_on_hold": false,
      "original_build_params": {
        "branch": "master",
        "workflow_id": "primary"
      },
      "pull_request_id": 0,
      "pull_request_target_branch": null,
      "pull_request_view_url": null,
      "slug": "226f809ae60c822d",
      "stack_config_type": "standard1",
      "stack_identifier": "linux-docker-android",
      "started_on_worker_at": "2018-04-19T14:41:22Z",
      "status": 1,
      "status_text": "success",
      "tag": null,
      "triggered_at": "2018-04-19T14:41:22Z",
      "triggered_by": "bitrise_api_doc",
      "triggered_workflow": "primary"
    },
    {
      "abort_reason": null,
      "branch": "master",
      "build_number": 33,
      "commit_hash": null,
      "commit_message": null,
      "commit_view_url": null,
      "environment_prepare_finished_at": "2018-04-19T11:43:51Z",
      "finished_at": "2018-04-19T11:45:14Z",
      "is_on_hold": false,
      "original_build_params": {
        "branch": "master",
        "workflow_id": "primary"
      },
      "pull_request_id": 0,
      "pull_request_target_branch": null,
      "pull_request_view_url": null,
      "slug": "366312bf17cff615",
      "stack_config_type": "standard1",
      "stack_identifier": "linux-docker-android",
      "started_on_worker_at": "2018-04-19T11:43:51Z",
      "status": 1,
      "status_text": "success",
      "tag": null,
      "triggered_at": "2018-04-19T11:42:54Z",
      "triggered_by": "bitrise_api_doc",
      "triggered_workflow": "primary"
    },
    {
      "abort_reason": null,
      "branch": "master",
      "build_number": 32,
      "commit_hash": null,
      "commit_message": null,
      "commit_view_url": null,
      "environment_prepare_finished_at": "2018-04-19T11:42:27Z",
      "finished_at": "2018-04-19T11:43:50Z",
      "is_on_hold": false,
      "original_build_params": {
        "branch": "master",
        "workflow_id": "primary"
      },
      "pull_request_id": 0,
      "pull_request_target_branch": null,
      "pull_request_view_url": null,
      "slug": "5a4c6dfb253fd4df",
      "stack_config_type": "standard1",
      "stack_identifier": "linux-docker-android",
      "started_on_worker_at": "2018-04-19T11:41:26Z",
      "status": 1,
      "status_text": "success",
      "tag": null,
      "triggered_at": "2018-04-19T11:41:25Z",
      "triggered_by": "bitrise_api_doc",
      "triggered_workflow": "primary"
    },
    {
      "abort_reason": null,
      "branch": "master",
      "build_number": 31,
      "commit_hash": null,
      "commit_message": null,
      "commit_view_url": null,
      "environment_prepare_finished_at": "2018-04-19T10:03:39Z",
      "finished_at": "2018-04-19T10:05:16Z",
      "is_on_hold": false,
      "original_build_params": {
        "branch": "master",
        "workflow_id": "primary"
      },
      "pull_request_id": 0,
      "pull_request_target_branch": null,
      "pull_request_view_url": null,
      "slug": "8d01153a2176eb92",
      "stack_config_type": "standard1",
      "stack_identifier": "linux-docker-android",
      "started_on_worker_at": "2018-04-19T10:02:27Z",
      "status": 1,
      "status_text": "success",
      "tag": null,
      "triggered_at": "2018-04-19T10:02:26Z",
      "triggered_by": "bitrise_api_doc",
      "triggered_workflow": "primary"
    },
    {
      "abort_reason": null,
      "branch": "master",
      "build_number": 30,
      "commit_hash": null,
      "commit_message": null,
      "commit_view_url": null,
      "environment_prepare_finished_at": "2018-04-19T09:55:59Z",
      "finished_at": "2018-04-19T09:57:21Z",
      "is_on_hold": false,
      "original_build_params": {
        "branch": "master",
        "workflow_id": "primary"
      },
      "pull_request_id": 0,
      "pull_request_target_branch": null,
      "pull_request_view_url": null,
      "slug": "7b0d2eceefb419ff",
      "stack_config_type": "standard1",
      "stack_identifier": "linux-docker-android",
      "started_on_worker_at": "2018-04-19T09:55:01Z",
      "status": 1,
      "status_text": "success",
      "tag": null,
      "triggered_at": "2018-04-19T09:55:00Z",
      "triggered_by": "bitrise_api_doc",
      "triggered_workflow": "primary"
    },
    {
      "abort_reason": null,
      "branch": "master",
      "build_number": 29,
      "commit_hash": null,
      "commit_message": null,
      "commit_view_url": null,
      "environment_prepare_finished_at": "2018-04-19T08:14:06Z",
      "finished_at": "2018-04-19T08:15:53Z",
      "is_on_hold": false,
      "original_build_params": {
        "branch": "master",
        "workflow_id": "primary"
      },
      "pull_request_id": 0,
      "pull_request_target_branch": null,
      "pull_request_view_url": null,
      "slug": "e2c7befadbb34320",
      "stack_config_type": "standard1",
      "stack_identifier": "linux-docker-android",
      "started_on_worker_at": "2018-04-19T08:12:42Z",
      "status": 1,
      "status_text": "success",
      "tag": null,
      "triggered_at": "2018-04-19T08:12:41Z",
      "triggered_by": "bitrise_api_doc",
      "triggered_workflow": "primary"
    },
    {
      "abort_reason": null,
      "branch": "master",
      "build_number": 28,
      "commit_hash": null,
      "commit_message": null,
      "commit_view_url": null,
      "environment_prepare_finished_at": "2018-04-11T12:14:39Z",
      "finished_at": "2018-04-11T12:16:16Z",
      "is_on_hold": false,
      "original_build_params": {
        "branch": "master",
        "workflow_id": "primary"
      },
      "pull_request_id": 0,
      "pull_request_target_branch": null,
      "pull_request_view_url": null,
      "slug": "2669ae9ae4185120",
      "stack_config_type": "standard1",
      "stack_identifier": "linux-docker-android",
      "started_on_worker_at": "2018-04-11T12:13:40Z",
      "status": 1,
      "status_text": "success",
      "tag": null,
      "triggered_at": "2018-04-11T12:13:39Z",
      "triggered_by": "bitrise_api_doc",
      "triggered_workflow": "primary"
    },
    {
      "abort_reason": null,
      "branch": "master",
      "build_number": 27,
      "commit_hash": null,
      "commit_message": null,
      "commit_view_url": null,
      "environment_prepare_finished_at": "2018-04-11T11:18:51Z",
      "finished_at": "2018-04-11T11:20:32Z",
      "is_on_hold": false,
      "original_build_params": {
        "branch": "master",
        "workflow_id": "primary"
      },
      "pull_request_id": 0,
      "pull_request_target_branch": null,
      "pull_request_view_url": null,
      "slug": "ef73302cb5127653",
      "stack_config_type": "standard1",
      "stack_identifier": "linux-docker-android",
      "started_on_worker_at": "2018-04-11T11:17:19Z",
      "status": 1,
      "status_text": "success",
      "tag": null,
      "triggered_at": "2018-04-11T11:13:56Z",
      "triggered_by": "bitrise_api_doc",
      "triggered_workflow": "primary"
    },
    {
      "abort_reason": null,
      "branch": "master",
      "build_number": 26,
      "commit_hash": null,
      "commit_message": null,
      "commit_view_url": null,
      "environment_prepare_finished_at": "2018-04-11T11:15:55Z",
      "finished_at": "2018-04-11T11:17:18Z",
      "is_on_hold": false,
      "original_build_params": {
        "branch": "master",
        "workflow_id": "primary"
      },
      "pull_request_id": 0,
      "pull_request_target_branch": null,
      "pull_request_view_url": null,
      "slug": "d7084f3be385d180",
      "stack_config_type": "standard1",
      "stack_identifier": "linux-docker-android",
      "started_on_worker_at": "2018-04-11T11:14:34Z",
      "status": 1,
      "status_text": "success",
      "tag": null,
      "triggered_at": "2018-04-11T11:12:41Z",
      "triggered_by": "bitrise_api_doc",
      "triggered_workflow": "primary"
    },
    {
      "abort_reason": null,
      "branch": "master",
      "build_number": 25,
      "commit_hash": null,
      "commit_message": null,
      "commit_view_url": null,
      "environment_prepare_finished_at": "2018-04-11T11:13:10Z",
      "finished_at": "2018-04-11T11:14:33Z",
      "is_on_hold": false,
      "original_build_params": {
        "branch": "master",
        "workflow_id": "primary"
      },
      "pull_request_id": 0,
      "pull_request_target_branch": null,
      "pull_request_view_url": null,
      "slug": "eddd8244fecb7eeb",
      "stack_config_type": "standard1",
      "stack_identifier": "linux-docker-android",
      "started_on_worker_at": "2018-04-11T11:12:08Z",
      "status": 1,
      "status_text": "success",
      "tag": null,
      "triggered_at": "2018-04-11T11:12:08Z",
      "triggered_by": "bitrise_api_doc",
      "triggered_workflow": "primary"
    },
    {
      "abort_reason": null,
      "branch": "master",
      "build_number": 24,
      "commit_hash": null,
      "commit_message": null,
      "commit_view_url": null,
      "environment_prepare_finished_at": "2018-04-11T10:54:10Z",
      "finished_at": "2018-04-11T10:55:27Z",
      "is_on_hold": false,
      "original_build_params": {
        "branch": "master",
        "workflow_id": "primary"
      },
      "pull_request_id": 0,
      "pull_request_target_branch": null,
      "pull_request_view_url": null,
      "slug": "2f05c9e0f85dfc60",
      "stack_config_type": "standard1",
      "stack_identifier": "linux-docker-android",
      "started_on_worker_at": "2018-04-11T10:52:56Z",
      "status": 1,
      "status_text": "success",
      "tag": null,
      "triggered_at": "2018-04-11T10:52:56Z",
      "triggered_by": "bitrise_api_doc",
      "triggered_workflow": "primary"
    },
    {
      "abort_reason": null,
      "branch": "gradle-plugin-v3",
      "build_number": 23,
      "commit_hash": "cad2bc7b90085a9cfab58bbc7ead52ea913b9c13",
      "commit_message": "gradle android plugin v3, gradle v4",
      "commit_view_url": "https://github.com/bitrise-samples/sample-apps-android-sdk22/commit/cad2bc7b90085a9cfab58bbc7ead52ea913b9c13",
      "environment_prepare_finished_at": "2018-03-08T11:18:53Z",
      "finished_at": "2018-03-08T11:20:17Z",
      "is_on_hold": false,
      "original_build_params": {
        "branch": "gradle-plugin-v3",
        "commit_hash": "cad2bc7b90085a9cfab58bbc7ead52ea913b9c13",
        "commit_message": "gradle android plugin v3, gradle v4"
      },
      "pull_request_id": 0,
      "pull_request_target_branch": null,
      "pull_request_view_url": null,
      "slug": "fe2a0055cc8aa878",
      "stack_config_type": "standard1",
      "stack_identifier": "linux-docker-android",
      "started_on_worker_at": "2018-03-08T11:18:53Z",
      "status": 1,
      "status_text": "success",
      "tag": null,
      "triggered_at": "2018-03-08T11:18:10Z",
      "triggered_by": "manual-api-demo",
      "triggered_workflow": "primary"
    },
    {
      "abort_reason": null,
      "branch": "gradle-plugin-v3",
      "build_number": 22,
      "commit_hash": "cad2bc7b90085a9cfab58bbc7ead52ea913b9c13",
      "commit_message": "gradle android plugin v3, gradle v4",
      "commit_view_url": "https://github.com/bitrise-samples/sample-apps-android-sdk22/commit/cad2bc7b90085a9cfab58bbc7ead52ea913b9c13",
      "environment_prepare_finished_at": "2018-02-23T14:28:15Z",
      "finished_at": "2018-02-23T14:29:41Z",
      "is_on_hold": false,
      "original_build_params": {
        "branch": "gradle-plugin-v3",
        "branch_dest": "master",
        "commit_hash": "cad2bc7b90085a9cfab58bbc7ead52ea913b9c13",
        "commit_message": "gradle android plugin v3, gradle v4",
        "pull_request_head_branch": "pull/4/head",
        "pull_request_id": 4,
        "pull_request_merge_branch": "pull/4/merge",
        "pull_request_repository_url": "https://github.com/bitrise-samples/sample-apps-android-sdk22.git"
      },
      "pull_request_id": 4,
      "pull_request_target_branch": "master",
      "pull_request_view_url": "https://github.com/bitrise-samples/sample-apps-android-sdk22/pull/4",
      "slug": "2a009816d8b62496",
      "stack_config_type": "standard1",
      "stack_identifier": "linux-docker-android",
      "started_on_worker_at": "2018-02-23T14:27:07Z",
      "status": 1,
      "status_text": "success",
      "tag": null,
      "triggered_at": "2018-02-23T14:25:57Z",
      "triggered_by": "webhook",
      "triggered_workflow": "primary"
    },
    {
      "abort_reason": null,
      "branch": "gradle-plugin-v3",
      "build_number": 21,
      "commit_hash": "cad2bc7b90085a9cfab58bbc7ead52ea913b9c13",
      "commit_message": "gradle android plugin v3, gradle v4",
      "commit_view_url": "https://github.com/bitrise-samples/sample-apps-android-sdk22/commit/cad2bc7b90085a9cfab58bbc7ead52ea913b9c13",
      "environment_prepare_finished_at": "2018-02-23T14:25:52Z",
      "finished_at": "2018-02-23T14:27:06Z",
      "is_on_hold": false,
      "original_build_params": {
        "branch": "gradle-plugin-v3",
        "commit_hash": "cad2bc7b90085a9cfab58bbc7ead52ea913b9c13",
        "commit_message": "gradle android plugin v3, gradle v4"
      },
      "pull_request_id": 0,
      "pull_request_target_branch": null,
      "pull_request_view_url": null,
      "slug": "dc60d8be63011e29",
      "stack_config_type": "standard1",
      "stack_identifier": "linux-docker-android",
      "started_on_worker_at": "2018-02-23T14:25:52Z",
      "status": 1,
      "status_text": "success",
      "tag": null,
      "triggered_at": "2018-02-23T14:25:51Z",
      "triggered_by": "webhook",
      "triggered_workflow": "primary"
    },
    {
      "abort_reason": null,
      "branch": "master",
      "build_number": 20,
      "commit_hash": null,
      "commit_message": "generate an APK",
      "commit_view_url": null,
      "environment_prepare_finished_at": "2017-11-08T13:24:33Z",
      "finished_at": "2017-11-08T13:26:54Z",
      "is_on_hold": false,
      "original_build_params": {
        "branch": "master",
        "commit_message": "generate an APK",
        "workflow_id": "gen-apk"
      },
      "pull_request_id": 0,
      "pull_request_target_branch": null,
      "pull_request_view_url": null,
      "slug": "ddf4134555e833d8",
      "stack_config_type": "standard1",
      "stack_identifier": "linux-docker-android",
      "started_on_worker_at": "2017-11-08T13:24:33Z",
      "status": 1,
      "status_text": "success",
      "tag": null,
      "triggered_at": "2017-11-08T13:24:33Z",
      "triggered_by": "manual-api-demo",
      "triggered_workflow": "gen-apk"
    },
    {
      "abort_reason": null,
      "branch": "master",
      "build_number": 19,
      "commit_hash": null,
      "commit_message": null,
      "commit_view_url": null,
      "environment_prepare_finished_at": "2017-08-17T09:13:11Z",
      "finished_at": "2017-08-17T09:14:37Z",
      "is_on_hold": false,
      "original_build_params": {
        "branch": "master",
        "workflow_id": "secondary"
      },
      "pull_request_id": 0,
      "pull_request_target_branch": null,
      "pull_request_view_url": null,
      "slug": "8ee5e483b79fdfd4",
      "stack_config_type": "standard1",
      "stack_identifier": "linux-docker-android",
      "started_on_worker_at": "2017-08-17T09:12:05Z",
      "status": 1,
      "status_text": "success",
      "tag": null,
      "triggered_at": "2017-08-17T09:10:41Z",
      "triggered_by": "curl",
      "triggered_workflow": "secondary"
    },
    {
      "abort_reason": null,
      "branch": "master",
      "build_number": 18,
      "commit_hash": null,
      "commit_message": null,
      "commit_view_url": null,
      "environment_prepare_finished_at": "2017-08-17T09:10:31Z",
      "finished_at": "2017-08-17T09:12:04Z",
      "is_on_hold": false,
      "original_build_params": {
        "branch": "master"
      },
      "pull_request_id": 0,
      "pull_request_target_branch": null,
      "pull_request_view_url": null,
      "slug": "601e080954bbd57b",
      "stack_config_type": "standard1",
      "stack_identifier": "linux-docker-android",
      "started_on_worker_at": "2017-08-17T09:09:24Z",
      "status": 1,
      "status_text": "success",
      "tag": null,
      "triggered_at": "2017-08-17T09:09:23Z",
      "triggered_by": "curl",
      "triggered_workflow": "primary"
    },
    {
      "abort_reason": null,
      "branch": "create_dev_file",
      "build_number": 17,
      "commit_hash": "b170936b1281a1cfd01fd7d19559793aae1b891a",
      "commit_message": "Create dev.txt\n\nAdd a file",
      "commit_view_url": "https://github.com/bitrise-samples/sample-apps-android-sdk22/commit/b170936b1281a1cfd01fd7d19559793aae1b891a",
      "environment_prepare_finished_at": "2017-08-17T08:48:31Z",
      "finished_at": "2017-08-17T08:50:13Z",
      "is_on_hold": false,
      "original_build_params": {
        "branch": "create_dev_file",
        "branch_dest": "master",
        "commit_hash": "b170936b1281a1cfd01fd7d19559793aae1b891a",
        "commit_message": "Create dev.txt\n\nAdd a file",
        "pull_request_head_branch": "pull/3/head",
        "pull_request_id": 3,
        "pull_request_merge_branch": "pull/3/merge",
        "pull_request_repository_url": "https://github.com/slapec93/sample-apps-android-sdk22.git"
      },
      "pull_request_id": 3,
      "pull_request_target_branch": "master",
      "pull_request_view_url": "https://github.com/bitrise-samples/sample-apps-android-sdk22/pull/3",
      "slug": "62f841f1497f5f30",
      "stack_config_type": "standard1",
      "stack_identifier": "linux-docker-android",
      "started_on_worker_at": "2017-08-17T08:47:26Z",
      "status": 1,
      "status_text": "success",
      "tag": null,
      "triggered_at": "2017-08-17T08:47:25Z",
      "triggered_by": "webhook",
      "triggered_workflow": "primary"
    },
    {
      "abort_reason": null,
      "branch": "master",
      "build_number": 16,
      "commit_hash": null,
      "commit_message": null,
      "commit_view_url": null,
      "environment_prepare_finished_at": "2017-08-17T08:31:31Z",
      "finished_at": "2017-08-17T08:33:05Z",
      "is_on_hold": false,
      "original_build_params": {
        "branch": "master",
        "pull_request_id": 3
      },
      "pull_request_id": 3,
      "pull_request_target_branch": "master",
      "pull_request_view_url": "https://github.com/bitrise-samples/sample-apps-android-sdk22/pull/3",
      "slug": "b5e4e86ff62ef8ec",
      "stack_config_type": "standard1",
      "stack_identifier": "linux-docker-android",
      "started_on_worker_at": "2017-08-17T08:30:29Z",
      "status": 1,
      "status_text": "success",
      "tag": null,
      "triggered_at": "2017-08-17T08:30:28Z",
      "triggered_by": "curl",
      "triggered_workflow": "primary"
    },
    {
      "abort_reason": null,
      "branch": "develop",
      "build_number": 15,
      "commit_hash": null,
      "commit_message": null,
      "commit_view_url": null,
      "environment_prepare_finished_at": "2017-08-17T07:46:00Z",
      "finished_at": "2017-08-17T07:47:25Z",
      "is_on_hold": false,
      "original_build_params": {
        "branch": "develop"
      },
      "pull_request_id": 0,
      "pull_request_target_branch": null,
      "pull_request_view_url": null,
      "slug": "1e79f459d59ec74b",
      "stack_config_type": "standard1",
      "stack_identifier": "linux-docker-android",
      "started_on_worker_at": "2017-08-17T07:46:00Z",
      "status": 1,
      "status_text": "success",
      "tag": null,
      "triggered_at": "2017-08-17T07:45:59Z",
      "triggered_by": "curl",
      "triggered_workflow": "primary"
    },
    {
      "abort_reason": null,
      "branch": "master",
      "build_number": 14,
      "commit_hash": null,
      "commit_message": null,
      "commit_view_url": null,
      "environment_prepare_finished_at": "2017-07-19T16:29:59Z",
      "finished_at": "2017-07-19T16:31:38Z",
      "is_on_hold": false,
      "original_build_params": {
        "branch": "master"
      },
      "pull_request_id": 0,
      "pull_request_target_branch": null,
      "pull_request_view_url": null,
      "slug": "9fb8eaaa4bdd3763",
      "stack_config_type": "standard1",
      "stack_identifier": "linux-docker-android",
      "started_on_worker_at": "2017-07-19T16:28:51Z",
      "status": 1,
      "status_text": "success",
      "tag": null,
      "triggered_at": "2017-07-19T16:28:50Z",
      "triggered_by": "manual-api-demo",
      "triggered_workflow": "primary"
    },
    {
      "abort_reason": null,
      "branch": "master",
      "build_number": 13,
      "commit_hash": null,
      "commit_message": null,
      "commit_view_url": null,
      "environment_prepare_finished_at": "2017-07-19T16:26:33Z",
      "finished_at": "2017-07-19T16:27:50Z",
      "is_on_hold": false,
      "original_build_params": {
        "branch": "master"
      },
      "pull_request_id": 0,
      "pull_request_target_branch": null,
      "pull_request_view_url": null,
      "slug": "78c605ea44677118",
      "stack_config_type": "standard1",
      "stack_identifier": "linux-docker-android",
      "started_on_worker_at": "2017-07-19T16:23:01Z",
      "status": 1,
      "status_text": "success",
      "tag": null,
      "triggered_at": "2017-07-19T16:23:00Z",
      "triggered_by": "manual-api-demo",
      "triggered_workflow": "primary"
    },
    {
      "abort_reason": "User api-demo requested to abort this build with reason: canceled through the API",
      "branch": "master",
      "build_number": 12,
      "commit_hash": null,
      "commit_message": "this build will be aborted through the API",
      "commit_view_url": null,
      "environment_prepare_finished_at": "2017-06-20T22:35:03Z",
      "finished_at": "2017-06-20T22:35:15Z",
      "is_on_hold": false,
      "original_build_params": {
        "branch": "master",
        "commit_message": "this build will be aborted through the API"
      },
      "pull_request_id": 0,
      "pull_request_target_branch": null,
      "pull_request_view_url": null,
      "slug": "ce86c8475d31d288",
      "stack_config_type": "standard1",
      "stack_identifier": "linux-docker-android",
      "started_on_worker_at": "2017-06-20T22:35:03Z",
      "status": 3,
      "status_text": "aborted",
      "tag": null,
      "triggered_at": "2017-06-20T22:35:02Z",
      "triggered_by": null,
      "triggered_workflow": "primary"
    },
    {
      "abort_reason": null,
      "branch": "master",
      "build_number": 11,
      "commit_hash": "b4e7cad230e3fc2f2f84dbb455c7ac7f89a3a18b",
      "commit_message": "API Demo - commit hash example\n\nThis build has a specified commit hash",
      "commit_view_url": "https://github.com/bitrise-samples/sample-apps-android-sdk22/commit/b4e7cad230e3fc2f2f84dbb455c7ac7f89a3a18b",
      "environment_prepare_finished_at": "2017-06-20T22:31:28Z",
      "finished_at": "2017-06-20T22:33:00Z",
      "is_on_hold": false,
      "original_build_params": {
        "branch": "master",
        "commit_hash": "b4e7cad230e3fc2f2f84dbb455c7ac7f89a3a18b",
        "commit_message": "API Demo - commit hash example\n\nThis build has a specified commit hash"
      },
      "pull_request_id": 0,
      "pull_request_target_branch": null,
      "pull_request_view_url": null,
      "slug": "c518445a250a5848",
      "stack_config_type": "standard1",
      "stack_identifier": "linux-docker-android",
      "started_on_worker_at": "2017-06-20T22:31:28Z",
      "status": 1,
      "status_text": "success",
      "tag": null,
      "triggered_at": "2017-06-20T22:31:27Z",
      "triggered_by": null,
      "triggered_workflow": "primary"
    },
    {
      "abort_reason": "User api-demo requested to abort this build with reason: This is an example abort build",
      "branch": "master",
      "build_number": 10,
      "commit_hash": null,
      "commit_message": "Abort example",
      "commit_view_url": null,
      "environment_prepare_finished_at": "2017-05-30T15:47:17Z",
      "finished_at": "2017-05-30T15:47:32Z",
      "is_on_hold": false,
      "original_build_params": {
        "branch": "master",
        "commit_message": "Abort example"
      },
      "pull_request_id": 0,
      "pull_request_target_branch": null,
      "pull_request_view_url": null,
      "slug": "3247e2920496e846",
      "stack_config_type": null,
      "stack_identifier": null,
      "started_on_worker_at": "2017-05-30T15:47:17Z",
      "status": 3,
      "status_text": "aborted",
      "tag": null,
      "triggered_at": "2017-05-30T15:47:17Z",
      "triggered_by": null,
      "triggered_workflow": "primary"
    },
    {
      "abort_reason": null,
      "branch": "master",
      "build_number": 9,
      "commit_hash": "b4e7cad230e3fc2f2f84dbb455c7ac7f89a3a18b",
      "commit_message": "API Demo - commit hash example\n\nThis build has a specified commit hash",
      "commit_view_url": "https://github.com/bitrise-samples/sample-apps-android-sdk22/commit/b4e7cad230e3fc2f2f84dbb455c7ac7f89a3a18b",
      "environment_prepare_finished_at": "2017-05-16T20:04:28Z",
      "finished_at": "2017-05-16T20:05:05Z",
      "is_on_hold": false,
      "original_build_params": {
        "branch": "master",
        "commit_hash": "b4e7cad230e3fc2f2f84dbb455c7ac7f89a3a18b",
        "commit_message": "API Demo - commit hash example\n\nThis build has a specified commit hash"
      },
      "pull_request_id": 0,
      "pull_request_target_branch": null,
      "pull_request_view_url": null,
      "slug": "5267720a89cb298d",
      "stack_config_type": null,
      "stack_identifier": null,
      "started_on_worker_at": "2017-05-16T20:04:28Z",
      "status": 1,
      "status_text": "success",
      "tag": null,
      "triggered_at": "2017-05-16T20:02:25Z",
      "triggered_by": null,
      "triggered_workflow": "primary"
    },
    {
      "abort_reason": null,
      "branch": "master",
      "build_number": 8,
      "commit_hash": null,
      "commit_message": "API demo\n\nmultiline commit message example",
      "commit_view_url": null,
      "environment_prepare_finished_at": "2017-05-16T20:03:33Z",
      "finished_at": "2017-05-16T20:04:27Z",
      "is_on_hold": false,
      "original_build_params": {
        "branch": "master",
        "commit_message": "API demo\n\nmultiline commit message example"
      },
      "pull_request_id": 0,
      "pull_request_target_branch": null,
      "pull_request_view_url": null,
      "slug": "627cfd1a3f715134",
      "stack_config_type": null,
      "stack_identifier": null,
      "started_on_worker_at": "2017-05-16T20:02:25Z",
      "status": 1,
      "status_text": "success",
      "tag": null,
      "triggered_at": "2017-05-16T20:00:18Z",
      "triggered_by": null,
      "triggered_workflow": "primary"
    },
    {
      "abort_reason": null,
      "branch": "master",
      "build_number": 7,
      "commit_hash": null,
      "commit_message": "API demo, commit hash example 1",
      "commit_view_url": null,
      "environment_prepare_finished_at": "2017-05-16T19:59:05Z",
      "finished_at": "2017-05-16T20:02:19Z",
      "is_on_hold": false,
      "original_build_params": {
        "branch": "master",
        "commit_message": "API demo, commit hash example 1"
      },
      "pull_request_id": 0,
      "pull_request_target_branch": null,
      "pull_request_view_url": null,
      "slug": "2976b894d40cf339",
      "stack_config_type": null,
      "stack_identifier": null,
      "started_on_worker_at": "2017-05-16T19:59:05Z",
      "status": 1,
      "status_text": "success",
      "tag": null,
      "triggered_at": "2017-05-16T19:59:04Z",
      "triggered_by": null,
      "triggered_workflow": "primary"
    },
    {
      "abort_reason": null,
      "branch": "master",
      "build_number": 6,
      "commit_hash": null,
      "commit_message": "unwatch test",
      "commit_view_url": null,
      "environment_prepare_finished_at": "2017-04-25T12:05:48Z",
      "finished_at": "2017-04-25T12:09:26Z",
      "is_on_hold": false,
      "original_build_params": {
        "branch": "master",
        "commit_message": "unwatch test"
      },
      "pull_request_id": 0,
      "pull_request_target_branch": null,
      "pull_request_view_url": null,
      "slug": "cabbf96b36031c45",
      "stack_config_type": null,
      "stack_identifier": null,
      "started_on_worker_at": "2017-04-25T12:04:38Z",
      "status": 1,
      "status_text": "success",
      "tag": null,
      "triggered_at": "2017-04-25T12:04:37Z",
      "triggered_by": null,
      "triggered_workflow": "primary"
    },
    {
      "abort_reason": null,
      "branch": "master",
      "build_number": 5,
      "commit_hash": null,
      "commit_message": null,
      "commit_view_url": null,
      "environment_prepare_finished_at": "2017-04-25T11:48:15Z",
      "finished_at": "2017-04-25T11:51:47Z",
      "is_on_hold": false,
      "original_build_params": {
        "branch": "master"
      },
      "pull_request_id": 0,
      "pull_request_target_branch": null,
      "pull_request_view_url": null,
      "slug": "8b2a7f96da727174",
      "stack_config_type": null,
      "stack_identifier": null,
      "started_on_worker_at": "2017-04-25T11:46:44Z",
      "status": 1,
      "status_text": "success",
      "tag": null,
      "triggered_at": "2017-04-25T11:34:59Z",
      "triggered_by": null,
      "triggered_workflow": "primary"
    },
    {
      "abort_reason": null,
      "branch": "master",
      "build_number": 4,
      "commit_hash": null,
      "commit_message": null,
      "commit_view_url": null,
      "environment_prepare_finished_at": "2017-04-25T11:43:18Z",
      "finished_at": "2017-04-25T11:46:42Z",
      "is_on_hold": false,
      "original_build_params": {
        "branch": "master"
      },
      "pull_request_id": 0,
      "pull_request_target_branch": null,
      "pull_request_view_url": null,
      "slug": "de020764ecdc8e57",
      "stack_config_type": null,
      "stack_identifier": null,
      "started_on_worker_at": "2017-04-25T11:43:18Z",
      "status": 1,
      "status_text": "success",
      "tag": null,
      "triggered_at": "2017-04-25T11:34:57Z",
      "triggered_by": null,
      "triggered_workflow": "primary"
    },
    {
      "abort_reason": null,
      "branch": "master",
      "build_number": 3,
      "commit_hash": null,
      "commit_message": null,
      "commit_view_url": null,
      "environment_prepare_finished_at": "2017-04-25T11:39:24Z",
      "finished_at": "2017-04-25T11:43:16Z",
      "is_on_hold": false,
      "original_build_params": {
        "branch": "master"
      },
      "pull_request_id": 0,
      "pull_request_target_branch": null,
      "pull_request_view_url": null,
      "slug": "23c891eab2caad9c",
      "stack_config_type": null,
      "stack_identifier": null,
      "started_on_worker_at": "2017-04-25T11:38:11Z",
      "status": 1,
      "status_text": "success",
      "tag": null,
      "triggered_at": "2017-04-25T11:34:54Z",
      "triggered_by": null,
      "triggered_workflow": "primary"
    },
    {
      "abort_reason": null,
      "branch": "master",
      "build_number": 2,
      "commit_hash": null,
      "commit_message": null,
      "commit_view_url": null,
      "environment_prepare_finished_at": "2017-04-25T11:34:52Z",
      "finished_at": "2017-04-25T11:38:10Z",
      "is_on_hold": false,
      "original_build_params": {
        "branch": "master"
      },
      "pull_request_id": 0,
      "pull_request_target_branch": null,
      "pull_request_view_url": null,
      "slug": "851f3cfcded7e20f",
      "stack_config_type": null,
      "stack_identifier": null,
      "started_on_worker_at": "2017-04-25T11:34:52Z",
      "status": 1,
      "status_text": "success",
      "tag": null,
      "triggered_at": "2017-04-25T11:34:52Z",
      "triggered_by": null,
      "triggered_workflow": "primary"
    },
    {
      "abort_reason": null,
      "branch": "master",
      "build_number": 1,
      "commit_hash": null,
      "commit_message": null,
      "commit_view_url": null,
      "environment_prepare_finished_at": "2017-04-25T11:06:55Z",
      "finished_at": "2017-04-25T11:10:47Z",
      "is_on_hold": false,
      "original_build_params": {
        "branch": "master"
      },
      "pull_request_id": 0,
      "pull_request_target_branch": null,
      "pull_request_view_url": null,
      "slug": "51d5915205deede2",
      "stack_config_type": null,
      "stack_identifier": null,
      "started_on_worker_at": "2017-04-25T11:06:55Z",
      "status": 1,
      "status_text": "success",
      "tag": null,
      "triggered_at": "2017-04-25T11:06:54Z",
      "triggered_by": null,
      "triggered_workflow": "primary"
    }
  ],
  "paging": {
    "page_item_limit": 50,
    "total_item_count": 48
  }
}

GET /apps/{APP-SLUG}/builds/{BUILD-SLUG}

Get a specific build’s data.

Status codes (status) and related status texts (status_text): See the [**GET /apps/{APP-SLUG}/builds**](#get-appsapp-slugbuilds) endpoint description

Build times: See the [**GET /apps/{APP-SLUG}/builds**](#get-appsapp-slugbuilds) endpoint description

Example curl request

curl -H 'Authorization: token THE-ACCESS-TOKEN' 'https://api.bitrise.io/v0.1/apps/APP-SLUG/builds/BUILD-SLUG'

Example response

{
  "data": {
    "abort_reason": "User api-demo requested to abort this build with reason: This is an example abort build",
    "branch": "master",
    "build_number": 10,
    "commit_hash": null,
    "commit_message": "Abort example",
    "commit_view_url": null,
    "environment_prepare_finished_at": "2017-05-30T15:47:17Z",
    "finished_at": "2017-05-30T15:47:32Z",
    "is_on_hold": false,
    "original_build_params": {
      "branch": "master",
      "commit_message": "Abort example"
    },
    "pull_request_id": 0,
    "pull_request_target_branch": null,
    "pull_request_view_url": null,
    "slug": "3247e2920496e846",
    "stack_config_type": null,
    "stack_identifier": null,
    "started_on_worker_at": "2017-05-30T15:47:17Z",
    "status": 3,
    "status_text": "aborted",
    "tag": null,
    "triggered_at": "2017-05-30T15:47:17Z",
    "triggered_by": null,
    "triggered_workflow": "primary"
  }
}

GET /apps/{APP-SLUG}/builds/{BUILD-SLUG}/log

Get the log info of a specific Build.

The log info includes the last couple of chunks (log_chunks) of the build log, as well as other meta infos like how many chunks were generated during the build (generated_log_chunks_num).

Once the build is finished and the full log is available in the log archives ("is_archived": true) the response will also include an expiring, read only download URL (expiring_raw_log_url).

There’s no guarantee for how long this expiring raw log URL will exist (other than “for a couple of minutes”), so please do not store this URL! If you want to retrieve the full (raw) log please:

  1. Call this log info endpoint
  2. And right after that, when you get the response, parse the expiring_raw_log_url from it and send a GET request to that URL as soon as possible.

Do not include special headers when sending GET request!

When you send your GET request to the expiring_raw_log_url URL, please do not include the Authorization headers. In fact, you should not include any special header at all; just create a simple GET request and send it to the expiring_raw_log_url URL. The expiring_raw_log_url is configured in such a way that it does not require any other parameter than what’s included in the URL.

When a build is running, the log chunks can be retrieved with filtering, because in this case every response contain a timestamp which has Unix timestamp format. You can send this value in the next call as query parameter with the key timestamp, so the next response will contain only the chunks created after the timestamp. There is also a limit parameter which has 50 as the default value, with this you can limit the number of the retrieved log chunks.

No filtering

If build is finished, the logs will be archived, in this case there are no filtering options, the filter parameters won’t have any effect on the content of the response, the whole archived log will be retrieved.

Example curl request

curl -H 'Authorization: token THE-ACCESS-TOKEN' 'https://api.bitrise.io/v0.1/apps/APP-SLUG/builds/BUILD-SLUG/log'

Example response

{
  "expiring_raw_log_url": "https://bitrise-build-log-archives-production.s3.amazonaws.com/build-logs-v2/669403bffbe35909/3247e2920496e846/2194500/3247e2920496e846.log?X-Amz-Algorithm=AWS4-HMAC-SHA256\u0026X-Amz-Content-Sha256=UNSIGNED-PAYLOAD\u0026X-Amz-Credential=AKIAIOC7N256G7J2W2TQ%2F20180823%2Fus-east-1%2Fs3%2Faws4_request\u0026X-Amz-Date=20180823T082125Z\u0026X-Amz-Expires=600\u0026X-Amz-SignedHeaders=host\u0026X-Amz-Signature=1e18552237d9c3cb15cde513595a43ca720f655a7a757658451c96bafc476356",
  "generated_log_chunks_num": 6,
  "is_archived": true,
  "log_chunks": [
    {
      "chunk": "\n  ██████╗ ██╗████████╗██████╗ ██╗███████╗███████╗\n  ██╔══██╗██║╚══██╔══╝██╔══██╗██║██╔════╝██╔════╝\n  ██████╔╝██║   ██║   ██████╔╝██║███████╗█████╗\n  ██╔══██╗██║   ██║   ██╔══██╗██║╚════██║██╔══╝\n  ██████╔╝██║   ██║   ██║  ██║██║███████║███████╗\n  ╚═════╝ ╚═╝   ╚═╝   ╚═╝  ╚═╝╚═╝╚══════╝╚══════╝\n\n\u001b[32;1mVersion: 1.6.1\u001b[0m\n\n\u001b[34mINFO\u001b[0m[15:47:21] \u001b[33;1mbitrise runs in CI mode\u001b[0m           \n\u001b[34mINFO\u001b[0m[15:47:21] \u001b[32;1mRunning workflow:\u001b[0m primary         \n\n\u001b[34;1mSwitching to workflow:\u001b[0m primary\n\n",
      "position": 0
    },
    {
      "chunk": "+------------------------------------------------------------------------------+\n| (0) activate-ssh-key@3.1.1                                                   |\n+------------------------------------------------------------------------------+\n| id: activate-ssh-key                                                         |\n| version: 3.1.1                                                               |\n| collection: https://github.com/bitrise-io/bitrise-steplib.git                |\n| toolkit: bash                                                                |\n| time: 2017-05-30T15:47:26Z                                                   |\n+------------------------------------------------------------------------------+\n|                                                                              |\n|                                                                              |\n+---+---------------------------------------------------------------+----------+\n| \u001b[34;1m-\u001b[0m | \u001b[34;1mactivate-ssh-key@3.1.1\u001b[0m                                        | 2.32 sec |\n+---+---------------------------------------------------------------+----------+\n\n\n\n\u001b[33mWARN\u001b[0m[15:47:26] The step's (activate-ssh-key@3.1.1) Run-If expression evaluated to false - skipping \n\u001b[34mINFO\u001b[0m[15:47:26] The Run-If expression was: \u001b[34;1m\u001b[0m \n",
      "position": 1
    },
    {
      "chunk": "+------------------------------------------------------------------------------+\n| (1) git-clone@3.4.3                                                          |\n+------------------------------------------------------------------------------+\n| id: git-clone                                                                |\n| version: 3.4.3                                                               |\n| collection: https://github.com/bitrise-io/bitrise-steplib.git                |\n| toolkit: go                                                                  |\n| time: 2017-05-30T15:47:27Z                                                   |\n+------------------------------------------------------------------------------+\n|                                                                              |\n\u001b[34mINFO\u001b[0m[15:47:27] Start installing (golang) with apt-get       \n\u001b[34mINFO\u001b[0m[15:47:27]  * \u001b[32;1m[OK]\u001b[0m Step dependency (go) installed, available. \n",
      "position": 2
    },
    {
      "chunk": "\n\u001b[34;1mGit Clone Configs:\u001b[0m\n- CloneIntoDir: /bitrise/src\n- RepositoryURL: https://github.com/bitrise-samples/sample-apps-android-sdk22.git\n\u001b[34;1mGit Checkout Configs:\u001b[0m\n- Commit: \n- Tag: \n- Branch: master\n- CloneDepth: \n\u001b[34;1mGit Pull Request Configs:\u001b[0m\n- PullRequestURI: \n- PullRequestID: \n- BranchDest: \n- PullRequestMergeBranch: \n- ResetRepository: No\n\u001b[34;1mBitrise Build Configs:\u001b[0m\n- BuildURL: https://www.bitrise.io/build/3247e2920496e846\n- BuildAPIToken: XtFWIhNx22MMMA6DcPXBGw\n\n\u001b[34;1mGit clone repository\u001b[0m\n=\u003e git \"init\"\n=\u003e git \"remote\" \"add\" \"origin\" \"https://github.com/bitrise-samples/sample-apps-android-sdk22.git\"\n=\u003e git \"fetch\"\n",
      "position": 3
    },
    {
      "chunk": "=\u003e git \"checkout\" \"master\"\n=\u003e git \"submodule\" \"update\" \"--init\" \"--recursive\"\n\u001b[34;1mExporting git logs\u001b[0m\n=\u003e GIT_CLONE_COMMIT_HASH\n   value: b4e7cad230e3fc2f2f84dbb455c7ac7f89a3a18b\n\n=\u003e GIT_CLONE_COMMIT_MESSAGE_SUBJECT\n   value: downgrade to com.android.tools.build:gradle:2.1.0\n\n=\u003e GIT_CLONE_COMMIT_MESSAGE_BODY\n   value: \n\n=\u003e GIT_CLONE_COMMIT_AUTHOR_NAME\n   value: Viktor Benei\n\n=\u003e GIT_CLONE_COMMIT_AUTHOR_EMAIL\n   value: viktor.benei@gmail.com\n\n=\u003e GIT_CLONE_COMMIT_COMMITER_NAME\n   value: GitHub\n\n=\u003e GIT_CLONE_COMMIT_COMMITER_EMAIL\n   value: noreply@github.com\n\n\u001b[32;1mSuccess\u001b[0m\n|                                                                              |\n+---+---------------------------------------------------------------+----------+\n| \u001b[32;1m✓\u001b[0m | \u001b[32;1mgit-clone@3.4.3\u001b[0m                                               | 8.77 sec |\n+---+---------------------------------------------------------------+----------+\n\n\n\n+------------------------------------------------------------------------------+\n| (2) Sleep                                                                    |\n+------------------------------------------------------------------------------+\n| id: script                                                                   |\n| version: 1.1.3                                                               |\n| collection: https://github.com/bitrise-io/bitrise-steplib.git                |\n| toolkit: bash                                                                |\n| time: 2017-05-30T15:47:35Z                                                   |\n+------------------------------------------------------------------------------+\n|                                                                              |\n",
      "position": 4
    },
    {
      "chunk": "+ sleep 30\n",
      "position": 5
    }
  ],
  "timestamp": null
}

GET /apps/{APP-SLUG}/builds/{BUILD-SLUG}/bitrise.yml

Download the bitrise.yml of your build

Example curl request

curl -H 'Authorization: token THE-ACCESS-TOKEN' 'https://api.bitrise.io/v0.1/apps/APP-SLUG/builds/BUILD-SLUG/bitrise.yml'

Example response

app:
  envs:
  - GRADLE_BUILD_FILE_PATH: build.gradle
    opts:
      is_expand: false
  - GRADLE_TASK: assembleDebug
    opts:
      is_expand: false
  - GRADLEW_PATH: ./gradlew
    opts:
      is_expand: false
default_step_lib_source: https://github.com/bitrise-io/bitrise-steplib.git
format_version: 1.3.1
trigger_map:
- push_branch: '*'
  workflow: primary
- pull_request_source_branch: '*'
  workflow: primary
workflows:
  backup:
    steps:
    - activate-ssh-key@3.1.1:
        run_if: ''
    - git-clone@3.4.2: {}
    - script@1.1.3:
        title: Do anything with Script step
    - install-missing-android-tools@0.9.2: {}
    - gradle-runner@1.5.4:
        inputs:
        - gradle_file: $GRADLE_BUILD_FILE_PATH
        - gradle_task: $GRADLE_TASK
        - gradlew_path: $GRADLEW_PATH
    - deploy-to-bitrise-io@1.2.9: {}
  primary:
    steps:
    - activate-ssh-key@3.1.1:
        run_if: ''
    - git-clone@3.4.3: {}
    - script@1.1.3:
        inputs:
        - content: |-
            #!/bin/bash
            set -ex

            sleep 30
        title: Sleep

GET /apps/{APP-SLUG}/builds/{BUILD-SLUG}/artifacts

Get the artifacts for a specific build.

Example curl request

curl -H 'Authorization: token THE-ACCESS-TOKEN' 'https://api.bitrise.io/v0.1/apps/APP-SLUG/builds/BUILD-SLUG/artifacts'

Example response

{
  "data": [
    {
      "artifact_type": "file",
      "file_size_bytes": 10,
      "is_public_page_enabled": true,
      "slug": "0d2277e50b8d32ce",
      "title": "artifact-1.txt"
    },
    {
      "artifact_type": "file",
      "file_size_bytes": 11,
      "is_public_page_enabled": false,
      "slug": "b69c23de1f13b998",
      "title": "artifact-2.txt"
    }
  ],
  "paging": {
    "page_item_limit": 50,
    "total_item_count": 2
  }
}

GET /apps/{APP-SLUG}/builds/{BUILD-SLUG}/artifacts/{ARTIFACT-SLUG}

Get a certain build artifact’s data. The provided download URL is a presigned Amazon S3 URL which is valid for 10 minutes and then it expires.

Example curl request

curl -H 'Authorization: token THE-ACCESS-TOKEN' 'https://api.bitrise.io/v0.1/apps/APP-SLUG/builds/BUILD-SLUG/artifacts/ARTIFACT-SLUG'

Example response

{
  "data": {
    "artifact_type": "file",
    "expiring_download_url": "https://bitrise-prod-build-storage.s3.amazonaws.com/builds/9fb8eaaa4bdd3763/artifacts/2138393/artifact-1.txt?X-Amz-Algorithm=AWS4-HMAC-SHA256\u0026X-Amz-Content-Sha256=UNSIGNED-PAYLOAD\u0026X-Amz-Credential=AKIAIOC7N256G7J2W2TQ%2F20180823%2Fus-east-1%2Fs3%2Faws4_request\u0026X-Amz-Date=20180823T082126Z\u0026X-Amz-Expires=600\u0026X-Amz-SignedHeaders=host\u0026X-Amz-Signature=f4c3af8dc25f15e91ad8b870a8fe489236d3efcad8ce05e07d180ce8b3fc8c0e",
    "file_size_bytes": 10,
    "is_public_page_enabled": true,
    "public_install_page_url": "https://www.bitrise.io/artifact/2138393/p/6e7dc9c2b99492e6aa997a2e5d3f7413",
    "slug": "0d2277e50b8d32ce",
    "title": "artifact-1.txt"
  }
}

PATCH /apps/{APP-SLUG}/builds/{BUILD-SLUG}/artifacts/{ARTIFACT-SLUG}

Set the attributes of a build artifact. In the request body have to be sent a JSON with the specified new attribute values.

_is_public_page_enabled_ attribute

At this time only the _is_public_page_enabled_ attribute can be set through this endpoint call. This attribute can only set for the artifacts with type _android-apk_ or _ios-ipa_.

Example curl request

curl -X PATCH -H 'Authorization: token THE-ACCESS-TOKEN' 'https://api.bitrise.io/v0.1/apps/APP-SLUG/builds/BUILD-SLUG/artifacts/ARTIFACT-SLUG' -d '{"is_public_page_enabled":true}'

Example response

{
  "data": {
    "artifact_type": "android-apk",
    "expiring_download_url": "https://bitrise-prod-build-storage.s3.amazonaws.com/builds/ddf4134555e833d8/artifacts/3205846/app-debug.apk?X-Amz-Algorithm=AWS4-HMAC-SHA256\u0026X-Amz-Content-Sha256=UNSIGNED-PAYLOAD\u0026X-Amz-Credential=AKIAIOC7N256G7J2W2TQ%2F20180823%2Fus-east-1%2Fs3%2Faws4_request\u0026X-Amz-Date=20180823T082127Z\u0026X-Amz-Expires=600\u0026X-Amz-SignedHeaders=host\u0026X-Amz-Signature=c49b52222c0ae562eca6151af203c5479cefa35c79a4a6e0e274c29bc90be7fd",
    "file_size_bytes": 607185,
    "is_public_page_enabled": true,
    "public_install_page_url": "https://www.bitrise.io/artifact/3205846/p/300e0121b50985fd631fe304d549006f",
    "slug": "5a9f5da8d5f1057c",
    "title": "app-debug.apk"
  }
}

DELETE /apps/{APP-SLUG}/builds/{BUILD-SLUG}/artifacts/{ARTIFACT-SLUG}

Delete a specific artifact.

Example curl request

curl -X DELETE -H 'Authorization: token THE-ACCESS-TOKEN' 'https://api.bitrise.io/v0.1/apps/APP-SLUG/builds/BUILD-SLUG/artifacts/ARTIFACT-SLUG'

Example response

{
  "data": {
      "artifact_type": "android-apk",
      "file_size_bytes": 607185,
      "is_public_page_enabled": true,
      "slug": "5a9f5da8d5f1057c",
      "title": "app-debug.apk"
    }
}

POST /apps/{APP-SLUG}/builds

Trigger a new build.

You can trigger a new build with the specific trigger parameters defined. You can check the available parameters in the documentation of the Build Trigger API

Example curl request

curl -X POST -H 'Authorization: token THE-ACCESS-TOKEN' 'https://api.bitrise.io/v0.1/apps/APP-SLUG/builds' -d '{"hook_info":{"type":"bitrise"},"build_params":{"branch":"master","workflow_id":"primary"},"triggered_by":"bitrise_api_doc"}'

Example response

{
  "build_number": 48,
  "build_slug": "53e40ec7fccecd8f",
  "build_url": "https://app.bitrise.io/build/53e40ec7fccecd8f",
  "message": "webhook processed",
  "service": "bitrise",
  "slug": "669403bffbe35909",
  "status": "ok",
  "triggered_workflow": "primary"
}

POST /apps/{APP-SLUG}/builds/{BUILD-SLUG}/abort

Abort a running build.

Optionally you can specify a JSON body for the request, with an abort_reason. With parameter abort_with_success you can set the type of abort, if it’s set as true, then the build will get a status with value 4, which means that it’s aborted, but it counts as a successful build, this way Github will show as successful too. Also you can specify whether notifications (emails) should be sent. Example:

{
	"abort_reason": "abort with abort_with_success=true test & skip_notifications=true",
	"abort_with_success": true,
	"skip_notifications": true
}

Example curl request

curl -X POST -H 'Authorization: token THE-ACCESS-TOKEN' 'https://api.bitrise.io/v0.1/apps/{APP-SLUG}/builds/{BUILD-SLUG}/abort' -d '{"abort_reason": "abort with abort_with_success=true test & skip_notifications=true", "abort_with_success": true,"skip_notifications": true}'

Example response

{
    "status": "ok"
}

If the build is already finished or aborted you’ll get an error:

{
    "error_msg": "Build already finished, can't abort it."
}

WIP / working on it

See https://discuss.bitrise.io/t/bitrise-api-v0-1-work-in-progress/1554.

Feature / endpoint requests

If you want to request a new API feature / endpoint, please do it here: http://discuss.bitrise.io/t/bitrise-public-api/37