<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>API Reference on</title><link>https://deploy-preview-3421--ornate-narwhal-088216.netlify.app/chainguard/api/</link><description>Recent content in API Reference on</description><generator>Hugo -- gohugo.io</generator><language>en</language><copyright>Copyright (c) 2023 Chainguard</copyright><lastBuildDate>Tue, 06 Oct 2020 08:48:23 +0000</lastBuildDate><atom:link href="https://deploy-preview-3421--ornate-narwhal-088216.netlify.app/chainguard/api/index.xml" rel="self" type="application/rss+xml"/><item><title>Chainguard OpenAPI Specification</title><link>https://deploy-preview-3421--ornate-narwhal-088216.netlify.app/chainguard/api/spec/</link><pubDate>Tue, 06 Oct 2020 08:48:23 +0000</pubDate><guid>https://deploy-preview-3421--ornate-narwhal-088216.netlify.app/chainguard/api/spec/</guid><description>&lt;div id="app" data-spec-url="https://deploy-preview-3421--ornate-narwhal-088216.netlify.app/api.json"&gt;&lt;/div&gt;
&lt;link rel="stylesheet" href="https://deploy-preview-3421--ornate-narwhal-088216.netlify.app/css/vendor/scalar/style.fd6d46623bf33082ec8d6386bfc82b5f9f9e861d61b6d35d7fb5ae569a42eab5d15eb2c258150299a00d787e32cb4e684c59bc8e8d31b2a2b1adc3b658eb2224.css" integrity="sha512-/W1GYjvzMILsjWOGv8grX5&amp;#43;ehh1httNdf7WuVppC6rXRXrLCWBUCmaANeH4yy05oTFm8jo0xsqKxrcO2WOsiJA==" crossorigin="anonymous"&gt;
&lt;style&gt;
.scalar-app ul {
padding-left: 0;
margin-bottom: 0;
li {
margin-bottom: unset !important;
ul {
margin-top: 0;
margin-bottom: 0;
}
}
}
.scalar-app .group-hover\:opacity-100:is(:where(.group):hover *) {
opacity: 1 !important;
}
.scalar-app
.group-hocus-within\/code-block\:opacity-100:is(
:is(
:where(.group\/code-block):hover,
:where(.group\/code-block):focus-within
)
*
) {
opacity: 1 !important;
}
.scalar-app .px-3 {
padding-left: 12px !important;
padding-right: 12px !important;
}
.scalar-app .section-header-label {
font-weight: inherit;
font-size: inherit;
}
.scalar-app .section-container {
margin-top: unset !important;
margin-bottom: unset !important;
}
.scalar-app .hljs {
padding: 0 !important;
}
.scalar-app .pre-container .code {
background-color: transparent !important;
}
.scalar-app .text-nowrap.whitespace-pre {
text-wrap: nowrap !important;
white-space: pre !important;
}
.scalar-app code {
background: unset !important;
}
.scalar-app .border {
border: var(--scalar-border-color) 1px solid !important;
}
.scalar-app,
.scalar-app .bg-sidebar-b-1,
.references-rendered {
background: transparent !important;
}
main.docs-content {
width: 100% !important;
padding: 0 !important;
}
main.docs-content.has-toc {
max-width: calc(100dvw - 384px);
margin: 0 48px 0 48px;
}
&lt;/style&gt;</description></item><item><title>Chainguard API v1 Specification</title><link>https://deploy-preview-3421--ornate-narwhal-088216.netlify.app/chainguard/api/spec-api-v1/</link><pubDate>Tue, 06 Oct 2020 08:48:23 +0000</pubDate><guid>https://deploy-preview-3421--ornate-narwhal-088216.netlify.app/chainguard/api/spec-api-v1/</guid><description>&lt;div id="app" data-spec-url="https://deploy-preview-3421--ornate-narwhal-088216.netlify.app/api-v1.json"&gt;&lt;/div&gt;
&lt;link rel="stylesheet" href="https://deploy-preview-3421--ornate-narwhal-088216.netlify.app/css/vendor/scalar/style.fd6d46623bf33082ec8d6386bfc82b5f9f9e861d61b6d35d7fb5ae569a42eab5d15eb2c258150299a00d787e32cb4e684c59bc8e8d31b2a2b1adc3b658eb2224.css" integrity="sha512-/W1GYjvzMILsjWOGv8grX5&amp;#43;ehh1httNdf7WuVppC6rXRXrLCWBUCmaANeH4yy05oTFm8jo0xsqKxrcO2WOsiJA==" crossorigin="anonymous"&gt;
&lt;style&gt;
.scalar-app ul {
padding-left: 0;
margin-bottom: 0;
li {
margin-bottom: unset !important;
ul {
margin-top: 0;
margin-bottom: 0;
}
}
}
.scalar-app .group-hover\:opacity-100:is(:where(.group):hover *) {
opacity: 1 !important;
}
.scalar-app
.group-hocus-within\/code-block\:opacity-100:is(
:is(
:where(.group\/code-block):hover,
:where(.group\/code-block):focus-within
)
*
) {
opacity: 1 !important;
}
.scalar-app .px-3 {
padding-left: 12px !important;
padding-right: 12px !important;
}
.scalar-app .section-header-label {
font-weight: inherit;
font-size: inherit;
}
.scalar-app .section-container {
margin-top: unset !important;
margin-bottom: unset !important;
}
.scalar-app .hljs {
padding: 0 !important;
}
.scalar-app .pre-container .code {
background-color: transparent !important;
}
.scalar-app .text-nowrap.whitespace-pre {
text-wrap: nowrap !important;
white-space: pre !important;
}
.scalar-app code {
background: unset !important;
}
.scalar-app .border {
border: var(--scalar-border-color) 1px solid !important;
}
.scalar-app,
.scalar-app .bg-sidebar-b-1,
.references-rendered {
background: transparent !important;
}
main.docs-content {
width: 100% !important;
padding: 0 !important;
}
main.docs-content.has-toc {
max-width: calc(100dvw - 384px);
margin: 0 48px 0 48px;
}
&lt;/style&gt;</description></item><item><title>Chainguard API v2 Specification</title><link>https://deploy-preview-3421--ornate-narwhal-088216.netlify.app/chainguard/api/spec-api-v2/</link><pubDate>Tue, 06 Oct 2020 08:48:23 +0000</pubDate><guid>https://deploy-preview-3421--ornate-narwhal-088216.netlify.app/chainguard/api/spec-api-v2/</guid><description>&lt;div id="app" data-spec-url="https://deploy-preview-3421--ornate-narwhal-088216.netlify.app/api-v2beta1.json"&gt;&lt;/div&gt;
&lt;link rel="stylesheet" href="https://deploy-preview-3421--ornate-narwhal-088216.netlify.app/css/vendor/scalar/style.fd6d46623bf33082ec8d6386bfc82b5f9f9e861d61b6d35d7fb5ae569a42eab5d15eb2c258150299a00d787e32cb4e684c59bc8e8d31b2a2b1adc3b658eb2224.css" integrity="sha512-/W1GYjvzMILsjWOGv8grX5&amp;#43;ehh1httNdf7WuVppC6rXRXrLCWBUCmaANeH4yy05oTFm8jo0xsqKxrcO2WOsiJA==" crossorigin="anonymous"&gt;
&lt;style&gt;
.scalar-app ul {
padding-left: 0;
margin-bottom: 0;
li {
margin-bottom: unset !important;
ul {
margin-top: 0;
margin-bottom: 0;
}
}
}
.scalar-app .group-hover\:opacity-100:is(:where(.group):hover *) {
opacity: 1 !important;
}
.scalar-app
.group-hocus-within\/code-block\:opacity-100:is(
:is(
:where(.group\/code-block):hover,
:where(.group\/code-block):focus-within
)
*
) {
opacity: 1 !important;
}
.scalar-app .px-3 {
padding-left: 12px !important;
padding-right: 12px !important;
}
.scalar-app .section-header-label {
font-weight: inherit;
font-size: inherit;
}
.scalar-app .section-container {
margin-top: unset !important;
margin-bottom: unset !important;
}
.scalar-app .hljs {
padding: 0 !important;
}
.scalar-app .pre-container .code {
background-color: transparent !important;
}
.scalar-app .text-nowrap.whitespace-pre {
text-wrap: nowrap !important;
white-space: pre !important;
}
.scalar-app code {
background: unset !important;
}
.scalar-app .border {
border: var(--scalar-border-color) 1px solid !important;
}
.scalar-app,
.scalar-app .bg-sidebar-b-1,
.references-rendered {
background: transparent !important;
}
main.docs-content {
width: 100% !important;
padding: 0 !important;
}
main.docs-content.has-toc {
max-width: calc(100dvw - 384px);
margin: 0 48px 0 48px;
}
&lt;/style&gt;</description></item><item><title>Chainguard API v2 Tutorial</title><link>https://deploy-preview-3421--ornate-narwhal-088216.netlify.app/chainguard/api/api-v2-tutorial/</link><pubDate>Mon, 30 Mar 2026 08:49:31 +0000</pubDate><guid>https://deploy-preview-3421--ornate-narwhal-088216.netlify.app/chainguard/api/api-v2-tutorial/</guid><description>&lt;p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Note&lt;/strong&gt;: The Chainguard API v2 is in beta.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/p&gt;
&lt;p&gt;The v2 API introduces cursor-based pagination, server-side ordering, consistent resource patterns, and structured error responses across all endpoints.&lt;/p&gt;
&lt;p&gt;This guide walks through the v2 API using real &lt;code&gt;curl&lt;/code&gt; commands.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; The example output in this guide was captured from a development environment. Your organization&amp;rsquo;s resource names, UIDs, timestamps, and counts will differ. The response structure and field names are the same across all environments.&lt;/p&gt;</description></item><item><title>Authenticating with the Chainguard SDK</title><link>https://deploy-preview-3421--ornate-narwhal-088216.netlify.app/chainguard/api/authentication/</link><pubDate>Wed, 04 Jun 2025 08:49:31 +0000</pubDate><guid>https://deploy-preview-3421--ornate-narwhal-088216.netlify.app/chainguard/api/authentication/</guid><description>&lt;p&gt;There are several ways for users to interact with the Chainguard platform, with &lt;a href="https://deploy-preview-3421--ornate-narwhal-088216.netlify.app/chainguard/chainctl/"&gt;&lt;code&gt;chainctl&lt;/code&gt;&lt;/a&gt; (Chainguard&amp;rsquo;s command-line tool) and the &lt;a href="https://console.chainguard.dev/overview"&gt;Chainguard Console&lt;/a&gt; (Chainguard&amp;rsquo;s web interface) being the two most commonly-used methods. However, both of these require a human user to authenticate, and aren&amp;rsquo;t useful for working with Chainguard resources programmatically.&lt;/p&gt;
&lt;p&gt;The &lt;a href="https://github.com/chainguard-dev/sdk"&gt;Chainguard SDK&lt;/a&gt; serves to ease programmatic integration with the Chainguard platform. This guide highlights two examples from the SDK repository that show how to authenticate to the &lt;a href="https://deploy-preview-3421--ornate-narwhal-088216.netlify.app/chainguard/chainguard-registry/overview/"&gt;Chainguard registry&lt;/a&gt; using the &lt;code&gt;chainguard.dev/sdk/auth&lt;/code&gt; and &lt;code&gt;chainguard.dev/sdk/auth/ggcr&lt;/code&gt; packages. The first has you authenticate as a local user, while the second has you authenticate as an &lt;a href="https://deploy-preview-3421--ornate-narwhal-088216.netlify.app/chainguard/administration/assumable-ids/assumable-ids/"&gt;assumed identity&lt;/a&gt;.&lt;/p&gt;</description></item></channel></rss>