# Update a site

> Update a site. To replace the bundle, pass a file_id from upload-batches/presign.

PATCH

/sites/{api\_name}/

Update a site. Metadata-only changes (for example `name` or `logo`) do not require a staged file.

To replace the site bundle:

1.  Get a presign: `POST /sites/upload-batches/presign/` with `file_intents` (`client_ref` can be any unique id; `file_name` is the asset basename).
2.  Upload bytes to S3 using `files[].upload_url` and `files[].upload_fields` from the presign response (see `POST /sites/upload-batches/presign/`).
3.  Update the site: `PATCH /sites/{api_name}/` with `application/json` including the returned `file_id`.

### Required Scopes

-   sites.read-write
    

### Request

Path Parameters

**api\_name** string required

The unique api\_name of the site.

**Example:** employee\_portal

-   application/json

**Body**

**name** string

The display name of the custom site

**description** string

The optional description of the custom site

**api\_name** string

The unique api name of the custom site

**logo** string

A Rippling-owned logo URL for the custom site

**entry\_path** string

Entry path inside the uploaded asset (for example index.html). Required with file\_id when the zip has no index.html.

**file\_id** string

Staged upload id from POST /sites/upload-batches/presign/ after uploading bytes to S3. Required to create a site or replace the bundle. The id can be reused for 1 hour from presign, each attach copies the bytes into that site's bundle, a repeat attach before expiry creates another bundle, and the staged object is removed after expiry.

## Responses

-   200

Successful response

-   application/json

-   Schema
-   Example (from schema)

**Schema**

**id** string

Identifier field

**name** string

The display name of the custom site

**description** string

The optional description of the custom site

**api\_name** string

The unique api name of the custom site

**logo** string

A Rippling-owned logo URL for the custom site

**current\_bundle\_id** string

The active bundle id for the custom site

**admin\_group\_id** string

The admin group id for the custom site

**viewer\_group\_id** string

The viewer group id for the custom site

**created\_by** string

The ID of the role that created the custom site

**created\_at** string

Record creation date

```json
{
  "id": "string",
  "name": "string",
  "description": "string",
  "api_name": "string",
  "logo": "string",
  "current_bundle_id": "string",
  "admin_group_id": "string",
  "viewer_group_id": "string",
  "created_by": "string",
  "created_at": "string"
}
```

Source: https://developer.rippling.com/documentation/rest-api/reference/update-sites

> For the complete documentation index, see [llms.txt](https://developer.rippling.com/llms.txt). Public pages have a Markdown version at the same URL with .md added.
