List organizations
Lists all organizations, in the order that they were created on GitHub Enterprise.
Note: Pagination is powered exclusively by the since parameter. Use the Link header to get the URL for the next page of organizations.
get /organizationsParameters
| Name | Type | In | Description | 
|---|---|---|---|
| accept | string | header | Setting to  | 
| since | integer | query | The integer ID of the last organization that you've seen. | 
Code samples
Shell
curl \
  -H "Accept: application/vnd.github.v3+json" \
  https://{hostname}/organizations
JavaScript (@octokit/core.js)
await octokit.request('GET /organizations')
Default response
Status: 200 OK[
  {
    "login": "github",
    "id": 1,
    "node_id": "MDEyOk9yZ2FuaXphdGlvbjE=",
    "url": "https://api.github.com/orgs/github",
    "repos_url": "https://api.github.com/orgs/github/repos",
    "events_url": "https://api.github.com/orgs/github/events",
    "hooks_url": "https://api.github.com/orgs/github/hooks",
    "issues_url": "https://api.github.com/orgs/github/issues",
    "members_url": "https://api.github.com/orgs/github/members{/member}",
    "public_members_url": "https://api.github.com/orgs/github/public_members{/member}",
    "avatar_url": "https://github.com/images/error/octocat_happy.gif",
    "description": "A great organization"
  }
]
Notes
Get an organization
To see many of the organization response values, you need to be an authenticated organization owner with the admin:org scope. When the value of two_factor_requirement_enabled is true, the organization requires all members, billing managers, and outside collaborators to enable two-factor authentication.
get /orgs/{org}Parameters
| Name | Type | In | Description | 
|---|---|---|---|
| accept | string | header | Setting to  | 
| org | string | path | 
Code samples
Shell
curl \
  -H "Accept: application/vnd.github.v3+json" \
  https://{hostname}/orgs/ORG
JavaScript (@octokit/core.js)
await octokit.request('GET /orgs/{org}', {
  org: 'org'
})
Default response
Status: 200 OK{
  "login": "github",
  "id": 1,
  "node_id": "MDEyOk9yZ2FuaXphdGlvbjE=",
  "url": "https://api.github.com/orgs/github",
  "repos_url": "https://api.github.com/orgs/github/repos",
  "events_url": "https://api.github.com/orgs/github/events",
  "hooks_url": "https://api.github.com/orgs/github/hooks",
  "issues_url": "https://api.github.com/orgs/github/issues",
  "members_url": "https://api.github.com/orgs/github/members{/member}",
  "public_members_url": "https://api.github.com/orgs/github/public_members{/member}",
  "avatar_url": "https://github.com/images/error/octocat_happy.gif",
  "description": "A great organization",
  "name": "github",
  "company": "GitHub",
  "blog": "https://github.com/blog",
  "location": "San Francisco",
  "email": "octocat@github.com",
  "has_organization_projects": true,
  "has_repository_projects": true,
  "public_repos": 2,
  "public_gists": 1,
  "followers": 20,
  "following": 0,
  "html_url": "https://github.com/octocat",
  "created_at": "2008-01-14T04:33:35Z",
  "type": "Organization",
  "total_private_repos": 100,
  "owned_private_repos": 100,
  "private_gists": 81,
  "disk_usage": 10000,
  "collaborators": 8,
  "billing_email": "support@github.com",
  "plan": {
    "name": "Medium",
    "space": 400,
    "private_repos": 20
  },
  "default_repository_permission": "read",
  "members_can_create_repositories": true,
  "two_factor_requirement_enabled": true,
  "members_allowed_repository_creation_type": "all"
}
Notes
Preview notice
New repository creation permissions are available to preview. You can now use members_can_create_public_repositories, members_can_create_private_repositories, and members_can_create_internal_repositories. You can only allow members to create internal repositories if your organization is associated with an enterprise account using GitHub Enterprise Cloud or GitHub Enterprise Server 2.20+. These parameters provide more granular permissions to configure the type of repositories organization members can create.
To access these new parameters during the preview period, you must provide a custom media type in the Accept header:
application/vnd.github.surtur-preview+json
Update an organization
Note: The new members_allowed_repository_creation_type replaces the functionality of members_can_create_repositories.
Setting members_allowed_repository_creation_type will override the value of members_can_create_repositories in the following ways:
- Setting members_allowed_repository_creation_typetoallorprivatesetsmembers_can_create_repositoriestotrue.
- Setting members_allowed_repository_creation_typetononesetsmembers_can_create_repositoriestofalse.
- If you omit members_allowed_repository_creation_type,members_can_create_repositoriesis not modified.
Enables an authenticated organization owner with the admin:org scope to update the organization's profile and member privileges.
patch /orgs/{org}Parameters
| Name | Type | In | Description | 
|---|---|---|---|
| accept | string | header | Setting to  | 
| org | string | path | |
| billing_email | string | body | Billing email address. This address is not publicized. | 
| company | string | body | The company name. | 
| email | string | body | The publicly visible email address. | 
| location | string | body | The location. | 
| name | string | body | The shorthand name of the company. | 
| description | string | body | The description of the company. | 
| has_organization_projects | boolean | body | Toggles whether an organization can use organization projects. | 
| has_repository_projects | boolean | body | Toggles whether repositories that belong to the organization can use repository projects. | 
| default_repository_permission | string | body | Default permission level members have for organization repositories: read | 
| members_can_create_repositories | boolean | body | Toggles the ability of non-admin organization members to create repositories. Can be one of: true | 
| members_allowed_repository_creation_type | string | body | Specifies which types of repositories non-admin organization members can create. Can be one of: | 
Code samples
Shell
curl \
  -X PATCH \
  -H "Accept: application/vnd.github.v3+json" \
  https://{hostname}/orgs/ORG \
  -d '{"billing_email":"billing_email"}'
