Chapter 15. organization


Manage organizations, members and OAuth applications.

15.1. createOrganization

Create a new organization.

15.1.1. POST /api/v1/organization/

Authorizations: oauth2_implicit (user:admin)

15.1.2. Request body schema (application/json)

Description of a new organization.

NameDescriptionSchema

name

required

Organization username

string

email

optional

Organization contact email

string

recaptcha_response

optional

The (may be disabled) recaptcha response code for verification

string

15.1.3. Responses

HTTP CodeDescriptionSchema

201

Successful creation

 

400

Bad Request

ApiError

401

Session required

ApiError

403

Unauthorized access

ApiError

404

Not found

ApiError

15.1.4. Example command

$ curl -X POST   -H "Authorization: Bearer <bearer_token>" -H "Content-Type: application/json"   -d '{
    "name": "<new_organization_name>"
  }'   "https://<quay-server.example.com>/api/v1/organization/"

15.2. validateProxyCacheConfig

Validate Proxy Cache Config.

Authorizations: 

15.2.2. Path parameters

TypeNameDescriptionSchema

path

orgname

required

 

string

15.2.3. Request body schema (application/json)

Proxy cache configuration for an organization

NameDescriptionSchema

upstream_registry

required

Name of the upstream registry that is to be cached

string

15.2.4. Responses

HTTP CodeDescriptionSchema

202

Successful creation

 

400

Bad Request

ApiError

401

Session required

ApiError

403

Unauthorized access

ApiError

404

Not found

ApiError

15.2.5. Example command

$ curl -X POST "https://<quay-server.example.com>/api/v1/organization/{orgname}/validateproxycache" \
  -H "Authorization: Bearer <access_token>" \
  -H "Content-Type: application/json" \
  -d '{
        "upstream_registry": "<upstream_registry>"
        "upstream_registry_username": "your_robot_account_username"
        "upstream_registry_password": "your_robot_account_password"
      }'

15.3. getOrganizationCollaborators

List outside collaborators of the specified organization.

Authorizations: oauth2_implicit (org:admin)

15.3.2. Path parameters

TypeNameDescriptionSchema

path

orgname

required

The name of the organization

string

15.3.3. Responses

HTTP CodeDescriptionSchema

200

Successful invocation

 

400

Bad Request

ApiError

401

Session required

ApiError

403

Unauthorized access

ApiError

404

Not found

ApiError

15.3.4. Example command

$ curl -X GET "https://<quay-server.example.com>/api/v1/organization/{orgname}/collaborators" \
  -H "Authorization: Bearer <access_token>"

15.4. getOrganizationApplication

Retrieves the application with the specified client_id under the specified organization.

Authorizations: oauth2_implicit (org:admin)

15.4.2. Path parameters

TypeNameDescriptionSchema

path

client_id

required

The OAuth client ID

string

path

orgname

required

The name of the organization

string

15.4.3. Responses

HTTP CodeDescriptionSchema

200

Successful invocation

 

400

Bad Request

ApiError

401

Session required

ApiError

403

Unauthorized access

ApiError

404

Not found

ApiError

15.4.4. Example command

$ curl -X GET "https://<quay-server.example.com>/api/v1/organization/<orgname>/applications/<client_id>" \
  -H "Authorization: Bearer <access_token>"

15.5. updateOrganizationApplication

Updates an application under this organization.

Authorizations: oauth2_implicit (org:admin)

15.5.2. Path parameters

TypeNameDescriptionSchema

path

client_id

required

The OAuth client ID

string

path

orgname

required

The name of the organization

string

15.5.3. Request body schema (application/json)

Description of an updated application.

NameDescriptionSchema

name

required

The name of the application

string

redirect_uri

required

The URI for the application’s OAuth redirect

string

application_uri

required

The URI for the application’s homepage

string

description

optional

The human-readable description for the application

string

avatar_email

optional

The e-mail address of the avatar to use for the application

string

15.5.4. Responses

HTTP CodeDescriptionSchema

200

Successful invocation

 

400

Bad Request

ApiError

401

Session required

ApiError

403

Unauthorized access

ApiError

404

Not found

ApiError

15.5.5. Example command

$ curl -X PUT "https://quay-server.example.com/api/v1/organization/test/applications/12345" \
  -H "Authorization: Bearer <access_token>" \
  -H "Content-Type: application/json" \
  -d '{
        "name": "Updated Application Name",
        "redirect_uri": "https://example.com/oauth/callback",
        "application_uri": "https://example.com",
        "description": "Updated description for the application",
        "avatar_email": "avatar@example.com"
      }'

