Chapter 21. superuser


Superuser API.

21.1. getConfigDump

Returns the full configuration dump of the Quay instance.

GET /api/v1/superuser/config

Authorizations: oauth2_implicit (super:user)

Responses

Expand
HTTP CodeDescriptionSchema

201

Successful creation

 

400

Bad Request

ApiError

401

Session required

ApiError

403

Unauthorized access

ApiError

404

Not found

ApiError

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

Example command

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

21.2. createInstallUser

Creates a new user.

POST /api/v1/superuser/users/

Authorizations: oauth2_implicit (super:user)

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

Responses

Expand
HTTP CodeDescriptionSchema

201

Successful creation

 

400

Bad Request

ApiError

401

Session required

ApiError

403

Unauthorized access

ApiError

404

Not found

ApiError

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/"
Copy to Clipboard Toggle word wrap

21.3. changeInstallUser

Updates information about the specified user.

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

Authorizations: oauth2_implicit (super:user)

Path parameters

Expand
TypeNameDescriptionSchema

path

username
required

The username of the user being managed

string

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

Responses

Expand
HTTP CodeDescriptionSchema

200

Successful invocation

 

400

Bad Request

ApiError

401

Session required

ApiError

403

Unauthorized access

ApiError

404

Not found

ApiError

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
  }'
Copy to Clipboard Toggle word wrap

21.4. deleteInstallUser

Deletes a user.

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

Authorizations: oauth2_implicit (super:user)

Request body schema (application/json)

Data for deleting a user

Expand
NameDescriptionSchema

username
required

The username of the user being deleted

string

Responses

Expand
HTTP CodeDescriptionSchema

201

Successful creation

 

400

Bad Request

ApiError

401

Session required

ApiError

403

Unauthorized access

ApiError

404

Not found

ApiError

Example command

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

21.5. listAllUsers

Returns a list of all users in the system.

GET /api/v1/superuser/users/

Authorizations: oauth2_implicit (super:user)

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

Responses

Expand
HTTP CodeDescriptionSchema

200

Successful invocation

 

400

Bad Request

ApiError

401

Session required

ApiError

403

Unauthorized access

ApiError

404

Not found

ApiError

Example command

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

21.6. listAllLogs

List the usage logs for the current system.

GET /api/v1/superuser/logs

Authorizations: oauth2_implicit (super:user)

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

Responses

Expand
HTTP CodeDescriptionSchema

200

Successful invocation

 

400

Bad Request

ApiError

401

Session required

ApiError

403

Unauthorized access

ApiError

404

Not found

ApiError

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>"
Copy to Clipboard Toggle word wrap

21.7. listAllOrganizations

List the organizations for the current system.

GET /api/v1/superuser/organizations

Authorizations: oauth2_implicit (super:user)

Query parameters

Expand
TypeNameDescriptionSchema

path

name
required

The name of the organization being managed

string

Responses

Expand
HTTP CodeDescriptionSchema

200

Successful invocation

 

400

Bad Request

ApiError

401

Session required

ApiError

403

Unauthorized access

ApiError

404

Not found

ApiError

Example command

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

21.8. createServiceKey

POST /api/v1/superuser/keys

Authorizations: oauth2_implicit (super:user)

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

 

Responses

Expand
HTTP CodeDescriptionSchema

201

Successful creation

 

400

Bad Request

ApiError

401

Session required

ApiError

403

Unauthorized access

ApiError

404

Not found

ApiError

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"
Copy to Clipboard Toggle word wrap

21.9. listServiceKeys

GET /api/v1/superuser/keys

Authorizations: oauth2_implicit (super:user)

Responses

Expand
HTTP CodeDescriptionSchema

200

Successful invocation

 

400

Bad Request

ApiError

401

Session required

ApiError

403

Unauthorized access

ApiError

404

Not found

ApiError

Example command

$ curl -X GET \
  -H "Authorization: Bearer <bearer_token>" \
  "https://<quay_server>/api/v1/superuser/keys"
Copy to Clipboard Toggle word wrap

