Update project SMTP relay (BYO)
Set `authPass` in the body to store an encrypted password (never returned on GET). Validates host/user when enabling.
PATCH
/api/projects/{projectId}/email/smtpSDK setup
Create a client and set credentials (JWT and/or API key) before calling the API. Match the authentication type shown above.
import { Configuration, EmailApi } from 'mudbase-sdk';
const configuration = new Configuration({
basePath: 'https://cloud.mudbase.dev',
apiKey: 'sk_live_mudbase_doc_Xk9mP2qR7vN4wL8jH3tY6uE',
accessToken: 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJ1c3JfbW9yZ2FuX2RlIiwiZW1haWwiOiJtb3JnYW4uY2hlbkBub3J0aHdpbmQuZGV2IiwiZXhwIjoxODI1MTI5NjAwfQ.doc_preview_sig',
});
// This endpoint accepts either credential — apiKey or accessToken alone is enough.
const email = new EmailApi(configuration);import { Configuration, EmailApi } from 'mudbase-sdk';
const configuration = new Configuration({
basePath: 'https://cloud.mudbase.dev',
apiKey: 'sk_live_mudbase_doc_Xk9mP2qR7vN4wL8jH3tY6uE',
accessToken: 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJ1c3JfbW9yZ2FuX2RlIiwiZW1haWwiOiJtb3JnYW4uY2hlbkBub3J0aHdpbmQuZGV2IiwiZXhwIjoxODI1MTI5NjAwfQ.doc_preview_sig',
});
// This endpoint accepts either credential — apiKey or accessToken alone is enough.
const email = new EmailApi(configuration);Example request
Call this endpoint using the client from SDK setup. Use View HTTP for a raw cURL example.
const { data: result } = await email.patchProjectEmailSmtp(
"proj_pgqJ6tFzYL87",
{
enabled: true,
host: "bus hack",
port: 19255,
secure: false,
authUser: "panel quantify",
authPass: "capacitor compress",
fromName: "Mr. Wilfred Schmitt",
fromEmail: "brian37@northwind.dev",
domainVerifiedAt: "numb-co-producer.net"
}
);const { data: result } = await email.patchProjectEmailSmtp(
"proj_pgqJ6tFzYL87",
{
enabled: true,
host: "bus hack",
port: 19255,
secure: false,
authUser: "panel quantify",
authPass: "capacitor compress",
fromName: "Mr. Wilfred Schmitt",
fromEmail: "brian37@northwind.dev",
domainVerifiedAt: "numb-co-producer.net"
}
);Playground
liveTest this endpoint with your own credentials. Your requests will be sent to the live API.
Get your API key from the console
Use the auth endpoints to obtain a JWT.
No Request Yet
Send a request to see the full inspector
Authentication
Requires JWT Requires API Key JWT or API Key
Note
This endpoint accepts either JWT Bearer token or API Key. Use
Authorization: Bearer YOUR_TOKEN for user context, or X-API-Key: YOUR_KEY for server-to-server. View authentication guide →Include your JWT in the Authorization: Bearer YOUR_TOKEN header (user-facing apps, RBAC). View authentication guide →Include your API key in the X-API-Key: YOUR_KEY header (server-to-server, SDKs). View authentication guide →Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
projectId | string | Yes | — |
Request Body
json
{
"enabled": false,
"host": "sensor input",
"port": 97096,
"secure": true,
"authUser": "bandwidth connect",
"authPass": "feed override",
"fromName": "Shaun Kassulke",
"fromEmail": "audrey.hamill2@northwind.dev",
"domainVerifiedAt": "2026-07-19T07:20:21.861Z"
}{
"enabled": false,
"host": "sensor input",
"port": 97096,
"secure": true,
"authUser": "bandwidth connect",
"authPass": "feed override",
"fromName": "Shaun Kassulke",
"fromEmail": "audrey.hamill2@northwind.dev",
"domainVerifiedAt": "2026-07-19T07:20:21.861Z"
}Responses
200Updated settings (masked)
json
{
"success": true,
"data": {
"enabled": true,
"host": "smtp.sendgrid.net",
"port": 587,
"secure": false,
"authUser": "apikey",
"hasPassword": true,
"fromName": "Acme App",
"fromEmail": "noreply@mail.example.com",
"domainVerifiedAt": null
}
}{
"success": true,
"data": {
"enabled": true,
"host": "smtp.sendgrid.net",
"port": 587,
"secure": false,
"authUser": "apikey",
"hasPassword": true,
"fromName": "Acme App",
"fromEmail": "noreply@mail.example.com",
"domainVerifiedAt": null
}
}400—
Errors
| Code | Meaning |
|---|---|
400 | — |