Download OpenAPI specification:Download
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.
The following resources are available to interact with the documented API:
The Docker Hub API is limited on the amount of requests you can perform per minute against it.
If you haven't hit the limit, each request to the API will return the following headers in the response.
X-RateLimit-Limit
- The limit of requests per minute.X-RateLimit-Remaining
- The remaining amount of calls within the limit period.X-RateLimit-Reset
- The unix timestamp of when the remaining resets.If you have hit the limit, you will receive a response status of 429
and the X-Retry-After
header in the response.
The X-Retry-After
header is a unix timestamp of when you can call the API again.
Note: These rate limits are separate from anti-abuse and Docker Hub download, or pull rate limiting. To learn more about Docker Hub pull rate limiting, see Usage and limits.
Most Docker Hub API endpoints require you to authenticate using your Docker credentials before using them.
Additionally, similar to the Docker Hub UI features, API endpoint responses may vary depending on your plan (Personal, Pro, or Team) and your account's permissions.
To learn more about the features available in each plan and to upgrade your existing plan, see Docker Pricing.
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.
As of September 16, 2024, this route requires a PAT instead of a password if your organization has SSO enforced.
Login details.
username required | string The username of the Docker Hub account to authenticate with. |
password required | string The password or personal access token (PAT) of the Docker Hub account to authenticate with. |
{- "username": "myusername",
- "password": "p@ssw0rd"
}
{- "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c"
}
When a user has two-factor authentication (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.
Login details.
login_2fa_token required | string The intermediate 2FA token returned from |
code required | string The Time-based One-Time Password of the Docker Hub account to authenticate with. |
{- "login_2fa_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c",
- "code": 123456
}
{- "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c"
}
The Personal Access Token endpoints lets you manage personal access tokens. For more information, see Access Tokens.
You can use a personal access token instead of a password in the Docker CLI or in the Create an authentication token route to obtain a bearer token.
For each scope grouping (in this case "repo"), you only need to define 1 scope as any lower scopes are assumed.
For example: If you define repo:write
, the API assumes the scope of both repo:read
and repo:public_read
as well.
If you were to define both repo:write
and repo:read
, then repo:read
is assumed by repo:write
and ignored.
Treat your personal access token like your password and keep it secret. You cannot retrieve your token after it is generated.
Creates and returns a personal access token.
token_label required | string [ 1 .. 100 ] characters Friendly name for you to identify the token. |
scopes required | Array of strings Valid scopes: "repo:admin", "repo:write", "repo:read", "repo:public_read" |
{- "token_label": "My read only token",
- "scopes": [
- "repo:read"
]
}
{- "uuid": "b30bbf97-506c-4ecd-aabc-842f3cb484fb",
- "client_id": "HUB",
- "creator_ip": "127.0.0.1",
- "creator_ua": "some user agent",
- "created_at": "2021-07-20T12:00:00.000000Z",
- "last_used": null,
- "generated_by": "manual",
- "is_active": true,
- "token": "a7a5ef25-8889-43a0-8cc7-f2a94268e861",
- "token_label": "My read only token",
- "scopes": [
- "repo:read"
]
}
Returns a paginated list of personal access tokens.
page | number Default: 1 |
page_size | number Default: 10 |
{- "count": 1,
- "next": null,
- "previous": null,
- "active_count": 1,
- "results": [
- {
- "uuid": "b30bbf97-506c-4ecd-aabc-842f3cb484fb",
- "client_id": "HUB",
- "creator_ip": "127.0.0.1",
- "creator_ua": "some user agent",
- "created_at": "2021-07-20T12:00:00.000000Z",
- "last_used": null,
- "generated_by": "manual",
- "is_active": true,
- "token": "",
- "token_label": "My read only token",
- "scopes": [
- "repo:read"
]
}
]
}
Updates a personal access token partially. You can either update the token's label or enable/disable it.
uuid required | string |
token_label | string [ 1 .. 100 ] characters |
is_active | boolean |
{- "token_label": "My read only token",
- "is_active": false
}
{- "uuid": "b30bbf97-506c-4ecd-aabc-842f3cb484fb",
- "client_id": "HUB",
- "creator_ip": "127.0.0.1",
- "creator_ua": "some user agent",
- "created_at": "2021-07-20T12:00:00.000000Z",
- "last_used": null,
- "generated_by": "manual",
- "is_active": true,
- "token": "a7a5ef25-8889-43a0-8cc7-f2a94268e861",
- "token_label": "My read only token",
- "scopes": [
- "repo:read"
]
}
Returns a personal access token by UUID.
uuid required | string |
{- "uuid": "b30bbf97-506c-4ecd-aabc-842f3cb484fb",
- "client_id": "HUB",
- "creator_ip": "127.0.0.1",
- "creator_ua": "some user agent",
- "created_at": "2021-07-20T12:00:00.000000Z",
- "last_used": null,
- "generated_by": "manual",
- "is_active": true,
- "token": "",
- "token_label": "My read only token",
- "scopes": [
- "repo:read"
]
}
The Audit Logs API endpoints allow you to query audit log events across a namespace.
For more information, see Audit Log.
Get audit log events for a given namespace.
account required | string Namespace to query audit logs for. |
action | string action name one of ["repo.tag.push", ...]. Optional parameter to filter specific audit log actions. |
name | string name. Optional parameter to filter audit log events to a specific name. For repository events, this is the name of the repository. For organization events, this is the name of the organization. For team member events, this is the username of the team member. |
actor | string actor name. Optional parameter to filter audit log events to the specific user who triggered the event. |
from | string <date-time> Start of the time window you wish to query audit events for. |
to | string <date-time> End of the time window you wish to query audit events for. |
page | integer <int32> Default: 1 page - specify page number. Page number to get. |
page_size | integer <int32> Default: 25 page_size - specify page size. Number of events to return per page. |
{- "logs": [
- {
- "account": "docker",
- "action": "repo.tag.push",
- "name": "docker/example",
- "actor": "docker",
- "data": {
- "digest": "sha256:c1ae9c435032a276f80220c7d9b40f76266bbe79243d34f9cda30b76fe114dfa",
- "tag": "latest"
}, - "timestamp": "2021-02-19T01:34:35Z",
- "action_description": "pushed the tag latest with the digest sha256:c1ae9c435032a to the repository docker/example\n"
}
]
}
Get audit log actions for a namespace to be used as a filter for querying audit events.
account required | string Namespace to query audit log actions for. |
{- "actions": {
- "org": {
- "actions": [
- {
- "name": "team.create",
- "description": "contains team create events",
- "label": "Team Created"
}, - {
- "name": "team.delete",
- "description": "contains team delete events",
- "label": "Team Deleted"
}, - {
- "name": "team.member.add",
- "description": "contains team member add events",
- "label": "Team Member Added"
}, - {
- "name": "team.member.remove",
- "description": "contains team member remove events",
- "label": "Team Member Removed"
}, - {
- "name": "team.member.invite",
- "description": "contains team member invite events",
- "label": "Team Member Invited"
}, - {
- "name": "member.removed",
- "description": "contains org member remove events",
- "label": "Organization Member Removed"
}, - {
- "name": "create",
- "description": "contains organization create events",
- "label": "Organization Created"
}
], - "label": "Organization"
}, - "repo": {
- "actions": [
- {
- "name": "create",
- "description": "contains repository create events",
- "label": "Repository Created"
}, - {
- "name": "delete",
- "description": "contains repository delete events",
- "label": "Repository Deleted"
}, - {
- "name": "change_privacy",
- "description": "contains repository privacy change events",
- "label": "Privacy Changed"
}, - {
- "name": "tag.push",
- "description": "contains image tag push events",
- "label": "Tag Pushed"
}, - {
- "name": "tag.delete",
- "description": "contains image tag delete events",
- "label": "Tag Deleted"
}
], - "label": "Repository"
}
}
}
Updates an organization's settings. Some settings are only used when the organization is on a business plan.
Only users with administrative privileges for the organization (owner role) can modify these settings.
The following settings are only used on a business plan:
restricted_images
name required | string Name of the organization. |
required | object |
{- "restricted_images": {
- "enabled": true,
- "allow_official_images": true,
- "allow_verified_publishers": true
}
}
{- "restricted_images": {
- "enabled": true,
- "allow_official_images": true,
- "allow_verified_publishers": true
}
}
SCIM is a provisioning system that lets you manage users within your identity provider (IdP).
For more information, see System for Cross-domain Identity management.
Returns a service provider config for Docker's configuration.
{- "schemas": [
- "urn:ietf:params:scim:schemas:core:2.0:ServiceProviderConfig"
], - "documentationUri": "",
- "patch": {
- "supported": false
}, - "bulk": {
- "supported": false,
- "maxOperations": 0,
- "maxPayloadSize": 0
}, - "filter": {
- "supported": true,
- "maxResults": 99999
}, - "changePassword": {
- "supported": false
}, - "sort": {
- "supported": true
}, - "etag": {
- "supported": false
}, - "authenticationSchemes": {
- "name": "OAuth 2.0 Bearer Token",
- "description": "The OAuth 2.0 Bearer Token Authentication scheme. OAuth enables clients to access protected resources by obtaining an access token, which is defined in RFC 6750 as \"a string representing an access authorization issued to the client\", rather than using the resource owner's credentials directly.",
- "type": "oauthbearertoken"
}
}
Returns all resource types supported for the SCIM configuration.
{- "schemas": [
- "urn:ietf:params:scim:api:messages:2.0:ListResponse"
], - "totalResults": 1,
- "resources": [
- {
- "schemas": [
- "urn:ietf:params:scim:schemas:core:2.0:ResourceType"
], - "id": "User",
- "name": "User",
- "description": "User",
- "endpoint": "/Users",
- "schema": "urn:ietf:params:scim:schemas:core:2.0:User"
}
]
}
Returns a resource type by name.
name required | string Example: User |
{- "schemas": [
- "urn:ietf:params:scim:schemas:core:2.0:ResourceType"
], - "id": "User",
- "name": "User",
- "description": "User",
- "endpoint": "/Users",
- "schema": "urn:ietf:params:scim:schemas:core:2.0:User"
}
{- "schemas": [
- "urn:ietf:params:scim:api:messages:2.0:ListResponse"
], - "totalResults": 1,
- "resources": [
- {
- "schemas": [
- "urn:ietf:params:scim:schemas:core:2.0:Schema"
], - "id": "urn:ietf:params:scim:schemas:core:2.0:User",
- "name": "User",
- "description": "User Account",
- "attributes": [ ]
}
]
}
Returns a schema by ID.
id required | string Example: urn:ietf:params:scim:schemas:core:2.0:User |
{- "schemas": [
- "urn:ietf:params:scim:schemas:core:2.0:Schema"
], - "id": "urn:ietf:params:scim:schemas:core:2.0:User",
- "name": "User",
- "description": "User Account",
- "attributes": [ ]
}
Returns paginated users for an organization. Use startIndex
and count
query parameters to receive paginated results.
Sorting:
Sorting allows you to specify the order in which resources are returned by specifying a combination of sortBy
and sortOrder
query parameters.
The sortBy
parameter specifies the attribute whose value will be used to order the returned responses. The sortOrder
parameter defines the order in which the sortBy
parameter is applied. Allowed values are "ascending" and "descending".
Filtering:
You can request a subset of resources by specifying the filter
query parameter containing a filter expression. Attribute names and attribute operators used in filters are case insensitive. The filter parameter must contain at least one valid expression. Each expression must contain an attribute name followed by an attribute operator and an optional value.
Supported operators are listed below.
eq
equalne
not equalco
containssw
starts withand
Logical "and"or
Logical "or"not
"Not" function()
Precedence groupingstartIndex | integer >= 1 Example: startIndex=1 |
count | integer [ 1 .. 200 ] Example: count=10 |
filter | string Example: filter=userName eq "jon.snow@docker.com" |
attributes | string Example: attributes=userName,displayName Comma delimited list of attributes to limit to in the response. |
sortOrder | string Enum: "ascending" "descending" |
sortBy | string Example: sortBy=userName User attribute to sort by. |
{- "schemas": [
- "urn:ietf:params:scim:api:messages:2.0:ListResponse"
], - "totalResults": 1,
- "startIndex": 1,
- "itemsPerPage": 10,
- "resources": [
- {
- "schemas": [
- "urn:ietf:params:scim:schemas:core:2.0:User"
], - "id": "d80f7c79-7730-49d8-9a41-7c42fb622d9c",
- "userName": "jon.snow@docker.com",
- "name": {
- "givenName": "Jon",
- "familyName": "Snow"
}, - "displayName": "jonsnow",
- "active": true,
- "emails": [
- {
- "value": "jon.snow@docker.com",
- "display": "jon.snow@docker.com",
- "primary": true
}
], - "groups": [
- {
- "value": "nightswatch",
- "display": "nightswatch"
}
], - "meta": {
- "resourceType": "User",
- "created": "2022-05-20T00:54:18Z",
- "lastModified": "2022-05-20T00:54:18Z"
}
}
]
}
Creates a user. If the user already exists by email, they are assigned to the organization on the "company" team.
schemas required | Array of strings (scim_user_schemas) [ items non-empty ] |
userName required | string (scim_user_username) The user's email address. This must be reachable via email. |
object (scim_user_name) |
{- "schemas": [
- "urn:ietf:params:scim:schemas:core:2.0:User"
], - "userName": "jon.snow@docker.com",
- "name": {
- "givenName": "Jon",
- "familyName": "Snow"
}
}
{- "schemas": [
- "urn:ietf:params:scim:schemas:core:2.0:User"
], - "id": "d80f7c79-7730-49d8-9a41-7c42fb622d9c",
- "userName": "jon.snow@docker.com",
- "name": {
- "givenName": "Jon",
- "familyName": "Snow"
}, - "displayName": "jonsnow",
- "active": true,
- "emails": [
- {
- "value": "jon.snow@docker.com",
- "display": "jon.snow@docker.com",
- "primary": true
}
], - "groups": [
- {
- "value": "nightswatch",
- "display": "nightswatch"
}
], - "meta": {
- "resourceType": "User",
- "created": "2022-05-20T00:54:18Z",
- "lastModified": "2022-05-20T00:54:18Z"
}
}
Returns a user by ID.
id required | string Example: d80f7c79-7730-49d8-9a41-7c42fb622d9c The user ID. |
{- "schemas": [
- "urn:ietf:params:scim:schemas:core:2.0:User"
], - "id": "d80f7c79-7730-49d8-9a41-7c42fb622d9c",
- "userName": "jon.snow@docker.com",
- "name": {
- "givenName": "Jon",
- "familyName": "Snow"
}, - "displayName": "jonsnow",
- "active": true,
- "emails": [
- {
- "value": "jon.snow@docker.com",
- "display": "jon.snow@docker.com",
- "primary": true
}
], - "groups": [
- {
- "value": "nightswatch",
- "display": "nightswatch"
}
], - "meta": {
- "resourceType": "User",
- "created": "2022-05-20T00:54:18Z",
- "lastModified": "2022-05-20T00:54:18Z"
}
}
Updates a user. This route is used to change the user's name, activate, and deactivate the user.
id required | string Example: d80f7c79-7730-49d8-9a41-7c42fb622d9c The user ID. |
schemas required | Array of strings (scim_user_schemas) [ items non-empty ] |
object If this is omitted from the request, the update will skip the update on it. We will only ever change the name, but not clear it. | |
enabled | boolean Default: false If this is omitted from the request, it will default to false resulting in a deactivated user. |
{- "schemas": [
- "urn:ietf:params:scim:schemas:core:2.0:User"
], - "name": {
- "givenName": "Jon",
- "familyName": "Snow"
}, - "enabled": false
}
{- "schemas": [
- "urn:ietf:params:scim:schemas:core:2.0:User"
], - "id": "d80f7c79-7730-49d8-9a41-7c42fb622d9c",
- "userName": "jon.snow@docker.com",
- "name": {
- "givenName": "Jon",
- "familyName": "Snow"
}, - "displayName": "jonsnow",
- "active": true,
- "emails": [
- {
- "value": "jon.snow@docker.com",
- "display": "jon.snow@docker.com",
- "primary": true
}
], - "groups": [
- {
- "value": "nightswatch",
- "display": "nightswatch"
}
], - "meta": {
- "resourceType": "User",
- "created": "2022-05-20T00:54:18Z",
- "lastModified": "2022-05-20T00:54:18Z"
}
}
The organization endpoints allow you to interact with and manage your organizations.
For more information, see Organization administration overview.
Returns a list of members for an organization"
org_name required | string Example: myorganization Name of the organization (namespace). |
search | integer Search term. |
page | integer Page number (starts on 1). |
page_size | integer Number of items (rows) per page. |
invites | boolean Include invites in the response. |
type | string Enum: "all" "invitee" "member" Example: type=all |
role | string Enum: "owner" "editor" "member" Example: role=owner |
[- {
- "count": 120,
- "results": [
- {
- "email": "example@docker.com",
- "role": "Owner",
- "groups": [
- "developers",
- "owners"
], - "is_guest": false,
- "primary_email": "example@docker.com",
- "id": "0ab70deb065a43fcacd55d48caa945d8",
- "company": "Docker Inc",
- "date_joined": "2021-01-05T21:06:53.506400Z",
- "full_name": "Jon Snow",
- "gravatar_email": "string",
- "gravatar_url": "string",
- "location": "string",
- "profile_url": "string",
- "type": "User",
- "username": "dockeruser"
}
]
}
]
Updates the role of a member in the organization. Only users in the "owners" group of the organization can use this endpoint.
org_name required | string Example: myorganization Name of the organization (namespace). |
username required | string Example: jonsnow Username, identifier for the user (namespace, DockerID). |
role required | string Enum: "owner" "editor" "member" Role of the member |
{- "role": "owner"
}
{- "email": "example@docker.com",
- "role": "Owner",
- "groups": [
- "developers",
- "owners"
], - "is_guest": false,
- "primary_email": "example@docker.com",
- "id": "0ab70deb065a43fcacd55d48caa945d8",
- "company": "Docker Inc",
- "date_joined": "2021-01-05T21:06:53.506400Z",
- "full_name": "Jon Snow",
- "gravatar_email": "string",
- "gravatar_url": "string",
- "location": "string",
- "profile_url": "string",
- "type": "User",
- "username": "dockeruser"
}
Removes the member from the org, ie. all groups in the org, unless they're the last owner
org_name required | string Example: myorganization Name of the organization (namespace). |
username required | string Example: jonsnow Username, identifier for the user (namespace, DockerID). |
{- "errinfo": { },
- "detail": "string",
- "message": "string"
}
The groups endpoints allow you to manage your organization's teams and their members.
For more information, seee Create and manage a team.
org_name required | string Example: myorganization Name of the organization (namespace). |
page | integer Page number (starts on 1). |
page_size | integer Number of items (rows) per page. |
username | string Get groups for the specified username in the organization. |
search | string Get groups for the specified group in the organization. |
{- "count": 1,
- "next": null,
- "previous": null,
- "results": [
- {
- "id": 10,
- "uuid": "string",
- "name": "mygroup",
- "description": "Groups description",
- "member_count": 10
}
]
}
Create a new group within an organization.
org_name required | string Example: myorganization Name of the organization (namespace). |
name required | string |
description | string |
{- "name": "string",
- "description": "string"
}
{- "id": 10,
- "uuid": "string",
- "name": "mygroup",
- "description": "Groups description",
- "member_count": 10
}
org_name required | string Example: myorganization Name of the organization (namespace). |
group_name required | string Example: developers Name of the group (team) in the organization. |
{- "id": 10,
- "uuid": "string",
- "name": "mygroup",
- "description": "Groups description",
- "member_count": 10
}
org_name required | string Example: myorganization Name of the organization (namespace). |
group_name required | string Example: developers Name of the group (team) in the organization. |
name required | string |
description | string |
{- "name": "string",
- "description": "string"
}
{- "id": 10,
- "uuid": "string",
- "name": "mygroup",
- "description": "Groups description",
- "member_count": 10
}
org_name required | string Example: myorganization Name of the organization (namespace). |
group_name required | string Example: developers Name of the group (team) in the organization. |
name | string |
description | string |
{- "name": "string",
- "description": "string"
}
{- "id": 10,
- "uuid": "string",
- "name": "mygroup",
- "description": "Groups description",
- "member_count": 10
}
org_name required | string Example: myorganization Name of the organization (namespace). |
group_name required | string Example: developers Name of the group (team) in the organization. |
{- "errinfo": { },
- "detail": "string",
- "message": "string"
}
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.
org_name required | string Example: myorganization Name of the organization (namespace). |
group_name required | string Example: developers Name of the group (team) in the organization. |
page | integer Page number (starts on 1). |
page_size | integer Number of items (rows) per page. |
search | string Search members by username, full_name or email. |
{- "count": 1,
- "next": null,
- "previous": null,
- "results": [
- {
- "id": "0ab70deb065a43fcacd55d48caa945d8",
- "company": "Docker Inc",
- "date_joined": "2021-01-05T21:06:53.506400Z",
- "full_name": "John Snow",
- "gravatar_email": "string",
- "gravatar_url": "string",
- "location": "string",
- "profile_url": "string",
- "type": "User",
- "username": "dockeruser",
- "email": "dockeruser@docker.com"
}
]
}
org_name required | string Example: myorganization Name of the organization (namespace). |
group_name required | string Example: developers Name of the group (team) in the organization. |
member required | string |
{- "member": "jonsnow"
}
{- "errinfo": { },
- "detail": "string",
- "message": "string"
}
org_name required | string Example: myorganization Name of the organization (namespace). |
group_name required | string Example: developers Name of the group (team) in the organization. |
username required | string Example: jonsnow Username, identifier for the user (namespace, DockerID). |
{- "errinfo": { },
- "detail": "string",
- "message": "string"
}
The invites endpoints allow you to manage invites for users to join your Docker organization.
For more information, see Invite members.
Return all pending invites for a given org, only team owners can call this endpoint
org_name required | string Example: myorganization Name of the organization (namespace). |
{- "data": [
- {
- "id": "e36eca69-4cc8-4f17-9845-ae8c2b832691",
- "inviter_username": "moby",
- "invitee": "invitee@docker.com",
- "org": "docker",
- "team": "owners",
- "created_at": "2021-10-28T18:30:19.520861Z"
}
]
}
Create multiple invites by emails or DockerIDs. Only a team owner can create invites.
X-Analytics-Client-Feature | string Optional string that indicates the feature used to submit the bulk invites (e.g.'file', 'web') |
org required | string organization name |
team | string team name |
role | string role for invitees |
invitees required | Array of strings list of invitees emails or Docker Ids |
dry_run | boolean Optional, run through validation but don't actually change data. |
{- "org": "docker",
- "team": "owners",
- "role": "member",
- "invitees": [
- "invitee1DockerId",
- "invitee2@docker.com",
- "invitee3@docker.com"
], - "dry_run": true
}
{- "invitees": {
- "invitees": [
- {
- "invitee": "invitee@docker.com",
- "status": "invited",
- "invite": {
- "id": "e36eca69-4cc8-4f17-9845-ae8c2b832691",
- "inviter_username": "moby",
- "invitee": "invitee@docker.com",
- "org": "docker",
- "team": "owners",
- "created_at": "2021-10-28T18:30:19.520861Z"
}
}, - {
- "invitee": "invitee2@docker.com",
- "status": "existing_org_member"
}, - {
- "invitee": "invitee3@docker.com",
- "status": "invalid_email_or_docker_id"
}
]
}
}