# Update project settings

> For the complete documentation index, see [llms.txt](/llms.txt)

> Update a project's settings. Send any subset of the supported

<Heading
  as={"h1"}
  className={"openapi__heading"}
  children={"Update project settings"}
>
</Heading>

<MethodEndpoint
  method={"patch"}
  path={"/api/v1/projects/{slug}/settings/"}
  context={"endpoint"}
>
  
</MethodEndpoint>

Update a project's settings. Send any subset of the supported
fields; unknown fields are rejected, and validation runs before
anything is written, so a request never half-applies.

Supported fields:

- `url`: the project's primary site URL. Feedback submissions are
  validated against this URL's hostname, so keep it in sync when
  your site changes domain. Normalized before saving: a trailing
  slash is stripped.
- `whitelabel`: hides the "Powered by PushFeedback" branding in the
  widget. This is a team-wide setting: it applies to every project
  of the team. Enabling it requires a paid plan and returns
  `403 Forbidden` otherwise; disabling it is always allowed. Widget
  configuration is cached for up to 60 seconds, so a change can
  take up to a minute to reach visitors.

Requires an API key with the `project:manage` scope in the
`Authorization` header. The key must cover the project in the URL; a
key for another team's project, or one outside the key's project
restriction, returns `404 Not Found`. A key without the
`project:manage` scope returns `403 Forbidden`.

<Heading
  id={"request"}
  as={"h2"}
  className={"openapi-tabs__heading"}
>
  <Translate id="theme.openapi.request.title">Request</Translate>
</Heading>

<ParamsDetails
  {...require("./update-project-settings.ParamsDetails.json")}
>
  
</ParamsDetails>

<RequestSchema
  {...require("./update-project-settings.RequestSchema.json")}
>
  
</RequestSchema>

<StatusCodes
  {...require("./update-project-settings.StatusCodes.json")}
>
  
</StatusCodes>
