Chapter 25. superuser


Superuser API.

25.1. getConfigDump

Returns the full configuration dump of the Quay instance.

25.1.1. GET /api/v1/superuser/config

Authorizations: oauth2_implicit (super:user)

25.1.2. Responses

Expand
HTTP CodeDescriptionSchema

201

Successful creation

 

400

Bad Request

ApiError

401

Session required

ApiError

403

Unauthorized access

ApiError

404

Not found

ApiError

25.1.3. Response structure

The JSON response includes the following top-level keys:

Expand
NameDescriptionSchema
 

All config.yaml and defaulted parameters used by the Flask app that are part of the defined schema.

object

 

Any parameters from config.yaml or defaults that are not defined in the schema.

object

 

All environment variables available to the Flask app.

object

 

The complete config schema (CONFIG_SCHEMA) defining expected keys and types.

object

25.1.4. Example command

$ curl -X GET -H "Authorization: Bearer <bearer_token>"
"https://<quay-server.example.com>/api/v1/superuser/config" | jq -r .config

25.2. createInstallUser

Creates a new user.

25.2.1. POST /api/v1/superuser/users/

Authorizations: oauth2_implicit (super:user)

25.2.2. Request body schema (application/json)

Data for creating a user

Expand
NameDescriptionSchema

username

required

The username of the user being created

string

email

optional

The email address of the user being created

string

25.2.3. Responses

Expand
HTTP CodeDescriptionSchema

201

Successful creation

 

400

Bad Request

ApiError

401

Session required

ApiError

403

Unauthorized access

ApiError

404

Not found

ApiError

25.2.4. Example command

$ curl -X POST -H "Authorization: Bearer <bearer_token>" -H "Content-Type: application/json" -d '{
  "username": "newuser",
  "email": "newuser@example.com"
}' "https://<quay-server.example.com>/api/v1/superuser/users/"

25.3. changeInstallUser

Updates information about the specified user.

25.3.1. PUT /api/v1/superuser/users/{username}

Authorizations: oauth2_implicit (super:user)

25.3.2. Path parameters

Expand
TypeNameDescriptionSchema

path

username

required

The username of the user being managed

string

25.3.3. Request body schema (application/json)

Description of updates for a user

Expand
NameDescriptionSchema

password

optional

The new password for the user

string

email

optional

The new e-mail address for the user

string

enabled

optional

Whether the user is enabled

boolean

25.3.4. Responses

Expand
HTTP CodeDescriptionSchema

200

Successful invocation

 

400

Bad Request

ApiError

401

Session required

ApiError

403

Unauthorized access

ApiError

404

Not found

ApiError

25.3.5. Example command

$ curl -X PUT "https://<quay-server.example.com>/api/v1/superuser/users/<username>" \
  -H "Authorization: Bearer <bearer_token>" \
  -H "Content-Type: application/json" \
  -d '{
    "password": "<N3wP@ssw0rd!>",
    "email": "<updated-email@example.com>",
    "enabled": true
  }'

25.4. deleteInstallUser

Deletes a user.

25.4.1. DELETE /api/v1/superuser/users/{username}

Authorizations: oauth2_implicit (super:user)

25.4.2. Request body schema (application/json)

Data for deleting a user

Expand
NameDescriptionSchema

username

required

The username of the user being deleted

string

25.4.3. Responses

Expand
HTTP CodeDescriptionSchema

201

Successful creation

 

400

Bad Request

ApiError

401

Session required

ApiError

403

Unauthorized access

ApiError

404

Not found

ApiError

25.4.4. Example command

$ curl -X DELETE -H "Authorization: Bearer <bearer_token>" "https://<quay-server.example.com>/api/v1/superuser/users/{username}"

25.5. listAllUsers

Returns a list of all users in the system.

25.5.1. GET /api/v1/superuser/users/

Authorizations: oauth2_implicit (super:user)

25.5.2. Query parameters

Expand
TypeNameDescriptionSchema

query

next_page

optional

The page token for the next page

string

query

limit

optional

Limit to the number of results to return per page. Max 100.

integer

query

disabled

optional

If false, only enabled users will be returned.

boolean

25.5.3. Responses

Expand
HTTP CodeDescriptionSchema

200

Successful invocation

 

400

Bad Request

ApiError

401

Session required

ApiError

403

Unauthorized access

ApiError

404

Not found

ApiError

25.5.4. Example command

$ curl -X GET -H "Authorization: Bearer <bearer_token>" "https://<quay-server.example.com>/api/v1/superuser/users/"