JavaScript (@octokit/core.js)
await octokit.request('PATCH /orgs/{org}', {
  org: 'org',
  billing_email: 'billing_email'
})
Default response
Status: 200 OK{
  "login": "github",
  "id": 1,
  "node_id": "MDEyOk9yZ2FuaXphdGlvbjE=",
  "url": "https://api.github.com/orgs/github",
  "repos_url": "https://api.github.com/orgs/github/repos",
  "events_url": "https://api.github.com/orgs/github/events",
  "hooks_url": "https://api.github.com/orgs/github/hooks",
  "issues_url": "https://api.github.com/orgs/github/issues",
  "members_url": "https://api.github.com/orgs/github/members{/member}",
  "public_members_url": "https://api.github.com/orgs/github/public_members{/member}",
  "avatar_url": "https://github.com/images/error/octocat_happy.gif",
  "description": "A great organization",
  "name": "github",
  "company": "GitHub",
  "blog": "https://github.com/blog",
  "location": "San Francisco",
  "email": "octocat@github.com",
  "has_organization_projects": true,
  "has_repository_projects": true,
  "public_repos": 2,
  "public_gists": 1,
  "followers": 20,
  "following": 0,
  "html_url": "https://github.com/octocat",
  "created_at": "2008-01-14T04:33:35Z",
  "type": "Organization",
  "total_private_repos": 100,
  "owned_private_repos": 100,
  "private_gists": 81,
  "disk_usage": 10000,
  "collaborators": 8,
  "billing_email": "support@github.com",
  "plan": {
    "name": "Medium",
    "space": 400,
    "private_repos": 20
  },
  "default_repository_permission": "read",
  "members_can_create_repositories": true,
  "two_factor_requirement_enabled": true,
  "members_allowed_repository_creation_type": "all"
}
Notes
Preview notice
New repository creation permissions are available to preview. You can now use members_can_create_public_repositories, members_can_create_private_repositories, and members_can_create_internal_repositories. You can only allow members to create internal repositories if your organization is associated with an enterprise account using GitHub Enterprise Cloud or GitHub Enterprise Server 2.20+. These parameters provide more granular permissions to configure the type of repositories organization members can create.
To access these new parameters during the preview period, you must provide a custom media type in the Accept header:
application/vnd.github.surtur-preview+json
List organizations for the authenticated user
List organizations for the authenticated user.
OAuth scope requirements
This only lists organizations that your authorization allows you to operate on in some way (e.g., you can list teams with read:org scope, you can publicize your organization membership with user scope, etc.). Therefore, this API requires at least user or read:org scope. OAuth requests with insufficient scope receive a 403 Forbidden response.
get /user/orgsParameters
| Name | Type | In | Description | 
|---|---|---|---|
| accept | string | header | Setting to  | 
| per_page | integer | query | Results per page (max 100) | 
| page | integer | query | Page number of the results to fetch. | 
Code samples
Shell
curl \
  -H "Accept: application/vnd.github.v3+json" \
  https://{hostname}/user/orgs
JavaScript (@octokit/core.js)
await octokit.request('GET /user/orgs')
Default response
Status: 200 OK[
  {
    "login": "github",
    "id": 1,
    "node_id": "MDEyOk9yZ2FuaXphdGlvbjE=",
    "url": "https://api.github.com/orgs/github",
    "repos_url": "https://api.github.com/orgs/github/repos",
    "events_url": "https://api.github.com/orgs/github/events",
    "hooks_url": "https://api.github.com/orgs/github/hooks",
    "issues_url": "https://api.github.com/orgs/github/issues",
    "members_url": "https://api.github.com/orgs/github/members{/member}",
    "public_members_url": "https://api.github.com/orgs/github/public_members{/member}",
    "avatar_url": "https://github.com/images/error/octocat_happy.gif",
    "description": "A great organization"
  }
]
List organizations for a user
List public organization memberships for the specified user.
This method only lists public memberships, regardless of authentication. If you need to fetch all of the organization memberships (public and private) for the authenticated user, use the List organizations for the authenticated user API instead.
get /users/{username}/orgsParameters
| Name | Type | In | Description | 
|---|---|---|---|
| accept | string | header | Setting to  | 
| username | string | path | |
| per_page | integer | query | Results per page (max 100) | 
| page | integer | query | Page number of the results to fetch. | 
Code samples
Shell
curl \
  -H "Accept: application/vnd.github.v3+json" \
  https://{hostname}/users/USERNAME/orgs
JavaScript (@octokit/core.js)
await octokit.request('GET /users/{username}/orgs', {
  username: 'username'
})
Default response
Status: 200 OK[
  {
    "login": "github",
    "id": 1,
    "node_id": "MDEyOk9yZ2FuaXphdGlvbjE=",
    "url": "https://api.github.com/orgs/github",
    "repos_url": "https://api.github.com/orgs/github/repos",
    "events_url": "https://api.github.com/orgs/github/events",
    "hooks_url": "https://api.github.com/orgs/github/hooks",
    "issues_url": "https://api.github.com/orgs/github/issues",
    "members_url": "https://api.github.com/orgs/github/members{/member}",
    "public_members_url": "https://api.github.com/orgs/github/public_members{/member}",
    "avatar_url": "https://github.com/images/error/octocat_happy.gif",
    "description": "A great organization"
  }
]
Notes
Blocking users
The token used to authenticate the call must have the admin:org scope in order to make any blocking calls for an organization. Otherwise, the response returns HTTP 404.  
Members
List organization members
List all users who are members of an organization. If the authenticated user is also a member of this organization then both concealed and public members will be returned.
get /orgs/{org}/membersParameters
| Name | Type | In | Description | 
|---|---|---|---|
| accept | string | header | Setting to  | 
| org | string | path | |
| filter | string | query | Filter members returned in the list. Can be one of: | 
| role | string | query | Filter members returned by their role. Can be one of: | 
| per_page | integer | query | Results per page (max 100) | 
| page | integer | query | Page number of the results to fetch. | 
Code samples
Shell
curl \
  -H "Accept: application/vnd.github.v3+json" \
  https://{hostname}/orgs/ORG/members
