Remove an email address
Remove an email address from your account.
DELETE
/user/emails/{email}Never your primary address (make another primary first) and never your last confirmed one. Needs your account password; every confirmed address, the removed one included, is told. People only.
Give the address in the path, URL-encoded: DELETE /user/emails/ada.l%40example.org. Answers 409 for your primary address or your last confirmed one.
- Authentication: Required. Send an access token as
Authorization: Bearer. - MCP tool:
remove_email, with the same inputs
Path parameters
Section titled “Path parameters”| Name | Type | Required | Description |
|---|---|---|---|
email |
string | Yes | The address to remove. |
Body parameters
Section titled “Body parameters”Send a JSON object. Names are snake_case, as in responses; the camelCase spelling is accepted too.
| Name | Type | Required | Description |
|---|---|---|---|
password |
string | Yes | Your account password, to confirm it is you. An account that signs in only with GitHub changes its addresses on g1t.sh. |
Example request
Section titled “Example request”curl -X DELETE https://api.g1t.sh/user/emails/email \ -H "Authorization: Bearer $G1T_TOKEN" \ -H "Content-Type: application/json" \ -d '{ "password": "…" }'Example response
Section titled “Example response”A successful request answers 200 with:
{ "emails": [ { "email": "ada@example.com", "verified": true, "primary": true, "backup": false, "created_at": "2026-09-01T10:00:00.000Z", "verified_at": "2026-09-01T10:02:11.000Z" }, { "email": "ada@acme.com", "verified": true, "primary": false, "backup": true, "created_at": "2026-10-02T09:30:00.000Z", "verified_at": "2026-10-02T09:31:40.000Z" }, { "email": "ada.l@example.org", "verified": false, "primary": false, "backup": false, "created_at": "2026-10-05T14:12:03.000Z", "verified_at": null } ], "private_email": true, "block_private_pushes": false, "noreply": "6c1d0efg+ada@users.noreply.g1t.sh", "commit_email": "6c1d0efg+ada@users.noreply.g1t.sh", "limit": 10}Errors
Section titled “Errors”A failed request answers with one of these statuses and a body like {"error": {"code": "not_found", "message": "Repository not found."}}. See errors.
| Status | Code | When |
|---|---|---|
| 401 | unauthenticated |
A token is required, or the one sent is not valid. |
| 403 | forbidden |
The token is valid but not allowed to do this, such as a member-only change or an agent token outside its repository. |
| 404 | not_found |
It does not exist, or you cannot see it. |
| 409 | conflict |
The request conflicts with the current state. |
| 422 | invalid |
The input is not valid. message says which field and why. |