Emails
Use the REST API to manage email addresses of authenticated users.
About email administration
If a request URL does not include a {username} parameter then the response will be for the signed-in user (and you must pass authentication information with your request). Additional private information, such as whether a user has two-factor authentication enabled, is included when authenticated through OAuth with the user scope.
Set primary email visibility for the authenticated user
Sets the visibility for your primary email addresses.
Parameters for "Set primary email visibility for the authenticated user"
| Name, Type, Description |
|---|
accept string Setting to |
| Name, Type, Description |
|---|
visibility string RequiredDenotes whether an email is publicly visible. Can be one of: |
HTTP response status codes for "Set primary email visibility for the authenticated user"
| Status code | Description |
|---|---|
200 | OK |
304 | Not modified |
401 | Requires authentication |
403 | Forbidden |
404 | Resource not found |
422 | Validation failed, or the endpoint has been spammed. |
Code samples for "Set primary email visibility for the authenticated user"
Request example
curl -L \
-X PATCH \
-H "Accept: application/vnd.github+json" \
-H "Authorization: Bearer <YOUR-TOKEN>" \
-H "X-GitHub-Api-Version: 2022-11-28" \
https://api.github.com/user/email/visibility \
-d '{"visibility":"private"}'Response
Status: 200[
{
"email": "octocat@github.com",
"primary": true,
"verified": true,
"visibility": "private"
}
]List email addresses for the authenticated user
Lists all of your email addresses, and specifies which one is visible to the public. This endpoint is accessible with the user:email scope.
Parameters for "List email addresses for the authenticated user"
| Name, Type, Description |
|---|
accept string Setting to |
| Name, Type, Description |
|---|
per_page integer The number of results per page (max 100). For more information, see "Using pagination in the REST API." Default: |
page integer The page number of the results to fetch. For more information, see "Using pagination in the REST API." Default: |
HTTP response status codes for "List email addresses for the authenticated user"
| Status code | Description |
|---|---|
200 | OK |
304 | Not modified |
401 | Requires authentication |
403 | Forbidden |
404 | Resource not found |
Code samples for "List email addresses for the authenticated user"
Request example
curl -L \
-H "Accept: application/vnd.github+json" \
-H "Authorization: Bearer <YOUR-TOKEN>" \
-H "X-GitHub-Api-Version: 2022-11-28" \
https://api.github.com/user/emailsResponse
Status: 200[
{
"email": "octocat@github.com",
"verified": true,
"primary": true,
"visibility": "public"
}
]Add an email address for the authenticated user
This endpoint is accessible with the user scope.
Parameters for "Add an email address for the authenticated user"
| Name, Type, Description |
|---|
accept string Setting to |
| Name, Type, Description |
|---|
emails array of strings RequiredAdds one or more email addresses to your GitHub account. Must contain at least one email address. Note: Alternatively, you can pass a single email address or an |
HTTP response status codes for "Add an email address for the authenticated user"
| Status code | Description |
|---|---|
201 | Created |
304 | Not modified |
401 | Requires authentication |
403 | Forbidden |
404 | Resource not found |
422 | Validation failed, or the endpoint has been spammed. |
Code samples for "Add an email address for the authenticated user"
Request example
curl -L \
-X POST \
-H "Accept: application/vnd.github+json" \
-H "Authorization: Bearer <YOUR-TOKEN>" \
-H "X-GitHub-Api-Version: 2022-11-28" \
https://api.github.com/user/emails \
-d '{"emails":["octocat@github.com","mona@github.com","octocat@octocat.org"]}'Response
Status: 201[
{
"email": "octocat@octocat.org",
"primary": false,
"verified": false,
"visibility": "public"
},
{
"email": "octocat@github.com",
"primary": false,
"verified": false,
"visibility": null
},
{
"email": "mona@github.com",
"primary": false,
"verified": false,
"visibility": null
}
]Delete an email address for the authenticated user
This endpoint is accessible with the user scope.
Parameters for "Delete an email address for the authenticated user"
| Name, Type, Description |
|---|
accept string Setting to |
| Name, Type, Description |
|---|
emails array of strings RequiredEmail addresses associated with the GitHub user account. |
HTTP response status codes for "Delete an email address for the authenticated user"
| Status code | Description |
|---|---|
204 | No Content |
304 | Not modified |
401 | Requires authentication |
403 | Forbidden |
404 | Resource not found |
422 | Validation failed, or the endpoint has been spammed. |
Code samples for "Delete an email address for the authenticated user"
Request example
curl -L \
-X DELETE \
-H "Accept: application/vnd.github+json" \
-H "Authorization: Bearer <YOUR-TOKEN>" \
-H "X-GitHub-Api-Version: 2022-11-28" \
https://api.github.com/user/emails \
-d '{"emails":["octocat@github.com","mona@github.com"]}'Response
Status: 204List public email addresses for the authenticated user
Lists your publicly visible email address, which you can set with the Set primary email visibility for the authenticated user endpoint. This endpoint is accessible with the user:email scope.
Parameters for "List public email addresses for the authenticated user"
| Name, Type, Description |
|---|
accept string Setting to |
| Name, Type, Description |
|---|
per_page integer The number of results per page (max 100). For more information, see "Using pagination in the REST API." Default: |
page integer The page number of the results to fetch. For more information, see "Using pagination in the REST API." Default: |
HTTP response status codes for "List public email addresses for the authenticated user"
| Status code | Description |
|---|---|
200 | OK |
304 | Not modified |
401 | Requires authentication |
403 | Forbidden |
404 | Resource not found |
Code samples for "List public email addresses for the authenticated user"
Request example
curl -L \
-H "Accept: application/vnd.github+json" \
-H "Authorization: Bearer <YOUR-TOKEN>" \
-H "X-GitHub-Api-Version: 2022-11-28" \
https://api.github.com/user/public_emailsResponse
Status: 200[
{
"email": "octocat@github.com",
"verified": true,
"primary": true,
"visibility": "public"
}
]