JavaScript (@octokit/core.js)
await octokit.request('GET /orgs/{org}/members', {
  org: 'org'
})
Default response
Status: 200 OK[
  {
    "login": "octocat",
    "id": 1,
    "node_id": "MDQ6VXNlcjE=",
    "avatar_url": "https://github.com/images/error/octocat_happy.gif",
    "gravatar_id": "",
    "url": "https://api.github.com/users/octocat",
    "html_url": "https://github.com/octocat",
    "followers_url": "https://api.github.com/users/octocat/followers",
    "following_url": "https://api.github.com/users/octocat/following{/other_user}",
    "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}",
    "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}",
    "subscriptions_url": "https://api.github.com/users/octocat/subscriptions",
    "organizations_url": "https://api.github.com/users/octocat/orgs",
    "repos_url": "https://api.github.com/users/octocat/repos",
    "events_url": "https://api.github.com/users/octocat/events{/privacy}",
    "received_events_url": "https://api.github.com/users/octocat/received_events",
    "type": "User",
    "site_admin": false
  }
]
Response if requester is not an organization member
Status: 302 FoundNotes
Check organization membership for a user
Check if a user is, publicly or privately, a member of the organization.
get /orgs/{org}/members/{username}Parameters
| Name | Type | In | Description | 
|---|---|---|---|
| accept | string | header | Setting to  | 
| org | string | path | |
| username | string | path | 
Code samples
Shell
curl \
  -H "Accept: application/vnd.github.v3+json" \
  https://{hostname}/orgs/ORG/members/USERNAME
JavaScript (@octokit/core.js)
await octokit.request('GET /orgs/{org}/members/{username}', {
  org: 'org',
  username: 'username'
})
Response if requester is an organization member and user is a member
Status: 204 No ContentResponse if requester is not an organization member
Status: 302 FoundResponse if requester is an organization member and user is not a member
Status: 404 Not FoundNotes
Remove an organization member
Removing a user from this list will remove them from all teams and they will no longer have any access to the organization's repositories.
delete /orgs/{org}/members/{username}Parameters
| Name | Type | In | Description | 
|---|---|---|---|
| accept | string | header | Setting to  | 
| org | string | path | |
| username | string | path | 
Code samples
Shell
curl \
  -X DELETE \
  -H "Accept: application/vnd.github.v3+json" \
  https://{hostname}/orgs/ORG/members/USERNAME
JavaScript (@octokit/core.js)
await octokit.request('DELETE /orgs/{org}/members/{username}', {
  org: 'org',
  username: 'username'
})
Default Response
Status: 204 No ContentNotes
Get organization membership for a user
In order to get a user's membership with an organization, the authenticated user must be an organization member.
get /orgs/{org}/memberships/{username}Parameters
| Name | Type | In | Description | 
|---|---|---|---|
| accept | string | header | Setting to  | 
| org | string | path | |
| username | string | path | 
Code samples
Shell
curl \
  -H "Accept: application/vnd.github.v3+json" \
  https://{hostname}/orgs/ORG/memberships/USERNAME
JavaScript (@octokit/core.js)
await octokit.request('GET /orgs/{org}/memberships/{username}', {
  org: 'org',
  username: 'username'
})
Response if user has an active admin membership with organization
Status: 200 OK{
  "url": "https://api.github.com/orgs/octocat/memberships/defunkt",
  "state": "active",
  "role": "admin",
  "organization_url": "https://api.github.com/orgs/octocat",
  "organization": {
    "login": "github",
    "id": 1,
    "node_id": "MDEyOk9yZ2FuaXphdGlvbjE=",
    "url": "https://api.github.com/orgs/github",
    "repos_url": "https://api.github.com/orgs/github/repos",
    "events_url": "https://api.github.com/orgs/github/events",
    "hooks_url": "https://api.github.com/orgs/github/hooks",
    "issues_url": "https://api.github.com/orgs/github/issues",
    "members_url": "https://api.github.com/orgs/github/members{/member}",
    "public_members_url": "https://api.github.com/orgs/github/public_members{/member}",
    "avatar_url": "https://github.com/images/error/octocat_happy.gif",
    "description": "A great organization"
  },
  "user": {
    "login": "octocat",
    "id": 1,
    "node_id": "MDQ6VXNlcjE=",
    "avatar_url": "https://github.com/images/error/octocat_happy.gif",
    "gravatar_id": "",
    "url": "https://api.github.com/users/octocat",
    "html_url": "https://github.com/octocat",
    "followers_url": "https://api.github.com/users/octocat/followers",
    "following_url": "https://api.github.com/users/octocat/following{/other_user}",
    "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}",
    "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}",
    "subscriptions_url": "https://api.github.com/users/octocat/subscriptions",
    "organizations_url": "https://api.github.com/users/octocat/orgs",
    "repos_url": "https://api.github.com/users/octocat/repos",
    "events_url": "https://api.github.com/users/octocat/events{/privacy}",
    "received_events_url": "https://api.github.com/users/octocat/received_events",
    "type": "User",
    "site_admin": false
  }
}
Response if user has an active membership with organization
Status: 200 OK{
  "url": "https://api.github.com/orgs/octocat/memberships/defunkt",
  "state": "active",
  "role": "member",
  "organization_url": "https://api.github.com/orgs/octocat",
  "organization": {
    "login": "github",
    "id": 1,
    "node_id": "MDEyOk9yZ2FuaXphdGlvbjE=",
    "url": "https://api.github.com/orgs/github",
    "repos_url": "https://api.github.com/orgs/github/repos",
    "events_url": "https://api.github.com/orgs/github/events",
    "hooks_url": "https://api.github.com/orgs/github/hooks",
    "issues_url": "https://api.github.com/orgs/github/issues",
    "members_url": "https://api.github.com/orgs/github/members{/member}",
    "public_members_url": "https://api.github.com/orgs/github/public_members{/member}",
    "avatar_url": "https://github.com/images/error/octocat_happy.gif",
    "description": "A great organization"
  },
  "user": {
    "login": "octocat",
    "id": 1,
    "node_id": "MDQ6VXNlcjE=",
    "avatar_url": "https://github.com/images/error/octocat_happy.gif",
    "gravatar_id": "",
    "url": "https://api.github.com/users/octocat",
    "html_url": "https://github.com/octocat",
    "followers_url": "https://api.github.com/users/octocat/followers",
    "following_url": "https://api.github.com/users/octocat/following{/other_user}",
    "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}",
    "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}",
    "subscriptions_url": "https://api.github.com/users/octocat/subscriptions",
    "organizations_url": "https://api.github.com/users/octocat/orgs",
    "repos_url": "https://api.github.com/users/octocat/repos",
    "events_url": "https://api.github.com/users/octocat/events{/privacy}",
    "received_events_url": "https://api.github.com/users/octocat/received_events",
    "type": "User",
    "site_admin": false
  }
}
Response if user has a pending membership with organization
Status: 200 OK{
  "url": "https://api.github.com/orgs/invitocat/memberships/defunkt",
  "state": "pending",
  "role": "member",
  "organization_url": "https://api.github.com/orgs/invitocat",
  "organization": {
    "login": "github",
    "id": 1,
    "node_id": "MDEyOk9yZ2FuaXphdGlvbjE=",
    "url": "https://api.github.com/orgs/github",
    "repos_url": "https://api.github.com/orgs/github/repos",
    "events_url": "https://api.github.com/orgs/github/events",
    "hooks_url": "https://api.github.com/orgs/github/hooks",
    "issues_url": "https://api.github.com/orgs/github/issues",
    "members_url": "https://api.github.com/orgs/github/members{/member}",
    "public_members_url": "https://api.github.com/orgs/github/public_members{/member}",
    "avatar_url": "https://github.com/images/error/octocat_happy.gif",
    "description": "A great organization"
  },
  "user": {
    "login": "octocat",
    "id": 1,
    "node_id": "MDQ6VXNlcjE=",
    "avatar_url": "https://github.com/images/error/octocat_happy.gif",
    "gravatar_id": "",
    "url": "https://api.github.com/users/octocat",
    "html_url": "https://github.com/octocat",
    "followers_url": "https://api.github.com/users/octocat/followers",
    "following_url": "https://api.github.com/users/octocat/following{/other_user}",
    "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}",
    "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}",
    "subscriptions_url": "https://api.github.com/users/octocat/subscriptions",
    "organizations_url": "https://api.github.com/users/octocat/orgs",
    "repos_url": "https://api.github.com/users/octocat/repos",
    "events_url": "https://api.github.com/users/octocat/events{/privacy}",
    "received_events_url": "https://api.github.com/users/octocat/received_events",
    "type": "User",
    "site_admin": false
  }
}
Notes
Set organization membership for a user
Only authenticated organization owners can add a member to the organization or update the member's role.
put /orgs/{org}/memberships/{username}Parameters
| Name | Type | In | Description | 
|---|---|---|---|
| accept | string | header | Setting to  | 
| org | string | path | |
| username | string | path | |
| role | string | body | The role to give the user in the organization. Can be one of: member | 
Code samples
Shell
curl \
  -X PUT \
  -H "Accept: application/vnd.github.v3+json" \
  https://{hostname}/orgs/ORG/memberships/USERNAME \
  -d '{"role":"role"}'
