[docker-hub-api] add list namespace repositories endpoint (#22934)

<!--Delete sections as needed -->

## Description

- Add "new" list repositories in a given namespace endpoint : `GET
/v2/namespaces/{namespace}/repositories`

---
After the comments from @thaJeztah 
- Split DVP Data API and Docker Hub API for better visiblity
- Standardize sub entries in the side menu : Changelog, Deprecated and
OpenAPI
- Deprecated is now a table like in
https://docs.docker.com/engine/deprecated/

## Related issues or tickets

- https://github.com/docker/hub-feedback/issues/2357

## Reviews

<!-- Notes for reviewers here -->
<!-- List applicable reviews (optionally @tag reviewers) -->

- [x] Technical review
- [ ] Editorial review
- [ ] Product review
This commit is contained in:
Vincent DAMERY 2025-07-15 17:46:14 +02:00 committed by GitHub
parent cb1ca3ce9a
commit c69c0b53dd
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
13 changed files with 1141 additions and 744 deletions

View File

@ -61,7 +61,7 @@ You can download extension CSV reports from the **Insights and analytics** dashb
## Exporting analytics data
You can export the analytics data either from the web dashboard, or using the
[DVP Data API](/reference/api/hub/dvp.md). All members of an organization have access to the analytics data.
[DVP Data API](/reference/api/dvp/latest.md). All members of an organization have access to the analytics data.
The data is available as a downloadable CSV file, in a weekly (Monday through
Sunday) or monthly format. Monthly data is available from the first day of the
@ -89,7 +89,7 @@ Export usage data for your organization's images using the Docker Hub website by
The HTTP API endpoints are available at:
`https://hub.docker.com/api/publisher/analytics/v1`. Learn how to export data
using the API in the [DVP Data API documentation](/reference/api/hub/dvp.md).
using the API in the [DVP Data API documentation](/reference/api/dvp/latest.md).
## Data points

View File

@ -41,7 +41,7 @@ params:
- title: DVP Data API
description: API for Docker Verified Publishers to fetch analytics data.
icon: area_chart
link: /reference/api/hub/dvp/
link: /reference/api/dvp/latest/
- title: Registry API
description: API for Docker Registry.
icon: database

View File

@ -0,0 +1,6 @@
---
title: DVP Data API
build:
render: never
---

View File

@ -0,0 +1,20 @@
---
description: Docker Verified Publisher API changelog
title: Docker Verified Publisher API changelog
linkTitle: Changelog
keywords: docker dvp, dvp, whats new, release notes, api, changelog
weight: 2
toc_min: 1
toc_max: 2
---
Here you can learn about the latest changes, new features, bug fixes, and known
issues for Docker Verified Publisher API.
---
## 2025-06-27
### New
- Create changelog

View File

@ -0,0 +1,37 @@
---
description: Deprecated Docker Verified Publisher API endpoints
keywords: deprecated
title: Deprecated Docker Verified Publisher API endpoints
linkTitle: Deprecated
weight: 3
---
This page provides an overview of endpoints that are deprecated in Docker Verified Publisher API.
## Endpoint deprecation policy
As changes are made to Docker there may be times when existing endpoints need to be removed or replaced with newer endpoints. Before an existing endpoint is removed it is labeled as "deprecated" within the documentation. After some time it may be removed.
## Deprecated endpoints
The following table provides an overview of the current status of deprecated endpoints:
**Deprecated**: the endpoint is marked "deprecated" and should no longer be used.
The endpoint may be removed, disabled, or change behavior in a future release.
**Removed**: the endpoint was removed, disabled, or hidden.
---
| Status | Feature | Date |
|--------|---------------------------------------------------------------|------------|
| | [Create deprecation log table](#create-deprecation-log-table) | 2025-06-27 |
---
### Create deprecation log table
Reformat page
---

View File

@ -1,7 +1,9 @@
---
layout: api
description: Reference documentation and Swagger (OpenAPI) specification for the Docker Verified Publisher API.
linkTitle: DVP Data API
title: Docker Verified Publisher API reference
weight: 4
linkTitle: Latest
weight: 1
aliases:
- /reference/api/hub/dvp/
---

View File

@ -0,0 +1,696 @@
openapi: 3.0.0
info:
title: DVP Data API
version: 1.0.0
x-logo:
url: https://docs.docker.com/assets/images/logo-docker-main.png
href: /reference
description: |
The Docker DVP Data API allows [Docker Verified Publishers](https://docs.docker.com/docker-hub/publish/) to view image pull analytics data for their namespaces. Analytics data can be retrieved as raw data, or in a summary format.
#### Summary data
In your summary data CSV, you will have access to the data points listed below. You can request summary data for a complete week (Monday through Sunday) or for a complete month (available on the first day of the following month).
There are two levels of summary data:
- Repository-level, a summary of every namespace and repository
- Tag- or digest-level, a summary of every namespace, repository, and reference
(tag or digest)
The summary data formats contain the following data points:
- Unique IP address count
- Pulls by tag count
- Pulls by digest count
- Version check count
#### Raw data
In your raw data CSV you will have access to the data points listed below. You can request raw data for a complete week (Monday through Sunday) or for a complete month (available on the first day of the following month). **Note:** each action is represented as a single row.
- Type (industry)
- Host (cloud provider)
- Country (geolocation)
- Timestamp
- Namespace
- Repository
- Reference (digest is always included, tag is provided when available)
- HTTP request method
- Action, one of the following:
- Pull by tag
- Pull by digest
- Version check
- User-Agent
servers:
- url: https://hub.docker.com/api/publisher/analytics/v1
security:
- HubAuth: []
features.openapi:
schemaDefinitionsTagName: Schemas
tags:
- name: authentication
x-displayName: Authentication Endpoints
- name: namespaces
x-displayName: Namespace data
- name: discovery
x-displayName: Discovery
- name: responseDataFile
x-displayName: ResponseDataFile
description: |
<SchemaDefinition schemaRef="#/components/schemas/ResponseDataFile" />
- name: yearModel
x-displayName: Year Data Model
description: |
<SchemaDefinition schemaRef="#/components/schemas/YearModel" />
- name: monthModel
x-displayName: Month Data Model
description: |
<SchemaDefinition schemaRef="#/components/schemas/MonthModel" />
- name: weekModel
x-displayName: Week Data Model
description: |
<SchemaDefinition schemaRef="#/components/schemas/WeekModel" />
x-tagGroups:
- name: API
tags:
- authentication
- discovery
- namespaces
- name: Models
tags:
- responseDataFile
- yearModel
- monthModel
- weekModel
paths:
/v2/users/login:
security: []
servers:
- url: https://hub.docker.com
post:
security: []
tags:
- authentication
summary: Create an authentication token
operationId: PostUsersLogin
description: |
Creates and returns a bearer token in JWT format that you can use to
authenticate with Docker Hub APIs.
The returned token is used in the HTTP Authorization header like `Authorization: Bearer {TOKEN}`.
Most Docker Hub APIs require this token either to consume or to get detailed information. For example, to list images in a private repository.
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/UsersLoginRequest"
description: Login details.
required: true
responses:
200:
description: Authentication successful
content:
application/json:
schema:
$ref: "#/components/schemas/PostUsersLoginSuccessResponse"
401:
description: Authentication failed or second factor required
content:
application/json:
schema:
$ref: "#/components/schemas/PostUsersLoginErrorResponse"
/v2/users/2fa-login:
security: []
servers:
- url: https://hub.docker.com
post:
security: []
tags:
- authentication
summary: Second factor authentication
operationId: PostUsers2FALogin
description: |
When a user has 2FA enabled, this is the second call to perform after
`/v2/users/login` call.
Creates and returns a bearer token in JWT format that you can use to authenticate with Docker Hub APIs.
The returned token is used in the HTTP Authorization header like `Authorization: Bearer {TOKEN}`.
Most Docker Hub APIs require this token either to consume or to get detailed information. For example, to list images in a private repository.
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/Users2FALoginRequest"
description: Login details.
required: true
responses:
200:
description: Authentication successful
content:
application/json:
schema:
$ref: "#/components/schemas/PostUsersLoginSuccessResponse"
401:
description: Authentication failed or second factor required
content:
application/json:
schema:
$ref: "#/components/schemas/PostUsers2FALoginErrorResponse"
/:
get:
tags: [discovery]
summary: Get namespaces and repos
description: Gets a list of your namespaces and repos which have data available.
operationId: getNamespaces
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/NamespaceData'
/namespaces:
get:
tags: [discovery]
summary: Get user's namespaces
description: Get metadata associated with the namespaces the user has access to, including extra repos associated with the namespaces.
operationId: getUserNamespaces
responses:
'200':
description: Success
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/NamespaceMetadata'
'401':
description: Authentication failed or second factor required
/namespaces/{namespace}:
get:
tags: [discovery]
summary: Get namespace
description: Gets metadata associated with specified namespace, including extra repos associated with the namespace.
operationId: getNamespace
parameters:
- in: path
name: namespace
schema:
type: string
required: true
description: Namespace to fetch data for
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/NamespaceMetadata'
/namespaces/{namespace}/pulls:
get:
tags: [namespaces]
summary: Get pull data
description: Gets pulls for the given namespace.
operationId: getNamespacePulls
parameters:
- in: path
name: namespace
schema:
type: string
required: true
description: Namespace to fetch data for
- in: query
name: timespan
schema:
$ref: '#/components/schemas/TimespanType'
required: false
description: Timespan type for fetching data
- in: query
name: period
schema:
$ref: '#/components/schemas/PeriodType'
required: false
description: Relative period of the period to fetch data
- in: query
name: group
schema:
$ref: '#/components/schemas/GroupType'
required: false
description: Field to group the data by
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/PullData'
'404':
description: Not found - namespace doesn't exist or user does not have permission to access it
/namespaces/{namespace}/repos/{repo}/pulls:
get:
tags: [namespaces]
summary: Get pull data
description: Gets pulls for the given repo.
operationId: getRepoPulls
parameters:
- in: path
name: namespace
schema:
type: string
required: true
description: Namespace to fetch data for
- in: path
name: repo
schema:
type: string
required: true
description: Repository to fetch data for
- in: query
name: timespan
schema:
$ref: '#/components/schemas/TimespanType'
required: false
description: Timespan type for fetching data
- in: query
name: period
schema:
$ref: '#/components/schemas/PeriodType'
required: false
description: Relative period of the period to fetch data
- in: query
name: group
schema:
$ref: '#/components/schemas/GroupType'
required: false
description: Field to group the data by
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/PullData'
'404':
description: Not found - repo doesn't exist or user does not have permission to access it
/namespaces/{namespace}/pulls/exports/years:
get:
tags: [namespaces]
summary: Get years with data
description: Gets a list of years that have data for the given namespace.
operationId: getNamespaceYears
parameters:
- in: path
name: namespace
schema:
type: string
required: true
description: Namespace to fetch data for
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/YearData'
/namespaces/{namespace}/pulls/exports/years/{year}/{timespantype}:
get:
tags: [namespaces]
summary: Get timespans with data
description: Gets a list of timespans of the given type that have data for the given namespace and year.
operationId: getNamespaceTimespans
parameters:
- in: path
name: namespace
schema:
type: string
required: true
description: Namespace to fetch data for
- in: path
name: year
schema:
type: integer
required: true
description: Year to fetch data for
- in: path
name: timespantype
schema:
$ref: '#/components/schemas/TimespanType'
required: true
description: Type of timespan to fetch data for
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/TimespanData'
/namespaces/{namespace}/pulls/exports/years/{year}/{timespantype}/{timespan}:
get:
tags: [namespaces]
summary: Get namespace metadata for timespan
description: Gets info about data for the given namespace and timespan.
operationId: getNamespaceTimespanMetadata
parameters:
- in: path
name: namespace
schema:
type: string
required: true
description: Namespace to fetch data for
- in: path
name: year
schema:
type: integer
required: true
description: Year to fetch data for
- in: path
name: timespantype
schema:
$ref: '#/components/schemas/TimespanType'
required: true
description: Type of timespan to fetch data for
- in: path
name: timespan
schema:
type: integer
required: true
description: Timespan to fetch data for
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/TimespanModel'
'404':
description: Not Found
/namespaces/{namespace}/pulls/exports/years/{year}/{timespantype}/{timespan}/{dataview}:
get:
tags: [namespaces]
summary: Get namespace data for timespan
description: Gets a list of URLs that can be used to download the pull data for the given namespace and timespan.
operationId: getNamespaceDataByTimespan
parameters:
- in: path
name: namespace
schema:
type: string
required: true
description: Namespace to fetch data for
- in: path
name: year
schema:
type: integer
required: true
description: Year to fetch data for
- in: path
name: timespantype
schema:
$ref: '#/components/schemas/TimespanType'
required: true
description: Type of timespan to fetch data for
- in: path
name: timespan
schema:
type: integer
required: true
description: Timespan to fetch data for
- in: path
name: dataview
schema:
$ref: '#/components/schemas/DataviewType'
required: true
description: Type of data to fetch
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/ResponseData'
/repos/pulls:
get:
tags: [namespaces]
summary: Get pull data for multiple repos
description: Gets pull for the given repos.
operationId: getManyReposPulls
parameters:
- in: query
name: repos
schema:
type: array
items:
type: string
required: true
description: Repositories to fetch data for (maximum of 50 repositories per request).
- in: query
name: timespan
schema:
$ref: '#/components/schemas/TimespanType'
required: false
description: Timespan type for fetching data
- in: query
name: period
schema:
$ref: '#/components/schemas/PeriodType'
required: false
description: Relative period of the period to fetch data
- in: query
name: group
schema:
$ref: '#/components/schemas/GroupType'
required: false
description: Field to group the data by
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/ReposPullData'
components:
schemas:
UsersLoginRequest:
description: User login details
type: object
required:
- username
- password
properties:
username:
description: The username of the Docker Hub account to authenticate with.
type: string
example: myusername
password:
description:
The password or personal access token (PAT) of the Docker Hub
account to authenticate with.
type: string
example: hunter2
PostUsersLoginSuccessResponse:
description: successful user login response
type: object
properties:
token:
description: |
Created authentication token.
This token can be used in the HTTP Authorization header as a JWT to authenticate with the Docker Hub APIs.
type: string
example: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
nullable: false
PostUsersLoginErrorResponse:
description: failed user login response or second factor required
type: object
required:
- detail
properties:
detail:
description: Description of the error.
type: string
example: Incorrect authentication credentials
nullable: false
login_2fa_token:
description:
Short-lived token to be used on `/v2/users/2fa-login` to
complete the authentication. This field is present only if 2FA is
enabled.
type: string
example: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
nullable: true
Users2FALoginRequest:
description: Second factor user login details
type: object
required:
- login_2fa_token
- code
properties:
login_2fa_token:
description: The intermediate 2FA token returned from `/v2/users/login` API.
type: string
example: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
code:
description:
The Time-based One-Time Password of the Docker Hub account to
authenticate with.
type: string
example: 123456
PostUsers2FALoginErrorResponse:
description: failed second factor login response.
type: object
properties:
detail:
description: Description of the error.
type: string
example: Incorrect authentication credentials
nullable: false
ResponseData:
properties:
data:
type: array
description: |
List of urls to download the data. When the data is large, the data will be split into multiple files.
items:
$ref: '#/components/schemas/ResponseDataFile'
ResponseDataFile:
properties:
url:
type: string
size:
type: integer
format: int64
NamespaceData:
properties:
namespaces:
type: array
items:
type: string
NamespaceMetadata:
properties:
namespace:
type: string
extraRepos:
type: array
items:
type: string
datasets:
type: array
items:
$ref: '#/components/schemas/DatasetModel'
DatasetModel:
properties:
name:
$ref: '#/components/schemas/DatasetType'
views:
type: array
items:
$ref: '#/components/schemas/DataviewType'
timespans:
type: array
items:
$ref: '#/components/schemas/TimespanType'
PullData:
properties:
pulls:
type: array
items:
$ref: '#/components/schemas/PullModel'
ReposPullData:
properties:
repos:
type: object
additionalProperties:
$ref: '#/components/schemas/PullData'
PullModel:
properties:
start:
type: string
end:
type: string
repo:
type: string
namespace:
type: string
pullCount:
type: integer
ipCount:
type: integer
country:
type: string
YearData:
properties:
years:
type: array
items:
$ref: '#/components/schemas/YearModel'
YearModel:
properties:
year:
type: integer
MonthData:
properties:
months:
type: array
items:
$ref: '#/components/schemas/MonthModel'
MonthModel:
properties:
month:
type: integer
WeekData:
properties:
weeks:
type: array
items:
$ref: '#/components/schemas/WeekModel'
WeekModel:
properties:
week:
type: integer
TimespanType:
type: string
enum: [months,weeks]
PeriodType:
type: string
enum: [last-2-months,last-3-months,last-6-months,last-12-months]
DataviewType:
type: string
enum: [raw,summary,repo-summary,namespace-summary]
DatasetType:
type: string
enum: [pulls]
TimespanModel:
oneOf:
- $ref: '#/components/schemas/MonthModel'
- $ref: '#/components/schemas/WeekModel'
TimespanData:
oneOf:
- $ref: '#/components/schemas/MonthData'
- $ref: '#/components/schemas/WeekData'
GroupType:
type: string
enum: [repo,namespace]
securitySchemes:
HubAuth:
type: https
scheme: bearer
bearerFormat: JWT
description: |
JWT Bearer Authentication is required to access the Docker DVP Data API.
This authentication documentation is duplicated from the [Hub API Authentication docs](https://docs.docker.com/reference/api/hub/#tag/authentication)
x-displayName: Docker Hub Authentication

View File

@ -0,0 +1,43 @@
---
description: Docker Hub API changelog
title: Docker Hub API changelog
linkTitle: Changelog
keywords: docker hub, hub, whats new, release notes, api, changelog
weight: 2
toc_min: 1
toc_max: 2
aliases:
- /reference/api/hub/latest-changelog/
---
Here you can learn about the latest changes, new features, bug fixes, and known
issues for Docker Service APIs.
---
## 2025-06-27
### New
- Add [List repositories](/reference/api/hub/latest/#tag/repositories/operation/listNamespaceRepositories) endpoints for a given `namespace`.
### Deprecations
- [Deprecate /v2/repositories/{namespace}](/reference/api/hub/deprecated/#deprecate-legacy-listnamespacerepositories)
---
## 2025-03-25
### New
- Add [APIs](/reference/api/hub/latest/#tag/org-access-tokens) for organization access token (OATs) management.
---
## 2025-03-18
### New
- Add access to [audit logs](/reference/api/hub/latest/#tag/audit-logs) for org
access tokens.

View File

@ -1,15 +1,54 @@
---
description: Docker Hub API v1 (deprecated)
keywords: kitematic, deprecated
title: Docker Hub API v1 (deprecated)
description: Deprecated Docker Hub API endpoints
keywords: deprecated
title: Deprecated Docker Hub API endpoints
linkTitle: Deprecated
weight: 3
aliases:
- /docker-hub/api/deprecated/
- /docker-hub/api/deprecated/
---
> **Deprecated**
>
> Docker Hub API v1 has been deprecated. Please use Docker Hub API v2 instead.
This page provides an overview of endpoints that are deprecated in Docker Hub API.
## Endpoint deprecation policy
As changes are made to Docker there may be times when existing endpoints need to be removed or replaced with newer endpoints. Before an existing endpoint is removed it is labeled as "deprecated" within the documentation. After some time it may be removed.
## Deprecated endpoints
The following table provides an overview of the current status of deprecated endpoints:
**Deprecated**: the endpoint is marked "deprecated" and should no longer be used.
The endpoint may be removed, disabled, or change behavior in a future release.
**Removed**: the endpoint was removed, disabled, or hidden.
---
| Status | Feature | Date |
|------------|---------------------------------------------------------------------------------------|------------|
| Deprecated | [Deprecate /v2/repositories/{namespace}](#deprecate-legacy-listnamespacerepositories) | 2025-06-27 |
| | [Create deprecation log table](#create-deprecation-log-table) | 2025-06-27 |
| Removed | [Docker Hub API v1 deprecation](#docker-hub-api-v1-deprecation) | 2022-08-23 |
---
### Deprecate legacy ListNamespaceRepositories
Deprecate undocumented endpoint `GET /v2/repositories/{namespace}` replaced by [List repositories](/reference/api/hub/latest/#tag/repositories/operation/listNamespaceRepositories).
---
### Create deprecation log table
Reformat page
---
### Docker Hub API v1 deprecation
Docker Hub API v1 has been deprecated. Use Docker Hub API v2 instead.
The following API routes within the v1 path will no longer work and will return a 410 status code:
* `/v1/repositories/{name}/images`
@ -21,11 +60,11 @@ The following API routes within the v1 path will no longer work and will return
If you want to continue using the Docker Hub API in your current applications, update your clients to use v2 endpoints.
| **OLD** | **NEW** |
|----------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [/v1/repositories/{name}/images](https://github.com/moby/moby/blob/v1.3.0/docs/sources/reference/api/docker-io_api.md#list-user-repository-images) | [/v2/namespaces/{namespace}/repositories/{repository}/images](/reference/api/hub/latest.md#tag/images/operation/GetNamespacesRepositoriesImages) |
| [/v1/repositories/{namespace}/{name}/images](https://github.com/moby/moby/blob/v1.3.0/docs/sources/reference/api/docker-io_api.md#list-user-repository-images) | [/v2/namespaces/{namespace}/repositories/{repository}/images](/reference/api/hub/latest.md#tag/images/operation/GetNamespacesRepositoriesImages) |
| [/v1/repositories/{name}/tags](https://github.com/moby/moby/blob/v1.8.3/docs/reference/api/registry_api.md#list-repository-tags) | [/v2/namespaces/{namespace}/repositories/{repository}/tags](/reference/api/hub/latest.md#tag/repositories/paths/~1v2~1namespaces~1%7Bnamespace%7D~1repositories~1%7Brepository%7D~1tags/get) |
| [/v1/repositories/{namespace}/{name}/tags](https://github.com/moby/moby/blob/v1.8.3/docs/reference/api/registry_api.md#list-repository-tags) | [/v2/namespaces/{namespace}/repositories/{repository}/tags](/reference/api/hub/latest.md#tag/repositories/paths/~1v2~1namespaces~1%7Bnamespace%7D~1repositories~1%7Brepository%7D~1tags/get) |
| [/v1/repositories/{namespace}/{name}/tags](https://github.com/moby/moby/blob/v1.8.3/docs/reference/api/registry_api.md#get-image-id-for-a-particular-tag) | [/v2/namespaces/{namespace}/repositories/{repository}/tags/{tag}](/reference/api/hub/latest.md#tag/repositories/paths/~1v2~1namespaces~1%7Bnamespace%7D~1repositories~1%7Brepository%7D~1tags~1%7Btag%7D/get) |
| [/v1/repositories/{namespace}/{name}/tags/{tag_name}](https://github.com/moby/moby/blob/v1.8.3/docs/reference/api/registry_api.md#get-image-id-for-a-particular-tag) | [/v2/namespaces/{namespace}/repositories/{repository}/tags/{tag}](/reference/api/hub/latest.md#tag/repositories/paths/~1v2~1namespaces~1%7Bnamespace%7D~1repositories~1%7Brepository%7D~1tags~1%7Btag%7D/get) |
| **OLD** | **NEW** |
|----------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------|
| [/v1/repositories/{name}/tags](https://github.com/moby/moby/blob/v1.8.3/docs/reference/api/registry_api.md#list-repository-tags) | [/v2/namespaces/{namespace}/repositories/{repository}/tags](/reference/api/hub/latest/#tag/repositories/operation/ListRepositoryTags) |
| [/v1/repositories/{namespace}/{name}/tags](https://github.com/moby/moby/blob/v1.8.3/docs/reference/api/registry_api.md#list-repository-tags) | [/v2/namespaces/{namespace}/repositories/{repository}/tags](/reference/api/hub/latest.md/#tag/repositories/operation/ListRepositoryTags) |
| [/v1/repositories/{namespace}/{name}/tags](https://github.com/moby/moby/blob/v1.8.3/docs/reference/api/registry_api.md#get-image-id-for-a-particular-tag) | [/v2/namespaces/{namespace}/repositories/{repository}/tags/{tag}](/reference/api/hub/latest/#tag/repositories/operation/GetRepositoryTag) |
| [/v1/repositories/{namespace}/{name}/tags/{tag_name}](https://github.com/moby/moby/blob/v1.8.3/docs/reference/api/registry_api.md#get-image-id-for-a-particular-tag) | [/v2/namespaces/{namespace}/repositories/{repository}/tags/{tag}](/reference/api/hub/latest/#tag/repositories/operation/GetRepositoryTag) |
---

View File

@ -1,696 +1,5 @@
openapi: 3.0.0
info:
title: DVP Data API
version: 1.0.0
x-logo:
url: https://docs.docker.com/assets/images/logo-docker-main.png
href: /reference
description: |
The Docker DVP Data API allows [Docker Verified Publishers](https://docs.docker.com/docker-hub/publish/) to view image pull analytics data for their namespaces. Analytics data can be retrieved as raw data, or in a summary format.
#### Summary data
In your summary data CSV, you will have access to the data points listed below. You can request summary data for a complete week (Monday through Sunday) or for a complete month (available on the first day of the following month).
There are two levels of summary data:
- Repository-level, a summary of every namespace and repository
- Tag- or digest-level, a summary of every namespace, repository, and reference
(tag or digest)
The summary data formats contain the following data points:
- Unique IP address count
- Pulls by tag count
- Pulls by digest count
- Version check count
#### Raw data
In your raw data CSV you will have access to the data points listed below. You can request raw data for a complete week (Monday through Sunday) or for a complete month (available on the first day of the following month). **Note:** each action is represented as a single row.
- Type (industry)
- Host (cloud provider)
- Country (geolocation)
- Timestamp
- Namespace
- Repository
- Reference (digest is always included, tag is provided when available)
- HTTP request method
- Action, one of the following:
- Pull by tag
- Pull by digest
- Version check
- User-Agent
servers:
- url: https://hub.docker.com/api/publisher/analytics/v1
security:
- HubAuth: []
features.openapi:
schemaDefinitionsTagName: Schemas
tags:
- name: authentication
x-displayName: Authentication Endpoints
- name: namespaces
x-displayName: Namespace data
- name: discovery
x-displayName: Discovery
- name: responseDataFile
x-displayName: ResponseDataFile
description: |
<SchemaDefinition schemaRef="#/components/schemas/ResponseDataFile" />
- name: yearModel
x-displayName: Year Data Model
description: |
<SchemaDefinition schemaRef="#/components/schemas/YearModel" />
- name: monthModel
x-displayName: Month Data Model
description: |
<SchemaDefinition schemaRef="#/components/schemas/MonthModel" />
- name: weekModel
x-displayName: Week Data Model
description: |
<SchemaDefinition schemaRef="#/components/schemas/WeekModel" />
x-tagGroups:
- name: API
tags:
- authentication
- discovery
- namespaces
- name: Models
tags:
- responseDataFile
- yearModel
- monthModel
- weekModel
paths:
/v2/users/login:
security: []
servers:
- url: https://hub.docker.com
post:
security: []
tags:
- authentication
summary: Create an authentication token
operationId: PostUsersLogin
description: |
Creates and returns a bearer token in JWT format that you can use to
authenticate with Docker Hub APIs.
The returned token is used in the HTTP Authorization header like `Authorization: Bearer {TOKEN}`.
Most Docker Hub APIs require this token either to consume or to get detailed information. For example, to list images in a private repository.
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/UsersLoginRequest"
description: Login details.
required: true
responses:
200:
description: Authentication successful
content:
application/json:
schema:
$ref: "#/components/schemas/PostUsersLoginSuccessResponse"
401:
description: Authentication failed or second factor required
content:
application/json:
schema:
$ref: "#/components/schemas/PostUsersLoginErrorResponse"
/v2/users/2fa-login:
security: []
servers:
- url: https://hub.docker.com
post:
security: []
tags:
- authentication
summary: Second factor authentication
operationId: PostUsers2FALogin
description: |
When a user has 2FA enabled, this is the second call to perform after
`/v2/users/login` call.
Creates and returns a bearer token in JWT format that you can use to authenticate with Docker Hub APIs.
The returned token is used in the HTTP Authorization header like `Authorization: Bearer {TOKEN}`.
Most Docker Hub APIs require this token either to consume or to get detailed information. For example, to list images in a private repository.
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/Users2FALoginRequest"
description: Login details.
required: true
responses:
200:
description: Authentication successful
content:
application/json:
schema:
$ref: "#/components/schemas/PostUsersLoginSuccessResponse"
401:
description: Authentication failed or second factor required
content:
application/json:
schema:
$ref: "#/components/schemas/PostUsers2FALoginErrorResponse"
/:
get:
tags: [discovery]
summary: Get namespaces and repos
description: Gets a list of your namespaces and repos which have data available.
operationId: getNamespaces
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/NamespaceData'
/namespaces:
get:
tags: [discovery]
summary: Get user's namespaces
description: Get metadata associated with the namespaces the user has access to, including extra repos associated with the namespaces.
operationId: getUserNamespaces
responses:
'200':
description: Success
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/NamespaceMetadata'
'401':
description: Authentication failed or second factor required
/namespaces/{namespace}:
get:
tags: [discovery]
summary: Get namespace
description: Gets metadata associated with specified namespace, including extra repos associated with the namespace.
operationId: getNamespace
parameters:
- in: path
name: namespace
schema:
type: string
required: true
description: Namespace to fetch data for
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/NamespaceMetadata'
/namespaces/{namespace}/pulls:
get:
tags: [namespaces]
summary: Get pull data
description: Gets pulls for the given namespace.
operationId: getNamespacePulls
parameters:
- in: path
name: namespace
schema:
type: string
required: true
description: Namespace to fetch data for
- in: query
name: timespan
schema:
$ref: '#/components/schemas/TimespanType'
required: false
description: Timespan type for fetching data
- in: query
name: period
schema:
$ref: '#/components/schemas/PeriodType'
required: false
description: Relative period of the period to fetch data
- in: query
name: group
schema:
$ref: '#/components/schemas/GroupType'
required: false
description: Field to group the data by
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/PullData'
'404':
description: Not found - namespace doesn't exist or user does not have permission to access it
/namespaces/{namespace}/repos/{repo}/pulls:
get:
tags: [namespaces]
summary: Get pull data
description: Gets pulls for the given repo.
operationId: getRepoPulls
parameters:
- in: path
name: namespace
schema:
type: string
required: true
description: Namespace to fetch data for
- in: path
name: repo
schema:
type: string
required: true
description: Repository to fetch data for
- in: query
name: timespan
schema:
$ref: '#/components/schemas/TimespanType'
required: false
description: Timespan type for fetching data
- in: query
name: period
schema:
$ref: '#/components/schemas/PeriodType'
required: false
description: Relative period of the period to fetch data
- in: query
name: group
schema:
$ref: '#/components/schemas/GroupType'
required: false
description: Field to group the data by
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/PullData'
'404':
description: Not found - repo doesn't exist or user does not have permission to access it
/namespaces/{namespace}/pulls/exports/years:
get:
tags: [namespaces]
summary: Get years with data
description: Gets a list of years that have data for the given namespace.
operationId: getNamespaceYears
parameters:
- in: path
name: namespace
schema:
type: string
required: true
description: Namespace to fetch data for
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/YearData'
/namespaces/{namespace}/pulls/exports/years/{year}/{timespantype}:
get:
tags: [namespaces]
summary: Get timespans with data
description: Gets a list of timespans of the given type that have data for the given namespace and year.
operationId: getNamespaceTimespans
parameters:
- in: path
name: namespace
schema:
type: string
required: true
description: Namespace to fetch data for
- in: path
name: year
schema:
type: integer
required: true
description: Year to fetch data for
- in: path
name: timespantype
schema:
$ref: '#/components/schemas/TimespanType'
required: true
description: Type of timespan to fetch data for
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/TimespanData'
/namespaces/{namespace}/pulls/exports/years/{year}/{timespantype}/{timespan}:
get:
tags: [namespaces]
summary: Get namespace metadata for timespan
description: Gets info about data for the given namespace and timespan.
operationId: getNamespaceTimespanMetadata
parameters:
- in: path
name: namespace
schema:
type: string
required: true
description: Namespace to fetch data for
- in: path
name: year
schema:
type: integer
required: true
description: Year to fetch data for
- in: path
name: timespantype
schema:
$ref: '#/components/schemas/TimespanType'
required: true
description: Type of timespan to fetch data for
- in: path
name: timespan
schema:
type: integer
required: true
description: Timespan to fetch data for
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/TimespanModel'
'404':
description: Not Found
/namespaces/{namespace}/pulls/exports/years/{year}/{timespantype}/{timespan}/{dataview}:
get:
tags: [namespaces]
summary: Get namespace data for timespan
description: Gets a list of URLs that can be used to download the pull data for the given namespace and timespan.
operationId: getNamespaceDataByTimespan
parameters:
- in: path
name: namespace
schema:
type: string
required: true
description: Namespace to fetch data for
- in: path
name: year
schema:
type: integer
required: true
description: Year to fetch data for
- in: path
name: timespantype
schema:
$ref: '#/components/schemas/TimespanType'
required: true
description: Type of timespan to fetch data for
- in: path
name: timespan
schema:
type: integer
required: true
description: Timespan to fetch data for
- in: path
name: dataview
schema:
$ref: '#/components/schemas/DataviewType'
required: true
description: Type of data to fetch
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/ResponseData'
/repos/pulls:
get:
tags: [namespaces]
summary: Get pull data for multiple repos
description: Gets pull for the given repos.
operationId: getManyReposPulls
parameters:
- in: query
name: repos
schema:
type: array
items:
type: string
required: true
description: Repositories to fetch data for (maximum of 50 repositories per request).
- in: query
name: timespan
schema:
$ref: '#/components/schemas/TimespanType'
required: false
description: Timespan type for fetching data
- in: query
name: period
schema:
$ref: '#/components/schemas/PeriodType'
required: false
description: Relative period of the period to fetch data
- in: query
name: group
schema:
$ref: '#/components/schemas/GroupType'
required: false
description: Field to group the data by
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/ReposPullData'
components:
schemas:
UsersLoginRequest:
description: User login details
type: object
required:
- username
- password
properties:
username:
description: The username of the Docker Hub account to authenticate with.
type: string
example: myusername
password:
description:
The password or personal access token (PAT) of the Docker Hub
account to authenticate with.
type: string
example: hunter2
PostUsersLoginSuccessResponse:
description: successful user login response
type: object
properties:
token:
description: |
Created authentication token.
This token can be used in the HTTP Authorization header as a JWT to authenticate with the Docker Hub APIs.
type: string
example: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
nullable: false
PostUsersLoginErrorResponse:
description: failed user login response or second factor required
type: object
required:
- detail
properties:
detail:
description: Description of the error.
type: string
example: Incorrect authentication credentials
nullable: false
login_2fa_token:
description:
Short-lived token to be used on `/v2/users/2fa-login` to
complete the authentication. This field is present only if 2FA is
enabled.
type: string
example: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
nullable: true
Users2FALoginRequest:
description: Second factor user login details
type: object
required:
- login_2fa_token
- code
properties:
login_2fa_token:
description: The intermediate 2FA token returned from `/v2/users/login` API.
type: string
example: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
code:
description:
The Time-based One-Time Password of the Docker Hub account to
authenticate with.
type: string
example: 123456
PostUsers2FALoginErrorResponse:
description: failed second factor login response.
type: object
properties:
detail:
description: Description of the error.
type: string
example: Incorrect authentication credentials
nullable: false
ResponseData:
properties:
data:
type: array
description: |
List of urls to download the data. When the data is large, the data will be split into multiple files.
items:
$ref: '#/components/schemas/ResponseDataFile'
ResponseDataFile:
properties:
url:
type: string
size:
type: integer
format: int64
NamespaceData:
properties:
namespaces:
type: array
items:
type: string
NamespaceMetadata:
properties:
namespace:
type: string
extraRepos:
type: array
items:
type: string
datasets:
type: array
items:
$ref: '#/components/schemas/DatasetModel'
DatasetModel:
properties:
name:
$ref: '#/components/schemas/DatasetType'
views:
type: array
items:
$ref: '#/components/schemas/DataviewType'
timespans:
type: array
items:
$ref: '#/components/schemas/TimespanType'
PullData:
properties:
pulls:
type: array
items:
$ref: '#/components/schemas/PullModel'
ReposPullData:
properties:
repos:
type: object
additionalProperties:
$ref: '#/components/schemas/PullData'
PullModel:
properties:
start:
type: string
end:
type: string
repo:
type: string
namespace:
type: string
pullCount:
type: integer
ipCount:
type: integer
country:
type: string
YearData:
properties:
years:
type: array
items:
$ref: '#/components/schemas/YearModel'
YearModel:
properties:
year:
type: integer
MonthData:
properties:
months:
type: array
items:
$ref: '#/components/schemas/MonthModel'
MonthModel:
properties:
month:
type: integer
WeekData:
properties:
weeks:
type: array
items:
$ref: '#/components/schemas/WeekModel'
WeekModel:
properties:
week:
type: integer
TimespanType:
type: string
enum: [months,weeks]
PeriodType:
type: string
enum: [last-2-months,last-3-months,last-6-months,last-12-months]
DataviewType:
type: string
enum: [raw,summary,repo-summary,namespace-summary]
DatasetType:
type: string
enum: [pulls]
TimespanModel:
oneOf:
- $ref: '#/components/schemas/MonthModel'
- $ref: '#/components/schemas/WeekModel'
TimespanData:
oneOf:
- $ref: '#/components/schemas/MonthData'
- $ref: '#/components/schemas/WeekData'
GroupType:
type: string
enum: [repo,namespace]
securitySchemes:
HubAuth:
type: https
scheme: bearer
bearerFormat: JWT
description: |
JWT Bearer Authentication is required to access the Docker DVP Data API.
This authentication documentation is duplicated from the [Hub API Authentication docs](https://docs.docker.com/reference/api/hub/#tag/authentication)
x-displayName: Docker Hub Authentication
---
outputs:
- redirect
url: /reference/api/dvp/latest.yaml
---

View File

@ -1,25 +0,0 @@
---
description: Docker Hub API Changelog
keywords: hub, api, changelog
title: Docker Hub API Changelog
keywords: docker hub, whats new, release notes, api, changelog
weight: 2
toc_min: 1
toc_max: 2
---
Here you can learn about the latest changes, new features, bug fixes, and known
issues for Docker Service APIs.
## 2025-03-25
### New
- Add [APIs](/reference/api/hub/latest/#tag/org-access-tokens) for organization access token (OATs) management.
## 2025-03-18
### New
- Add access to [audit logs](/reference/api/hub/latest/#tag/audit-logs) for org
access tokens.

View File

@ -1,7 +1,7 @@
---
layout: api
description: Reference documentation and OpenAPI specification for the Docker Hub API.
description: Reference documentation and Swagger (OpenAPI) specification for the Docker Hub API.
title: Docker Hub API reference
linkTitle: Docker Hub API
linkTitle: Latest
weight: 1
---

View File

@ -23,7 +23,7 @@ tags:
- name: changelog
x-displayName: Changelog
description: |
See the [Changelog](/reference/api/hub/latest-changelog) for a summary of changes across Docker Hub API versions.
See the [Changelog](/reference/api/hub/changelog) for a summary of changes across Docker Hub API versions.
- name: resources
x-displayName: Resources
description: |
@ -823,6 +823,7 @@ paths:
- $ref: "#/components/parameters/namespace"
- $ref: "#/components/parameters/repository"
get:
operationId: ListRepositoryTags
summary: List repository tags
tags:
- repositories
@ -867,6 +868,7 @@ paths:
- $ref: "#/components/parameters/repository"
- $ref: "#/components/parameters/tag"
get:
operationId: GetRepositoryTag
summary: Read repository tag
tags:
- repositories
@ -926,6 +928,151 @@ paths:
$ref: "#/components/responses/forbidden"
"404":
$ref: "#/components/responses/NotFound"
/v2/namespaces/{namespace}/repositories:
parameters:
- $ref: "#/components/parameters/namespace"
get:
operationId: listNamespaceRepositories
summary: List repositories in a namespace
description: |
Returns a list of repositories within the specified namespace (organization or user).
Public repositories are accessible to everyone, while private repositories require appropriate authentication and permissions.
tags:
- repositories
security:
- bearerAuth: [ ]
- { } # Allow anonymous access for public repositories
parameters:
- in: query
name: page
required: false
schema:
type: integer
minimum: 1
default: 1
description: Page number to get. Defaults to 1.
- in: query
name: page_size
required: false
schema:
type: integer
minimum: 1
maximum: 1000
default: 10
description: Number of repositories to get per page. Defaults to 10. Max of 1000.
- in: query
name: name
required: false
schema:
type: string
description: Filter repositories by name (partial match).
- in: query
name: ordering
required: false
schema:
type: string
enum:
- name
- -name
- last_updated
- -last_updated
- pull_count
- -pull_count
description: |
Order repositories by the specified field. Prefix with '-' for descending order.
Available options:
- `name` / `-name`: Repository name (ascending/descending)
- `last_updated` / `-last_updated`: Last update time (ascending/descending)
- `pull_count` / `-pull_count`: Number of pulls (ascending/descending)
responses:
"200":
description: List of repositories
content:
application/json:
schema:
$ref: "#/components/schemas/list_repositories_response"
examples:
repositories_list:
value:
count: 287
next: "https://hub.docker.com/v2/namespaces/docker/repositories?page=2&page_size=2"
previous: null
results:
- name: "highland_builder"
namespace: "docker"
repository_type: "image"
status: 1
status_description: "active"
description: "Image for performing Docker build requests"
is_private: false
star_count: 7
pull_count: 15722123
last_updated: "2023-06-20T10:44:45.459826Z"
last_modified: "2024-10-16T13:48:34.145251Z"
date_registered: "2015-05-19T21:13:35.937763Z"
affiliation: ""
media_types:
- "application/octet-stream"
- "application/vnd.docker.container.image.v1+json"
- "application/vnd.docker.distribution.manifest.v1+prettyjws"
content_types:
- "unrecognized"
- "image"
categories:
- name: "Languages & frameworks"
slug: "languages-and-frameworks"
- name: "Integration & delivery"
slug: "integration-and-delivery"
- name: "Operating systems"
slug: "operating-systems"
storage_size: 488723114800
- name: "whalesay"
namespace: "docker"
repository_type: null
status: 1
status_description: "active"
description: "An image for use in the Docker demo tutorial"
is_private: false
star_count: 757
pull_count: 130737682
last_updated: "2015-06-19T19:06:27.388123Z"
last_modified: "2024-10-16T13:48:34.145251Z"
date_registered: "2015-06-09T18:16:36.527329Z"
affiliation: ""
media_types:
- "application/vnd.docker.distribution.manifest.v1+prettyjws"
content_types:
- "image"
categories:
- name: "Languages & frameworks"
slug: "languages-and-frameworks"
- name: "Integration & delivery"
slug: "integration-and-delivery"
storage_size: 103666708
"400":
description: Bad Request - Invalid request parameters
content:
application/json:
schema:
$ref: "#/components/schemas/error"
examples:
invalid_ordering:
summary: Invalid ordering value
value:
fields:
ordering: [ "Invalid ordering value. Must be one of: name, -name, last_updated, -last_updated, pull_count, -pull_count" ]
text: "Invalid ordering value"
"401":
$ref: "#/components/responses/unauthorized"
"403":
$ref: "#/components/responses/forbidden"
"404":
description: Page not found - occurs when requesting a page number `>1` that exceeds the available results
content:
application/json:
schema:
$ref: "#/components/schemas/error"
/v2/orgs/{org_name}/members:
parameters:
@ -2008,6 +2155,129 @@ components:
schema:
$ref: "#/components/schemas/scim_user"
schemas:
repository_list_entry:
type: object
properties:
name:
type: string
description: Name of the repository
example: "hello-world"
namespace:
type: string
description: Namespace (organization or username) that owns the repository
example: "docker"
repository_type:
type: string
description: Type of repository
enum:
- image
- plugin
- null
example: "image"
nullable: true
status:
type: integer
description: Repository status code
example: 1
status_description:
type: string
description: Human-readable repository status
enum:
- active
- inactive
example: "active"
description:
type: string
description: Repository description
nullable: true
example: "Hello World! (an example of minimal Dockerization)"
is_private:
type: boolean
description: Whether the repository is private
example: false
star_count:
type: integer
description: Number of users who starred this repository
minimum: 0
example: 1234
pull_count:
type: integer
description: Total number of pulls for this repository
minimum: 0
example: 50000000
last_updated:
type: string
format: date-time
description: ISO 8601 timestamp of when the repository was last updated
example: "2023-12-01T10:30:00Z"
nullable: true
last_modified:
type: string
format: date-time
description: ISO 8601 timestamp of when the repository was last modified
example: "2023-12-01T10:30:00Z"
nullable: true
date_registered:
type: string
format: date-time
description: ISO 8601 timestamp of when the repository was created
example: "2013-06-19T19:07:54Z"
affiliation:
type: string
description: User's affiliation with the repository (empty string if no affiliation)
example: ""
media_types:
type: array
description: Media types supported by this repository
items:
type: string
example:
- "application/vnd.docker.plugin.v1+json"
content_types:
type: array
description: Content types supported by this repository
items:
type: string
example:
- "plugin"
categories:
type: array
description: Categories associated with this repository
items:
$ref: "#/components/schemas/category"
example: []
storage_size:
type: integer
description: Storage size in bytes used by this repository
minimum: 0
example: 232719127
category:
type: object
required:
- name
- slug
properties:
name:
type: string
description: Human-readable name of the category
example: "Databases"
minLength: 1
slug:
type: string
description: URL-friendly identifier for the category
example: "databases"
minLength: 1
pattern: "^[a-z0-9]+(?:-[a-z0-9]+)*$"
description: Repository category for classification and discovery
list_repositories_response:
allOf:
- $ref: "#/components/schemas/page"
- type: object
properties:
results:
type: array
items:
$ref: "#/components/schemas/repository_list_entry"
UsersLoginRequest:
description: User login details
type: object