Packages API

The packages API endpoint lets you create and manage packages in a registry.

Publish a package

The following type of curl syntax for publishing to registries will work across all package ecosystems supported by Buildkite Package Registries, with the file form-field modified accordingly.

curl -H "Authorization: Bearer $TOKEN" \ -X POST "https://api.buildkite.com/v2/packages/organizations/{org.slug}/registries/{registry.slug}/packages" \ -F 'file=@path/to/debian/package/banana_1.1-2_amd64.deb 

However, this type of REST API call is just recommended for:

For other supported package ecosystems, it is recommended that you use their native tools to publish to registries in your Buildkite Package Registries organization. These ecosystems' native tools are for:

The following type of response is returned by Buildkite upon a successful curl publishing event.

{ "id": "0191e23a-4bc8-7683-bfa4-5f73bc9b7c44", "url": "https://api.buildkite.com/v2/packages/organizations/my_great_org/registries/my-registry/packages/0191e23a-4bc8-7683-bfa4-5f73bc9b7c44", "web_url": "https://buildkite.com/organizations/my_great_org/packages/registries/my-registry/packages/0191e23a-4bc8-7683-bfa4-5f73bc9b7c44", "name": "banana", "digests": { "sha256": "d3e1515a82ece5ad1f63273aa259d91c88967f65d9ae75f880b5c93926586fdf", "sha512": "5bd1481bfd924b1e272bcc7736c91e8490947cc4aa7d756daacfa1aa3705e7180ca2b7800af3ebd4f7ed4b27bcec2da580545cf351499d195e5d4e00e080c87e" }, "organization": { "id": "0190e784-eeb7-4ce4-9d2d-87f7aba85433", "slug": "my_great_org", "url": "https://api.buildkite.com/v2/organizations/my_great_org", "web_url": "https://buildkite.com/my_great_org" }, "registry": { "id": "0191e238-e0a3-7b0b-bb34-beea0035a39d", "graphql_id": "UmVnaXN0cnktLS0wMTkxZTIzOC1lMGEzLTdiMGItYmIzNC1iZWVhMDAzNWEzOWQ=", "slug": "my-registry", "url": "https://api.buildkite.com/v2/packages/organizations/my_great_org/registries/my-registry", "web_url": "https://buildkite.com/organizations/my_great_org/packages/registries/my-registry" } } 

Required request form-field content:

file Path to the package.
Example: "file=@path/to/debian/package/banana_1.1-2_amd64.deb".

Required scope: write_packages

Success response: 200 OK

List all packages

Returns a paginated list of all packages in a registry. Packages are listed in the order they were created (newest first).

curl -H "Authorization: Bearer $TOKEN" \ -X GET "https://api.buildkite.com/v2/packages/organizations/{org.slug}/registries/{registry.slug}/packages" 
{ "items": [ { "id": "0191e23a-4bc8-7683-bfa4-5f73bc9b7c44", "url": "https://api.buildkite.com/v2/packages/organizations/my_great_org/registries/my-registry/packages/0191e23a-4bc8-7683-bfa4-5f73bc9b7c44", "web_url": "https://buildkite.com/organizations/my_great_org/packages/registries/my-registry/packages/0191e23a-4bc8-7683-bfa4-5f73bc9b7c44", "name": "banana", "created_at": "2024-08-22T06:24:53Z", "version": "1.0", "digests": { "sha256": "d3e1515a82ece5ad1f63273aa259d91c88967f65d9ae75f880b5c93926586fdf", "sha512": "5bd1481bfd924b1e272bcc7736c91e8490947cc4aa7d756daacfa1aa3705e7180ca2b7800af3ebd4f7ed4b27bcec2da580545cf351499d195e5d4e00e080c87e" }, }, { "id": "019178c2-6b08-7d66-a1db-b79b8ba83151", "url": "https://api.buildkite.com/v2/packages/organizations/my_great_org/registries/my-registry/packages/019178c2-6b08-7d66-a1db-b79b8ba83151", "web_url": "https://buildkite.com/organizations/my_great_org/packages/registries/my-registry/packages/019178c2-6b08-7d66-a1db-b79b8ba83151", "name": "grapes", "created_at": "2024-08-21T06:24:53Z", "version": "2.8.3", "digests": { "sha256": "d3e1515a82ece5ad1f63273aa259d91c88967f65d9ae75f880b5c93926586fdf", "sha512": "5bd1481bfd924b1e272bcc7736c91e8490947cc4aa7d756daacfa1aa3705e7180ca2b7800af3ebd4f7ed4b27bcec2da580545cf351499d195e5d4e00e080c87e" }, } ], "links": { "self": "https://api.buildkite.com/v2/packages/organizations/my_great_org/registries/my-registry/packages", } } 