JavaScript (@octokit/core.js)
await octokit.request('PUT /orgs/{org}/memberships/{username}', {
  org: 'org',
  username: 'username',
  role: 'role'
})
Default response
Status: 200 OK{
  "url": "https://api.github.com/orgs/octocat/memberships/defunkt",
  "state": "active",
  "role": "admin",
  "organization_url": "https://api.github.com/orgs/octocat",
  "organization": {
    "login": "github",
    "id": 1,
    "node_id": "MDEyOk9yZ2FuaXphdGlvbjE=",
    "url": "https://api.github.com/orgs/github",
    "repos_url": "https://api.github.com/orgs/github/repos",
    "events_url": "https://api.github.com/orgs/github/events",
    "hooks_url": "https://api.github.com/orgs/github/hooks",
    "issues_url": "https://api.github.com/orgs/github/issues",
    "members_url": "https://api.github.com/orgs/github/members{/member}",
    "public_members_url": "https://api.github.com/orgs/github/public_members{/member}",
    "avatar_url": "https://github.com/images/error/octocat_happy.gif",
    "description": "A great organization"
  },
  "user": {
    "login": "octocat",
    "id": 1,
    "node_id": "MDQ6VXNlcjE=",
    "avatar_url": "https://github.com/images/error/octocat_happy.gif",
    "gravatar_id": "",
    "url": "https://api.github.com/users/octocat",
    "html_url": "https://github.com/octocat",
    "followers_url": "https://api.github.com/users/octocat/followers",
    "following_url": "https://api.github.com/users/octocat/following{/other_user}",
    "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}",
    "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}",
    "subscriptions_url": "https://api.github.com/users/octocat/subscriptions",
    "organizations_url": "https://api.github.com/users/octocat/orgs",
    "repos_url": "https://api.github.com/users/octocat/repos",
    "events_url": "https://api.github.com/users/octocat/events{/privacy}",
    "received_events_url": "https://api.github.com/users/octocat/received_events",
    "type": "User",
    "site_admin": false
  }
}
Notes
Remove organization membership for a user
In order to remove a user's membership with an organization, the authenticated user must be an organization owner.
If the specified user is an active member of the organization, this will remove them from the organization. If the specified user has been invited to the organization, this will cancel their invitation. The specified user will receive an email notification in both cases.
delete /orgs/{org}/memberships/{username}Parameters
| Name | Type | In | Description | 
|---|---|---|---|
| accept | string | header | Setting to  | 
| org | string | path | |
| username | string | path | 
Code samples
Shell
curl \
  -X DELETE \
  -H "Accept: application/vnd.github.v3+json" \
  https://{hostname}/orgs/ORG/memberships/USERNAME
JavaScript (@octokit/core.js)
await octokit.request('DELETE /orgs/{org}/memberships/{username}', {
  org: 'org',
  username: 'username'
})
Default Response
Status: 204 No ContentNotes
List public organization members
Members of an organization can choose to have their membership publicized or not.
get /orgs/{org}/public_membersParameters
| Name | Type | In | Description | 
|---|---|---|---|
| accept | string | header | Setting to  | 
| org | string | path | |
| per_page | integer | query | Results per page (max 100) | 
| page | integer | query | Page number of the results to fetch. | 
Code samples
Shell
curl \
  -H "Accept: application/vnd.github.v3+json" \
  https://{hostname}/orgs/ORG/public_members
