> ## Documentation Index
> Fetch the complete documentation index at: https://usegately.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Update Settings

> Update project settings including the email sender name, sender address, branding, and authentication configuration

Updates any combination of project settings. Only fields you include in the request body are changed — all others remain untouched.

<Note>
  Changes to `sender_name` and `sender_email` take effect immediately on the next email sent from your project — including magic links, password resets, member invitations, and campaigns.
</Note>

## Headers

<ParamField header="Authorization" type="string" required>
  `Bearer YOUR_API_KEY`
</ParamField>

## Request Body

All fields are optional. Include only the fields you want to change.

<ParamField body="sender_name" type="string">
  Display name shown in the From field of all outgoing emails.

  Example: `"Magana Team"` → recipients see **From: Magana Team**
</ParamField>

<ParamField body="sender_email" type="string">
  Email address used as the From address for all emails.

  If you have a **verified sending domain**, this is used directly. Otherwise it is used as the Reply-To and emails send from `hello@usegately.com`.

  Example: `"hello@magana.com"`
</ParamField>

<ParamField body="reply_to_email" type="string">
  Explicit Reply-To address. Defaults to `sender_email` if not set.
</ParamField>

<ParamField body="support_email" type="string">
  Support contact email shown in transactional email footers.
</ParamField>

<ParamField body="primary_color" type="string">
  Brand hex color used in transactional email templates (e.g. `"#FE551B"`).
</ParamField>

<ParamField body="logo_url" type="string">
  Full URL to your logo — shown in transactional email headers.
</ParamField>

<ParamField body="allow_new_member_signup" type="boolean">
  Set `false` to prevent new members from registering.
</ParamField>

<ParamField body="allow_public_view" type="boolean">
  Allow unauthenticated access to member content pages.
</ParamField>

<ParamField body="session_duration_days" type="number">
  How long member sessions stay active before requiring re-login. Default: `30`.
</ParamField>

<ParamField body="require_plan_on_signup" type="boolean">
  Require members to choose a paid plan during signup.
</ParamField>

<ParamField body="email_footer_enabled" type="boolean">
  Enable a custom email footer (available on paid plans).
</ParamField>

<ParamField body="email_footer_text" type="string">
  Custom footer text appended to all outgoing campaign emails. Supports newlines.
</ParamField>

## Response

Returns the updated settings object.

<RequestExample>
  ```bash Set sender identity theme={null}
  curl -X PUT "https://api.usegately.com/api/v1/settings" \
    -H "Authorization: Bearer YOUR_API_KEY" \
    -H "Content-Type: application/json" \
    -d '{
      "sender_name": "Magana Team",
      "sender_email": "hello@magana.com",
      "reply_to_email": "support@magana.com"
    }'
  ```

  ```bash Update branding theme={null}
  curl -X PUT "https://api.usegately.com/api/v1/settings" \
    -H "Authorization: Bearer YOUR_API_KEY" \
    -H "Content-Type: application/json" \
    -d '{
      "primary_color": "#3b82f6",
      "logo_url": "https://cdn.magana.com/logo.png",
      "support_email": "help@magana.com"
    }'
  ```

  ```typescript SDK theme={null}
  await gately.settings.update({
    sender_name: 'Magana Team',
    sender_email: 'hello@magana.com',
    reply_to_email: 'support@magana.com',
  })
  ```
</RequestExample>

<ResponseExample>
  ```json 200 theme={null}
  {
    "success": true,
    "data": {
      "sender_name": "Magana Team",
      "sender_email": "hello@magana.com",
      "reply_to_email": "support@magana.com",
      "primary_color": "#FE551B",
      "allow_new_member_signup": true,
      "session_duration_days": 30
    }
  }
  ```

  ```json 401 theme={null}
  {
    "error": "Unauthorized",
    "code": "UNAUTHORIZED"
  }
  ```
</ResponseExample>
