Skip to content

API schemas ​

Named request and response objects of the REST API, sorted by name. Field names of nested inline objects are dotted; [] marks array elements and * map values.

Schemas ​

ActivityEntry ​

A ProjectActivityEntry with the actor's and the subject's names resolved.

Includes all fields of ProjectActivityEntry.

FieldTypeRequiredDescription
actionstringyesAudit action, e.g. project.member_added, project.repository_created.
actorstringyesUsername or token name of the actor; empty when unknown.
actor_namestringyesDisplay name of the actor: the recorded name, else the user's current name, else system; empty when unknown.
actor_typestringnoNullable. One of: user, system, token, sso.
idstring (uuid)yes-
messagestringyes-
repository_idstring (uuid)noNullable.
resource_idstringnoNullable.
resource_typestringnoNullable.
subjectAuditSubjectyesNullable.
timestampstring (date-time)yes-

ActivityPage ​

FieldTypeRequiredDescription
dataarray of ActivityEntryyes-
has_morebooleanyesTrue when entries follow this page.
next_cursorstringnoPass as cursor to fetch the next page. Absent when has_more is false.
per_pageintegeryes-

AdminToken ​

Includes all fields of Token.

FieldTypeRequiredDescription
created_atstring (date-time)no-
created_bystringnoUsername that minted a project token. Nullable.
expires_atstring (date-time)noNullable.
idstring (uuid)no-
kindstringnoOne of: access, deploy.
last_used_atstring (date-time)noNullable.
namestringno-
projectstringnoProject of a project token. Nullable.
project_rolestringnoNullable. One of: viewer, developer.
scopesarray of stringno-
user_idstring (uuid)no-

ApkSigningKey ​

FieldTypeRequiredDescription
created_atstring (date-time)yes-
fingerprintstringyesHex SHA-256 of the DER encoded public key
key_namestringyesFile name of the public key in /etc/apk/keys
public_keystringyesPEM public key
updated_atstring (date-time)yes-

ApkUploadResult ​

FieldTypeRequiredDescription
dataobjectno-
data.archstringno-
data.branchstringno-
data.idstringno-
data.namestringno-
data.repostringno-
data.sha256stringno-
data.sizeinteger (int64)no-
data.versionstringno-
successbooleanno-

AttestationAttachResult ​

FieldTypeRequiredDescription
artifact_idstringyes-
artifact_typestringyesThe referrer's OCI artifactType
createdbooleanyesFalse when an identical attestation was already attached
kindstringyesOne of: sbom, vex.
predicate_typestringyes-
referrer_digeststringyes-
replacedstringnoDigest of the earlier attestation this one replaced
subjectstringyesDigest of the image manifest the attestation is attached to

AttestationAttachSettings ​

FieldTypeRequiredDescription
enabledbooleanyes-

AttestationKey ​

FieldTypeRequiredDescription
algorithmstringnoecdsa-p256, ecdsa-p384, ecdsa-p521 or ed25519.
key_idstringnoHex sha256 of the DER public key.
public_key_pemstringno-
public_key_urlstringno-
sourcestringnoOne of: file, generated.

AuditEntry ​

One audit log entry of the admin audit list.

FieldTypeRequiredDescription
actionstringyes-
actorstringyesUsername or token name recorded with the event; empty when unknown.
actor_namestringyesDisplay name of the actor: the recorded name, else the user's current name, else system for background work; empty when unknown.
detailsobjectnoNullable.
idstring (uuid)yes-
ipstringnoNullable.
repository_idstring (uuid)noNullable.
resource_idstringnoNullable.
resource_typestringnoNullable.
subjectAuditSubjectyesWhat the event acted on, resolved from ids. Null for events that name nothing (logins, generic request rows). Nullable.
targetstringnoThe raw resource id. Nullable.
timestampstring (date-time)yes-

AuditSubject ​

What an audit event acted on, resolved server-side. name is null when the subject is gone and the event did not record its name.

FieldTypeRequiredDescription
kindstringyesrepository, package, project, user, group, token, bundle, permission_target, gpg_key, sso_provider, setting, or the raw resource type of an event kind without a dedicated one (storage_tier, storage_policy, ...).
namestringyesNullable.
projectstringnoName of the project the event belongs to.
repositorystringnoName of the repository the event belongs to.
versionstringnoPackage version, for package subjects that record one.

Backup ​

FieldTypeRequiredDescription
completed_atstring (date-time)noNullable.
created_atstring (date-time)no-
error_messagestringno-
idstring (uuid)no-
size_bytesintegerno-
started_atstring (date-time)no-
statusstringnoOne of: pending, in_progress, completed, failed.
typestringnoOne of: full, metadata-only.

Branding ​

Effective white-label settings (admin overrides layered over the branding.* configuration). Public: it carries nothing secret.

FieldTypeRequiredDescription
favicon_urlstringyes-
login_messagestringyesPlain text with a tiny markdown subset (bold, italic, code, text); render it without innerHTML.
logo_dark_urlstringyesLogo for dark surfaces; empty means the built-in lockup.
logo_light_urlstringyesLogo for light surfaces; empty means the built-in lockup. Falls back to the dark logo when only that one is set.
primary_colorstringyes#rrggbb, empty for the built-in colour
product_namestringyes-
revisionstringyesChanges whenever any value or image changes; used as the cache-busting query of the image URLs
source_urlstringyesWhere the running source is offered (AGPL-3.0 section 13); never empty
support_urlstringyeshttp(s) or mailto URL; empty hides the link
themeBrandingThemenoPresent only with a custom primary_color. Nullable.

BrandingAdmin ​

FieldTypeRequiredDescription
defaultsBrandingDefaultsyes-
effectiveBrandingyes-
overridesBrandingOverridesyes-

BrandingDefaults ​

Values the instance falls back to when no runtime override is set (configuration, else built-in).

FieldTypeRequiredDescription
login_messagestringyes-
primary_colorstringyes-
product_namestringyes-
source_urlstringyes-
support_urlstringyes-

BrandingOverrides ​

Which fields currently come from a runtime (admin) override rather than the configuration.

FieldTypeRequiredDescription
faviconbooleanyes-
login_messagebooleanyes-
logo_darkbooleanyes-
logo_lightbooleanyes-
primary_colorbooleanyes-
product_namebooleanyes-
source_urlbooleanyes-
support_urlbooleanyes-

BrandingPalette ​

Contrast-adjusted colours of one theme, derived from primary_color so text on the surface and on the button fill stays readable (WCAG AA).

FieldTypeRequiredDescription
primarystringyes-
primary_contraststringyesText colour on a primary fill
primary_softstringyesTinted background that primary text stays readable on

BrandingTheme ​

FieldTypeRequiredDescription
darkBrandingPaletteyes-
lightBrandingPaletteyes-

BrandingUpdate ​

Partial update: an absent field is left alone, a string sets the runtime override, null removes the override (back to the configured default).

FieldTypeRequiredDescription
login_messagestringnoUp to 2000 characters. Nullable. Maximum length: 2000.
primary_colorstringno#rrggbb. Nullable.
product_namestringno1-64 characters, no control characters. Nullable. Maximum length: 64.
source_urlstringnohttp(s) URL; cannot be empty. Nullable.
support_urlstringnohttp(s) or mailto URL; empty string hides the link. Nullable.

BundlePromotion ​

FieldTypeRequiredDescription
bundle_idstringyes-
completed_atstring (date-time)yesNullable.
error_messagestringyesNullable.
from_stagestringyesNullable.
idstringyes-
item_countintegeryes-
notesstringyes-
promoted_bystringyes-
started_atstring (date-time)yes-
statusstringyesOne of: in_progress, success, failed.
target_repo_idstringyes-
to_stagestringyes-

ChecksumHit ​

FieldTypeRequiredDescription
algorithmstringyesOne of: sha256, sha1, md5.
checksumstringyesThe checksum searched for, lowercase.
filenamestringyesFile within the package; empty for the formats with no file name of their own (conda, conan, docker, go).
formatstringyes-
namestringyes-
repositorystringyes-
versionstringyes-

ChecksumResult ​

FieldTypeRequiredDescription
packagesarray of ChecksumHityes-
totalintegeryesNumber of files carrying the checksum.

CleanupPolicy ​

FieldTypeRequiredDescription
created_atstring (date-time)no-
enabledbooleanno-
idstring (uuid)no-
keep_downloaded_since_daysintegernoNullable.
keep_last_nintegernoNullable. Minimum: 1.
keep_since_daysintegernoNullable.
last_run_atstring (date-time)noNullable.
last_run_deletedintegernoNullable.
last_run_errorstringnoNullable.
namestringno-
name_patternstringno-
project_idstring (uuid)noSet for a project default policy.
repo_idstring (uuid)noEmpty for a project default policy.
schedule_cronstringno-
updated_atstring (date-time)no-

CleanupPreview ​

FieldTypeRequiredDescription
dry_runbooleanyes-
formatstringyes-
itemsarray of CleanupPreviewItemyes-
repositorystringyes-
rowsintegeryesPackage rows a run would remove (one per file for formats that store files separately)
truncatedbooleanyesitems is capped at 500 entries

CleanupPreviewItem ​

FieldTypeRequiredDescription
idstringyes-
namestringyes-
versionstringyes-

CompsUploadResult ​

FieldTypeRequiredDescription
codestringno-
dataobjectno-
data.blob_idstringno-
data.repositorystringno-
errorstringno-
successbooleanyes-