JavaScript (@octokit/core.js)
await octokit.request('GET /orgs/{org}/public_members', {
  org: 'org'
})
Default response
Status: 200 OK[
  {
    "login": "octocat",
    "id": 1,
    "node_id": "MDQ6VXNlcjE=",
    "avatar_url": "https://github.com/images/error/octocat_happy.gif",
    "gravatar_id": "",
    "url": "https://api.github.com/users/octocat",
    "html_url": "https://github.com/octocat",
    "followers_url": "https://api.github.com/users/octocat/followers",
    "following_url": "https://api.github.com/users/octocat/following{/other_user}",
    "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}",
    "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}",
    "subscriptions_url": "https://api.github.com/users/octocat/subscriptions",
    "organizations_url": "https://api.github.com/users/octocat/orgs",
    "repos_url": "https://api.github.com/users/octocat/repos",
    "events_url": "https://api.github.com/users/octocat/events{/privacy}",
    "received_events_url": "https://api.github.com/users/octocat/received_events",
    "type": "User",
    "site_admin": false
  }
]
Notes
get /orgs/{org}/public_members/{username}Parameters
| Name | Type | In | Description | 
|---|---|---|---|
| accept | string | header | Setting to  | 
| org | string | path | |
| username | string | path | 
Code samples
Shell
curl \
  -H "Accept: application/vnd.github.v3+json" \
  https://{hostname}/orgs/ORG/public_members/USERNAME
JavaScript (@octokit/core.js)
await octokit.request('GET /orgs/{org}/public_members/{username}', {
  org: 'org',
  username: 'username'
})
Response if user is a public member
Status: 204 No ContentResponse if user is not a public member
Status: 404 Not FoundNotes
Set public organization membership for the authenticated user
The user can publicize their own membership. (A user cannot publicize the membership for another user.)
Note that you'll need to set Content-Length to zero when calling out to this endpoint. For more information, see "HTTP verbs."
put /orgs/{org}/public_members/{username}Parameters
| Name | Type | In | Description | 
|---|---|---|---|
| accept | string | header | Setting to  | 
| org | string | path | |
| username | string | path | 
Code samples
Shell
curl \
  -X PUT \
  -H "Accept: application/vnd.github.v3+json" \
  https://{hostname}/orgs/ORG/public_members/USERNAME
JavaScript (@octokit/core.js)
await octokit.request('PUT /orgs/{org}/public_members/{username}', {
  org: 'org',
  username: 'username'
})
Default Response
Status: 204 No Contentdelete /orgs/{org}/public_members/{username}Parameters
| Name | Type | In | Description | 
|---|---|---|---|
| accept | string | header | Setting to  | 
| org | string | path | |
| username | string | path | 
Code samples
Shell
curl \
  -X DELETE \
  -H "Accept: application/vnd.github.v3+json" \
  https://{hostname}/orgs/ORG/public_members/USERNAME
JavaScript (@octokit/core.js)
await octokit.request('DELETE /orgs/{org}/public_members/{username}', {
  org: 'org',
  username: 'username'
})
Default Response
Status: 204 No Contentget /user/memberships/orgsParameters
| Name | Type | In | Description | 
|---|---|---|---|
| accept | string | header | Setting to  | 
| state | string | query | Indicates the state of the memberships to return. Can be either  | 
| per_page | integer | query | Results per page (max 100) | 
| page | integer | query | Page number of the results to fetch. | 
Code samples
Shell
curl \
  -H "Accept: application/vnd.github.v3+json" \
  https://{hostname}/user/memberships/orgs
JavaScript (@octokit/core.js)
await octokit.request('GET /user/memberships/orgs')
Default response
Status: 200 OK[
  {
    "url": "https://api.github.com/orgs/octocat/memberships/defunkt",
    "state": "active",
    "role": "admin",
    "organization_url": "https://api.github.com/orgs/octocat",
    "organization": {
      "login": "github",
      "id": 1,
      "node_id": "MDEyOk9yZ2FuaXphdGlvbjE=",
      "url": "https://api.github.com/orgs/github",
      "repos_url": "https://api.github.com/orgs/github/repos",
      "events_url": "https://api.github.com/orgs/github/events",
      "hooks_url": "https://api.github.com/orgs/github/hooks",
      "issues_url": "https://api.github.com/orgs/github/issues",
      "members_url": "https://api.github.com/orgs/github/members{/member}",
      "public_members_url": "https://api.github.com/orgs/github/public_members{/member}",
      "avatar_url": "https://github.com/images/error/octocat_happy.gif",
      "description": "A great organization"
    },
    "user": {
      "login": "octocat",
      "id": 1,
      "node_id": "MDQ6VXNlcjE=",
      "avatar_url": "https://github.com/images/error/octocat_happy.gif",
      "gravatar_id": "",
      "url": "https://api.github.com/users/octocat",
      "html_url": "https://github.com/octocat",
      "followers_url": "https://api.github.com/users/octocat/followers",
      "following_url": "https://api.github.com/users/octocat/following{/other_user}",
      "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}",
      "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}",
      "subscriptions_url": "https://api.github.com/users/octocat/subscriptions",
      "organizations_url": "https://api.github.com/users/octocat/orgs",
      "repos_url": "https://api.github.com/users/octocat/repos",
      "events_url": "https://api.github.com/users/octocat/events{/privacy}",
      "received_events_url": "https://api.github.com/users/octocat/received_events",
      "type": "User",
      "site_admin": false
    }
  },
  {
    "url": "https://api.github.com/orgs/invitocat/memberships/defunkt",
    "state": "pending",
    "role": "admin",
    "organization_url": "https://api.github.com/orgs/invitocat",
    "organization": {
      "login": "github",
      "id": 1,
      "node_id": "MDEyOk9yZ2FuaXphdGlvbjE=",
      "url": "https://api.github.com/orgs/github",
      "repos_url": "https://api.github.com/orgs/github/repos",
      "events_url": "https://api.github.com/orgs/github/events",
      "hooks_url": "https://api.github.com/orgs/github/hooks",
      "issues_url": "https://api.github.com/orgs/github/issues",
      "members_url": "https://api.github.com/orgs/github/members{/member}",
      "public_members_url": "https://api.github.com/orgs/github/public_members{/member}",
      "avatar_url": "https://github.com/images/error/octocat_happy.gif",
      "description": "A great organization"
    },
    "user": {
      "login": "octocat",
      "id": 1,
      "node_id": "MDQ6VXNlcjE=",
      "avatar_url": "https://github.com/images/error/octocat_happy.gif",
      "gravatar_id": "",
      "url": "https://api.github.com/users/octocat",
      "html_url": "https://github.com/octocat",
      "followers_url": "https://api.github.com/users/octocat/followers",
      "following_url": "https://api.github.com/users/octocat/following{/other_user}",
      "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}",
      "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}",
      "subscriptions_url": "https://api.github.com/users/octocat/subscriptions",
      "organizations_url": "https://api.github.com/users/octocat/orgs",
      "repos_url": "https://api.github.com/users/octocat/repos",
      "events_url": "https://api.github.com/users/octocat/events{/privacy}",
      "received_events_url": "https://api.github.com/users/octocat/received_events",
      "type": "User",
      "site_admin": false
    }
  }
]
get /user/memberships/orgs/{org}Parameters
| Name | Type | In | Description | 
|---|---|---|---|
| accept | string | header | Setting to  | 
| org | string | path | 
Code samples
Shell
curl \
  -H "Accept: application/vnd.github.v3+json" \
  https://{hostname}/user/memberships/orgs/ORG