25.6. listAllLogs

List the usage logs for the current system.

25.6.1. GET /api/v1/superuser/logs

Authorizations: oauth2_implicit (super:user)

25.6.2. Query parameters

Expand
TypeNameDescriptionSchema

query

next_page

optional

The page token for the next page

string

query

page

optional

The page number for the logs

integer

query

endtime

optional

Latest time to which to get logs (%m/%d/%Y %Z)

string

query

starttime

optional

Earliest time from which to get logs (%m/%d/%Y %Z)

string

25.6.3. Responses

Expand
HTTP CodeDescriptionSchema

200

Successful invocation

 

400

Bad Request

ApiError

401

Session required

ApiError

403

Unauthorized access

ApiError

404

Not found

ApiError

25.6.4. Example command

$ curl -X GET \
  -H "Authorization: Bearer <bearer_token>" \
  "https://<quay_server>/api/v1/superuser/logs?starttime=<start_time>&endtime=<end_time>&page=<page_number>&next_page=<next_page_token>"

25.7. listAllOrganizations

List the organizations for the current system.

25.7.1. GET /api/v1/superuser/organizations

Authorizations: oauth2_implicit (super:user)

25.7.2. Query parameters

Expand
TypeNameDescriptionSchema

path

name

required

The name of the organization being managed

string

25.7.3. Responses

Expand
HTTP CodeDescriptionSchema

200

Successful invocation

 

400

Bad Request

ApiError

401

Session required

ApiError

403

Unauthorized access

ApiError

404

Not found

ApiError

25.7.4. Example command

$ curl -X GET -H "Authorization: Bearer <bearer_token>" "https://<quay-server.example.com>/api/v1/superuser/organizations/"

25.8. createServiceKey

Create Service Key.

25.8.1. POST /api/v1/superuser/keys

Authorizations: oauth2_implicit (super:user)

25.8.2. Request body schema (application/json)

Description of creation of a service key

Expand
NameDescriptionSchema

service

required

The service authenticating with this key

string

name

optional

The friendly name of a service key

string

metadata

optional

The key/value pairs of this key’s metadata

object

notes

optional

If specified, the extra notes for the key

string

expiration

required

The expiration date as a unix timestamp

 

25.8.3. Responses

Expand
HTTP CodeDescriptionSchema

201

Successful creation

 

400

Bad Request

ApiError

401

Session required

ApiError

403

Unauthorized access

ApiError

404

Not found

ApiError

25.8.4. Example command

$ curl -X POST \
  -H "Authorization: Bearer <bearer_token>" \
  -H "Content-Type: application/json" \
  -d '{
        "service": "<service_name>",
        "expiration": <unix_timestamp>
      }' \
  "<quay_server>/api/v1/superuser/keys"

25.9. listServiceKeys

List Service Keys.

25.9.1. GET /api/v1/superuser/keys

Authorizations: oauth2_implicit (super:user)

25.9.2. Responses

Expand
HTTP CodeDescriptionSchema

200

Successful invocation

 

400

Bad Request

ApiError

401

Session required

ApiError

403

Unauthorized access

ApiError

404

Not found

ApiError

25.9.3. Example command

$ curl -X GET \
  -H "Authorization: Bearer <bearer_token>" \
  "https://<quay_server>/api/v1/superuser/keys"

25.10. listAllAppTokens

Returns a list of all app specific tokens in the system.

This endpoint is for system-wide auditing by superusers and global read-only superusers.

25.10.1. GET /api/v1/superuser/apptokens

Authorizations: oauth2_implicit (super:user)

25.10.2. Query parameters

Expand
TypeNameDescriptionSchema

query

expiring

optional

If true, only returns those tokens expiring soon

boolean

25.10.3. Responses

Expand
HTTP CodeDescriptionSchema

200

Successful invocation

 

400

Bad Request

ApiError

401

Session required

ApiError

403

Unauthorized access

ApiError

404

Not found

ApiError

25.10.4. Example command

Example: List all app-specific tokens

$ curl -X GET \
  "https://quay-server.example.com/api/v1/superuser/apptokens" \
  -H "Authorization: Bearer <superuser_access_token>" \
  -H "Accept: application/json"

Example: List app-specific tokens expiring soon

$ curl -X GET \
  "https://quay-server.example.com/api/v1/superuser/apptokens?expiring=true" \
  -H "Authorization: Bearer <superuser_access_token>" \
  -H "Accept: application/json"

25.11. changeUserQuotaSuperUser