21.10. changeUserQuotaSuperUser

PUT /api/v1/superuser/organization/{namespace}/quota/{quota_id}

Authorizations: oauth2_implicit (super:user)

Path parameters

Expand
TypeNameDescriptionSchema

path

namespace
required

 

string

path

quota_id
required

 

string

Request body schema (application/json)

Description of a new organization quota

Expand
NameDescriptionSchema

limit_bytes
optional

Number of bytes the organization is allowed

integer

Responses

Expand
HTTP CodeDescriptionSchema

200

Successful invocation

 

400

Bad Request

ApiError

401

Session required

ApiError

403

Unauthorized access

ApiError

404

Not found

ApiError

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>
  }'
Copy to Clipboard Toggle word wrap

21.11. deleteUserQuotaSuperUser

DELETE /api/v1/superuser/organization/{namespace}/quota/{quota_id}

Authorizations: oauth2_implicit (super:user)

Path parameters

Expand
TypeNameDescriptionSchema

path

namespace
required

 

string

path

quota_id
required

 

string

Responses

Expand
HTTP CodeDescriptionSchema

204

Deleted

 

400

Bad Request

ApiError

401

Session required

ApiError

403

Unauthorized access

ApiError

404

Not found

ApiError

Example command

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

21.12. createUserQuotaSuperUser

POST /api/v1/superuser/organization/{namespace}/quota

Authorizations: oauth2_implicit (super:user)

Path parameters

Expand
TypeNameDescriptionSchema

path

namespace
required

 

string

Request body schema (application/json)

Description of a new organization quota

Expand
NameDescriptionSchema

limit_bytes
required

Number of bytes the organization is allowed

integer

Responses

Expand
HTTP CodeDescriptionSchema

201

Successful creation

 

400

Bad Request

ApiError

401

Session required

ApiError

403

Unauthorized access

ApiError

404

Not found

ApiError

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
  }'
Copy to Clipboard Toggle word wrap

21.13. listUserQuotaSuperUser

GET /api/v1/superuser/organization/{namespace}/quota

Authorizations: oauth2_implicit (super:user)

Path parameters

Expand
TypeNameDescriptionSchema

path

namespace
required

 

string

Responses

Expand
HTTP CodeDescriptionSchema

200

Successful invocation

 

400

Bad Request

ApiError

401

Session required

ApiError

403

Unauthorized access

ApiError

404

Not found

ApiError

Example command

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

21.14. changeOrganizationQuotaSuperUser

PUT /api/v1/superuser/users/{namespace}/quota/{quota_id}

Authorizations: oauth2_implicit (super:user)

Path parameters

Expand
TypeNameDescriptionSchema

path

namespace
required

 

string

path

quota_id
required

 

string

Request body schema (application/json)

Description of a new organization quota

Expand
NameDescriptionSchema

limit_bytes
optional

Number of bytes the organization is allowed

integer

Responses

Expand
HTTP CodeDescriptionSchema

200

Successful invocation

 

400

Bad Request

ApiError

401

Session required

ApiError

403

Unauthorized access

ApiError

404

Not found

ApiError

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>
  }'
Copy to Clipboard Toggle word wrap

21.15. deleteOrganizationQuotaSuperUser

DELETE /api/v1/superuser/users/{namespace}/quota/{quota_id}

Authorizations: oauth2_implicit (super:user)

Path parameters

Expand
TypeNameDescriptionSchema

path

namespace
required

 

string

path

quota_id
required

 

string

Responses

Expand
HTTP CodeDescriptionSchema

204

Deleted

 

400

Bad Request

ApiError

401

Session required

ApiError

403

Unauthorized access

ApiError

404

Not found

ApiError

Example command

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

21.16. createOrganizationQuotaSuperUser

POST /api/v1/superuser/users/{namespace}/quota

Authorizations: oauth2_implicit (super:user)

Path parameters

Expand
TypeNameDescriptionSchema

path

namespace
required

 

string

Request body schema (application/json)

Description of a new organization quota