CreateFederationPeerRequest ​

FieldTypeRequiredDescription
base_urlstringyesBase URL of the peer instance; validated against the outbound (SSRF) policy.
ca_pemstringnoPEM CA bundle to trust for the peer's TLS certificate.
client_certstringnoPEM client certificate for mutual TLS.
client_keystringnoPEM private key of the client certificate.
namestringyes-
tokenstringyesToken the peer issued for this repository.

CreateFederationTokenRequest ​

FieldTypeRequiredDescription
namestringyes-

DeclarativeObject ​

FieldTypeRequiredDescription
applied_atstring (date-time)yes-
applied_hashstringyes-
kindstringyes-
namestringyes-
object_idstringyes-

DeclarativeObjectList ​

FieldTypeRequiredDescription
itemsarray of DeclarativeObjectyes-

DependencyTrackEffective ​

FieldTypeRequiredDescription
api_key_setbooleanno-
auto_pushbooleanno-
base_urlstringno-
enabledbooleanno-
project_namestringno-
project_versionstringno-
push_vexbooleanno-
readybooleannoEnabled with a URL and an API key.
sourcestringnoOne of: none, global, repository.

DependencyTrackOverride ​

FieldTypeRequiredDescription
api_key_setbooleanno-
auto_pushbooleannoNullable.
base_urlstringno-
enabledbooleanno-
project_namestringno-
project_versionstringno-
push_vexbooleannoNullable.

DependencyTrackPush ​

FieldTypeRequiredDescription
artifact_idstringno-
bom_pushed_atstring (date-time)noNullable.
componentsintegerno-
detailstringno-
project_namestringno-
project_uuidstringno-
project_versionstringno-
statestringnoOne of: queued, running, done, skipped, failed.
updated_atstring (date-time)no-
vex_appliedintegernoFindings carrying an analysis in Dependency-Track after the import.
vex_pushed_atstring (date-time)noNullable.
vex_statementsintegernoVEX statements sent (decisions matching a vulnerability Dependency-Track reports).

DependencyTrackRepository ​

FieldTypeRequiredDescription
effectiveDependencyTrackEffectiveno-
overrideDependencyTrackOverridenoNullable.

DependencyTrackSettings ​

FieldTypeRequiredDescription
api_key_setbooleannoThe API key is write-only; this tells whether one is stored.
auto_pushbooleannoPush the BOM on upload and after each scan.
base_urlstringno-
enabledbooleanno-
project_namestringnoProject name template; empty means {repo}/{name}.
project_versionstringnoProject version template; empty means {version}.
push_vexbooleannoAfter Dependency-Track's analysis, push the VEX decisions.

DependencyTrackTest ​

FieldTypeRequiredDescription
missing_permissionsarray of stringno-
permissionsarray of stringno-
versionstringno-

DockerGCBlob ​

FieldTypeRequiredDescription
digeststringyes-
sizeinteger (int64)yes-

DockerGCManifest ​

FieldTypeRequiredDescription
digeststringyes-
imagestringyes-
sizeinteger (int64)yes-

DockerGCReport ​

FieldTypeRequiredDescription
blob_refs_deletedintegeryesBlob records of the repository no manifest references any more
blobsarray of DockerGCBlobyes-
blobs_freedintegeryesStorage objects removed; in a dry run an upper bound that ignores sharing with other repositories
bytes_freedinteger (int64)yes-
dry_runbooleanyes-
failuresintegeryesStorage deletions that failed (logged server-side; the orphan collector retries them)
grace_period_secondsinteger (int64)yes-
manifestsarray of DockerGCManifestyes-
manifests_deletedintegeryesUntagged manifests deleted (would be, in a dry run)
repositorystringyes-
truncatedbooleanyesmanifests/blobs are capped at 1000 entries each

DockerGCRequest ​

FieldTypeRequiredDescription
dry_runbooleannoReport what would be deleted without deleting anything
grace_period_secondsinteger (int64)noMinimum age of what may be deleted; 0 disables the grace period. Omitted: the configured workers.dockerGcGracePeriod. Minimum: 0.

EndSessionResponse ​

FieldTypeRequiredDescription
end_session_urlstringyesIdP RP-initiated logout URL (id_token_hint, client_id, post_logout_redirect_uri).

Error ​

FieldTypeRequiredDescription
codestringnoError code
detailsstringnoDetailed error message
errorstringyesError code

FederationDeferredList ​

FieldTypeRequiredDescription
itemsarray of FederationDeferredUnityes-

FederationDeferredUnit ​

A unit that could not be applied yet and is retried.

FieldTypeRequiredDescription
attemptsintegeryes-
first_seen_atstring (date-time)yes-
last_errorstringyes-
next_attempt_atstring (date-time)yes-
reasonstringyesWhy it was deferred (for example a missing dependency).
seqinteger (int64)yesPeer log sequence of the unit.
unit_keystringyes-

FederationPeer ​

A remote instance this repository pulls changes from. Secrets (token, client key) are never returned; has_ca_pem and has_client_cert tell whether TLS material is stored.

FieldTypeRequiredDescription
applied_totalinteger (int64)yesUnits applied from this peer since the peer was added.
backlog_unitsinteger (int64)yesLogged units still to apply.
base_urlstringyesBase URL of the peer instance.
conflicts_totalinteger (int64)yesUnits that conflicted with local content and were resolved by the merge rules.
created_atstring (date-time)yes-
cursor_seqinteger (int64)yesLast peer log sequence applied locally.
deferred_unitsintegeryesUnits waiting for a dependency or a retry.
enabledbooleanyesA disabled peer is not polled.
error_countintegeryesConsecutive failed attempts.
has_ca_pembooleanyes-
has_client_certbooleanyes-
idstring (uuid)yes-
lag_secondsnumberyesAge in seconds of the oldest unapplied change; 0 when caught up.
last_attempt_atstring (date-time)no-
last_errorstringyesError of the last failed attempt; empty when the last attempt succeeded.
last_success_atstring (date-time)no-
namestringyes-
next_attempt_atstring (date-time)no-
remote_head_seqinteger (int64)yesPeer's log head sequence as of the last successful contact.
resync_requestedbooleanyesA resync is queued and not yet started.
statestringyesok: caught up. lagging: behind the peer's head. error: the last attempt failed. pending: never synced yet. disabled: not polled. One of: ok, lagging, error, pending, disabled.

FederationStatus ​

FieldTypeRequiredDescription
enabledbooleanyesFederation is on: the repository keeps a change log.
head_seqinteger (int64)yesHighest sequence in the log.
instance_idstringyesIdentifier of this instance.
log_idstringyesIdentifier of this repository's log; changes when federation is disabled and enabled again.
peersarray of FederationPeeryes-
server_enabledbooleanyesFederation is enabled on the server (federation.enabled); when false no repository can be federated.
supportedbooleanyesFederation can be turned on for the repository: it is hosted, of a federation-capable format (raw, maven, npm, docker, helm, pypi, cargo, go, nuget), and federation is enabled on the server.
tokensarray of FederationTokenyes-
tombstonesinteger (int64)yesLogged deletions.
unitsinteger (int64)yesLogged units.

FederationToken ​

An inbound token a peer presents to pull this repository's log. The secret is shown once at creation and never again.

FieldTypeRequiredDescription
created_atstring (date-time)yes-
idstring (uuid)yes-
last_used_atstring (date-time)no-
namestringyes-
revoked_atstring (date-time)noSet once the token is revoked.

FederationTokenCreated ​

FieldTypeRequiredDescription
created_atstring (date-time)yes-
idstring (uuid)yes-
namestringyes-
tokenstringyesClear-text token, returned only by this response.

GPGKey ​

A signing key. Private key material is never part of the API.

FieldTypeRequiredDescription
active_globalbooleannoSigns every deb, rpm and pacman repository that has no key of its own
algorithmstringnoed25519, rsa2048, rsa4096, ...
created_atstring (date-time)noNullable.
created_bystringno-
expires_atstring (date-time)noNullable.
fingerprintstringno-
idstringnoUUID, or config for the read-only key configured through gpg.keyPath
key_idstringnoLong key id (last 16 hex digits of the fingerprint)
namestringno-
read_onlybooleanno-
repositoriesarray of stringnoRepositories this key is assigned to
sourcestringnoOne of: imported, generated, auto, config.
user_idstringno-

Group ​

FieldTypeRequiredDescription
created_atstring (date-time)no-
descriptionstringnoNullable.
idstring (uuid)no-
namestringno-
updated_atstring (date-time)no-

GroupMember ​

FieldTypeRequiredDescription
rolestringno-
user_idstring (uuid)no-
usernamestringno-

HealthResponse ​

FieldTypeRequiredDescription
componentsmap of objectno-
components.*.messagestringno-
components.*.statusstringnoOne of: ok, error.
instance_idstringnoOperator-configured instance name; omitted when OPENARTIFACT_INSTANCE_ID is empty
statusstringnoOverall health status. One of: healthy, degraded.
versionstringnoApplication version

LicenseBlockedError ​

Upload rejected by a license policy with action block.

FieldTypeRequiredDescription
codestringyesOne of: LICENSE_BLOCKED.
errorstringyes-
licensesarray of stringyesThe package's detected licenses.
policiesarray of LicensePolicyViolationyes-

LicenseMetadataUnreadableError ​

Upload rejected (422): the repository has an enabled license policy with action block and the package's license cannot be derived from the package file (a file type without readable metadata, a damaged archive), so only the client's own claims would decide the policy.