JavaScript (@octokit/core.js)
await octokit.request('GET /user/memberships/orgs/{org}', {
  org: 'org'
})
Default response
Status: 200 OK{
  "url": "https://api.github.com/orgs/invitocat/memberships/defunkt",
  "state": "pending",
  "role": "admin",
  "organization_url": "https://api.github.com/orgs/invitocat",
  "organization": {
    "login": "github",
    "id": 1,
    "node_id": "MDEyOk9yZ2FuaXphdGlvbjE=",
    "url": "https://api.github.com/orgs/github",
    "repos_url": "https://api.github.com/orgs/github/repos",
    "events_url": "https://api.github.com/orgs/github/events",
    "hooks_url": "https://api.github.com/orgs/github/hooks",
    "issues_url": "https://api.github.com/orgs/github/issues",
    "members_url": "https://api.github.com/orgs/github/members{/member}",
    "public_members_url": "https://api.github.com/orgs/github/public_members{/member}",
    "avatar_url": "https://github.com/images/error/octocat_happy.gif",
    "description": "A great organization"
  },
  "user": {
    "login": "octocat",
    "id": 1,
    "node_id": "MDQ6VXNlcjE=",
    "avatar_url": "https://github.com/images/error/octocat_happy.gif",
    "gravatar_id": "",
    "url": "https://api.github.com/users/octocat",
    "html_url": "https://github.com/octocat",
    "followers_url": "https://api.github.com/users/octocat/followers",
    "following_url": "https://api.github.com/users/octocat/following{/other_user}",
    "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}",
    "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}",
    "subscriptions_url": "https://api.github.com/users/octocat/subscriptions",
    "organizations_url": "https://api.github.com/users/octocat/orgs",
    "repos_url": "https://api.github.com/users/octocat/repos",
    "events_url": "https://api.github.com/users/octocat/events{/privacy}",
    "received_events_url": "https://api.github.com/users/octocat/received_events",
    "type": "User",
    "site_admin": false
  }
}
patch /user/memberships/orgs/{org}Parameters
| Name | Type | In | Description | 
|---|---|---|---|
| accept | string | header | Setting to  | 
| org | string | path | |
| state | string | body | Required. The state that the membership should be in. Only  | 
Code samples
Shell
curl \
  -X PATCH \
  -H "Accept: application/vnd.github.v3+json" \
  https://{hostname}/user/memberships/orgs/ORG \
  -d '{"state":"state"}'
JavaScript (@octokit/core.js)
await octokit.request('PATCH /user/memberships/orgs/{org}', {
  org: 'org',
  state: 'state'
})
Default response
Status: 200 OK{
  "url": "https://api.github.com/orgs/octocat/memberships/defunkt",
  "state": "active",
  "role": "admin",
  "organization_url": "https://api.github.com/orgs/octocat",
  "organization": {
    "login": "github",
    "id": 1,
    "node_id": "MDEyOk9yZ2FuaXphdGlvbjE=",
    "url": "https://api.github.com/orgs/github",
    "repos_url": "https://api.github.com/orgs/github/repos",
    "events_url": "https://api.github.com/orgs/github/events",
    "hooks_url": "https://api.github.com/orgs/github/hooks",
    "issues_url": "https://api.github.com/orgs/github/issues",
    "members_url": "https://api.github.com/orgs/github/members{/member}",
    "public_members_url": "https://api.github.com/orgs/github/public_members{/member}",
    "avatar_url": "https://github.com/images/error/octocat_happy.gif",
    "description": "A great organization"
  },
  "user": {
    "login": "octocat",
    "id": 1,
    "node_id": "MDQ6VXNlcjE=",
    "avatar_url": "https://github.com/images/error/octocat_happy.gif",
    "gravatar_id": "",
    "url": "https://api.github.com/users/octocat",
    "html_url": "https://github.com/octocat",
    "followers_url": "https://api.github.com/users/octocat/followers",
    "following_url": "https://api.github.com/users/octocat/following{/other_user}",
    "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}",
    "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}",
    "subscriptions_url": "https://api.github.com/users/octocat/subscriptions",
    "organizations_url": "https://api.github.com/users/octocat/orgs",
    "repos_url": "https://api.github.com/users/octocat/repos",
    "events_url": "https://api.github.com/users/octocat/events{/privacy}",
    "received_events_url": "https://api.github.com/users/octocat/received_events",
    "type": "User",
    "site_admin": false
  }
}
Outside collaborators
List outside collaborators for an organization
List all users who are outside collaborators of an organization.
get /orgs/{org}/outside_collaboratorsParameters
| Name | Type | In | Description | 
|---|---|---|---|
| accept | string | header | Setting to  | 
| org | string | path | |
| filter | string | query | Filter the list of outside collaborators. Can be one of: | 
| per_page | integer | query | Results per page (max 100) | 
| page | integer | query | Page number of the results to fetch. | 
Code samples
Shell
curl \
  -H "Accept: application/vnd.github.v3+json" \
  https://{hostname}/orgs/ORG/outside_collaborators
