Gradle GradleEnterprise API
**This tag is deprecated, use `Develocity` instead**. All endpoints of the Develocity API.
**This tag is deprecated, use `Develocity` instead**. All endpoints of the Develocity API.
openapi: 3.0.3
info:
title: Develocity Auth GradleEnterprise 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: GradleEnterprise
x-traitTag: true
description: '**This tag is deprecated, use `Develocity` instead**.
All endpoints of the Develocity API.
'
paths:
/api/auth/revoke-signing-keys:
post:
operationId: RevokeSigningKeys
summary: Revoke auth token signing keys
description: Revokes the existing auth token signing keys, and creates a new one. Requires the `Configure operational settings` permission. All existing access tokens will become invalid. Develocity may take a few minutes to revoke all existing access tokens.
tags:
- GradleEnterprise
responses:
'200':
description: The existing signing keys have been revoked, all access tokens will become invalid shortly
'400':
$ref: '#/components/responses/BadRequestError'
'403':
$ref: '#/components/responses/ForbiddenError'
'404':
$ref: '#/components/responses/NotFoundError'
'500':
$ref: '#/components/responses/UnexpectedError'
/api/auth/token:
post:
operationId: CreateAccessToken
summary: Create a new access token
description: Create a new short-lived access token, optionally limited to the provided permissions and projects. Users do not need any specific Develocity permission to do this, but must be authenticated. If an access key is used to authenticate this request, the created token will be limited to the user's permissions and projects. If an access token is used to authenticate this request, the created token will be limited to the authenticating token's permissions and projects and not live longer than the authenticating token's remaining lifetime. Query parameters can be used to further restrict the permissions of the access token. A 401 response will be sent if the request is not authenticated. A 403 response will be sent if one of the projects or permissions present in the query parameters is not assigned to this user. A 403 will also be sent if an access token is used to authenticate the request and the requested expiration date is after the authenticating access token's expiration.
tags:
- GradleEnterprise
parameters:
- in: query
name: projectIds
schema:
type: array
uniqueItems: true
items:
$ref: '#/components/schemas/ProjectId'
example:
- project-a,project-b
- project-c
explode: true
required: false
description: Limit the created token to one or more projects. Values should be project ids. Comma seperated values and repeated parameters are supported.
- in: query
name: permissions
schema:
type: array
uniqueItems: true
items:
$ref: '#/components/schemas/Permission'
example:
- publishScan,readCache
- writeCache
explode: true
required: false
description: Limit the created token to one or more permissions. Values should be permission [config values](https://gradle.com/help/helm-admin-permissions). Comma seperated values and repeated parameters are supported.
- in: query
name: expiresInHours
schema:
type: number
format: float
minimum: 0
exclusiveMinimum: true
maximum: 24
default: 2
example: 0.5
required: false
description: The lifetime of the created token, in hours.
responses:
'200':
description: An access token
content:
text/plain:
schema:
type: string
example: eyJraWQiOiJ0ZXN0LWtleSIsImFsZyI6IlJTMjU2IiwidHlwIjoiSldUIn0.eyJpc19hbm9ueW1vdXMiOmZhbHNlLCJwZXJtaXNzaW9ucyI6WyJSRUFEX1ZFUlNJT04iLCJFWFBPUlRfREFUQSIsIkFDQ0VTU19EQVRBX1dJVEhPVVRfQVNTT0NJQVRFRF9QUk9KRUNUIl0sInByb2plY3RzIjp7ImEiOjEsImIiOjJ9LCJ1c2VyX2lkIjoic29tZS1pZCIsInVzZXJuYW1lIjoidGVzdCIsImZpcnN0X25hbWUiOiJhIiwibGFzdF9uYW1lIjoidXNlciIsImVtYWlsIjoiYkBncmFkbGUuY29tIiwic3ViIjoidGVzdCIsImV4cCI6NzIwMCwibmJmIjowLCJpYXQiOjAsImF1ZCI6ImV4YW1wbGUuZ3JhZGxlLmNvbSIsImlzcyI6ImV4YW1wbGUuZ3JhZGxlLmNvbSIsInRva2VuX3R5cGUiOiJhY2Nlc3NfdG9rZW4ifQ.H1_NEG1xuleP-WIAY_uvSmdd2o7i_-Ko3qhlo04zvCgrElJe7_F5jNuqsyDfnb5hvKlOe5UKG_7QPTgY9-3pFQ
'400':
$ref: '#/components/responses/BadRequestError'
'401':
$ref: '#/components/responses/UnauthenticatedError'
'403':
$ref: '#/components/responses/AccessTokenForbidden'
'404':
$ref: '#/components/responses/NotFoundError'
'500':
$ref: '#/components/responses/UnexpectedError'
/api/build-cache/nodes/{name}:
parameters:
- in: path
name: name
schema:
type: string
required: true
description: The name of the Build Cache Node. To select the Built-in Build Cache Node, use `Built-in` as name.
get:
operationId: GetBuildCacheNode
summary: View the configuration of a Build Cache Node.
description: View the enablement status and replication configuration of a Build Cache Node.
tags:
- GradleEnterprise
responses:
'200':
description: The configuration of a Build Cache Node.
content:
application/json:
schema:
$ref: '#/components/schemas/NodeConfiguration'
example:
enabled: false
replication:
source: parent-node-1
preemptive: true
'404':
$ref: '#/components/responses/NotFoundError'
'500':
$ref: '#/components/responses/UnexpectedError'
put:
operationId: CreateOrUpdateBuildCacheNode
summary: Create or update a Build Cache Node.
description: 'Create a new Build Cache Node in Develocity or update the configuration of an existing one.
The Built-in Build Cache Node cannot be named as the target of this operation.
'
tags:
- GradleEnterprise
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/NodeConfiguration'
example:
enabled: false
replication:
source: parent-node-1
preemptive: true
responses:
'200':
description: The name referenced an existing Build Cache Node and that Build Cache Node’s configuration was updated successfully.
'201':
description: A new Build Cache Node was created with the configuration specified in the request.
'400':
$ref: '#/components/responses/BadRequestError'
'404':
$ref: '#/components/responses/NotFoundError'
/api/build-cache/nodes/{name}/purge:
parameters:
- in: path
name: name
schema:
type: string
required: true
description: The name of the Build Cache Node. To select the Built-in Build Cache Node, use `Built-in` as name.
post:
operationId: InitiatePurgeOfBuildCacheNode
summary: Deletes all entries from a Build Cache Node.
description: 'Triggers the deletion of all entries stored at the named Build Cache Node.
'
tags:
- GradleEnterprise
responses:
'202':
description: Purging the Build Cache Node was successfully initiated.
'404':
$ref: '#/components/responses/NotFoundError'
'500':
$ref: '#/components/responses/UnexpectedError'
'503':
$ref: '#/components/responses/NodeNotSignedInError'
/api/build-cache/nodes/{name}/secret:
parameters:
- in: path
name: name
schema:
type: string
required: true
description: The name of the Build Cache Node.
post:
operationId: RegenerateSecretOfBuildCacheNode
summary: Regenerate the secret of a Build Cache Node.
description: 'Regenerates the secret associated with the named Build Cache Node. The old secret expires immediately, causing the Build Cache Node to
disconnect from Develocity. The Built-in Build Cache Node cannot be named as the target of this operation.
'
tags:
- GradleEnterprise
responses:
'200':
description: The name referenced an existing Build Cache Node and that Build Cache Node's secret was regenerated.
content:
application/json:
schema:
$ref: '#/components/schemas/KeySecretPair'
example:
key: cvzxztkqkqxzc3vcruabpcr264
secret: e5ag76yp6abcc5jbxusboca313
'404':
$ref: '#/components/responses/NotFoundError'
'500':
$ref: '#/components/responses/UnexpectedError'
/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:
- GradleEnterprise
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:
- GradleEnterprise
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'
# --- truncated at 32 KB (282 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/gradle/refs/heads/main/openapi/gradle-gradleenterprise-api-openapi.yml