Docker Hub Groups API

The groups endpoints allow you to manage your organization's teams and their members. For more information, see [Create and manage a team](https://docs.docker.com/admin/organization/manage/manage-a-team/).

Operations 9

GET /v2/orgs/{org_name}/groups Get groups of an organization #
POST /v2/orgs/{org_name}/groups Create a new group #
GET /v2/orgs/{org_name}/groups/{group_name} Get a group of an organization #
PUT /v2/orgs/{org_name}/groups/{group_name} Update the details for an organization group #
PATCH /v2/orgs/{org_name}/groups/{group_name} Update some details for an organization group #
DELETE /v2/orgs/{org_name}/groups/{group_name} Delete an organization group #
GET /v2/orgs/{org_name}/groups/{group_name}/members List members of a group #
POST /v2/orgs/{org_name}/groups/{group_name}/members Add a member to a group #
DELETE /v2/orgs/{org_name}/groups/{group_name}/members/{username} Remove a user from a group #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/docker-hub-groups-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

docker-hub-groups-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Docker HUB Groups API
  version: 2-beta
  x-logo:
    url: https://docs.docker.com/assets/images/logo-docker-main.png
    href: /reference
  description: 'Docker Hub is a service provided by Docker for finding and sharing container images with your team.


    It is the world''s largest library and community for container images.


    In addition to the Docker Hub UI and Docker Hub CLI tool (currently experimental), Docker provides an API that allows you to interact with Docker Hub.


    Browse through the Docker Hub API documentation to explore the supported endpoints.'
servers:
- description: Docker HUB API
  x-audience: public
  url: https://hub.docker.com
tags:
- name: Groups
  x-displayName: Groups (Teams)
  x-audience: public
  description: 'The groups endpoints allow you to manage your organization''s teams and their members.


    For more information, see Create and manage a team.'
paths:
  /v2/orgs/{org_name}/groups:
    x-audience: public
    parameters:
    - $ref: '#/components/parameters/org_name'
    get:
      summary: Get groups of an organization
      description: ''
      tags:
      - Groups
      security:
      - bearerAuth: []
      parameters:
      - $ref: '#/components/parameters/page'
      - $ref: '#/components/parameters/page_size'
      - in: query
        name: username
        schema:
          type: string
        description: Get groups for the specified username in the organization.
      - in: query
        name: search
        schema:
          type: string
        description: Get groups for the specified group in the organization.
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                properties:
                  count:
                    type: number
                    example: 1
                  next:
                    type: string
                    example: null
                  previous:
                    type: string
                    example: null
                  results:
                    type: array
                    items:
                      $ref: '#/components/schemas/org_group'
        '401':
          $ref: '#/components/responses/unauthorized'
        '403':
          $ref: '#/components/responses/forbidden'
        '404':
          $ref: '#/components/responses/not_found'
      operationId: getV2OrgsByOrgNameGroups
      x-operation-id-source: derived
    post:
      summary: Create a new group
      description: Create a new group within an organization.
      tags:
      - Groups
      security:
      - bearerAuth: []
      requestBody:
        content:
          application/json:
            schema:
              required:
              - name
              properties:
                name:
                  type: string
                description:
                  type: string
      responses:
        '201':
          description: Group created successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/org_group'
        '400':
          $ref: '#/components/responses/bad_request'
        '401':
          $ref: '#/components/responses/unauthorized'
        '403':
          $ref: '#/components/responses/forbidden'
      operationId: postV2OrgsByOrgNameGroups
      x-operation-id-source: derived
  /v2/orgs/{org_name}/groups/{group_name}:
    x-audience: public
    parameters:
    - $ref: '#/components/parameters/org_name'
    - $ref: '#/components/parameters/group_name'
    get:
      summary: Get a group of an organization
      description: ''
      tags:
      - Groups
      security:
      - bearerAuth: []
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/org_group'
        '401':
          $ref: '#/components/responses/unauthorized'
        '403':
          $ref: '#/components/responses/forbidden'
        '404':
          $ref: '#/components/responses/not_found'
      operationId: getV2OrgsByOrgNameGroupsByGroupName
      x-operation-id-source: derived
    put:
      summary: Update the details for an organization group
      description: ''
      tags:
      - Groups
      security:
      - bearerAuth: []
      requestBody:
        content:
          application/json:
            schema:
              required:
              - name
              properties:
                name:
                  type: string
                description:
                  type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/org_group'
        '401':
          $ref: '#/components/responses/unauthorized'
        '403':
          $ref: '#/components/responses/forbidden'
        '404':
          $ref: '#/components/responses/not_found'
      operationId: putV2OrgsByOrgNameGroupsByGroupName
      x-operation-id-source: derived
    patch:
      summary: Update some details for an organization group
      description: ''
      tags:
      - Groups
      security:
      - bearerAuth: []
      requestBody:
        content:
          application/json:
            schema:
              properties:
                name:
                  type: string
                description:
                  type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/org_group'
        '401':
          $ref: '#/components/responses/unauthorized'
        '403':
          $ref: '#/components/responses/forbidden'
        '404':
          $ref: '#/components/responses/not_found'
      operationId: patchV2OrgsByOrgNameGroupsByGroupName
      x-operation-id-source: derived
    delete:
      summary: Delete an organization group
      description: ''
      tags:
      - Groups
      security:
      - bearerAuth: []
      responses:
        '204':
          description: Group deleted successfully
        '401':
          $ref: '#/components/responses/unauthorized'
        '403':
          $ref: '#/components/responses/forbidden'
        '404':
          $ref: '#/components/responses/not_found'
      operationId: deleteV2OrgsByOrgNameGroupsByGroupName
      x-operation-id-source: derived
  /v2/orgs/{org_name}/groups/{group_name}/members:
    x-audience: public
    get:
      security:
      - bearerAuth: []
      parameters:
      - $ref: '#/components/parameters/org_name'
      - $ref: '#/components/parameters/group_name'
      - $ref: '#/components/parameters/page'
      - $ref: '#/components/parameters/page_size'
      - in: query
        name: search
        schema:
          type: string
        description: Search members by username, full_name or email.
      summary: List members of a group
      description: 'List the members (users) that are in a group.

        If user is owner of the org or has otherwise elevated permissions, they can search by email and the result will also contain emails.'
      tags:
      - Groups
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                properties:
                  count:
                    type: number
                    example: 1
                  next:
                    type: string
                    example: null
                  previous:
                    type: string
                    example: null
                  results:
                    type: array
                    items:
                      $ref: '#/components/schemas/group_member'
        '401':
          $ref: '#/components/responses/unauthorized'
        '403':
          $ref: '#/components/responses/forbidden'
        '404':
          $ref: '#/components/responses/not_found'
      operationId: getV2OrgsByOrgNameGroupsByGroupNameMembers
      x-operation-id-source: derived
    post:
      parameters:
      - $ref: '#/components/parameters/org_name'
      - $ref: '#/components/parameters/group_name'
      summary: Add a member to a group
      description: ''
      tags:
      - Groups
      security:
      - bearerAuth: []
      requestBody:
        $ref: '#/components/requestBodies/add_member_to_org_group'
      responses:
        '200':
          description: OK
        '401':
          $ref: '#/components/responses/unauthorized'
        '403':
          $ref: '#/components/responses/forbidden'
        '404':
          $ref: '#/components/responses/not_found'
        '500':
          $ref: '#/components/responses/internal_error'
      operationId: postV2OrgsByOrgNameGroupsByGroupNameMembers
      x-operation-id-source: derived
  /v2/orgs/{org_name}/groups/{group_name}/members/{username}:
    x-audience: public
    parameters:
    - $ref: '#/components/parameters/org_name'
    - $ref: '#/components/parameters/group_name'
    - $ref: '#/components/parameters/username'
    delete:
      summary: Remove a user from a group
      description: ''
      tags:
      - Groups
      security:
      - bearerAuth: []
      responses:
        '204':
          description: User removed successfully
        '401':
          $ref: '#/components/responses/unauthorized'
        '403':
          $ref: '#/components/responses/forbidden'
        '404':
          $ref: '#/components/responses/not_found'
      operationId: deleteV2OrgsByOrgNameGroupsByGroupNameMembersByUsername
      x-operation-id-source: derived