Change User Quota Super User.

Authorizations: oauth2_implicit (super:user)

25.11.2. Path parameters

Expand
TypeNameDescriptionSchema

path

namespace

required

 

string

path

quota_id

required

 

string

25.11.3. Request body schema (application/json)

Description of a new organization quota

Expand
NameDescriptionSchema

limit_bytes

optional

Number of bytes the organization is allowed

integer

25.11.4. Responses

Expand
HTTP CodeDescriptionSchema

200

Successful invocation

 

400

Bad Request

ApiError

401

Session required

ApiError

403

Unauthorized access

ApiError

404

Not found

ApiError

25.11.5. Example command

$ curl -X PUT "https://quay-server.example.com/api/v1/superuser/organization/<namespace>/quota/<quota_id>" \
  -H "Authorization: Bearer <ACCESS_TOKEN>" \
  -H "Content-Type: application/json" \
  -d '{
    "limit_bytes": <NEW_QUOTA_LIMIT>
  }'

25.12. deleteUserQuotaSuperUser

Delete User Quota Super User.

Authorizations: oauth2_implicit (super:user)

25.12.2. Path parameters

Expand
TypeNameDescriptionSchema

path

namespace

required

 

string

path

quota_id

required

 

string

25.12.3. Responses

Expand
HTTP CodeDescriptionSchema

204

Deleted

 

400

Bad Request

ApiError

401

Session required

ApiError

403

Unauthorized access

ApiError

404

Not found

ApiError

25.12.4. Example command

$ curl -X DELETE "https://quay-server.example.com/api/v1/superuser/organization/<namespace>/quota/<quota_id>" \
  -H "Authorization: Bearer <ACCESS_TOKEN>"

25.13. createUserQuotaSuperUser

Create User Quota Super User.

Authorizations: oauth2_implicit (super:user)

25.13.2. Path parameters

Expand
TypeNameDescriptionSchema

path

namespace

required

 

string

25.13.3. Request body schema (application/json)

Description of a new organization quota

Expand
NameDescriptionSchema

limit_bytes

required

Number of bytes the organization is allowed

integer

25.13.4. Responses

Expand
HTTP CodeDescriptionSchema

201

Successful creation

 

400

Bad Request

ApiError

401

Session required

ApiError

403

Unauthorized access

ApiError

404

Not found

ApiError

25.13.5. Example command

$ curl -X POST "https://quay-server.example.com/api/v1/superuser/organization/<namespace>/quota" \
  -H "Authorization: Bearer <ACCESS_TOKEN>" \
  -H "Content-Type: application/json" \
  -d '{
    "limit_bytes": 10737418240
  }'

25.14. listUserQuotaSuperUser

List User Quota Super User.

Authorizations: oauth2_implicit (super:user)

25.14.2. Path parameters

Expand
TypeNameDescriptionSchema

path

namespace

required

 

string

25.14.3. Responses

Expand
HTTP CodeDescriptionSchema

200

Successful invocation

 

400

Bad Request

ApiError

401

Session required

ApiError

403

Unauthorized access

ApiError

404

Not found

ApiError

25.14.4. Example command

$ curl -X GET "https://quay-server.example.com/api/v1/superuser/organization/<namespace>/quota" \
  -H "Authorization: Bearer <ACCESS_TOKEN>"

25.15. changeOrganizationQuotaSuperUser

Change Organization Quota Super User.

Authorizations: oauth2_implicit (super:user)

25.15.2. Path parameters

Expand
TypeNameDescriptionSchema

path

namespace

required

 

string

path

quota_id

required

 

string

25.15.3. Request body schema (application/json)

Description of a new organization quota

Expand
NameDescriptionSchema

limit_bytes

optional

Number of bytes the organization is allowed

integer

25.15.4. Responses

Expand
HTTP CodeDescriptionSchema

200

Successful invocation

 

400

Bad Request

ApiError

401

Session required

ApiError

403

Unauthorized access

ApiError

404

Not found

ApiError

25.15.5. Example command

$ curl -X PUT "https://quay-server.example.com/api/v1/superuser/users/<username>/quota/<quota_id>" \
  -H "Authorization: Bearer <ACCESS_TOKEN>" \
  -H "Content-Type: application/json" \
  -d '{
    "limit_bytes": <NEW_QUOTA_LIMIT>
  }'

25.16. deleteOrganizationQuotaSuperUser

Delete Organization Quota Super User.

Authorizations: oauth2_implicit (super:user)

25.16.2. Path parameters