FieldTypeRequiredDescription
codestringyesOne of: LICENSE_METADATA_UNREADABLE.
errorstringyes-

LicenseMetadataUnsafeError ​

Upload rejected (422): the package file's own metadata is oversized or ambiguous (a decompression bomb, or two candidate metadata files), so its licenses cannot be checked.

FieldTypeRequiredDescription
codestringyesOne of: LICENSE_METADATA_UNSAFE.
errorstringyes-

LicensePolicy ​

FieldTypeRequiredDescription
actionstringnoNullable.
allowed_licensesarray of stringno-
created_atstring (date-time)no-
denied_licensesarray of stringno-
descriptionstringnoNullable.
enabledbooleanno-
idstring (uuid)no-
namestringno-
repo_idstring (uuid)noNullable.
updated_atstring (date-time)no-

LicensePolicyUnavailableError ​

The license policies could not be read; the upload failed closed.

FieldTypeRequiredDescription
codestringyesOne of: LICENSE_POLICY_UNAVAILABLE.
errorstringyes-
licensesarray of stringyes-
policiesarray of LicensePolicyViolationyes-

LicensePolicyViolation ​

FieldTypeRequiredDescription
actionstringnoOne of: allow, warn, block.
policy_idstring (uuid)no-
policy_namestringno-
violationstringnoThe violated rule, naming the offending license.

LicenseScanResult ​

Result of one license scan of an artifact.

FieldTypeRequiredDescription
artifact_idstringyes-
created_atstring (date-time)yes-
idstring (uuid)yes-
license_sourcestringnoartifact: the licenses include ones read from the stored package file. client_declared: they only come from what a client declared (license properties) because the file declares no license, or cannot be read and no blocking policy applies. One of: artifact, client_declared.
licensesarray of stringno-
quarantine_approvedbooleanyesAn admin approved the artifact for its current licenses; cleared when a re-scan finds different licenses.
quarantinedbooleanyesDownloads of the artifact answer 403 ARTIFACT_QUARANTINED until an admin approves it.
repo_idstring (uuid)yes-
scan_errorstringyesNullable.
scan_statusstringyesOne of: pending, completed, failed.
scanned_atstring (date-time)yesNullable.
spdx_expressionsarray of stringno-
unresolved_licensesarray of stringnoEntries of licenses that are not SPDX expressions: raw text read from the artifact ("BSD", "BSD License"), kept as written and flagged for review.
updated_atstring (date-time)yes-

LicenseScanRunResult ​

Result of POST .../license/scan: the recorded license scan plus the policy violations it triggered.

FieldTypeRequiredDescription
artifact_idstringyes-
created_atstring (date-time)yes-
idstring (uuid)yes-
license_sourcestringnoartifact: the licenses include ones read from the stored package file. client_declared: they only come from what a client declared (license properties) because the file declares no license, or cannot be read and no blocking policy applies. One of: artifact, client_declared.
licensesarray of stringno-
policy_violationsarray of LicensePolicyViolationyesAlways an array (empty when no policy is violated).
quarantine_approvedbooleanyesAn admin approved the artifact for its current licenses; cleared when a re-scan finds different licenses.
quarantinedbooleanyesDownloads of the artifact answer 403 ARTIFACT_QUARANTINED until an admin approves it.
repo_idstring (uuid)yes-
scan_statusstringyesOne of: pending, completed, failed.
scanned_atstring (date-time)yesNullable.
unresolved_licensesarray of stringnoEntries of licenses that are not SPDX expressions: raw text read from the artifact ("BSD", "BSD License"), kept as written and flagged for review.
updated_atstring (date-time)yes-

OIDCConfig ​

OIDC/OAuth 2.0 provider settings. client_secret is write-only: responses carry has_secret instead.

