Skip to main content
Neon Postgres Docs

Search documentation

Type to search this documentation.

Update email provider configuration

PATCH/projects/{project_id}/branches/{branch_id}/auth/email_providerUpdate email provider configuration

Updates the email provider configuration for the specified branch's Neon Auth integration. The email provider handles transactional messages such as verification emails and password reset links.

Partial standard updates — omitting fields to keep their stored values — are supported only for Better Auth integrations, which merge omitted fields server-side. Legacy Stack Auth integrations do not merge and require all six standard fields (host, port, username, password, sender_email, sender_name) on every update; a partial standard body is rejected with 400.

Parameters

project_idstringpathrequired

The Neon project ID

pattern ^[a-z0-9-]{1,60}$

branch_idstringpathrequired

The Neon branch ID

pattern ^[a-z0-9-]{1,60}$

Request body

required
application/json
objectNeonAuthEmailServerConfig
oneOf · 2 options
Option 1objectStandardEmailServer
hoststring

Hostname of the email server.

passwordstring

Password for authenticating with the SMTP server.

portinteger

TCP port of the SMTP server. Common values: 25 (SMTP), 465 (SMTPS), 587 (submission).

sender_emailstring

Email address used as the From address on outgoing auth emails.

sender_namestring

Display name shown as the sender in outgoing emails.

usernamestring

Username for authenticating with the SMTP server.

Option 2objectSharedEmailServer
sender_emailstring

Email address used as the sender for outgoing messages from this shared email server.

sender_namestring

Display name shown as the sender in outgoing emails.

Example request
{
  "sender_email": "string",
  "sender_name": "string",
  "type": "shared"
}

Responses

200The email provider configuration has been updatedapplication/json
objectNeonAuthEmailServerConfigResponse
oneOf · 2 options
Option 1objectStandardEmailServerResponse
hoststringrequired

Hostname of the email server.

passwordstringrequired

On GET, returned redacted (empty) for ordinary callers, while callers with project-credential read permission receive the stored password — do not assume this field is empty. Update (PATCH) responses always return it redacted (empty) regardless of permission. Provide a value on update to set or rotate the password.

portintegerrequired

TCP port of the SMTP server. Common values: 25 (SMTP), 465 (SMTPS), 587 (submission).

sender_emailstringrequired

Email address used as the From address on outgoing auth emails.

sender_namestringrequired

Display name shown as the sender in outgoing emails.

usernamestringrequired

Username for authenticating with the SMTP server.

Option 2: SharedEmailServer ↑

Example response
{
  "sender_email": "string",
  "sender_name": "string",
  "type": "shared"
}
defaultGeneral Error. The request may or may not be safe to retry, depending on the HTTP method, response status code, and whether a response was received. - If no response is returned from the API, a network error or timeout likely occurred. - In some cases, the request may have reached the server and been successfully processed, but the response failed to reach the client. As a result, retrying non-idempotent requests can lead to unintended results. The following HTTP methods are considered non-idempotent: `POST`, `PATCH`, `DELETE`, and `PUT`. Retrying these methods is generally **not safe**. The following methods are considered idempotent: `GET`, `HEAD`, and `OPTIONS`. Retrying these methods is **safe** in the event of a network error or timeout. Any request that returns a `503 Service Unavailable` response is always safe to retry. Any request that returns a `423 Locked` response is safe to retry. `423 Locked` indicates that the resource is temporarily locked, for example, due to another operation in progress. application/json
objectGeneralError
codestringrequired

default ""

messagestringrequired

Error message

request_idstring

Unique identifier for the request, useful for debugging. You can set this value manually by including an `X-Request-ID` header in the request. If not provided, the value will be generated automatically.

Example response
{
  "code": "",
  "message": "string",
  "request_id": "string"
}
Documentation menu