Expand
NameDescriptionSchema

limit_bytes
optional

Number of bytes the organization is allowed

integer

Responses

Expand
HTTP CodeDescriptionSchema

201

Successful creation

 

400

Bad Request

ApiError

401

Session required

ApiError

403

Unauthorized access

ApiError

404

Not found

ApiError

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>
      }'
Copy to Clipboard Toggle word wrap

21.17. listOrganizationQuotaSuperUser

GET /api/v1/superuser/users/{namespace}/quota

Authorizations: oauth2_implicit (super:user)

Path parameters

Expand
TypeNameDescriptionSchema

path

namespace
required

 

string

Responses

Expand
HTTP CodeDescriptionSchema

200

Successful invocation

 

400

Bad Request

ApiError

401

Session required

ApiError

403

Unauthorized access

ApiError

404

Not found

ApiError

Example command

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

21.18. changeOrganization

Updates information about the specified user.

PUT /api/v1/superuser/organizations/{name}

Authorizations: oauth2_implicit (super:user)

Path parameters

Expand
TypeNameDescriptionSchema

path

name
required

The name of the organizaton being managed

string

Request body schema (application/json)

Description of updates for an existing organization

Expand
NameDescriptionSchema

email
optional

Organization contact email

string

invoice_email
optional

Whether the organization desires to receive emails for invoices

boolean

invoice_email_address
optional

The email address at which to receive invoices

 

tag_expiration_s
optional

The number of seconds for tag expiration

integer

Responses

Expand
HTTP CodeDescriptionSchema

200

Successful invocation

 

400

Bad Request

ApiError

401

Session required

ApiError

403

Unauthorized access

ApiError

404

Not found

ApiError

Example command

$ curl -X PUT \
  -H "Authorization: Bearer <bearer_token>" \
  -H "Content-Type: application/json" \
  -d '{
        "email": "<contact_email>",
        "invoice_email": <boolean_value>,
        "invoice_email_address": "<invoice_email_address>",
        "tag_expiration_s": <expiration_seconds>
      }' \
  "https://<quay_server>/api/v1/superuser/organizations/<organization_name>"
Copy to Clipboard Toggle word wrap

21.19. deleteOrganization

Deletes the specified organization.

DELETE /api/v1/superuser/organizations/{name}

Authorizations: oauth2_implicit (super:user)

Path parameters

Expand
TypeNameDescriptionSchema

path

name
required

The name of the organizaton being managed

string

Responses

Expand
HTTP CodeDescriptionSchema

204

Deleted

 

400

Bad Request

ApiError

401

Session required

ApiError

403

Unauthorized access

ApiError

404

Not found

ApiError

Example command

$ curl -X DELETE \
  -H "Authorization: Bearer <bearer_token>" \
  "https://<quay_server>/api/v1/superuser/organizations/<organization_name>"
Copy to Clipboard Toggle word wrap

21.20. approveServiceKey

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

Authorizations: oauth2_implicit (super:user)

Path parameters

Expand
TypeNameDescriptionSchema

path

kid
required

The unique identifier for a service key

string

Request body schema (application/json)

Information for approving service keys

Expand
NameDescriptionSchema

notes
optional

Optional approval notes

string

Responses

Expand
HTTP CodeDescriptionSchema

201

Successful creation

 

400

Bad Request

ApiError

401

Session required

ApiError

403

Unauthorized access

ApiError

404

Not found

ApiError

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>"
Copy to Clipboard Toggle word wrap

21.21. deleteServiceKey

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

Authorizations: oauth2_implicit (super:user)

Path parameters

Expand
TypeNameDescriptionSchema

path

kid
required

The unique identifier for a service key

string

Responses

Expand
HTTP CodeDescriptionSchema

204

Deleted

 

400

Bad Request

ApiError

401

Session required

ApiError

403

Unauthorized access

ApiError

404

Not found

ApiError

Example command

$ curl -X DELETE \
  -H "Authorization: Bearer <bearer_token>" \
  "https://<quay_server>/api/v1/superuser/keys/<kid>"
