Create Release Bundle v2 Version – Examples

JFrog REST APIs

Content Type
REST API

The following examples show how to create a Release Bundle v2 version using different source types.

Source Type – AQL

# Request
curl -X POST -u <USERNAME>:<TOKEN> -H "Content-Type: application/json" \
"https://jfrog-platform.example.com/lifecycle/api/v2/release_bundle?repository_key=release-bundles-repo" \
-d '{
      "release_bundle_name": "aql-example",
      "release_bundle_version": "1.0",
      "sources": [
        {
          "source_type": "aql",
          "aql": "items.find({\"repo\":\"generic-local\",\"path\":{\"$match\":\"configs/*\"}})"
        }
      ]
    }'

Source Type – Artifacts

# Request
curl -X POST -u <USERNAME>:<TOKEN> -H "Content-Type: application/json" \
"https://jfrog-platform.example.com/lifecycle/api/v2/release_bundle?repository_key=release-bundles-repo" \
-d '{
      "release_bundle_name": "artifacts-example",
      "release_bundle_version": "1.0",
      "sources": [
        {
          "source_type": "artifacts",
          "artifacts": [
            { "path": "generic-local/app.jar", "sha256": "f2ca1bb6c7e907d06dafe4687e579fce76b37e4e93b7605022da52e6ccc26fd2" },
            { "path": "generic-local/config.yaml" }
          ]
        }
      ]
    }'

Source Type – Builds

# Request
curl -X POST -u <USERNAME>:<TOKEN> -H "Content-Type: application/json" \
"https://jfrog-platform.example.com/lifecycle/api/v2/release_bundle?repository_key=release-bundles-repo" \
-d '{
      "release_bundle_name": "builds-example",
      "release_bundle_version": "1.0",
      "sources": [
        {
          "source_type": "builds",
          "build_repository": "artifactory-build-info",
          "build_name": "my-app-build",
          "build_number": "42",
          "build_started": "2025-07-06T10:00:00.000Z"
        }
      ]
    }'

Source Type – Packages

# Request
curl -X POST -u <USERNAME>:<TOKEN> -H "Content-Type: application/json" \
"https://jfrog-platform.example.com/lifecycle/api/v2/release_bundle?repository_key=release-bundles-repo" \
-d '{
      "release_bundle_name": "packages-example",
      "release_bundle_version": "1.0",
      "sources": [
        {
          "source_type": "packages",
          "repository_key": "npm-local",
          "package_name": "my-npm-package",
          "package_version": "2.1.5"
        }
      ]
    }'

Source Type – Release Bundles

# Request
curl -X POST -u <USERNAME>:<TOKEN> -H "Content-Type: application/json" \
"https://jfrog-platform.example.com/lifecycle/api/v2/release_bundle?repository_key=release-bundles-repo" \
-d '{
      "release_bundle_name": "release-bundle-example",
      "release_bundle_version": "2.0",
      "sources": [
        {
          "source_type": "release_bundle",
          "repository_key": "release-bundles-repo",
          "release_bundle_name": "base-platform",
          "release_bundle_version": "1.5"
        }
      ]
    }'

Multiple Source Types

The following example creates a major release by combining artifacts from all possible source types into a single Release Bundle version.

Request:

curl -X POST -u <USERNAME>:<TOKEN> \
  -H "Content-Type: application/json" \
  -H "X-JFrog-Signing-Key-Name: my-signing-key" \
  "https://jfrog-platform.example.com/lifecycle/api/v2/release_bundle?repository_key=release-bundles-repo&async=true" \
  -d @request-body.json

request-body.json

{
  "release_bundle_name": "Mega-Release",
  "release_bundle_version": "v3.0.0-GA",
  "tag": "general-availability",
  "sources": [
    {
      "source_type": "builds",
      "build_repository": "artifactory-build-info",
      "build_name": "backend-service",
      "build_number": "288",
      "build_started": "2025-07-06T18:00:00.000Z",
      "include_dependencies": true
    },
    {
      "source_type": "packages",
      "repository_key": "npm-local",
      "package_name": "frontend-ui-kit",
      "package_version": "4.1.0"
    },
    {
      "source_type": "release_bundle",
      "repository_key": "release-bundles-repo",
      "project_key": "shared-svcs",
      "release_bundle_name": "auth-service",
      "release_bundle_version": "1.8.2"
    },
    {
      "source_type": "artifacts",
      "artifacts": [
        { "path": "generic-local/legal/EULA.pdf" }
      ]
    },
    {
      "source_type": "aql",
      "aql": "items.find({\"repo\":\"docker-local\",\"path\":{\"$match\":\"base-images/ubi\"},\"name\":{\"$match\":\"8.*\"}})"
    }
  ]
}

Successful response (asynchronous):

{
    "repository_key": "release-bundles-repo",
    "release_bundle_name": "Mega-Release",
    "release_bundle_version": "v3.0.0-GA",
    "created": "2025-07-06T13:20:00.000Z"
}

Bad Request:

The following request is missing a required field (release_bundle_name):

curl -X POST -u <USERNAME>:<TOKEN> \
  -H "Content-Type: application/json" \
  "https://jfrog-platform.example.com/lifecycle/api/v2/release_bundle?repository_key=release-bundles-repo" \
  -d '{
        "release_bundle_version": "1.0.0",
        "sources": [
            {
                "source_type": "aql",
                "aql": "items.find({\"repo\":\"generic-local\"})"
            }
        ]
     }'

Error Response (400 Bad Request):

{
  "errors": [
    {
      "status": 400,
      "message": "release_bundle_name is mandatory"
    }
  ]
}