Optional query string parameters:

name Filters the results by the package name.
Example: ?name=banana.

Required scope: read_packages

Success response: 200 OK

Get a package

Returns the details for a single package.

curl -H "Authorization: Bearer $TOKEN" \ -X GET "https://api.buildkite.com/v2/packages/organizations/{org.slug}/registries/{registry.slug}/packages/{id}" 
{ "id": "0191e23a-4bc8-7683-bfa4-5f73bc9b7c44", "url": "https://api.buildkite.com/v2/packages/organizations/my_great_org/registries/my-registry/packages/0191e23a-4bc8-7683-bfa4-5f73bc9b7c44", "web_url": "https://buildkite.com/organizations/my_great_org/packages/registries/my-registry/packages/0191e23a-4bc8-7683-bfa4-5f73bc9b7c44", "name": "banana", "digests": { "sha256": "d3e1515a82ece5ad1f63273aa259d91c88967f65d9ae75f880b5c93926586fdf", "sha512": "5bd1481bfd924b1e272bcc7736c91e8490947cc4aa7d756daacfa1aa3705e7180ca2b7800af3ebd4f7ed4b27bcec2da580545cf351499d195e5d4e00e080c87e" }, "organization": { "id": "0190e784-eeb7-4ce4-9d2d-87f7aba85433", "slug": "my_great_org", "url": "https://api.buildkite.com/v2/organizations/my_great_org", "web_url": "https://buildkite.com/my_great_org" }, "registry": { "id": "0191e238-e0a3-7b0b-bb34-beea0035a39d", "graphql_id": "UmVnaXN0cnktLS0wMTkxZTIzOC1lMGEzLTdiMGItYmIzNC1iZWVhMDAzNWEzOWQ=", "slug": "my-registry", "url": "https://api.buildkite.com/v2/packages/organizations/my_great_org/registries/my-registry", "web_url": "https://buildkite.com/organizations/my_great_org/packages/registries/my-registry" } } 

Required scope: read_packages

Success response: 200 OK

Copy a package

For some supported package ecosystems, copies a package from a source registry to a destination registry.

curl -H "Authorization: Bearer $TOKEN" \ -X POST "https://api.buildkite.com/v2/packages/organizations/{org.slug}/registries/{source_registry.slug}/packages/{package.id}/copy?to={destination_registry.slug}" -H "Content-Type: application/json" 

Currently, this REST API call only supports package types belonging to the following package ecosystems:

If you wish this feature to be available for package types belonging to other package ecosystems, please contact support.

The following type of response is returned by Buildkite upon a successful curl copying event.

{ "id": "0191e23a-4bc8-7683-bfa4-5f73bc9b7c44", "url": "https://api.buildkite.com/v2/packages/organizations/my_great_org/registries/my-registry/packages/0191e23a-4bc8-7683-bfa4-5f73bc9b7c44", "web_url": "https://buildkite.com/organizations/my_great_org/packages/registries/my-registry/packages/0191e23a-4bc8-7683-bfa4-5f73bc9b7c44", "name": "banana", "digests": { "sha256": "d3e1515a82ece5ad1f63273aa259d91c88967f65d9ae75f880b5c93926586fdf", "sha512": "5bd1481bfd924b1e272bcc7736c91e8490947cc4aa7d756daacfa1aa3705e7180ca2b7800af3ebd4f7ed4b27bcec2da580545cf351499d195e5d4e00e080c87e" }, "organization": { "id": "0190e784-eeb7-4ce4-9d2d-87f7aba85433", "slug": "my_great_org", "url": "https://api.buildkite.com/v2/organizations/my_great_org", "web_url": "https://buildkite.com/my_great_org" }, "registry": { "id": "0191e238-e0a3-7b0b-bb34-beea0035a39d", "graphql_id": "UmVnaXN0cnktLS0wMTkxZTIzOC1lMGEzLTdiMGItYmIzNC1iZWVhMDAzNWEzOWQ=", "slug": "my-registry", "url": "https://api.buildkite.com/v2/packages/organizations/my_great_org/registries/my-registry", "web_url": "https://buildkite.com/organizations/my_great_org/packages/registries/my-registry" } } 

Required query string parameters:

to Destination registry slug.
Example: "to=my-registry".

Required scopes: read_packages, write_packages

Success response: 200 OK

Delete a package

curl -H "Authorization: Bearer $TOKEN" \ -X DELETE "https://api.buildkite.com/v2/packages/organizations/{org.slug}/registries/{registry.slug}/packages/{id}" 

Required scope: delete_packages

Success response: 200 OK