FieldTypeRequiredDescription
allowed_orgsarray of stringnotype github: organizations whose members may sign in (required). Groups are "org" and "org/team-slug", lower-case.
allowed_tenantsarray of stringnoEntra tenant IDs (GUIDs) allowed to sign in. Required for multi-tenant authorities.
api_base_urlstringnotype github: API base URL (default https://api.github.com).
auth_base_urlstringnotype github: base URL of GitHub Enterprise Server (default https://github.com).
authorization_urlstringnotype oauth2: authorization endpoint.
client_idstringno-
client_secretstringno-
email_claimstringno-
graph_endpointstringnoMicrosoft Graph base URL (default https://graph.microsoft.com).
graph_groupsbooleannoResolve Entra groups overage through Microsoft Graph (needs a delegated User.Read access token; group_mapping keys are group object IDs).
groups_claimstringno-
has_secretbooleanno-
hosted_domainstringnoGoogle Workspace domain: sent as the hd authorization parameter and required in the hd claim.
issuerstringnoIssuer URL (required for type ""). https://accounts.google.com enforces email_verified; https://login.microsoftonline.com/{common|organizations|consumers}/v2.0 is a multi-tenant Entra authority and requires allowed_tenants.
name_claimstringno-
require_email_verifiedbooleannoDeny logins whose email is not verified by the IdP (always on for Google).
scopesarray of stringnoDefault: openid email profile (github: read:user user:email read:org). Request groups explicitly if the IdP needs it.
token_urlstringnotype oauth2: token endpoint.
typestringnoEmpty: standards-compliant OIDC (issuer discovery). github: GitHub / GitHub Enterprise Server (OAuth 2.0). oauth2: generic OAuth 2.0 with a userinfo endpoint. One of: ``, github, oauth2.
userinfo_urlstringnotype oauth2: userinfo endpoint (subject is sub, else id).
username_claimstringno-

PackageDeleteResult ​

FieldTypeRequiredDescription
codestringno-
dataobjectno-
data.package_idstring (uuid)no-
data.repositorystringno-
data.trashedbooleannoThe package went to the trash and can be restored (absent for deb and rpm)
errorstringno-
successbooleanyes-

PackageDelta ​

FieldTypeRequiredDescription
delta_sizeinteger (int64)no-
formatstringno-
from_filenamestringno-
from_sha256stringno-
to_filenamestringno-
to_sha256stringno-

PackageDeltaList ​

FieldTypeRequiredDescription
codestringno-
dataarray of PackageDeltano-
errorstringno-
successbooleanyes-

PackageDetail ​

One package version with the metadata and dependencies its format stores. Formats store different things: metadata lists what the format's table holds, dependencies what it declares (see the endpoint description for the formats that store none).

FieldTypeRequiredDescription
archstringyes-
created_atstring (date-time)yes-
dependenciesarray of objectyes-
dependencies[].kindstringnoRole (runtime, dev, peer, optional, build, ...) or, for nuget, the target framework; as the format names it.
dependencies[].namestringyes-
dependencies[].versionstringnoVersion requirement as the format writes it.
descriptionstringno-
filenamestringyes-
filesarray of objectyesAll the files of this version (one per architecture, classifier or distribution), this one included; at most 200.
files[].archstringyes-
files[].filenamestringyes-
files[].idstring (uuid)yes-
files[].sha256stringyes-
files[].sizeinteger (int64)yes-
formatstringyes-
homepagestringno-
idstring (uuid)yes-
latest_versionstringyes-
licensestringno-
md5stringnoOnly for the formats that record it.
metadataarray of objectyesFormat-specific fields, ordered by key; empty values are left out.
metadata[].keystringyes-
metadata[].valuestringyes-
namestringyes-
sha1stringnoOnly for the formats that record it.
sha256stringyes-
sizeinteger (int64)yes-
summarystringno-
updated_atstring (date-time)yes-
versionstringyes-
version_countintegeryesVersions of the package this one belongs to.

PackageFile ​

One row (file) of a repository's package listing.

FieldTypeRequiredDescription
archstringyes-
created_atstring (date-time)yes-
filenamestringyes-
flaggedbooleanyesA critical or high vulnerability, a secret finding or a quarantined scan result (latest scan of each type).
formatstringyes-
idstring (uuid)yesRow id; the key of the package detail, download and scan endpoints.
namestringyes-
scanned_atstring (date-time)noLatest completed scan; absent when never scanned (security is then all zero).
securityPackageSecurityyes-
sha256stringyes-
sizeinteger (int64)yes-
versionstringyes-

PackageGroup ​

One package (format and name) across its versions, from GET /api/v1/repositories/{name}/packages?group=package.

FieldTypeRequiredDescription
flaggedbooleanyes-
formatstringyes-
latest_versionstringyesThe most recently published version.
namestringyes-
scanned_atstring (date-time)noLatest completed scan of the latest version; absent when never scanned.
securityPackageSecurityyes-
size_bytesinteger (int64)yesSize of the latest version, all its files summed.
updated_atstring (date-time)yesLatest modification of any version.
version_countintegeryes-

PackageSecurity ​

Vulnerability counts by severity.

FieldTypeRequiredDescription
criticalinteger (int64)yes-
highinteger (int64)yes-
lowinteger (int64)yes-
mediuminteger (int64)yes-

PackageUploadResult ​

FieldTypeRequiredDescription
codestringno-
dataobjectnoFormat-specific metadata of the stored package (name, version, arch, sha256, ...)
errorstringno-
successbooleanyes-

PermissionAssignment ​

FieldTypeRequiredDescription
principal_idstring (uuid)yes-
principal_namestringyes-
principal_typestringyesOne of: user, group.

PermissionTarget ​

FieldTypeRequiredDescription
actionsarray of stringnoItems: one of: read, write, delete, manage, annotate.
created_atstring (date-time)no-
idstring (uuid)no-
namestringno-
path_patternstringno-
repository_filterstringno-
updated_atstring (date-time)no-

PipelineStage ​

FieldTypeRequiredDescription
namestringyes-
repo_idstringnoUUID of the repository the stage must promote into; empty for any.

PresignedPart ​

FieldTypeRequiredDescription
headersmap of stringyesHeaders that must be sent with the PUT
methodstringyesOne of: PUT.
part_numberintegeryes-
sizeinteger (int64)yesExact size of the part in bytes
upload_urlstringyesPresigned URL accepting one PUT of exactly size bytes. The query string is a credential: do not log it.

PresignedParts ​

FieldTypeRequiredDescription
expires_atstring (date-time)yesWhen the part URLs stop working
partsarray of PresignedPartyes-

PresignedPartsRequest ​

FieldTypeRequiredDescription
part_numbersarray of integeryes1-based numbers of the parts to sign, at most the upload's part_count. Items: minimum: 1.

PresignedUpload ​

FieldTypeRequiredDescription
expires_atstring (date-time)yesWhen the URL stops working
headersmap of stringnoHeaders that must be sent with the PUT
idstring (uuid)yes-
methodstringnoOne of: PUT.
multipartbooleannoTrue for a multipart upload: no upload_url is returned, fetch part URLs from the parts endpoint
part_countintegernoMultipart only: number of parts, numbered from 1
part_sizeinteger (int64)noMultipart only: size of every part but the last
upload_urlstringnoSingle upload only: presigned URL accepting one PUT of exactly size bytes. The query string is a credential: do not log it.

PresignedUploadRequest ​

FieldTypeRequiredDescription
content_typestringnoContent type to record; detected from the content when omitted
multipartbooleannoUpload the object in parts: PUT each part to a URL from the parts endpoint, then call complete. Required above 5 GiB; not allowed for an empty file.
part_sizeinteger (int64)noPart size in bytes of a multipart upload (5 MiB to 4000 MiB, at most 10000 parts); the server picks one (64 MiB or more) when omitted. Minimum: 5242880. Maximum: 4194304000.
pathstringyesArtifact path inside the repository (no empty, '.' or '..' segments)
sha256stringyesSHA-256 of the content; verified at completion. Pattern: ^[0-9a-fA-F]{64}$.
sizeinteger (int64)yesExact size in bytes; signed into the upload URL. Above 5 GiB (5368709120) multipart must be true; the limit is 5 TiB. Minimum: 0. Maximum: 5497558138880.

PresignedUploadResult ​

FieldTypeRequiredDescription
idstringyes-
pathstringyes-
sha256stringyes-
sizeinteger (int64)yes-

Project ​

FieldTypeRequiredDescription
allow_public_reposbooleannoWhether repositories of this project may be public.
allowed_formatsarray of stringnoPackage formats repositories of this project may use. null allows every format. Nullable.
allowed_repo_typesarray of stringnoRepository types allowed in this project. Items: one of: hosted, proxy, group.
created_atstring (date-time)no-
descriptionstringnoNullable.
display_namestringnoNullable.
idstring (uuid)no-
is_systembooleannoThe built-in system project: it grants nothing and cannot be deleted.
max_repositoriesintegernoMaximum number of repositories the project may own. 0 means unlimited. Minimum: 0.
my_rolestringnoThe caller's effective role in the project; a global admin without a role is an implicit owner. One of: owner, maintainer, developer, viewer.
namestringno-
owner_idstring (uuid)noNullable.
repo_name_prefixstringnoPrefix every repository name in this project must start with. Empty means no prefix is required.
repository_countintegernoNumber of live (not trashed) repositories.
slugstringnoURL-safe unique identifier derived from the name: lowercased, runs of characters outside a-z0-9 collapsed to '-', at most 64 characters. A name or slug collision on create returns 409.
token_max_ttl_daysintegernoMaximum lifetime in days of tokens scoped to this project. 0 means no cap. Minimum: 0.
updated_atstring (date-time)no-

ProjectActivityEntry ​

One audit event of a project or of a repository it owns. Carries no client address.

FieldTypeRequiredDescription
actionstringyesAudit action, e.g. project.member_added, project.repository_created.
actorstringyesUsername or token name of the actor; empty when unknown.
actor_typestringnoNullable. One of: user, system, token, sso.
idstring (uuid)yes-
messagestringyes-
repository_idstring (uuid)noNullable.
resource_idstringnoNullable.
resource_typestringnoNullable.
timestampstring (date-time)yes-

ProjectCleanupPreview ​

FieldTypeRequiredDescription
dry_runbooleanyes-
repositoriesarray of CleanupPreviewyes-
rowsintegeryesTotal rows over all repositories

ProjectCreateRequest ​

FieldTypeRequiredDescription
allow_public_reposbooleannoWhether repositories of this project may be public.
allowed_formatsarray of stringnoPackage formats repositories of this project may use. null allows every format. Nullable.
allowed_repo_typesarray of stringnoRepository types allowed in this project. Items: one of: hosted, proxy, group.
descriptionstringno-
display_namestringno-
max_repositoriesintegernoMaximum number of repositories the project may own. 0 means unlimited. Minimum: 0.
namestringyes-
ownerstringnoUsername of the owner. Global admins only; defaults to the caller.
repo_name_prefixstringnoPrefix every repository name in this project must start with. Empty means no prefix is required.
token_max_ttl_daysintegernoMaximum lifetime in days of tokens scoped to this project. 0 means no cap. Minimum: 0.

ProjectGroup ​

FieldTypeRequiredDescription
created_atstring (date-time)no-
group_idstring (uuid)no-
group_namestringno-
project_idstring (uuid)no-
rolestringnoOne of: viewer, developer, maintainer.

ProjectGroupUpdateRequest ​

FieldTypeRequiredDescription
rolestringyesOne of: viewer, developer, maintainer.

ProjectListItem ​

A project of the project list: the project plus its member count, usage and quota.

Includes all fields of Project.

FieldTypeRequiredDescription
allow_public_reposbooleannoWhether repositories of this project may be public.
allowed_formatsarray of stringnoPackage formats repositories of this project may use. null allows every format. Nullable.
allowed_repo_typesarray of stringnoRepository types allowed in this project. Items: one of: hosted, proxy, group.
created_atstring (date-time)no-
descriptionstringnoNullable.
display_namestringnoNullable.
idstring (uuid)no-
is_systembooleannoThe built-in system project: it grants nothing and cannot be deleted.
max_repositoriesintegernoMaximum number of repositories the project may own. 0 means unlimited. Minimum: 0.
member_countintegeryesDirect members; users who hold a role only through a group are not counted.
my_rolestringnoThe caller's effective role in the project; a global admin without a role is an implicit owner. One of: owner, maintainer, developer, viewer.
namestringno-
owner_idstring (uuid)noNullable.
quotaobjectnoAbsent when the project has no size limit.
quota.limit_bytesinteger (int64)yes-
repo_name_prefixstringnoPrefix every repository name in this project must start with. Empty means no prefix is required.
repository_countintegernoNumber of live (not trashed) repositories.
slugstringnoURL-safe unique identifier derived from the name: lowercased, runs of characters outside a-z0-9 collapsed to '-', at most 64 characters. A name or slug collision on create returns 409.
token_max_ttl_daysintegernoMaximum lifetime in days of tokens scoped to this project. 0 means no cap. Minimum: 0.
updated_atstring (date-time)no-
usageobjectyes-
usage.size_bytesinteger (int64)yesStored size across the project's repositories (trashed ones included).

ProjectMember ​

FieldTypeRequiredDescription
created_atstring (date-time)no-
idstringnoMembership id: the project id and the user id joined by a colon
project_idstring (uuid)no-
rolestringnoOne of: owner, maintainer, developer, viewer.
user_idstring (uuid)no-
usernamestringno-

ProjectMemberCreateRequest ​

Exactly one of user_id and username.

FieldTypeRequiredDescription
rolestringnoOne of: owner, maintainer, developer, viewer. Default: viewer.
user_idstring (uuid)no-
usernamestringnoAlternative to user_id; exactly one of the two is required.

ProjectMemberUpdateRequest ​

FieldTypeRequiredDescription
rolestringyesOne of: owner, maintainer, developer, viewer.

ProjectQuota ​

FieldTypeRequiredDescription
current_artifact_countinteger (int64)no-
current_size_bytesinteger (int64)no-
enforcedbooleannoTrue when a limit is set.
max_artifact_countinteger (int64)no-
max_size_bytesinteger (int64)no-
projectstringno-
updated_atstringno-
usage_percentintegerno-
warn_threshold_percentintegerno-

ProjectRole ​

One project role of the caller.

FieldTypeRequiredDescription
namestringno-
rolestringnoOne of: owner, maintainer, developer, viewer.

ProjectSettings ​

FieldTypeRequiredDescription
self_createbooleanyesWhether any human user may create a project (and become its owner).

ProjectToken ​

FieldTypeRequiredDescription
created_atstring (date-time)no-
created_bystring (uuid)no-
created_by_usernamestringno-
expires_atstring (date-time)noNullable.
idstring (uuid)no-
last_used_atstring (date-time)noNullable.
namestringno-
projectstringno-
rolestringnoOne of: viewer, developer.

ProjectTokenCreateRequest ​

FieldTypeRequiredDescription
expires_atstring (date-time)no-
namestringyesMaximum length: 100.
rolestringyesOne of: viewer, developer.

ProjectTokenCreateResponse ​

Includes all fields of ProjectToken.

FieldTypeRequiredDescription
created_atstring (date-time)no-
created_bystring (uuid)no-
created_by_usernamestringno-
expires_atstring (date-time)noNullable.
idstring (uuid)no-
last_used_atstring (date-time)noNullable.
namestringno-
projectstringno-
rolestringnoOne of: viewer, developer.
tokenstringnoClear-text token, shown once

ProjectUpdateRequest ​

Partial update: omitted fields stay unchanged.

FieldTypeRequiredDescription
allow_public_reposbooleannoWhether repositories of this project may be public.
allowed_formatsarray of stringnoPackage formats repositories of this project may use. null allows every format. Nullable.
allowed_repo_typesarray of stringnoRepository types allowed in this project. Items: one of: hosted, proxy, group.
descriptionstringno-
display_namestringno-
max_repositoriesintegernoMaximum number of repositories the project may own. 0 means unlimited. Minimum: 0.
repo_name_prefixstringnoPrefix every repository name in this project must start with. Empty means no prefix is required.
token_max_ttl_daysintegernoMaximum lifetime in days of tokens scoped to this project. 0 means no cap. Minimum: 0.

ProjectUsage ​

FieldTypeRequiredDescription
artifact_countinteger (int64)no-
projectstringno-
quotaProjectQuotano-
repositoriesarray of objectno-
repositories[].artifact_countinteger (int64)no-
repositories[].formatstringno-
repositories[].max_artifact_countinteger (int64)no-
repositories[].max_size_bytesinteger (int64)no-
repositories[].namestringno-
repositories[].quota_enforcedbooleanno-
repositories[].repo_typestringno-
repositories[].size_bytesinteger (int64)no-
repositories[].warn_threshold_percentintegerno-
size_bytesinteger (int64)no-

PromotionPipeline ​

FieldTypeRequiredDescription
created_atstring (date-time)yes-
created_bystringyes-
descriptionstringyes-
idstringyes-
namestringyes-
stagesarray of PipelineStageyes-
updated_atstring (date-time)yes-

PublicSystemInfo ​

FieldTypeRequiredDescription
api_reference_enabledbooleannoWhether the interactive API reference is served at /api/reference.
docs_urlstringnoAbsolute URL, ending in a slash, of the published documentation matching this server version. Omitted when documentation links are disabled.
statusstringno-
versionstringno-

Quota ​

FieldTypeRequiredDescription
max_artifact_countintegerno-
max_size_bytesintegerno-
warn_threshold_percentnumberno-

QuotaLine ​

A quota next to its live usage. Limits are absent when unlimited.

FieldTypeRequiredDescription
artifact_countinteger (int64)yes-
exceededbooleanyesTrue once the size or the artifact count limit is reached.
limit_bytesinteger (int64)no-
max_artifact_countinteger (int64)no-
soft_limit_bytesinteger (int64)noUsage at which the warning threshold is crossed (limit_bytes times warn_threshold_percent); set with limit_bytes.
usage_percentintegeryesused_bytes of limit_bytes; 0 when unlimited.
used_bytesinteger (int64)yes-
warn_threshold_percentintegeryes-

QuotaOverviewItem ​

A repository's or a project's quota and usage.

Includes all fields of QuotaLine.

FieldTypeRequiredDescription
artifact_countinteger (int64)yes-
exceededbooleanyesTrue once the size or the artifact count limit is reached.
limit_bytesinteger (int64)no-
max_artifact_countinteger (int64)no-
namestringyes-
projectstringnoProject owning a repository; absent for a project line and for a repository without one.
scopestringyesOne of: repository, project.
soft_limit_bytesinteger (int64)noUsage at which the warning threshold is crossed (limit_bytes times warn_threshold_percent); set with limit_bytes.
usage_percentintegeryesused_bytes of limit_bytes; 0 when unlimited.
used_bytesinteger (int64)yes-
warn_threshold_percentintegeryes-

QuotaOverviewList ​

FieldTypeRequiredDescription
limitintegeryes-
pageintegeryes-
quotasarray of QuotaOverviewItemyes-
totalintegeryes-

ReadyResponse ​

FieldTypeRequiredDescription
reasonstringno-
statusstringnoOne of: ready, not ready.

RecentPackage ​

FieldTypeRequiredDescription
created_atstring (date-time)yes-
created_by_namestringnoNever set: the server does not record who published a package.
formatstringyes-
namestringyes-
repositorystringyes-
versionstringyes-

RecoveryStatus ​

FieldTypeRequiredDescription
backloginteger (int64)noChanged rows waiting for their sidecar (capped at backlog_cap)
backlog_capinteger (int64)no-
enabledbooleannoThe journal switch the database triggers consult (recovery.journal.enabled)
last_drain_atstring (date-time)no-
last_errorstringno-
last_error_atstring (date-time)no-
last_reconcile_atstring (date-time)noWhen every table last completed a reconcile pass
oldest_dirty_age_secondsnumbernoAge of the oldest waiting row; the journal lag, hence the rebuild RPO
retrying_rowsinteger (int64)noWaiting rows in retry backoff after a failure
schema_versionintegernoMigration number stamped into new sidecars
sidecars_trackedinteger (int64)no-
tables_reconciledintegerno-
tables_totalintegerno-

ReleaseBundle ​

FieldTypeRequiredDescription
archived_atstring (date-time)yesNullable.
archived_bystringyesNullable.
created_atstring (date-time)yes-
created_bystringyes-
current_stagestringyesNullable.
descriptionstringyes-
gpg_key_idstringnoFingerprint of the key that signed the manifest; null when unsigned. Nullable.
gpg_signaturestringnoArmored detached signature of the manifest; null when unsigned. Nullable.
idstringyes-
namestringyes-
pipeline_idstringyesNullable.
sealed_atstring (date-time)yesNullable.
sealed_bystringyesNullable.
statestringyesOne of: draft, sealed, archived.
updated_atstring (date-time)yes-
versionstringyes-

ReleaseBundleItem ​

FieldTypeRequiredDescription
added_atstring (date-time)yes-
added_bystringyes-
artifact_pathstringyes-
bundle_idstringyes-
component_idstringyesNullable.
formatstringyes-
idstringyes-
sha256stringyes-
size_bytesinteger (int64)yes-
source_repo_idstringyes-

ReplicationStatus ​

FieldTypeRequiredDescription
backlog_copyinteger (int64)noQueued copies to the replica.
backlog_deleteinteger (int64)noQueued deletions on the replica.
enabledbooleannoFalse when no replica is configured (storage.replica.type is empty); every other field is then empty.
failinginteger (int64)noQueued operations that failed repeatedly.
last_errorstringno-
last_error_atstring (date-time)noNullable.
last_verifyReplicationVerifyResultnoNullable.
oldest_pending_age_secondsnumber (double)noReplication lag: the age of the oldest queued operation.
read_fallbackstringnoOne of: ``, notfound, error, off.
replicaobjectnoNullable.
replica.locationstringnoDirectory, bucket or container of the replica; never a credential.
replica.typestringno-
replicated_bytes_totalinteger (int64)no-
replicated_totalinteger (int64)no-
verify_requestedbooleannoTrue while an admin-requested verify pass waits to start.
verify_runningReplicationVerifyResultnoNullable.

ReplicationVerifyResult ​

FieldTypeRequiredDescription
checkedinteger (int64)noBlobs examined.
deepbooleannoTrue when the bytes of both copies were hashed.
errorsinteger (int64)noBlobs that could not be checked or repaired.
finished_atstring (date-time)noNull while the pass runs. Nullable.
listingstringnoHow the primary store was enumerated: its own listing, or the blobs table when it cannot list. One of: list, database.
lostinteger (int64)noBlobs the database references that exist on neither side.
mismatchedinteger (int64)noBlobs whose two copies differ in size (or content, in a deep pass).
missing_primaryinteger (int64)noBlobs missing from the primary store (restored from the replica).
missing_replicainteger (int64)noBlobs missing from the replica (a copy was queued).
repairedinteger (int64)noBlobs fixed or queued for copying.
replica_listedbooleannoFalse when the replica cannot enumerate its objects, so blobs only it holds were not looked for.
started_atstring (date-time)no-
unreferencedinteger (int64)noBlobs only the replica holds that nothing references.

RepoSecuritySummary ​

Counts only; no finding ids, titles or other details.

FieldTypeRequiredDescription
aiobjectyes-
ai.quarantine_recommendedintegeryes-
ai.review_requiredintegeryes-
licenseobjectyes-
license.violationsintegeryesLicense findings that are not suppressed.
quarantinedbooleanyesTrue when a result of the selection is quarantined.
scanned_atstring (date-time)yesLatest completed scan of the selection; null when nothing was scanned. Nullable.
secretobjectyes-
secret.countintegeryes-
vulnobjectyes-
vuln.criticalintegeryes-
vuln.highintegeryes-
vuln.lowintegeryes-
vuln.mediumintegeryes-

Repository ​

FieldTypeRequiredDescription
blockedbooleannoWhether the repository is blocked
cache_ttl_secondsintegernoCache TTL in seconds
created_atstring (date-time)noCreation timestamp
descriptionstringnoRepository description
federatedbooleannoTrue when federation is enabled: the repository keeps a change log that peer instances pull to stay in sync. Hosted repositories of the formats raw, maven, npm, docker, helm, pypi, cargo, go and nuget only. Peers and tokens are managed under /api/v1/repositories/{name}/federation.
formatstringyesPackage format. One of: deb, rpm, maven, npm, docker, helm, pypi, nuget, go, cargo, rubygems, raw, conda, conan, ivy, sbt, terraform, apk, pacman.
idstring (uuid)yesRepository unique identifier
immutable_releasesbooleannoWhen true, deleting or overwriting a released version is refused with 409 (SNAPSHOT/pre-release versions stay mutable). An admin can override with ?force=true.
max_stale_secondsintegernoSeconds past a cached file's expiry during which it may still be served, with a Warning: 110 header, when the upstream is unreachable, times out or answers 5xx. 0 disables serve-stale; default 604800 (7 days); max 31536000.
member_reposarray of stringnoMember repositories (for group repos)
merge_proxy_versionsbooleannoGroup repositories only. false (default): for a package name held by a readable hosted member, proxy members' versions of that name are hidden (hosted members win, dependency-confusion protection). true: merge proxy versions with the hosted ones. Only administrators can set it.
namestringyesRepository name (1-100 alphanumeric/hyphen/underscore)
negative_cache_ttl_secondsintegernoNegative cache TTL in seconds
permissionsobjectnoThe caller's effective repository-scoped permissions. Only present in the single-repository GET (/api/v1/repository/{name}); global administrators have every flag set.
permissions.adminbooleanyesAllows configuring and deleting the repository and managing its cleanup policies and quota: global administrators and maintainers or owners of the repository's project.
permissions.deletebooleanyesAllows the repository's trash tab (list and restore).
permissions.managebooleanyesAllows emptying the repository's trash.
permissions.writebooleanyes-
presign_downloadsbooleannoPer-repository override of storage.presignDownloads: true always redirects eligible blob downloads to a presigned object-store URL, false always streams, null inherits the global setting. Metadata and manifests are never redirected. Nullable.
projectstringnoName of the project that owns the repository (the built-in 'system' project unless set at creation or moved). Members of any other project get access to the repository according to their role; see docs/security/rbac.md.
publicbooleannoWhether repository is publicly accessible
repo_typestringnoRepository type. One of: hosted, proxy, group.
sign_packagesbooleannoHosted rpm repositories only (400 otherwise when true). When true, uploaded RPMs are signed with the active GPG key; existing packages are not re-signed.
statsRepositoryStatsno-
trash_retention_daysintegernoDays a deleted item (or the repository itself) stays restorable in the trash before the retention purge removes it. null = the server default (TRASH_RETENTION_DAYS); 0 = no trash, deletes are immediate and permanent. Nullable. Minimum: 0. Maximum: 36500.
updated_atstring (date-time)noLast update timestamp
upstream_password_setbooleannoProxy repos: true when an upstream password is stored. The password is write-only (upstream_password on create and update) and is never returned.
upstream_urlstringnoUpstream repository URL (for proxy repos)
upstream_usernamestringno-

RepositoryMember ​

FieldTypeRequiredDescription
formatstringyesMember repository format
idstring (uuid)yesMember repository ID
namestringyesMember repository name
priorityintegeryesResolution order within the group (lowest first)
repo_typestringyesMember repository type. One of: hosted, proxy.

RepositoryStats ​

Catalog figures of a repository. Only present in the repository list (GET /api/v1/repositories).

FieldTypeRequiredDescription
last_published_atstring (date-time)noTime of the newest package; absent for an empty repository.
package_countinteger (int64)yesNumber of distinct package names, counted as the package listing names them.
quotaobjectyes-
quota.limit_bytesinteger (int64)noSize quota; absent when unlimited.
quota.used_bytesinteger (int64)yes-
securityobjectyesSum over the artifacts of the repository of their latest scan results. Counts are raw: VEX statements and ignore rules do not suppress any.
security.criticalinteger (int64)yes-
security.highinteger (int64)yes-
security.license_violationsinteger (int64)yesArtifacts whose license scan is quarantined (the server stores no other license violation count).
security.lowinteger (int64)yes-
security.mediuminteger (int64)yes-
security.scanned_atstring (date-time)noLatest completed scan; absent when never scanned.
security.secretsinteger (int64)yesSecret findings.
size_bytesinteger (int64)yesStored size, from the repository's quota counter (equals quota.used_bytes).

RepositoryUsage ​

FieldTypeRequiredDescription
last_published_atstring (date-time)noAbsent for an empty repository.
package_countinteger (int64)yesDistinct packages (by name).
quotaQuotaLineyes-
size_bytesinteger (int64)yesStored size from the quota counter.
version_countinteger (int64)yesPackage rows (versions, or files for formats without versions).

SBOMReport ​

FieldTypeRequiredDescription
artifact_idstringno-
component_countintegerno-
content_typestringno-
created_atstring (date-time)no-
formatstringno-
generated_atstring (date-time)no-
idstring (uuid)no-
repo_idstring (uuid)no-
sbom_dataanynoThe SBOM document (only on the detail endpoint)
spec_versionstringno-
updated_atstring (date-time)no-

SSOProvider ​

FieldTypeRequiredDescription
auto_provision_usersbooleanno-
claim_mappingobjectno-
created_atstring (date-time)no-
display_namestringno-
enabledbooleanno-
group_mappingmap of stringno-
idstring (uuid)no-
kindstringnoOne of: oidc, saml.
link_by_emailbooleanno-
oidc_configOIDCConfigno-
permission_mappingmap of stringno-
saml_configobjectnoSAML settings (kind=saml). At least one IdP metadata source is required on create; the URL wins when both are set.
saml_config.allow_idp_initiatedbooleannoAccept IdP-initiated (unsolicited) responses, e.g. from an IdP app tile. Off by default: such responses are not bound to a login request this server started, so login CSRF is possible. Signature, audience, recipient and replay checks still apply.
saml_config.email_attributestringnoAssertion attribute Name for the email (default mail).
saml_config.groups_attributestringnoAssertion attribute Name carrying group values. When set and present in the assertion (even with no values) the user's SSO group memberships are synced to that set; when absent from the assertion existing memberships are kept.
saml_config.idp_metadata_refresh_secondsintegernoHow long fetched IdP metadata is reused before it is re-read from idp_metadata_url. 0 or unset means 3600; otherwise 60 to 86400. A shorter cacheDuration or validUntil in the metadata itself wins (floor 60s). Minimum: 0. Maximum: 86400.
saml_config.idp_metadata_urlstringnoHTTPS URL of the IdP metadata. Refreshed in the background, so IdP certificate rollover is picked up without editing the provider.
saml_config.idp_metadata_xmlstringnoStatic IdP metadata document. Never refreshed; its validUntil is ignored.
saml_config.name_attributestringnoAssertion attribute Name for the display name (default displayName).
saml_config.username_attributestringnoAssertion attribute Name for the username (default uid).
slugstringno-
updated_atstring (date-time)no-

ScanResult ​

FieldTypeRequiredDescription
created_atstring (date-time)no-
idstring (uuid)no-
statusstringnoScan status. Vulnerability scans use pending|scanning|completed|partial|failed (see VulnScanResult.scan_status).

SearchPackageHit ​

FieldTypeRequiredDescription
created_atstring (date-time)no-
formatstringno-
metadatamap of stringno-
namestringno-
pathstringno-
repositorystringno-
sha256stringno-
sizeinteger (int64)no-
versionstringno-
version_countintegernoOnly with group=package: the number of versions of the package that match the search

SearchRepositoryHit ​

FieldTypeRequiredDescription
descriptionstringno-
formatstringno-
namestringno-

SearchResult ​

FieldTypeRequiredDescription
packagesarray of SearchPackageHitnoMatching packages/artifacts, best match first (exact name, prefix, other substring), then newest first. With group=package, one entry per package: its latest version
repositoriesarray of SearchRepositoryHitnoRepositories whose own name matches the query, ordered by name
totalintegernoNumber of matching packages (repositories are not counted); with group=package, the number of distinct packages

SecurityFinding ​

One stored scan result (a package version of one type) that reports something.

FieldTypeRequiredDescription
artifact_idstringyesThe artifact the result belongs to, name@version.
countsSecurityFindingCountsyesWhat the result holds per severity. Secret findings count by their own severity (an unknown one as low); a license quarantine is one high and each unresolved license one low; an AI quarantine recommendation is one high and a license review one medium.
formatstringyesFormat of the repository (npm, pypi, maven, ...).
idstring (uuid)yes-
package_namestringyes-
package_versionstringyes-
quarantinedbooleanyes-
repositorystringyesRepository name.
scanned_atstring (date-time)yes-
scannerstringyesScanner of a vulnerability result (osv, trivy, grype or a comma-joined list); empty for the other types.
severitystringyesHighest severity of the finding; none when it has none. One of: critical, high, medium, low, none.
statusstringyesquarantined when the result's quarantine flag is set; suppressed when every vulnerability has a not_affected or fixed VEX decision or an admin approved a license quarantine. One of: open, quarantined, suppressed.
titlestringyesOne line: the worst vulnerability id, the licenses, the worst secret finding or the AI note.
typestringyesOne of: vuln, license, secret, ai.
vex_statusstringnoLeast resolved VEX decision on the vulnerabilities of a vuln finding; absent when none applies. One of: affected, under_investigation, fixed, not_affected.

SecurityFindingCounts ​

FieldTypeRequiredDescription
criticalintegeryes-
highintegeryes-
lowintegeryes-
mediumintegeryes-

SecurityHealth ​

FieldTypeRequiredDescription
aiobjectyes-
ai.enabledbooleanyes-
dependency_trackobjectyes-
dependency_track.enabledbooleanyesThe global Dependency-Track integration is enabled.
dependency_track.last_push_atstring (date-time)noWhen that push finished; absent when none did.
dependency_track.last_push_okbooleannoWhether the latest finished push succeeded; absent when none finished.
last_scan_atstring (date-time)yesWhen the latest vulnerability, license, secret or AI scan finished; null when none did. Nullable.
scannersarray of objectyes-
scanners[].docs_urlstringnoInstallation guide of a scanner that is not ready.
scanners[].messagestringnoWhat an operator should do; absent for a ready scanner.
scanners[].namestringyesosv, trivy or grype.
scanners[].readybooleanyes-
scans_failed_24hintegeryesScans that failed in the last 24 hours.
scans_pendingintegeryesScans that are pending or running.
unscanned_repositoriesintegeryesRepositories that hold artifacts (group repositories excluded) with no completed scan of any type.

SecuritySummary ​

FieldTypeRequiredDescription
by_typeobjectyes-
by_type.aiobjectyesFindings of one type; the severities count by each finding's highest severity.
by_type.ai.criticalintegeryes-
by_type.ai.highintegeryes-
by_type.ai.lowintegeryes-
by_type.ai.mediumintegeryes-
by_type.ai.quarantinedintegeryes-
by_type.ai.totalintegeryes-
by_type.licenseobjectyesFindings of one type; the severities count by each finding's highest severity.
by_type.license.criticalintegeryes-
by_type.license.highintegeryes-
by_type.license.lowintegeryes-
by_type.license.mediumintegeryes-
by_type.license.quarantinedintegeryes-
by_type.license.totalintegeryes-
by_type.secretobjectyesFindings of one type; the severities count by each finding's highest severity.
by_type.secret.criticalintegeryes-
by_type.secret.highintegeryes-
by_type.secret.lowintegeryes-
by_type.secret.mediumintegeryes-
by_type.secret.quarantinedintegeryes-
by_type.secret.totalintegeryes-
by_type.vulnobjectyesFindings of one type; the severities count by each finding's highest severity.
by_type.vuln.criticalintegeryes-
by_type.vuln.highintegeryes-
by_type.vuln.lowintegeryes-
by_type.vuln.mediumintegeryes-
by_type.vuln.quarantinedintegeryes-
by_type.vuln.totalintegeryes-
last_scan_atstring (date-time)yesWhen the latest scan of the scope finished; null when none did. Nullable.
scanned_repositoriesintegeryesRepositories that hold artifacts (group repositories excluded) with a completed scan of any type.
total_repositoriesintegeryesRepositories of the scope that hold artifacts.

StorageBackend ​

FieldTypeRequiredDescription
configobjectno-
created_atstring (date-time)no-
idstring (uuid)no-
kindstringnoOne of: filesystem, s3, gcs, azure.
last_checked_atstring (date-time)noNullable.
namestringno-
statusstringnoOne of: ok, degraded, error, unknown.
status_messagestringnoNullable.
updated_atstring (date-time)no-
usageobjectnoWhat the backend holds; present on the list and get endpoints.
usage.blob_countinteger (int64)yes-
usage.size_bytesinteger (int64)yes-

StoragePolicy ​

FieldTypeRequiredDescription
created_atstring (date-time)no-
enabledbooleanno-
formatsarray of stringno-
from_tierstringnoNullable.
idstring (uuid)no-
max_size_bytesinteger (int64)noNullable.
min_age_secondsinteger (int64)noNullable.
min_idle_secondsinteger (int64)noNullable.
min_size_bytesinteger (int64)noNullable.
namestringno-
path_globstringnoNullable.
positionintegerno-
repo_globstringnoNullable.
target_tierstringno-
updated_atstring (date-time)no-

StoragePolicyInput ​

FieldTypeRequiredDescription
enabledbooleannoDefaults to true.
formatsarray of stringno-
from_tierstringnoOnly blobs currently on this tier. Nullable.
max_size_bytesinteger (int64)noNullable.
min_age_secondsinteger (int64)noNullable.
min_idle_secondsinteger (int64)noNullable.
min_size_bytesinteger (int64)noNullable.
namestringyes-
path_globstringnoPackage path glob (same syntax as repo_glob). Nullable.
positionintegernoEvaluation order, lowest first. New policies default to after the last one.
repo_globstringnoRepository name glob: * matches within a segment, ** across '/', ? one character. Nullable.
target_tierstringyesName of the tier matching blobs belong on.

StoragePrimary ​

The primary blob store the server is configured with (storage.* settings). Read-only; holds no credentials.

FieldTypeRequiredDescription
kindstringyesOne of: filesystem, s3, garage, seaweedfs, gcs, azure, oci.
last_checked_atstring (date-time)noNullable.
locationmap of stringyesWhere the blobs live (path, endpoint, bucket, region, account, container, repository). Never a credential.
namestringyesThe reserved name "primary", usable in /api/v1/admin/storage/{name}.
sourcestringyesAlways config: the store is set by the server configuration. One of: config.
statusstringyesResult of a live health check through the process's own store, cached for 10 seconds. One of: healthy, unreachable, unknown.
status_messagestringnoNullable.
usageobjectnoThe blobs placed on the primary store, that is those not moved to a tier.
usage.blob_countinteger (int64)yes-
usage.size_bytesinteger (int64)yes-

StorageTier ​

FieldTypeRequiredDescription
availablebooleannoFalse when this server could not open the tier's backend.
backendstringnoName of the storage backend the tier maps to; null for the primary tier. Nullable.
backend_kindstringno-
backend_statusstringno-
blob_countinteger (int64)no-
created_atstring (date-time)no-
idstring (uuid)no-
namestringno-
primarybooleannoTrue for the tier backed by the server's configured storage.
promote_on_readbooleanno-
rankintegerno-
total_bytesinteger (int64)no-
updated_atstring (date-time)no-

SystemInfo ​

FieldTypeRequiredDescription
archstringno-
build_timestringno-
commitstringno-
go_versionstringno-
osstringno-
versionstringno-

TierDryRun ​

FieldTypeRequiredDescription
policiesarray of objectno-
policies[].bytesinteger (int64)no-
policies[].countinteger (int64)no-
policies[].policystringno-
routesarray of objectno-
routes[].bytesinteger (int64)no-
routes[].countinteger (int64)no-
routes[].fromstringno-
routes[].tostringno-
samplearray of objectno-
sample[].created_atstring (date-time)no-
sample[].fromstringno-
sample[].last_accessed_atstring (date-time)noNullable.
sample[].policystringno-
sample[].sha256stringno-
sample[].size_bytesinteger (int64)no-
sample[].tostringno-
scannedintegerno-
truncatedbooleannoTrue when the scan stopped at its row cap; totals are then a lower bound.
would_moveobjectno-
would_move.bytesinteger (int64)no-
would_move.countinteger (int64)no-

TierMoverStatus ​

FieldTypeRequiredDescription
enabledbooleanno-
interval_secondsinteger (int64)no-
last_passobjectnoNullable.
last_pass.abortedbooleanno-
last_pass.bytesinteger (int64)no-
last_pass.failedintegerno-
last_pass.finished_atstring (date-time)no-
last_pass.movedintegerno-
last_pass.promotedintegerno-
last_pass.recoveredintegerno-
last_pass.scannedintegerno-
last_pass.skippedintegerno-
last_pass.started_atstring (date-time)no-
pendingarray of objectno-
pending[].attemptsintegerno-
pending[].fromstringno-
pending[].reasonstringno-
pending[].sha256stringno-
pending[].size_bytesinteger (int64)no-
pending[].statestringnoOne of: copying, flipped.
pending[].tostringno-
pending[].updated_atstring (date-time)no-
pending_totalinteger (int64)no-
runningbooleanno-

Token ​

FieldTypeRequiredDescription
created_atstring (date-time)no-
expires_atstring (date-time)noNullable.
idstring (uuid)no-
kindstringnoOne of: access, deploy.
last_used_atstring (date-time)noNullable.
namestringno-
scopesarray of stringno-

TokenCreateResponse ​

Includes all fields of Token.

FieldTypeRequiredDescription
created_atstring (date-time)no-
expires_atstring (date-time)noNullable.
idstring (uuid)no-
kindstringnoOne of: access, deploy.
last_used_atstring (date-time)noNullable.
namestringno-
scopesarray of stringno-
tokenstringnoThe raw token value (only returned on creation)

TrashEmpty ​

FieldTypeRequiredDescription
purgedintegeryesItems destroyed by this request.
remainingintegeryesTrashed items left (a request purges at most 1000).

TrashItem ​

A soft-deleted package row or repository. It is hidden everywhere else until restored; the retention purge removes it at expires_at.

FieldTypeRequiredDescription
deleted_atstring (date-time)yes-
deleted_bystringyes-
deleted_by_namestringyesWho deleted the item as a display name: the username, or the policy or peer that did it (cleanup-policy, federation:<peer>). Empty when not recorded. Same value as deleted_by.
expires_atstring (date-time)yesWhen the retention purge removes the item for good: deleted_at plus the repository's effective retention.
formatstringyes-
idstring (uuid)yesPrimary key of the trashed row (the repository id for kind repository). Together with kind it addresses the item.
kindstringyesOne of: repository, maven_artifact, ivy_artifact, sbt_artifact, apk_package, terraform_module, terraform_provider, npm_version, pypi_package, nuget_package, go_module, cargo_crate, rubygems_gem, conda_package, pacman, conan_package, helm_chart, raw_artifact, docker_manifest, docker_tag, rpm_package, deb_package.
namestringyesPackage name, file path, image:tag or (kind repository) the repository name.
purge_atstring (date-time)yesSame value as expires_at, kept for existing clients.
repositorystringyesName of the owning repository (the trashed repository itself for kind repository).
repository_idstring (uuid)yes-
size_bytesinteger (int64)yes-
versionstringnoOmitted when the kind has no version.

TrashList ​

FieldTypeRequiredDescription
itemsarray of TrashItemyes-
limitintegeryes-
pageintegeryes-
totalintegeryes-

UnifiedToken ​

One token of the unified token list. The secret is never returned.

FieldTypeRequiredDescription
created_atstring (date-time)yes-
expiredbooleanyesTrue once expires_at has passed.
expires_atstring (date-time)noAbsent for a token that never expires (federation tokens never do).
idstring (uuid)yes-
last_used_atstring (date-time)no-
namestringyes-
ownerstringyesUsername of the token's owner (personal), creator (project) or creator (federation, as recorded).
projectstringnoProject name: set for project tokens and for federation tokens of a repository that belongs to a project.
repositorystringnoRepository name, for federation tokens.
rolestringnoProject role, for project tokens.
scopesarray of stringnoPermission-target ids a personal token is limited to.
typestringyesOne of: personal, project, federation.

UnifiedTokenList ​

FieldTypeRequiredDescription
limitintegeryes-
pageintegeryes-
tokensarray of UnifiedTokenyes-
totalintegeryesTokens the caller may see that match the filters.

UpdateFederationPeerRequest ​

Absent fields stay unchanged.

FieldTypeRequiredDescription
base_urlstringno-
ca_pemstringno-
client_certstringno-
client_keystringno-
enabledbooleanno-
namestringno-
tokenstringno-

UpdateFederationRequest ​

FieldTypeRequiredDescription
enabledbooleanyestrue backfills the log from the existing content; false removes the log and all peers.

User ​

FieldTypeRequiredDescription
created_atstring (date-time)no-
disabledbooleanno-
emailstring (email)noNullable.
full_namestringnoNullable.
idstring (uuid)no-
last_login_atstring (date-time)noNullable.
must_change_passwordbooleanno-
updated_atstring (date-time)no-
usernamestringno-

UserExtended ​

Includes all fields of User.

FieldTypeRequiredDescription
created_atstring (date-time)no-
disabledbooleanno-
emailstring (email)noNullable.
full_namestringnoNullable.
groupsarray of stringnoNames of the groups the user belongs to.
idstring (uuid)no-
is_adminbooleanno-
last_login_atstring (date-time)noNullable.
must_change_passwordbooleanno-
projectsarray of ProjectRolenoThe caller's project roles; global admins are implicit owners everywhere and are listed only for roles they hold.
updated_atstring (date-time)no-
usernamestringno-

VEXStatement ​

FieldTypeRequiredDescription
action_statementstringno-
artifact_idstringno-
created_atstring (date-time)no-
created_bystringno-
idstring (uuid)no-
impact_statementstringno-
justificationstringno-
statusstringnoOne of: affected, not_affected, fixed, under_investigation.
updated_atstring (date-time)no-
vuln_idstringno-

VulnScanOverviewRow ​

A vulnerability scan without its findings (vulnerabilities), with the name and format of its repository. Fetch the findings with GET /api/v1/repositories/{name}/vuln/scans/{id}.

FieldTypeRequiredDescription
artifact_idstringno-
created_atstring (date-time)no-
critical_countintegerno-
ecosystemstringno-
failed_scannersarray of stringno-
high_countintegerno-
idstring (uuid)no-
low_countintegerno-
medium_countintegerno-
package_namestringno-
package_versionstringno-
quarantinedbooleanno-
repo_idstring (uuid)no-
repository_formatstringnoFormat of the repository (npm, pypi, maven, ...).
repository_namestringno-
scan_errorstringnoSanitized summary of the failing scanners. Nullable.
scan_statusstringnoSame meaning as on VulnScanResult. One of: pending, scanning, completed, partial, failed.
scanned_atstring (date-time)noNullable.
scannerstringnoOne scanner name (osv, trivy or grype) or a sorted comma-joined list such as osv,trivy.
updated_atstring (date-time)no-
vuln_countintegerno-

VulnScanRequest ​

FieldTypeRequiredDescription
artifact_idstringyes-
ecosystemstringyes-
package_namestringyes-
package_versionstringyes-
scannerstringnoSingle scanner. Still accepted; merged with scanners. One of: osv, trivy, grype.
scannersarray of stringnoScanners to run. Merged with scanner; de-duplicated and sorted. Defaults to osv when neither is given. Items: one of: osv, trivy, grype.

VulnScanResult ​

Result of one vulnerability scan of an artifact.

FieldTypeRequiredDescription
artifact_idstringyes-
created_atstring (date-time)yes-
critical_countintegeryes-
ecosystemstringyes-
failed_scannersarray of stringyesScanners that produced no result. Empty unless scan_status is partial or failed. Items: one of: osv, trivy, grype.
high_countintegeryes-
idstring (uuid)yes-
low_countintegeryes-
medium_countintegeryes-
package_namestringyes-
package_versionstringyes-
quarantinedbooleanyes-
repo_idstring (uuid)yes-
scan_errorstringyesSanitized summary of the failing scanners, for example trivy: scanner is not available on the server (scanner_unavailable), setup guide: <url>; osv: scan timed out. A scanner that is not installed or has no vulnerability database names its code (scanner_unavailable, scanner_db_unavailable) and the setup guide. It never contains raw scanner output or upstream error text. Null unless scan_status is partial or failed. Nullable.
scan_statusstringyescompleted: every requested scanner ran. partial: several scanners were requested and some failed (findings of the others are kept; see failed_scanners). failed: every scanner failed - the zero counts then mean not scanned, not no vulnerabilities. One of: pending, scanning, completed, partial, failed.
scanned_atstring (date-time)yesNullable.
scannerstringyesOne scanner name (osv, trivy or grype) or a sorted comma-joined list such as osv,trivy when several scanners were requested.
updated_atstring (date-time)yes-
vuln_countintegeryes-
vulnerabilitiesarray of objectno-

VulnScanSummary ​

Counts of the scans in the overview.

FieldTypeRequiredDescription
completedintegerno-
failedintegerno-
partialintegerno-
quarantinedintegerno-
scanningintegernoScans still pending or running.
severity_at_leastobjectnoScans with at least one finding of that severity or worse: high counts the scans with a critical or a high finding, and so on. Matches the severity filter of the list.
severity_at_least.criticalintegerno-
severity_at_least.highintegerno-
severity_at_least.lowintegerno-
severity_at_least.mediumintegerno-
totalintegerno-

VulnScanner ​

Whether one vulnerability scanner can run on the server. Fixed, client-safe text only.

FieldTypeRequiredDescription
availablebooleanyesFalse when the trivy / grype binary is not installed or not executable.
codestringyesWhy the scanner is not ready; null when it is. Nullable. One of: scanner_unavailable, scanner_installing, scanner_install_failed, scanner_install_noexec, scanner_db_unavailable.
db_statestringyesState of the vulnerability database of an available trivy / grype; null otherwise. Nullable. One of: ready, updating, failed, missing.
db_updated_atstring (date-time)yesWhen the vulnerability database was last refreshed; null when there is none or the time is unknown. Nullable.
docs_urlstringyesLink to the scanner installation guide when the scanner is not ready. Nullable.
install_statestringyesState of the automatic installer (scanners.<name>.install: auto) for a trivy / grype binary that is being or was downloaded by the server; null when the binary is not managed by the installer. Nullable. One of: installing, ready, failed.
messagestringyesWhat the operator must do when the scanner is not ready. Nullable.
namestringyesOne of: osv, trivy, grype.
readybooleanyesTrue when a scan can run now: osv always; trivy and grype when the binary is available and its vulnerability database is present.

Webhook ​

FieldTypeRequiredDescription
content_typestringno-
created_atstring (date-time)no-
enabledbooleanno-
eventsarray of stringnoItems: one of: artifact.uploaded, artifact.deleted, repository.created, repository.deleted, artifact.restored, artifact.purged, repository.restored, repository.purged, bundle.promoted.
has_secretbooleannoSecret is write-only and never returned
idstring (uuid)no-
max_retriesintegerno-
namestringno-
payload_formatstringnoDelivery body format. openartifact is the native JSON; cloudevents is CloudEvents 1.0 structured mode (application/cloudevents+json); slack, teams and discord are the services' incoming-webhook shapes. One of: openartifact, cloudevents, slack, teams, discord. Default: openartifact.
repository_idstring (uuid)noNullable.
ssl_verifybooleanno-
timeout_secondsintegerno-
updated_atstring (date-time)no-
urlstring (uri)no-

WebhookDelivery ​

FieldTypeRequiredDescription
created_atstring (date-time)no-
eventstringno-
idstring (uuid)no-
request_bodystringno-
request_headersstringno-
response_bodystringno-
response_headersstringno-
statusstringno-
status_codeintegerno-
webhook_idstring (uuid)no-

Free software under the AGPL-3.0-or-later.