Expand
TypeNameDescriptionSchema

path

namespace

required

 

string

path

quota_id

required

 

string

25.16.3. Responses

Expand
HTTP CodeDescriptionSchema

204

Deleted

 

400

Bad Request

ApiError

401

Session required

ApiError

403

Unauthorized access

ApiError

404

Not found

ApiError

25.16.4. Example command

$ curl -X DELETE "https://quay-server.example.com/api/v1/superuser/users/<username>/quota/<quota_id>" \
  -H "Authorization: Bearer <ACCESS_TOKEN>"

25.17. createOrganizationQuotaSuperUser

Create Organization Quota Super User.

Authorizations: oauth2_implicit (super:user)

25.17.2. Path parameters

Expand
TypeNameDescriptionSchema

path

namespace

required

 

string

25.17.3. Request body schema (application/json)

Description of a new organization quota

Expand
NameDescriptionSchema

limit_bytes

optional

Number of bytes the organization is allowed

integer

25.17.4. Responses

Expand
HTTP CodeDescriptionSchema

201

Successful creation

 

400

Bad Request

ApiError

401

Session required

ApiError

403

Unauthorized access

ApiError

404

Not found

ApiError

25.17.5. Example command

$ curl -X POST "https://quay-server.example.com/api/v1/superuser/users/<username>/quota" \
  -H "Authorization: Bearer <ACCESS_TOKEN>" \
  -H "Content-Type: application/json" \
  -d '{
        "limit_bytes": <QUOTA_LIMIT>
      }'

25.18. listOrganizationQuotaSuperUser

List Organization Quota Super User.

Authorizations: oauth2_implicit (super:user)

25.18.2. Path parameters

Expand
TypeNameDescriptionSchema

path

namespace

required

 

string

25.18.3. Responses

Expand
HTTP CodeDescriptionSchema

200

Successful invocation

 

400

Bad Request

ApiError

401

Session required

ApiError

403

Unauthorized access

ApiError

404

Not found

ApiError

25.18.4. Example command

$ curl -X GET "https://quay-server.example.com/api/v1/superuser/users/<username>/quota" \
  -H "Authorization: Bearer <ACCESS_TOKEN>"

25.19. changeOrganization

Updates information about the specified organization.

Authorizations: oauth2_implicit (super:user)

25.19.2. Path parameters

Expand
TypeNameDescriptionSchema

path

name

required

The name of the organization being managed

string

25.19.3. Request body schema (application/json)

Description of updates for an existing organization

Expand
NameDescriptionSchema

name

optional

The new name for the organization

string

25.19.4. Responses

Expand
HTTP CodeDescriptionSchema

200

Successful invocation

 

400

Bad Request

ApiError

401

Session required

ApiError

403

Unauthorized access

ApiError

404

Not found

ApiError

25.19.5. Example command

$ curl -X PUT \
  -H "Authorization: Bearer <bearer_token>" \
  -H "Content-Type: application/json" \
  -d '{
        "name": "<new_organization_name>"
      }' \
  "https://<quay_server>/api/v1/superuser/organizations/<organization_name>"

25.20. deleteOrganization

Deletes the specified organization.

Authorizations: oauth2_implicit (super:user)

25.20.2. Path parameters

Expand
TypeNameDescriptionSchema

path

name

required

The name of the organizaton being managed

string

25.20.3. Responses

Expand
HTTP CodeDescriptionSchema

204

Deleted

 

400

Bad Request

ApiError

401

Session required

ApiError

403

Unauthorized access

ApiError

404

Not found

ApiError

25.20.4. Example command

$ curl -X DELETE \
  -H "Authorization: Bearer <bearer_token>" \
  "https://<quay_server>/api/v1/superuser/organizations/<organization_name>"

25.21. approveServiceKey

Approve Service Key.

25.21.1. POST /api/v1/superuser/approvedkeys/{kid}

Authorizations: oauth2_implicit (super:user)

25.21.2. Path parameters

Expand
TypeNameDescriptionSchema

path

kid

required

The unique identifier for a service key

string

25.21.3. Request body schema (application/json)

Information for approving service keys

Expand
NameDescriptionSchema

notes

optional

Optional approval notes

string

25.21.4. Responses

Expand
HTTP CodeDescriptionSchema

201

Successful creation

 

400

Bad Request

ApiError

401

Session required

ApiError

403

Unauthorized access

ApiError

404

Not found

ApiError

25.21.5. Example command