JavaScript (@octokit/core.js)
await octokit.request('GET /orgs/{org}/outside_collaborators', {
  org: 'org'
})
Default response
Status: 200 OK[
  {
    "login": "octocat",
    "id": 1,
    "node_id": "MDQ6VXNlcjE=",
    "avatar_url": "https://github.com/images/error/octocat_happy.gif",
    "gravatar_id": "",
    "url": "https://api.github.com/users/octocat",
    "html_url": "https://github.com/octocat",
    "followers_url": "https://api.github.com/users/octocat/followers",
    "following_url": "https://api.github.com/users/octocat/following{/other_user}",
    "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}",
    "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}",
    "subscriptions_url": "https://api.github.com/users/octocat/subscriptions",
    "organizations_url": "https://api.github.com/users/octocat/orgs",
    "repos_url": "https://api.github.com/users/octocat/repos",
    "events_url": "https://api.github.com/users/octocat/events{/privacy}",
    "received_events_url": "https://api.github.com/users/octocat/received_events",
    "type": "User",
    "site_admin": false
  }
]
Notes
Convert an organization member to outside collaborator
When an organization member is converted to an outside collaborator, they'll only have access to the repositories that their current team membership allows. The user will no longer be a member of the organization. For more information, see "Converting an organization member to an outside collaborator".
put /orgs/{org}/outside_collaborators/{username}Parameters
| Name | Type | In | Description | 
|---|---|---|---|
| accept | string | header | Setting to  | 
| org | string | path | |
| username | string | path | 
Code samples
Shell
curl \
  -X PUT \
  -H "Accept: application/vnd.github.v3+json" \
  https://{hostname}/orgs/ORG/outside_collaborators/USERNAME
JavaScript (@octokit/core.js)
await octokit.request('PUT /orgs/{org}/outside_collaborators/{username}', {
  org: 'org',
  username: 'username'
})
Default Response
Status: 204 No ContentResponse if user is the last owner of the organization
Status: 403 Forbidden{
  "message": "Cannot convert the last owner to an outside collaborator",
  "documentation_url": "https://developer.github.com/enterprise/2.18/v3/orgs/outside_collaborators/#convert-member-to-outside-collaborator"
}
Response if user is not a member of the organization
Status: 403 Forbidden{
  "message": "<user> is not a member of the <organization> organization.",
  "documentation_url": "https://developer.github.com/enterprise/2.18/v3/orgs/outside_collaborators/#convert-member-to-outside-collaborator"
}
Notes
Remove outside collaborator from an organization
Removing a user from this list will remove them from all the organization's repositories.
delete /orgs/{org}/outside_collaborators/{username}Parameters
| Name | Type | In | Description | 
|---|---|---|---|
| accept | string | header | Setting to  | 
| org | string | path | |
| username | string | path | 
Code samples
Shell
curl \
  -X DELETE \
  -H "Accept: application/vnd.github.v3+json" \
  https://{hostname}/orgs/ORG/outside_collaborators/USERNAME
JavaScript (@octokit/core.js)
await octokit.request('DELETE /orgs/{org}/outside_collaborators/{username}', {
  org: 'org',
  username: 'username'
})
Default Response
Status: 204 No ContentResponse if user is a member of the organization
Status: 422 Unprocessable Entity{
  "message": "You cannot specify an organization member to remove as an outside collaborator.",
  "documentation_url": "https://developer.github.com/enterprise/2.18/v3/orgs/outside_collaborators/#remove-outside-collaborator"
}
Notes
Webhooks
Organization webhooks allow you to receive HTTP POST payloads whenever certain events happen within the organization. Subscribing to these events makes it possible to build integrations that react to actions on GitHub.com. For more information on actions you can subscribe to, see "GitHub event types."
Scopes & Restrictions
All actions against organization webhooks require the authenticated user to be an admin of the organization being managed. Additionally, OAuth tokens require the admin:org_hook scope. For more information, see "Scopes for OAuth Apps."
In order to protect sensitive data which may be present in webhook configurations, we also enforce the following access control rules:
- OAuth applications cannot list, view, or edit webhooks which they did not create.
- Users cannot list, view, or edit webhooks which were created by OAuth applications.
Receiving Webhooks
In order for GitHub Enterprise to send webhook payloads, your server needs to be accessible from the Internet. We also highly suggest using SSL so that we can send encrypted payloads over HTTPS.
For more best practices, see our guide.
Webhook headers
GitHub Enterprise will send along several HTTP headers to differentiate between event types and payload identifiers. See webhook headers for details.
get /orgs/{org}/hooksParameters
| Name | Type | In | Description | 
|---|---|---|---|
| accept | string | header | Setting to  | 
| org | string | path | |
| per_page | integer | query | Results per page (max 100) | 
| page | integer | query | Page number of the results to fetch. | 
Code samples
Shell
curl \
  -H "Accept: application/vnd.github.v3+json" \
  https://{hostname}/orgs/ORG/hooks