15.6. deleteOrganizationApplication

Deletes the application under this organization.

Authorizations: oauth2_implicit (org:admin)

15.6.2. Path parameters

TypeNameDescriptionSchema

path

client_id

required

The OAuth client ID

string

path

orgname

required

The name of the organization

string

15.6.3. Responses

HTTP CodeDescriptionSchema

204

Deleted

 

400

Bad Request

ApiError

401

Session required

ApiError

403

Unauthorized access

ApiError

404

Not found

ApiError

15.6.4. Example command

$ curl -X DELETE "https://<quay-server.example.com>/api/v1/organization/{orgname}/applications/{client_id}" \
  -H "Authorization: Bearer <access_token>"

15.7. createOrganizationApplication

Creates a new application under this organization.

Authorizations: oauth2_implicit (org:admin)

15.7.2. Path parameters

TypeNameDescriptionSchema

path

orgname

required

The name of the organization

string

15.7.3. Request body schema (application/json)

Description of a new organization application.

NameDescriptionSchema

name

required

The name of the application

string

redirect_uri

optional

The URI for the application’s OAuth redirect

string

application_uri

optional

The URI for the application’s homepage

string

description

optional

The human-readable description for the application

string

avatar_email

optional

The e-mail address of the avatar to use for the application

string

15.7.4. Responses

HTTP CodeDescriptionSchema

201

Successful creation

 

400

Bad Request

ApiError

401

Session required

ApiError

403

Unauthorized access

ApiError

404

Not found

ApiError

15.7.5. Example command

$ curl -X POST "https://<quay-server.example.com>/api/v1/organization/<orgname>/applications" \
  -H "Authorization: Bearer <access_token>" \
  -H "Content-Type: application/json" \
  -d '{
        "name": "<app_name>",
        "redirect_uri": "<redirect_uri>",
        "application_uri": "<application_uri>",
        "description": "<app_description>",
        "avatar_email": "<avatar_email>"
      }'

15.8. createOrganizationApplicationToken

Create a new OAuth API token for the specified organization application.

Create a scoped OAuth API token for automation workflows. The bearer token secret is returned only in this response.

Authorizations: oauth2_implicit (org:admin)

15.8.2. Path parameters

TypeNameDescriptionSchema

path

orgname

required

The name of the organization

string

path

client_id

required

The OAuth client ID of the organization application

string

15.8.3. Request body schema (application/json)

NameDescriptionSchema

name

required

User-facing token name. Leading and trailing whitespace is trimmed before storage.

string

scope

required

Space- or comma-separated OAuth scope string, for example repo:read repo:write

string

expiration

optional

Token lifetime in seconds. Defaults to approximately 10 years when omitted.

integer

Example request body

{
  "name": "ci-job-token",
  "scope": "repo:read,repo:write",
  "expiration": 2592000
}

15.8.4. Responses

HTTP CodeDescriptionSchema

200

Successful creation

OAuth application token object including token

400

Bad Request

ApiError

401

Session required

ApiError

403

Unauthorized access

ApiError

404

Not found

ApiError

15.8.5. Example command

$ curl -X POST "https://<quay-server.example.com>/api/v1/organization/<orgname>/applications/<client_id>/tokens" \
  -H "Authorization: Bearer <access_token>" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "ci-job-token",
    "scope": "repo:read repo:write",
    "expiration": 2592000
  }'

Example response

{
  "uuid": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "name": "ci-job-token",
  "scope": "repo:read repo:write",
  "expires_at": "2026-08-14T10:00:00Z",
  "created": "2026-07-15T10:00:00Z",
  "created_by": "quayadmin",
  "last_accessed": null,
  "token": "string..."
}

15.9. listOrganizationApplicationTokens

List OAuth API tokens for the specified organization application.

Return token metadata for the specified application. The bearer token secret is not included in list responses.

Authorizations: oauth2_implicit (org:admin)

15.9.2. Path parameters

TypeNameDescriptionSchema

path

orgname

required

The name of the organization

string

path

client_id

required

The OAuth client ID of the organization application

string

15.9.3. Query parameters

NameDescriptionSchema

next_page

optional

Pagination token from a previous response

string

15.9.4. Responses

HTTP CodeDescriptionSchema

200

Successful invocation

Object with tokens array and optional next_page

401

Session required

ApiError

403

Unauthorized access

ApiError

404

Not found

ApiError

15.9.5. Example command