$ curl -X POST \
  -H "Authorization: Bearer <bearer_token>" \
  -H "Content-Type: application/json" \
  -d '{
        "notes": "<approval_notes>"
      }' \
  "https://<quay_server>/api/v1/superuser/approvedkeys/<kid>"

25.22. deleteServiceKey

Delete Service Key.

25.22.1. DELETE /api/v1/superuser/keys/{kid}

Authorizations: oauth2_implicit (super:user)

25.22.2. Path parameters

Expand
TypeNameDescriptionSchema

path

kid

required

The unique identifier for a service key

string

25.22.3. Responses

Expand
HTTP CodeDescriptionSchema

204

Deleted

 

400

Bad Request

ApiError

401

Session required

ApiError

403

Unauthorized access

ApiError

404

Not found

ApiError

25.22.4. Example command

$ curl -X DELETE \
  -H "Authorization: Bearer <bearer_token>" \
  "https://<quay_server>/api/v1/superuser/keys/<kid>"

25.23. updateServiceKey

Update Service Key.

25.23.1. PUT /api/v1/superuser/keys/{kid}

Authorizations: oauth2_implicit (super:user)

25.23.2. Path parameters

Expand
TypeNameDescriptionSchema

path

kid

required

The unique identifier for a service key

string

25.23.3. Request body schema (application/json)

Description of updates for a service key

Expand
NameDescriptionSchema

name

optional

The friendly name of a service key

string

metadata

optional

The key/value pairs of this key’s metadata

object

expiration

optional

The expiration date as a unix timestamp

 

25.23.4. Responses

Expand
HTTP CodeDescriptionSchema

200

Successful invocation

 

400

Bad Request

ApiError

401

Session required

ApiError

403

Unauthorized access

ApiError

404

Not found

ApiError

25.23.5. Example command

$ curl -X PUT \
  -H "Authorization: Bearer <bearer_token>" \
  -H "Content-Type: application/json" \
  -d '{
        "name": "<service_key_name>",
        "metadata": {"<key>": "<value>"},
        "expiration": <unix_timestamp>
      }' \
  "https://<quay_server>/api/v1/superuser/keys/<kid>"

25.24. getServiceKey

Get Service Key.

25.24.1. GET /api/v1/superuser/keys/{kid}

Authorizations: oauth2_implicit (super:user)

25.24.2. Path parameters

Expand
TypeNameDescriptionSchema

path

kid

required

The unique identifier for a service key

string

25.24.3. Responses

Expand
HTTP CodeDescriptionSchema

200

Successful invocation

 

400

Bad Request

ApiError

401

Session required

ApiError

403

Unauthorized access

ApiError

404

Not found

ApiError

25.24.4. Example command

$ curl -X GET \
  -H "Authorization: Bearer <bearer_token>" \
  "https://<quay_server>/api/v1/superuser/keys/<kid>"

25.25. getRepoBuildStatusSuperUser

Return the status for the builds specified by the build uuids.

25.25.1. GET /api/v1/superuser/{build_uuid}/status

Authorizations: oauth2_implicit (super:user)

25.25.2. Path parameters

Expand
TypeNameDescriptionSchema

path

build_uuid

required

The UUID of the build

string

25.25.3. Responses

Expand
HTTP CodeDescriptionSchema

200

Successful invocation

 

400

Bad Request

ApiError

401

Session required

ApiError

403

Unauthorized access

ApiError

404

Not found

ApiError

25.25.4. Example command

$ curl -X GET "https://quay-server.example.com/api/v1/superuser/<build_uuid>/status" \
  -H "Authorization: Bearer <ACCESS_TOKEN>"

25.26. getRepoBuildSuperUser

Returns information about a build.

25.26.1. GET /api/v1/superuser/{build_uuid}/build

Authorizations: oauth2_implicit (super:user)

25.26.2. Path parameters

Expand
TypeNameDescriptionSchema

path

build_uuid

required

The UUID of the build

string

25.26.3. Responses

Expand
HTTP CodeDescriptionSchema

200

Successful invocation

 

400

Bad Request

ApiError

401

Session required

ApiError

403

Unauthorized access

ApiError

404

Not found

ApiError

25.26.4. Example command

$ curl -X GET "https://quay-server.example.com/api/v1/superuser/<build_uuid>/build" \
  -H "Authorization: Bearer <ACCESS_TOKEN>"

25.27. getRepoBuildLogsSuperUser

Return the build logs for the build specified by the build uuid.

25.27.1. GET /api/v1/superuser/{build_uuid}/logs

