Gradle Builds API
Endpoints related to retrieving details of a build from the Develocity instance. To access these endpoints the user requires the `Access build data via the API` permission.
Endpoints related to retrieving details of a build from the Develocity instance. To access these endpoints the user requires the `Access build data via the API` permission.
openapi: 3.0.3
info:
title: Develocity Auth Builds API
description: 'The Develocity API allows programmatic interaction with various aspects of Develocity, from configuration to inspecting build data.
'
version: 2026.2.0
license:
name: Develocity License
url: https://gradle.com/help/legal-gradle-software-license-agreement
termsOfService: https://gradle.com/help/legal-terms-of-use
contact:
name: Gradle
url: https://gradle.com
x-logo:
url: https://assets.gradle.com/logo/develocity-logo.svg
altText: Develocity
servers:
- url: https://develocity.example.com
description: Your Develocity instance.
security:
- DevelocityAccessKeyOrToken: []
tags:
- name: Builds
description: "Endpoints related to retrieving details of a build from the Develocity instance. \nTo access these endpoints the user requires the `Access build data via the API` permission.\n"
paths:
/api/builds:
description: 'Returns a list of builds with common attributes.
The returned list is capped by the `maxBuilds` and `maxWaitSecs` query parameters.
This endpoint supports pagination by using the `fromBuild` or `sinceBuild` query parameters, and the last returned build from a previous call to one of these endpoints.
'
parameters:
- in: query
name: BuildsQuery
explode: true
description: The query parameters used to retrieve the list of builds.
schema:
title: BuildsQuery
type: object
properties:
fromInstant:
type: integer
format: int64
minimum: 0
nullable: true
description: 'A unix-epoch-time in milliseconds allowing to retrieve builds for which Develocity completed receiving and processing the build after this instant when used in conjunction with `reverse=false`, or before this instant when used in conjunction with `reverse=true`.
Therefore, a value of `0` will process all builds.
If not provided, the time in milliseconds when the request is received by the Develocity instance will be used.
This parameter has no effect if `fromBuild` is used.
'
fromBuild:
type: string
nullable: true
description: 'A Build Scan ID allowing to retrieve builds for which Develocity completed receiving and processing after the given Build Scan ID (excluding it) when used in conjunction with `reverse=false`, or before the given Build Scan ID (excluding it) when used in conjunction with `reverse=true`.
This parameter has precedence over any value set for the `since`, `sinceBuild`, `fromInstant` parameters.
A valid Build Scan ID must be provided, that is, a Build Scan ID that exists in the Develocity instance.
A Build Scan ID for a deleted build is valid.
'
reverse:
type: boolean
nullable: true
description: 'A boolean indicating the time direction of the query.
A value of `true` indicates a backward query, and returned builds will be sorted from most to least recent.
A value of `false` indicates a forward query, and returned builds will be sorted from least to most recent.
This parameter has no effect if any of `since`, `sinceBuild` are used.
If not provided, the default value is `false`.
'
maxBuilds:
type: integer
minimum: 0
maximum: 1000
nullable: true
description: 'The maximum number of builds returned by the query.
The query returns when that number is reached or when `maxWaitSecs` is reached.
If not provided, the default value is `100`.
'
maxWaitSecs:
type: integer
minimum: 1
maximum: 20
nullable: true
description: 'The maximum number of seconds to wait for builds before returning.
If this time is reached before `maxBuilds` is reached, the query returns with the already processed builds.
Note that this time is respected with best effort.
A query will return soon after this time has passed but there is no guarantee that it exactly returns before this time has passed.
This parameter has no effect if `reverse=true` is specified, because new builds cannot become available in the past.
If not provided, the default value is `3`.
'
query:
type: string
nullable: true
description: 'A query for filtering builds, written in the Develocity advanced search query language
See: https://gradle.com/help/advanced-search
'
models:
$ref: '#/components/schemas/BuildModelNames'
allModels:
type: boolean
default: false
description: 'Whether to include all build models for each build.
If set to `true`, the value of the `models` parameter is ignored.
'
since:
type: integer
format: int64
minimum: 0
nullable: true
description: '**This parameter is deprecated, use `fromInstant` instead.**
A unix-epoch-time in milliseconds allowing to retrieve builds for which Develocity completed receiving and processing the build after this instant.
This parameter can only be used with `reverse=false`.
Therefore, a value of `0` will process all builds.
If not provided, the time in milliseconds when the request is received by the Develocity instance will be used.
This parameter has no effect if any of `sinceBuild`, `fromInstant`, `fromBuild` are used.
'
deprecated: true
sinceBuild:
type: string
nullable: true
description: '**This parameter is deprecated, use `fromBuild` instead.**
A Build Scan ID allowing to retrieve builds for which Develocity completed receiving and processing after the given Build Scan ID (excluding it).
This parameter can only be used with `reverse=false`.
This parameter has precedence over any value set for the `since` parameter.
A valid Build Scan ID must be provided, that is, a Build Scan ID that exists in the Develocity instance.
A Build Scan ID for a deleted build is valid.
This parameter has no effect if any of `fromInstant`, `fromBuild` are used.
'
deprecated: true
skipUnavailableModels:
type: boolean
default: false
description: 'Will skip build models that are not available at the time of the handling of the call.
'
get:
operationId: GetBuilds
summary: Get a list of builds with common attributes.
description: 'The contained attributes are build tool agnostic.
If none of `fromInstant`, `fromBuild`, or `reverse` is used, when making a request to this endpoint, it will return builds that were received and processed by Develocity after the request was made.
'
tags:
- Builds
responses:
'200':
description: A list of builds with common attributes.
content:
application/json:
schema:
$ref: '#/components/schemas/Builds'
example:
- id: 9r4d13f0r3v3r
availableAt: 1635400481000
buildToolType: gradle
buildToolVersion: '7.2'
buildAgentVersion: 3.7.1
models:
gradleAttributes:
model:
id: 9r4d13f0r3v3r
buildStartTime: 1637316480
buildDuration: 5000
gradleVersion: '7.3'
pluginVersion: 3.7.2
rootProjectName: example-project
requestedTasks:
- clean
- build
hasFailed: true
hasVerificationFailure: true
hasNonVerificationFailure: true
tags:
- CI
- feature-branch
values:
- name: branch
value: feature/one
- name: commitId
value: c874006021712affa4e7bd82d2ec4cd06beaa4f5
links:
- label: CI job
url: https://ci.com/job1
- label: GIT commit
url: https://git.com/c874006021712affa4e7bd82d2ec4cd06beaa4f5
gradleEnterpriseSettings:
backgroundPublicationEnabled: true
buildOutputCapturingEnabled: true
taskInputsFileCapturingEnabled: true
testOutputCapturingEnabled: true
resourceUsageCapturingEnabled: true
develocitySettings:
backgroundPublicationEnabled: true
buildOutputCapturingEnabled: true
fileFingerprintCapturingEnabled: true
taskInputsFileCapturingEnabled: true
testOutputCapturingEnabled: true
resourceUsageCapturingEnabled: true
buildOptions:
buildCacheEnabled: true
configurationCacheEnabled: true
configurationOnDemandEnabled: true
continuousBuildEnabled: true
continueOnFailureEnabled: true
daemonEnabled: true
dryRunEnabled: true
excludedTasks:
- takesALongTime
- doesNotLikeToBeExecuted
fileSystemWatchingEnabled: true
maxNumberOfGradleWorkers: 4
offlineModeEnabled: true
parallelProjectExecutionEnabled: true
refreshDependenciesEnabled: true
rerunTasksEnabled: true
environment:
username: gradle
operatingSystem: macOS 12.2.1 (x86_64)
numberOfCpuCores: 16
jreVersion: AdoptOpenJDK OpenJDK Runtime Environment 11.0.11+9
jvmVersion: AdoptOpenJDK OpenJDK 64-Bit Server VM 11.0.11+9 (mixed mode)
jvmMaxMemoryHeapSize: 16777216
jvmCharset: UTF-8
jvmLocale: English (United States)
publicHostname: agent.gradle.com
localHostname: gradle
localIpAddresses:
- 192.168.1.126
- 192.168.1.128
gradleDependencies:
model:
dependencies:
- scheme: pkg
type: maven
namespace: org.apache.xmlgraphics
name: batik-anim
version: 1.9.1
qualifiers:
repository_url: https://repo.maven.apache.org/maven2/
purl: pkg:maven/org.apache.xmlgraphics/batik-anim@1.9.1?repository_url=https%3A%2F%2Frepo.maven.apache.org%2Fmaven2%2F
repository:
url: https://repo.maven.apache.org/maven2/
type: maven
resolutionSource: remote
mavenAttributes:
problem:
type: urn:gradle:enterprise:api:problems:build-model-not-applicable
title: Build model is not applicable.
detail: Build model is not available for build with ID '9r4d13f0r3v3r' because its build tool type is 'gradle' (allowed list is '[maven]').
status: 400
- id: ji7vz3ey5qdvk
availableAt: 1635400482000
buildToolType: maven
buildToolVersion: 3.8.4
buildAgentVersion: '1.13'
models:
gradleAttributes:
problem:
type: urn:gradle:enterprise:api:problems:build-model-not-applicable
title: Build model is not applicable.
detail: Build model is not available for build with ID 'ji7vz3ey5qdvk' because its build tool type is 'maven' (allowed list is '[gradle]').
status: 400
mavenAttributes:
model:
id: 9r4d13f0r3v3r
buildStartTime: 1637316480
buildDuration: 11000
mavenVersion: 3.8.4
extensionVersion: 1.11.1
topLevelProjectName: example-project
requestedGoals:
- clean
- verify
hasFailed: true
hasVerificationFailure: true
hasNonVerificationFailure: true
tags:
- CI
- feature-branch
values:
- name: branch
value: feature/one
- name: commitId
value: c874006021712affa4e7bd82d2ec4cd06beaa4f5
links:
- label: CI job
url: https://ci.com/job1
- label: GIT commit
url: https://git.com/c874006021712affa4e7bd82d2ec4cd06beaa4f5
develocitySettings:
backgroundPublicationEnabled: true
buildOutputCapturingEnabled: true
fileFingerprintCapturingEnabled: true
goalInputsFileCapturingEnabled: true
testOutputCapturingEnabled: true
resourceUsageCapturingEnabled: true
buildOptions:
batchModeEnabled: true
debugEnabled: true
errorsEnabled: true
failAtEndEnabled: true
failFastEnabled: true
failNeverEnabled: true
laxChecksumsEnabled: true
maxNumberOfThreads: 4
nonRecursiveEnabled: true
noSnapshotsUpdatesEnabled: true
offlineModeEnabled: true
quietEnabled: true
rerunGoals: false
strictChecksumsEnabled: true
updateSnapshotsEnabled: true
environment:
username: maven
operatingSystem: macOS 12.2.1 (x86_64)
numberOfCpuCores: 16
jreVersion: AdoptOpenJDK OpenJDK Runtime Environment 11.0.11+9
jvmVersion: AdoptOpenJDK OpenJDK 64-Bit Server VM 11.0.11+9 (mixed mode)
jvmMaxMemoryHeapSize: 16777216
jvmCharset: UTF-8
jvmLocale: English (United States)
publicHostname: agent.gradle.com
localHostname: maven
localIpAddresses:
- 192.168.1.126
- 192.168.1.128
gradleEnterpriseSettings:
backgroundPublicationEnabled: true
buildOutputCapturingEnabled: true
goalInputsFileCapturingEnabled: true
testOutputCapturingEnabled: true
resourceUsageCapturingEnabled: true
mavenDependencies:
model:
dependencies:
- scheme: pkg
type: maven
namespace: org.apache.xmlgraphics
name: batik-anim
version: 1.9.1
qualifiers:
repository_url: https://repo.maven.apache.org/maven2/
type: jar
purl: pkg:maven/org.apache.xmlgraphics/batik-anim@1.9.1?repository_url=https%3A%2F%2Frepo.maven.apache.org%2Fmaven2%2F&type=jar
repository:
url: https://repo.maven.apache.org/maven2/
type: maven
resolutionSource: remote
- id: cvpd4j7ug7j4q
availableAt: 1635400483000
buildToolType: bazel
buildToolVersion: 6.0.0
buildAgentVersion: '1.0'
models:
gradleAttributes:
problem:
type: urn:gradle:enterprise:api:problems:build-model-not-applicable
title: Build model is not applicable.
detail: Build model is not available for build with ID 'cvpd4j7ug7j4q' because its build tool type is 'bazel' (allowed list is '[gradle]').
status: 400
mavenAttributes:
problem:
type: urn:gradle:enterprise:api:problems:build-model-not-applicable
title: Build model is not applicable.
detail: Build model is not available for build with ID 'cvpd4j7ug7j4q' because its build tool type is 'bazel' (allowed list is '[maven]').
status: 400
'400':
$ref: '#/components/responses/BadRequestError'
'404':
$ref: '#/components/responses/NotFoundError'
'500':
$ref: '#/components/responses/UnexpectedError'
'503':
$ref: '#/components/responses/NotReadyError'
/api/builds/{id}:
parameters:
- in: path
name: id
schema:
type: string
required: true
description: The Build Scan ID.
- in: query
name: BuildQuery
explode: true
description: The query parameters used to retrieve the common attributes of a build.
schema:
$ref: '#/components/schemas/BuildQuery'
get:
operationId: GetBuild
summary: Get the common attributes of a build.
description: The contained attributes are build tool agnostic.
tags:
- Builds
responses:
'200':
description: The common attributes of a build.
content:
application/json:
schema:
$ref: '#/components/schemas/Build'
example:
id: 9r4d13f0r3v3r
availableAt: 1635400481000
buildToolType: gradle
buildToolVersion: '7.2'
buildAgentVersion: 3.7.1
models:
gradleAttributes:
model:
id: 9r4d13f0r3v3r
buildStartTime: 1637316480
buildDuration: 5000
gradleVersion: '7.3'
pluginVersion: 3.7.2
rootProjectName: example-project
requestedTasks:
- clean
- build
hasFailed: true
hasVerificationFailure: true
hasNonVerificationFailure: true
tags:
- CI
- feature-branch
values:
- name: branch
value: feature/one
- name: commitId
value: c874006021712affa4e7bd82d2ec4cd06beaa4f5
links:
- label: CI job
url: https://ci.com/job1
- label: GIT commit
url: https://git.com/c874006021712affa4e7bd82d2ec4cd06beaa4f5
develocitySettings:
backgroundPublicationEnabled: true
buildOutputCapturingEnabled: true
fileFingerprintCapturingEnabled: true
taskInputsFileCapturingEnabled: true
testOutputCapturingEnabled: true
resourceUsageCapturingEnabled: true
buildOptions:
buildCacheEnabled: true
configurationCacheEnabled: true
configurationOnDemandEnabled: true
continuousBuildEnabled: true
continueOnFailureEnabled: true
daemonEnabled: true
dryRunEnabled: true
excludedTasks:
- takesALongTime
- doesNotLikeToBeExecuted
fileSystemWatchingEnabled: true
maxNumberOfGradleWorkers: 4
offlineModeEnabled: true
parallelProjectExecutionEnabled: true
refreshDependenciesEnabled: true
rerunTasksEnabled: true
environment:
username: gradle
operatingSystem: macOS 12.2.1 (x86_64)
numberOfCpuCores: 16
jreVersion: AdoptOpenJDK OpenJDK Runtime Environment 11.0.11+9
jvmVersion: AdoptOpenJDK OpenJDK 64-Bit Server VM 11.0.11+9 (mixed mode)
jvmMaxMemoryHeapSize: 16777216
jvmCharset: UTF-8
jvmLocale: English (United States)
publicHostname: agent.gradle.com
localHostname: gradle
localIpAddresses:
- 192.168.1.126
- 192.168.1.128
gradleEnterpriseSettings:
backgroundPublicationEnabled: true
buildOutputCapturingEnabled: true
taskInputsFileCapturingEnabled: true
testOutputCapturingEnabled: true
resourceUsageCapturingEnabled: true
gradleDependencies:
model:
dependencies:
- scheme: pkg
type: maven
namespace: org.apache.xmlgraphics
name: batik-anim
version: 1.9.1
qualifiers:
repository_url: https://repo.maven.apache.org/maven2/
purl: pkg:maven/org.apache.xmlgraphics/batik-anim@1.9.1?repository_url=https%3A%2F%2Frepo.maven.apache.org%2Fmaven2%2F
repository:
url: https://repo.maven.apache.org/maven2/
type: maven
resolutionSource: remote
'400':
$ref: '#/components/responses/BadRequestError'
'404':
$ref: '#/components/responses/NotFoundError'
'500':
$ref: '#/components/responses/UnexpectedError'
'503':
$ref: '#/components/responses/NotReadyError'
/api/builds/{id}/bazel-attributes:
parameters:
- in: path
name: id
schema:
type: string
required: true
description: The Build Scan ID.
- in: query
name: BuildQuery
explode: true
description: The query parameters used to retrieve the attributes of a Bazel build.
schema:
$ref: '#/components/schemas/BuildModelQuery'
get:
operationId: GetBazelAttributes
summary: Get the attributes of a Bazel build.
description: This model is Bazel specific and cannot be requested for another build tool.
tags:
- Builds
responses:
'200':
description: The attributes of a Bazel build.
content:
application/json:
schema:
$ref: '#/components/schemas/BazelAttributes'
'400':
$ref: '#/components/responses/BadRequestError'
'404':
$ref: '#/components/responses/NotFoundError'
'500':
$ref: '#/components/responses/UnexpectedError'
'503':
$ref: '#/components/responses/NotReadyError'
/api/builds/{id}/bazel-critical-path:
parameters:
- in: path
name: id
schema:
type: string
required: true
description: The Build Scan ID.
- in: query
name: BuildQuery
explode: true
description: The query parameters used to retrieve the critical path of a Bazel build.
schema:
$ref: '#/components/schemas/BuildModelQuery'
get:
operationId: GetBazelCriticalPath
summary: Get the critical path of a Bazel build.
description: This model is Bazel specific and cannot be requested for another build tool.
tags:
- Builds
responses:
'200':
description: The critical path of a Bazel build.
content:
application/json:
schema:
$ref: '#/components/schemas/BazelCriticalPath'
'400':
$ref: '#/components/responses/BadRequestError'
'404':
$ref: '#/components/responses/NotFoundError'
'500':
$ref: '#/components/responses/UnexpectedError'
'503':
$ref: '#/components/responses/NotReadyError'
/api/builds/{id}/gradle-artifact-transform-executions:
parameters:
- in: path
name: id
schema:
type: string
required: true
description: The Build Scan ID.
- in: query
name: BuildQuery
explode: true
description: The query parameters used to retrieve the artifact transform execution list of a Gradle build.
schema:
$ref: '#/components/schemas/BuildModelQuery'
get:
operationId: GetGradleArtifactTransformExecutions
summary: Get the artifact transform execution list of a Gradle build.
description: This model is Gradle specific and cannot be requested for another build tool.
tags:
- Builds
responses:
'200':
description: The artifact transform execution list of a Gradle build.
content:
application/json:
schema:
$ref: '#/components/schemas/GradleArtifactTransformExecutions'
example:
artifactTransformExecutions:
- artifactTransformExecutionName: project :lib [color=green]
transformActionType: com.test.MakeColor
inputArtifactName: lib.jar
changedAttributes:
- name: color
from: blue
to: green
outcome: success
avoidanceOutcome: executed_cacheable
duration: 224
fingerprintingDuration: 1
cacheArtifactSize: 470
cacheKey: 34025cdc0be090f2901543d673b3c45e
'400':
$ref: '#/components/responses/BadRequestError'
'404':
$ref: '#/components/responses/NotFoundError'
'500':
$ref: '#/components/responses/UnexpectedError'
'503':
$ref: '#/components/responses/NotReadyError'
/api/builds/{id}/gradle-attributes:
parameters:
- in: path
name: id
schema:
type: string
required: true
description: The Build Scan ID.
- in: query
name: BuildQuery
explode: true
description: The query parameters used to retrieve the attributes of a Gradle build.
schema:
$ref: '#/components/schemas/BuildModelQuery'
get:
operationId: GetGradleAttributes
summary: Get the attributes of a Gradle build.
description: This model is Gradle specific and cannot be requested for another build tool.
tags:
- Builds
responses:
'200':
description: The attributes of a Gradle build.
content:
application/json:
schema:
$ref: '#/components/schemas/GradleAttributes'
example:
id: 9r4d13f0r3v3r
buildStartTime: 1637316480
buildDuration: 5000
gradleVersion: '7.3'
pluginVersion: 3.7.2
rootProjectName: example-project
requestedTasks:
- clean
- build
hasFailed: true
hasVerificationFailure: true
hasNonVerificationFailure: true
tags:
- CI
- feature-branch
values:
- name: branch
value: feature/one
- name: commitId
value: c874006021712affa4e7bd82d2ec4cd06beaa4f5
links:
- label: CI job
url: https://ci.com/job1
- label: GIT commit
url: https://git.com/c874006021712affa4e7bd82d2ec4cd06beaa4f5
develocitySettings:
backgroundPublicationEnabled: true
buildOutputCapturingEnabled: true
fileFingerprintCapturingEnabled: true
taskInputsFileCapturingEnabled: true
testOutputCapturingEnabled: true
resourceUsageCapturingEnabled: true
buildOptions:
buildCacheEnabled: true
configurationCacheEnabled: true
configurationOnDemandEnabled: true
continuousBuildEnabled: true
continueOnFailureEnabled: true
daemonEnabled: true
dryRunEnabled: true
excludedTasks:
- takesALongTime
- doesNotLikeToBeExecuted
fileSystemWatchingEnabled: true
maxNumberOfGradleWorkers: 4
offlineModeEnabled: true
parallelProjectExecutionEnabled: true
refreshDependenciesEnabled: true
rerunTasksEnabled: true
environment:
username: gradle
operatingSystem: macOS 12.2.1 (x86_64)
numberOfCpuCores: 16
jreVersion: AdoptOpenJDK OpenJDK Runtime Environment 11.0.11+9
jvmVersion: AdoptOpenJDK OpenJDK 64-Bit Server VM 11.0.11+9 (mixed mode)
jvmMaxMemoryHeapSize: 16777216
jvmCharset: UTF-8
jvmLocale: English (United States)
publicHostname: agent.gradle.com
localHostname: gradle
localIpAddresses:
- 192.168.1.126
- 192.168.1.128
gradleEnterpriseSettings:
backgroundPublicationEnabled: true
buildOutputCapturingEnabled: true
taskInputsFileCapturingEnabled: true
testOutputCapturingEnabled: true
resourceUsageCapturingEnabled: true
'400':
$ref: '#/components/responses/BadRequestError'
'404':
$ref: '#/components/responses/NotFoundError'
'500':
$ref: '#/components/responses/UnexpectedError'
'503':
$ref: '#/components/responses/NotReadyError'
/api/builds/{id}/gradle-build-cache-performance:
parameters:
- in: path
name: id
schema:
type: string
required: true
description: The Build Scan ID.
- in: query
name: BuildQuery
explode: true
description: The query parameters used t
# --- truncated at 32 KB (284 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/gradle/refs/heads/main/openapi/gradle-builds-api-openapi.yml