$ curl -X GET "https://<quay-server.example.com>/api/v1/organization/<orgname>/applications/<client_id>/tokens" \
  -H "Authorization: Bearer <access_token>"

Example response

{
  "tokens": [
    {
      "uuid": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
      "name": "ci-job-token",
      "scope": "repo:read repo:write",
      "expires_at": "2026-08-14T10:00:00Z",
      "created": "2026-07-15T10:00:00Z",
      "created_by": "quayadmin",
      "last_accessed": null
    }
  ],
  "next_page": null
}

15.10. deleteOrganizationApplicationToken

Revoke a specific OAuth API token for the specified organization application.

Authorizations: oauth2_implicit (org:admin)

15.10.2. Path parameters

TypeNameDescriptionSchema

path

orgname

required

The name of the organization

string

path

client_id

required

The OAuth client ID of the organization application

string

path

token_uuid

required

The UUID of the OAuth API token

string

15.10.3. Responses

HTTP CodeDescriptionSchema

204

Successful revocation

No content

401

Session required

ApiError

403

Unauthorized access

ApiError

404

Not found

ApiError

15.10.4. Example command

$ curl -X DELETE "https://<quay-server.example.com>/api/v1/organization/<orgname>/applications/<client_id>/tokens/<token_uuid>" \
  -H "Authorization: Bearer <access_token>"

15.11. getOrganizationApplications

List the applications for the specified organization.

Authorizations: oauth2_implicit (org:admin)

15.11.2. Path parameters

TypeNameDescriptionSchema

path

orgname

required

The name of the organization

string

15.11.3. Responses

HTTP CodeDescriptionSchema

200

Successful invocation

 

400

Bad Request

ApiError

401

Session required

ApiError

403

Unauthorized access

ApiError

404

Not found

ApiError

15.11.4. Example command

$ curl -X GET "https://<quay-server.example.com>/api/v1/organization/<orgname>/applications" \
  -H "Authorization: Bearer <access_token>"

15.12. getProxyCacheConfig

Retrieves the proxy cache configuration of the organization.

Authorizations: 

15.12.2. Path parameters

TypeNameDescriptionSchema

path

orgname

required

The name of the organization

string

15.12.3. Responses

HTTP CodeDescriptionSchema

200

Successful invocation

 

400

Bad Request

ApiError

401

Session required

ApiError

403

Unauthorized access

ApiError

404

Not found

ApiError

15.12.4. Example command

$ curl -X GET "https://<quay-server.example.com>/api/v1/organization/{orgname}/proxycache" \
  -H "Authorization: Bearer <access_token>"

15.13. deleteProxyCacheConfig

Delete proxy cache configuration for the organization.

Authorizations: 

15.13.2. Path parameters

TypeNameDescriptionSchema

path

orgname

required

The name of the organization

string

15.13.3. Responses

HTTP CodeDescriptionSchema

204

Deleted

 

400

Bad Request

ApiError

401

Session required

ApiError

403

Unauthorized access

ApiError

404

Not found

ApiError

15.13.4. Example command

$ curl -X DELETE "https://<quay-server.example.com>/api/v1/organization/{orgname}/proxycache" \
  -H "Authorization: Bearer <access_token>"

15.14. createProxyCacheConfig

Creates proxy cache configuration for the organization.

Authorizations: 

15.14.2. Path parameters

TypeNameDescriptionSchema

path

orgname

required

The name of the organization

string

15.14.3. Request body schema (application/json)

Proxy cache configuration for an organization

NameDescriptionSchema

upstream_registry

required

Name of the upstream registry that is to be cached

string

15.14.4. Responses

HTTP CodeDescriptionSchema

201

Successful creation

 

400

Bad Request

ApiError

401

Session required

ApiError

403

Unauthorized access

ApiError

404

Not found

ApiError

15.14.5. Example command

$ curl -X POST "https://<quay-server.example.com>/api/v1/organization/<orgname>/proxycache" \
  -H "Authorization: Bearer <access_token>" \
  -H "Content-Type: application/json" \
  -d '{
        "upstream_registry": "<upstream_registry>"
        "upstream_registry_username": "your_robot_account_username"
        "upstream_registry_password": "your_robot_account_password"
      }'

15.15. getOrganizationMember

Retrieves the details of a member of the organization.

Authorizations: oauth2_implicit (org:admin)

15.15.2. Path parameters

TypeNameDescriptionSchema

path

membername

required

The username of the organization member

string

path

orgname

required

The name of the organization

string

15.15.3. Responses

HTTP CodeDescriptionSchema