JavaScript (@octokit/core.js)
await octokit.request('GET /orgs/{org}/hooks', {
  org: 'org'
})
Default response
Status: 200 OK[
  {
    "id": 1,
    "url": "https://api.github.com/orgs/octocat/hooks/1",
    "ping_url": "https://api.github.com/orgs/octocat/hooks/1/pings",
    "name": "web",
    "events": [
      "push",
      "pull_request"
    ],
    "active": true,
    "config": {
      "url": "http://example.com",
      "content_type": "json"
    },
    "updated_at": "2011-09-06T20:39:23Z",
    "created_at": "2011-09-06T17:26:27Z"
  }
]
Notes
Create an organization webhook
Here's how you can create a hook that posts payloads in JSON format:
post /orgs/{org}/hooksParameters
| Name | Type | In | Description | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| accept | string | header | Setting to  | ||||||||
| org | string | path | |||||||||
| name | string | body | Required. Must be passed as "web". | ||||||||
| config | object | body | Required. Key/value pairs to provide settings for this webhook. These are defined below. | ||||||||
| 
configobject | |||||||||||
| url(string) | Required. The URL to which the payloads will be delivered. | 
| content_type(string) | The media type used to serialize the payloads. Supported values include  | 
| secret(string) | If provided, the  | 
| insecure_ssl(string) | Determines whether the SSL certificate of the host for  | 
eventsDetermines what events the hook is triggered for.
Default:push              
            activeDetermines if notifications are sent when the webhook is triggered. Set to true to send notifications.
true              
            Code samples
Shell
curl \
  -X POST \
  -H "Accept: application/vnd.github.v3+json" \
  https://{hostname}/orgs/ORG/hooks \
  -d '{"name":"name","config":{"url":"url","content_type":"content_type","secret":"secret","insecure_ssl":"insecure_ssl"}}'
JavaScript (@octokit/core.js)
await octokit.request('POST /orgs/{org}/hooks', {
  org: 'org',
  name: 'name',
  config: {
    url: 'url',
    content_type: 'content_type',
    secret: 'secret',
    insecure_ssl: 'insecure_ssl'
  }
})
Default response
Status: 201 Created{
  "id": 1,
  "url": "https://api.github.com/orgs/octocat/hooks/1",
  "ping_url": "https://api.github.com/orgs/octocat/hooks/1/pings",
  "name": "web",
  "events": [
    "push",
    "pull_request"
  ],
  "active": true,
  "config": {
    "url": "http://example.com",
    "content_type": "json"
  },
  "updated_at": "2011-09-06T20:39:23Z",
  "created_at": "2011-09-06T17:26:27Z"
}
Notes
get /orgs/{org}/hooks/{hook_id}Parameters
| Name | Type | In | Description | 
|---|---|---|---|
| accept | string | header | Setting to  | 
| org | string | path | |
| hook_id | integer | path | 
Code samples
Shell
curl \
  -H "Accept: application/vnd.github.v3+json" \
  https://{hostname}/orgs/ORG/hooks/42
JavaScript (@octokit/core.js)
await octokit.request('GET /orgs/{org}/hooks/{hook_id}', {
  org: 'org',
  hook_id: 42
})
Default response
Status: 200 OK{
  "id": 1,
  "url": "https://api.github.com/orgs/octocat/hooks/1",
  "ping_url": "https://api.github.com/orgs/octocat/hooks/1/pings",
  "name": "web",
  "events": [
    "push",
    "pull_request"
  ],
  "active": true,
  "config": {
    "url": "http://example.com",
    "content_type": "json"
  },
  "updated_at": "2011-09-06T20:39:23Z",
  "created_at": "2011-09-06T17:26:27Z"
}
Notes
patch /orgs/{org}/hooks/{hook_id}Parameters
| Name | Type | In | Description | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| accept | string | header | Setting to  | ||||||||
| org | string | path | |||||||||
| hook_id | integer | path | |||||||||
| config | object | body | Key/value pairs to provide settings for this webhook. These are defined below. | ||||||||
| 
configobject | |||||||||||
| url(string) | Required. The URL to which the payloads will be delivered. | 
| content_type(string) | The media type used to serialize the payloads. Supported values include  | 
| secret(string) | If provided, the  | 
| insecure_ssl(string) | Determines whether the SSL certificate of the host for  | 
eventsDetermines what events the hook is triggered for.
Default:push              
            activeDetermines if notifications are sent when the webhook is triggered. Set to true to send notifications.
true              
            Code samples
Shell
curl \
  -X PATCH \
  -H "Accept: application/vnd.github.v3+json" \
  https://{hostname}/orgs/ORG/hooks/42 \
  -d '{"config":{"url":"url","content_type":"content_type","secret":"secret","insecure_ssl":"insecure_ssl"}}'
JavaScript (@octokit/core.js)
await octokit.request('PATCH /orgs/{org}/hooks/{hook_id}', {
  org: 'org',
  hook_id: 42,
  config: {
    url: 'url',
    content_type: 'content_type',
    secret: 'secret',
    insecure_ssl: 'insecure_ssl'
  }
})
Default response
Status: 200 OK{
  "id": 1,
  "url": "https://api.github.com/orgs/octocat/hooks/1",
  "ping_url": "https://api.github.com/orgs/octocat/hooks/1/pings",
  "name": "web",
  "events": [
    "pull_request"
  ],
  "active": true,
  "config": {
    "url": "http://example.com",
    "content_type": "json"
  },
  "updated_at": "2011-09-06T20:39:23Z",
  "created_at": "2011-09-06T17:26:27Z"
}
Notes
delete /orgs/{org}/hooks/{hook_id}Parameters
| Name | Type | In | Description | 
|---|---|---|---|
| accept | string | header | Setting to  | 
| org | string | path | |
| hook_id | integer | path | 
Code samples
Shell
curl \
  -X DELETE \
  -H "Accept: application/vnd.github.v3+json" \
  https://{hostname}/orgs/ORG/hooks/42
JavaScript (@octokit/core.js)
await octokit.request('DELETE /orgs/{org}/hooks/{hook_id}', {
  org: 'org',
  hook_id: 42
})
Default Response
Status: 204 No ContentNotes
Ping an organization webhook
This will trigger a ping event to be sent to the hook.
post /orgs/{org}/hooks/{hook_id}/pingsParameters
| Name | Type | In | Description | 
|---|---|---|---|
| accept | string | header | Setting to  | 
| org | string | path | |
| hook_id | integer | path | 
Code samples
Shell
curl \
  -X POST \
  -H "Accept: application/vnd.github.v3+json" \
  https://{hostname}/orgs/ORG/hooks/42/pings
JavaScript (@octokit/core.js)
await octokit.request('POST /orgs/{org}/hooks/{hook_id}/pings', {
  org: 'org',
  hook_id: 42
})
Default Response
Status: 204 No Content