Authorizations: oauth2_implicit (super:user)

25.27.2. Path parameters

Expand
TypeNameDescriptionSchema

path

build_uuid

required

The UUID of the build

string

25.27.3. Responses

Expand
HTTP CodeDescriptionSchema

200

Successful invocation

 

400

Bad Request

ApiError

401

Session required

ApiError

403

Unauthorized access

ApiError

404

Not found

ApiError

25.27.4. Example command

$ curl -X GET "https://quay-server.example.com/api/v1/superuser/<build_uuid>/logs" \
  -H "Authorization: Bearer <ACCESS_TOKEN>"

25.28. getRegistrySize

Get Registry Size.

25.28.1. GET /api/v1/superuser/registrysize/

Authorizations: oauth2_implicit (super:user)

25.28.2. Path parameters

Expand
TypeNameDescriptionSchema

path

namespace

required

 

string

Description of a image registry size

Expand
NameDescriptionSchema

size_bytes*

optional

Number of bytes the organization is allowed

integer

last_ran

 

integer

queued

 

boolean

running

 

boolean

25.28.3. Responses

Expand
HTTP CodeDescriptionSchema

200

CREATED

 

400

Bad Request

ApiError

401

Session required

ApiError

403

Unauthorized access

ApiError

404

Not found

ApiError

25.28.4. Example command

$ curl -X GET \
  -H "Authorization: Bearer <bearer_token>" \
  "https://<quay_server>/api/v1/superuser/registrysize/"

25.29. postRegistrySize

Post Registry Size.

25.29.1. POST /api/v1/superuser/registrysize/

Authorizations: oauth2_implicit (super:user)

25.29.2. Path parameters

Expand
TypeNameDescriptionSchema

path

namespace

required

 

string

25.29.3. Request body schema (application/json)

Description of a image registry size

Expand
NameDescriptionSchema

last_ran

 

integer

queued

 

boolean

running

 

boolean

25.29.4. Responses

Expand
HTTP CodeDescriptionSchema

201

CREATED

 

400

Bad Request

ApiError

401

Session required

ApiError

403

Unauthorized access

ApiError

404

Not found

ApiError

25.29.5. Example command

$ curl -X POST "https://quay-server.example.com/api/v1/superuser/registrysize/" \
  -H "Authorization: Bearer <ACCESS_TOKEN>" \
  -H "Content-Type: application/json" \
  -d '{
    "namespace": "<namespace>",
    "last_ran": 1700000000,
    "queued": true,
    "running": false
  }'

25.30. getSuperUserRepositoryMirrorHealth

Return a global repository mirror health summary for superusers.

25.30.1. GET /api/v1/superuser/mirror/health

Authorizations: oauth2_implicit (super:user)

Returns HTTP 200 when mirroring is healthy and HTTP 503 when unhealthy.

This endpoint requires a fresh login. A validated OAuth or SSO token satisfies the check. A password-based browser session must be within FRESH_LOGIN_TIMEOUT (default: 10m).

The response is a cluster-wide summary without repository-identifying issue samples. For namespace-scoped details, use GET /api/v1/repository/mirror/health?namespace=<orgname>&detailed=true. See getRepositoryMirrorHealth.

25.30.2. Responses

Expand
HTTP CodeDescriptionSchema

200

Mirroring is healthy

object

401

Session required

ApiError

403

Unauthorized access

ApiError

503

Mirroring is unhealthy

object

25.30.3. Example command

$ curl -X GET "https://<quay-server.example.com>/api/v1/superuser/mirror/health" \
     -H "Authorization: Bearer <access_token>"

Substitute an OAuth access token that includes the super:user scope, or use a fresh superuser login session.

Example output

{
  "healthy": true,
  "workers": {
    "active": 1,
    "configured": 1,
    "status": "healthy"
  },
  "repositories": {
    "total": 0,
    "syncing": 0,
    "completed": 0,
    "failed": 0,
    "never_run": 0
  },
  "tags_pending": 0,
  "last_check": "2026-07-16T20:11:17.064697Z",
  "issues": []
}

Red Hat logoGithubredditYoutubeTwitter

Learn

Try, buy, & sell

Communities

About Red Hat

We deliver hardened solutions that make it easier for enterprises to work across platforms and environments, from the core datacenter to the network edge.

Making open source more inclusive

Red Hat is committed to replacing problematic language in our code, documentation, and web properties. For more details, see the Red Hat Blog.

About Red Hat Documentation

Legal Notice

Theme

© 2026 Red Hat
Back to top