200

Successful invocation

 

400

Bad Request

ApiError

401

Session required

ApiError

403

Unauthorized access

ApiError

404

Not found

ApiError

15.15.4. Example command

$ curl -X GET "https://<quay-server.example.com>/api/v1/organization/<orgname>/members/<membername>" \
  -H "Authorization: Bearer <access_token>"

15.16. removeOrganizationMember

Removes a member from an organization, revoking all its repository priviledges and removing it from all teams in the organization.

Authorizations: oauth2_implicit (org:admin)

15.16.2. Path parameters

TypeNameDescriptionSchema

path

membername

required

The username of the organization member

string

path

orgname

required

The name of the organization

string

15.16.3. Responses

HTTP CodeDescriptionSchema

204

Deleted

 

400

Bad Request

ApiError

401

Session required

ApiError

403

Unauthorized access

ApiError

404

Not found

ApiError

15.16.4. Example command

$ curl -X DELETE "https://<quay-server.example.com>/api/v1/organization/<orgname>/members/<membername>" \
  -H "Authorization: Bearer <access_token>"

15.17. getOrganizationMembers

List the human members of the specified organization.

Authorizations: oauth2_implicit (org:admin)

15.17.2. Path parameters

TypeNameDescriptionSchema

path

orgname

required

The name of the organization

string

15.17.3. Responses

HTTP CodeDescriptionSchema

200

Successful invocation

 

400

Bad Request

ApiError

401

Session required

ApiError

403

Unauthorized access

ApiError

404

Not found

ApiError

15.17.4. Example command

$ curl -X GET "https://<quay-server.example.com>/api/v1/organization/<orgname>/members" \
  -H "Authorization: Bearer <access_token>"

15.18. getOrganization

Get the details for the specified organization.

15.18.1. GET /api/v1/organization/{orgname}

Authorizations: 

15.18.2. Path parameters

TypeNameDescriptionSchema

path

orgname

required

The name of the organization

string

15.18.3. Responses

HTTP CodeDescriptionSchema

200

Successful invocation

 

400

Bad Request

ApiError

401

Session required

ApiError

403

Unauthorized access

ApiError

404

Not found

ApiError

15.18.4. Example command

$ curl -X GET \
  -H "Authorization: Bearer <bearer_token>" \
  "<quay-server.example.com>/api/v1/organization/<organization_name>"

15.19. changeOrganizationDetails

Change the details for the specified organization.

15.19.1. PUT /api/v1/organization/{orgname}

Authorizations: oauth2_implicit (org:admin)

15.19.2. Path parameters

TypeNameDescriptionSchema

path

orgname

required

The name of the organization

string

15.19.3. Request body schema (application/json)

Description of updates for an existing organization

NameDescriptionSchema

name

optional

The new name for the organization

string

15.19.4. Responses

HTTP CodeDescriptionSchema

200

Successful invocation

 

400

Bad Request

ApiError

401

Session required

ApiError

403

Unauthorized access

ApiError

404

Not found

ApiError

15.19.5. Example command

$ curl -X PUT \
  -H "Authorization: Bearer <bearer_token>" \
  "<quay-server.example.com>/api/v1/organization/<organization_name>"

15.20. deleteAdminedOrganization

Deletes the specified organization.

15.20.1. DELETE /api/v1/organization/{orgname}

Authorizations: oauth2_implicit (org:admin)

15.20.2. Path parameters

TypeNameDescriptionSchema

path

orgname

required

The name of the organization

string

15.20.3. Responses

HTTP CodeDescriptionSchema

204

Deleted

 

400

Bad Request

ApiError

401

Session required

ApiError

403

Unauthorized access

ApiError

404

Not found

ApiError

15.20.4. Example command

$ curl -X GET \
  -H "Authorization: Bearer <bearer_token>" \
  "<quay-server.example.com>/api/v1/organization/<organization_name>"

15.21. getApplicationInformation

Get information on the specified application.

15.21.1. GET /api/v1/app/{client_id}

Authorizations: 

15.21.2. Path parameters

TypeNameDescriptionSchema

path

client_id

required

The OAuth client ID

string

15.21.3. Responses

HTTP CodeDescriptionSchema

200

Successful invocation

 

400

Bad Request

ApiError

401

Session required

ApiError

403

Unauthorized access

ApiError

404

Not found

ApiError

15.21.4. Example command

$ curl -X GET "https://<quay-server.example.com>/api/v1/app/<client_id>" \
  -H "Authorization: Bearer <access_token>"
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