Copy to Clipboard Toggle word wrap

21.22. updateServiceKey

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

Authorizations: oauth2_implicit (super:user)

Path parameters

Expand
TypeNameDescriptionSchema

path

kid
required

The unique identifier for a service key

string

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

 

Responses

Expand
HTTP CodeDescriptionSchema

200

Successful invocation

 

400

Bad Request

ApiError

401

Session required

ApiError

403

Unauthorized access

ApiError

404

Not found

ApiError

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>"
Copy to Clipboard Toggle word wrap

21.23. getServiceKey

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

Authorizations: oauth2_implicit (super:user)

Path parameters

Expand
TypeNameDescriptionSchema

path

kid
required

The unique identifier for a service key

string

Responses

Expand
HTTP CodeDescriptionSchema

200

Successful invocation

 

400

Bad Request

ApiError

401

Session required

ApiError

403

Unauthorized access

ApiError

404

Not found

ApiError

Example command

$ curl -X GET \
  -H "Authorization: Bearer <bearer_token>" \
  "https://<quay_server>/api/v1/superuser/keys/<kid>"
Copy to Clipboard Toggle word wrap

21.24. getRepoBuildStatusSuperUser

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

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

Authorizations: oauth2_implicit (super:user)

Path parameters

Expand
TypeNameDescriptionSchema

path

build_uuid
required

The UUID of the build

string

Responses

Expand
HTTP CodeDescriptionSchema

200

Successful invocation

 

400

Bad Request

ApiError

401

Session required

ApiError

403

Unauthorized access

ApiError

404

Not found

ApiError

Example command

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

21.25. getRepoBuildSuperUser

Returns information about a build.

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

Authorizations: oauth2_implicit (super:user)

Path parameters

Expand
TypeNameDescriptionSchema

path

build_uuid
required

The UUID of the build

string

Responses

Expand
HTTP CodeDescriptionSchema

200

Successful invocation

 

400

Bad Request

ApiError

401

Session required

ApiError

403

Unauthorized access

ApiError

404

Not found

ApiError

Example command

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

21.26. getRepoBuildLogsSuperUser

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

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

Authorizations: oauth2_implicit (super:user)

Path parameters

Expand
TypeNameDescriptionSchema

path

build_uuid
required

The UUID of the build

string

Responses

Expand
HTTP CodeDescriptionSchema

200

Successful invocation

 

400

Bad Request

ApiError

401

Session required

ApiError

403

Unauthorized access

ApiError

404

Not found

ApiError

Example command

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

21.27. getRegistrySize

GET /api/v1/superuser/registrysize/

Authorizations: oauth2_implicit (super:user)

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

Responses

Expand
HTTP CodeDescriptionSchema

200

CREATED

 

400

Bad Request

ApiError

401

Session required

ApiError

403

Unauthorized access

ApiError

404

Not found

ApiError

Example command

$ curl -X GET \
  -H "Authorization: Bearer <bearer_token>" \
  "https://<quay_server>/api/v1/superuser/registrysize/"
Copy to Clipboard Toggle word wrap

21.28. postRegistrySize

POST /api/v1/superuser/registrysize/

Authorizations: oauth2_implicit (super:user)

Path parameters

Expand
TypeNameDescriptionSchema

path

namespace
required

 

string

Request body schema (application/json)

Description of a image registry size

Expand
NameDescriptionSchema

last_ran

 

integer

queued

 

boolean

running

 

boolean

Responses

Expand
HTTP CodeDescriptionSchema

201

CREATED

 

400

Bad Request

ApiError

401

Session required

ApiError

403

Unauthorized access

ApiError

404

Not found

ApiError

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
  }'
Copy to Clipboard Toggle word wrap
Back to top
Red Hat logoGithubredditYoutubeTwitter

Learn

Try, buy, & sell

Communities

About Red Hat Documentation

We help Red Hat users innovate and achieve their goals with our products and services with content they can trust. Explore our recent updates.

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

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

Theme

© 2025 Red Hat