components:
  responses:
    forbidden:
      description: Forbidden
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/error'
    bad_request:
      description: Bad Request
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/error'
    not_found:
      description: Not Found
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/error'
    internal_error:
      description: Internal
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/error'
    unauthorized:
      description: Unauthorized
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/error'
  parameters:
    org_name:
      in: path
      name: org_name
      description: Name of the organization (namespace).
      schema:
        type: string
      example: myorganization
      required: true
    group_name:
      in: path
      name: group_name
      description: Name of the group (team) in the organization.
      schema:
        type: string
        example: developers
      required: true
    username:
      in: path
      name: username
      description: Username, identifier for the user (namespace, DockerID).
      schema:
        type: string
        example: jonsnow
      required: true
    page_size:
      in: query
      name: page_size
      description: Number of items (rows) per page.
      schema:
        type: integer
    page:
      in: query
      name: page
      description: Page number (starts on 1).
      schema:
        type: integer
  schemas:
    group_member:
      type: object
      properties:
        id:
          type: string
          example: 0ab70deb065a43fcacd55d48caa945d8
          description: The UUID trimmed
        company:
          type: string
          example: Docker Inc
        date_joined:
          type: string
          format: date-time
          example: '2021-01-05T21:06:53.506400Z'
        full_name:
          type: string
          example: John Snow
        gravatar_email:
          type: string
        gravatar_url:
          type: string
        location:
          type: string
        profile_url:
          type: string
        type:
          type: string
          enum:
          - User
          - Org
          example: User
        username:
          type: string
          example: dockeruser
        email:
          type: string
          example: dockeruser@docker.com
    error:
      type: object
      properties:
        errinfo:
          type: object
          items:
            type: string
        detail:
          type: string
        message:
          type: string
    org_group:
      type: object
      properties:
        id:
          type: number
          example: 10
          description: Group ID
        uuid:
          type: string
          description: UUID for the group
        name:
          type: string
          example: mygroup
          description: Name of the group
        description:
          type: string
          example: Groups description
          description: Description of the group
        member_count:
          type: number
          example: 10
          description: Member count of the group
  requestBodies:
    add_member_to_org_group:
      required: true
      content:
        application/json:
          schema:
            type: object
            required:
            - member
            properties:
              member:
                type: string
                example: jonsnow
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
    bearerSCIMAuth:
      type: http
      scheme: bearer
x-tagGroups:
- name: General
  tags:
  - changelog
  - resources
  - rate-limiting
  - authentication
- name: API
  tags:
  - authentication-api
  - access-tokens
  - images
  - audit-logs
  - org-settings
  - repositories
  - scim
  - orgs
  - org-access-tokens
  - groups
  - invites