---
canonical_url: "https://docs.composio.dev/toolkits/siteleaf"
markdown_url: "https://docs.composio.dev/toolkits/siteleaf.md"
product: "platform"
version: null
last_updated: null
---

# Siteleaf

A friendly CMS for static sites. Powered by Jekyll, with GitHub sync, and a complete API.

- **Category:** developer tools
- **Auth:** API_KEY, BASIC
- **Composio-managed OAuth available?** N/A
- **Tools:** 35
- **Triggers:** 0
- **Slug:** `SITELEAF`
- **Version:** 00000000_00

## Tools

### Cancel Job

**Slug:** `SITELEAF_CANCEL_JOB`

Cancel an active Siteleaf job by job ID. This irreversibly requests that the job stop.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `job_id` | string | Yes | Active Siteleaf job ID, such as one returned by publishing. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Collection

**Slug:** `SITELEAF_CREATE_COLLECTION`

Create a content collection in a Siteleaf site.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `path` | string | No | Collection path; Siteleaf derives one from the title when omitted. |
| `title` | string | Yes | Collection title. |
| `output` | boolean | No | Whether Siteleaf should generate output pages for this collection. |
| `site_id` | string | Yes | Site that will contain the collection. |
| `metadata` | object | No | Collection custom metadata. |
| `permalink` | string | No | Collection permalink template. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Collection File

**Slug:** `SITELEAF_CREATE_COLLECTION_FILE`

Upload one static file to a Siteleaf collection identified by its path. This action cannot create collection documents or content files with YAML front matter.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `file` | object | Yes | One static file to upload. This endpoint is only for static files and cannot create collection documents or content files with YAML front matter. |
| `site_id` | string | Yes | Site containing the collection. |
| `collection_path` | string | Yes | Path identifying the collection where the static file will be uploaded. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Document

**Slug:** `SITELEAF_CREATE_DOCUMENT`

Create a document in a Siteleaf collection with content, taxonomy, metadata, and visibility.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `body` | string | No | Document body content. |
| `date` | string | No | Document date in ISO 8601 format. |
| `path` | string | No | Document path relative to the collection. |
| `tags` | array | No | Tags assigned to the document. |
| `title` | string | Yes | Document title. |
| `site_id` | string | Yes | Site containing the collection. |
| `metadata` | object | No | Document custom metadata. |
| `permalink` | string | No | Custom document permalink. |
| `categories` | array | No | Categories assigned to the document. |
| `visibility` | string ("visible" | "hidden") | No | Initial document visibility; provider docs list visible&#124;hidden for writes, draft is a read-only state. |
| `collection_path` | string | Yes | Collection that will contain the document. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Page

**Slug:** `SITELEAF_CREATE_PAGE`

Create a page in a Siteleaf site.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `body` | string | No | Page body content. |
| `date` | string | No | Page date in ISO 8601 format. |
| `path` | string | No | Page path within the site. |
| `title` | string | Yes | Page title. |
| `site_id` | string | Yes | Site that will contain the page. |
| `metadata` | object | No | Page custom metadata. |
| `permalink` | string | No | Custom permalink. |
| `visibility` | string ("visible" | "hidden") | No | Initial page visibility. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Role

**Slug:** `SITELEAF_CREATE_ROLE`

Grant a Siteleaf user an admin, publisher, or writer role on a site.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `kind` | string ("admin" | "publisher" | "writer") | Yes | Role level to grant: admin, publisher, or writer. |
| `site_id` | string | Yes | Site on which access is granted. |
| `user_id` | string | Yes | Siteleaf user receiving access. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Site

**Slug:** `SITELEAF_CREATE_SITE`

Create a Siteleaf site with its domain, timezone, metadata, and defaults.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `empty` | boolean | No | Create the site without Siteleaf starter content when true. |
| `title` | string | Yes | Human-readable site title. |
| `domain` | string | Yes | Domain assigned to the site. |
| `defaults` | array | No | Jekyll default value definitions applied to scoped content. |
| `metadata` | object | No | Arbitrary site-level custom metadata. |
| `timezone` | string | No | Site timezone name; defaults to UTC. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete Collection

**Slug:** `SITELEAF_DELETE_COLLECTION`

Permanently delete a Siteleaf collection by site ID and collection path. This cannot be undone.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `site_id` | string | Yes | ID of the Siteleaf site containing the collection. |
| `collection_path` | string | Yes | Path of the collection to permanently delete. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete Document

**Slug:** `SITELEAF_DELETE_DOCUMENT`

Permanently delete a Siteleaf document by ID. This cannot be undone.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `document_id` | string | Yes | ID of the document to permanently delete. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete Page

**Slug:** `SITELEAF_DELETE_PAGE`

Permanently delete a Siteleaf page by ID. This cannot be undone.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `page_id` | string | Yes | ID of the Siteleaf page to permanently delete. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete Role

**Slug:** `SITELEAF_DELETE_ROLE`

Delete a Siteleaf role by ID, removing the user's access to its site.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `role_id` | string | Yes | ID of the Siteleaf role to delete, removing the user's site access. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete Site

**Slug:** `SITELEAF_DELETE_SITE`

Permanently delete a Siteleaf site by ID. This cannot be undone.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `site_id` | string | Yes | ID of the Siteleaf site to permanently delete. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete Source File

**Slug:** `SITELEAF_DELETE_SOURCE`

Permanently delete one raw source file from a Siteleaf site. Directories and _config.yml are protected and cannot be deleted.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `site_id` | string | Yes | ID of the Siteleaf site containing the source file. |
| `source_name` | string | Yes | Relative source filename or nested file path to permanently delete. Directories and _config.yml cannot be deleted. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Collection

**Slug:** `SITELEAF_GET_COLLECTION`

Get a collection by site ID and collection path.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `site_id` | string | Yes | Site containing the collection. |
| `collection_path` | string | Yes | Existing collection path. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Current User

**Slug:** `SITELEAF_GET_CURRENT_USER`

Return the Siteleaf user authenticated by the connected API key.

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Document

**Slug:** `SITELEAF_GET_DOCUMENT`

Get a Siteleaf document by ID.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `document_id` | string | Yes | Siteleaf document ID. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Job

**Slug:** `SITELEAF_GET_JOB`

Get the complete buffered status stream for a Siteleaf job, including all status events and the latest status details. The call waits until Siteleaf closes the event stream.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `job_id` | string | Yes | Siteleaf job ID, such as one returned by publishing a site. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Page

**Slug:** `SITELEAF_GET_PAGE`

Get a Siteleaf page by ID.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `page_id` | string | Yes | Siteleaf page ID. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Role

**Slug:** `SITELEAF_GET_ROLE`

Get a Siteleaf site-access role by ID.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `role_id` | string | Yes | Siteleaf role ID. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Site

**Slug:** `SITELEAF_GET_SITE`

Get one Siteleaf site by ID, including its settings and current or most recent preview, publish, and synchronization job states.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `site_id` | string | Yes | Siteleaf site ID. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Site Taxonomy

**Slug:** `SITELEAF_GET_SITE_TAXONOMY`

Return the unique post tags and categories used by a Siteleaf site.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `site_id` | string | Yes | Site whose post taxonomy should be read. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Source

**Slug:** `SITELEAF_GET_SOURCE`

Get raw source-file metadata or list a source directory for a Siteleaf site.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `site_id` | string | Yes | Site whose source tree should be read. |
| `source_name` | string | No | File or directory path; omit to list the source root. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Collection Files

**Slug:** `SITELEAF_LIST_COLLECTION_FILES`

Search and list static files in a Siteleaf collection with sorting and agent-controlled pagination.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `sort` | string | No | Sort as field-asc or field-desc, such as filename-asc or created_at-desc. |
| `query` | string | No | Search files by filename. |
| `site_id` | string | Yes | Site containing the collection. |
| `per_page` | integer | No | Number of files to request in this page; Siteleaf documents no maximum. |
| `next_cursor` | string | No | Opaque continuation cursor returned by a previous call; omit for the first page. |
| `collection_path` | string | Yes | Collection path. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Collections

**Slug:** `SITELEAF_LIST_COLLECTIONS`

List content collections in a Siteleaf site with agent-controlled pagination.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `site_id` | string | Yes | Site whose collections should be listed. |
| `per_page` | integer | No | Number of collections to request in this page; Siteleaf documents no maximum. |
| `next_cursor` | string | No | Opaque continuation cursor returned by a previous call; omit for the first page. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Documents

**Slug:** `SITELEAF_LIST_DOCUMENTS`

Search and list documents in a Siteleaf collection with visibility, extension, sorting, and pagination filters.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `sort` | string | No | Sort as field-asc or field-desc, such as title-asc or created_at-desc. |
| `query` | string | No | Search document titles and paths. |
| `site_id` | string | Yes | Site containing the collection. |
| `per_page` | integer | No | Number of documents to request in this page; Siteleaf documents no maximum. |
| `extensions` | string | No | Comma-separated filename extensions. |
| `visibility` | string ("visible" | "hidden" | "draft") | No | Filter documents by visibility. |
| `next_cursor` | string | No | Opaque continuation cursor returned by a previous call; omit for the first page. |
| `collection_path` | string | Yes | Collection whose documents should be listed. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Pages

**Slug:** `SITELEAF_LIST_PAGES`

Search and list pages in a Siteleaf site with visibility, extension, sorting, and pagination filters.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `sort` | string | No | Sort as field-asc or field-desc, such as title-asc or created_at-desc. |
| `query` | string | No | Search page titles and paths. |
| `site_id` | string | Yes | Site whose pages should be listed. |
| `per_page` | integer | No | Number of pages to request in this page; Siteleaf documents no maximum. |
| `extensions` | string | No | Comma-separated filename extensions; Siteleaf supports markdown aliases. |
| `visibility` | string ("visible" | "hidden") | No | Filter pages by visibility. |
| `next_cursor` | string | No | Opaque continuation cursor returned by a previous call; omit for the first page. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Sites

**Slug:** `SITELEAF_LIST_SITES`

List sites accessible to the connected Siteleaf account, with optional sorting and agent-controlled pagination.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `sort` | string | No | Sort expression in field-asc or field-desc form. |
| `per_page` | integer | No | Number of sites to request in this page; Siteleaf documents no maximum. |
| `next_cursor` | string | No | Opaque continuation cursor returned by a previous call; omit for the first page. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Site Users

**Slug:** `SITELEAF_LIST_SITE_USERS`

List users who have access to a Siteleaf site with agent-controlled pagination.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `site_id` | string | Yes | Site whose users should be listed. |
| `per_page` | integer | No | Number of users to request in this page; Siteleaf documents no maximum. |
| `next_cursor` | string | No | Opaque continuation cursor returned by a previous call; omit for the first page. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Publish Site

**Slug:** `SITELEAF_PUBLISH_SITE`

Start an asynchronous compile-and-publish job for a Siteleaf site and return its job ID. This publishes externally visible site content and does not wait for job completion.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `site_id` | string | Yes | ID of the Siteleaf site to publish. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update Collection

**Slug:** `SITELEAF_UPDATE_COLLECTION`

Update at least one of a collection's title, path, permalink, output behavior, or metadata.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `title` | string | No | Replacement collection title. |
| `output` | boolean | No | Whether collection documents generate output. |
| `site_id` | string | Yes | Site containing the collection. |
| `metadata` | object | No | Replacement collection custom metadata object. |
| `new_path` | string | No | Replacement collection path. |
| `permalink` | string | No | Replacement permalink template. |
| `collection_path` | string | Yes | Current collection path used to locate it. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update Document

**Slug:** `SITELEAF_UPDATE_DOCUMENT`

Update at least one of a document's content, path, taxonomy, visibility, metadata, or date.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `body` | string | No | Replacement document body content. |
| `date` | string | No | Replacement document date in ISO 8601 format. |
| `path` | string | No | Replacement document path. |
| `tags` | array | No | Replacement tags assigned to the document. |
| `title` | string | No | Replacement document title. |
| `metadata` | object | No | Replacement document custom metadata object. |
| `permalink` | string | No | Replacement custom permalink. |
| `categories` | array | No | Replacement categories assigned to the document. |
| `visibility` | string ("visible" | "hidden") | No | Replacement document visibility; provider docs list visible&#124;hidden for writes, draft is a read-only state. |
| `document_id` | string | Yes | Document to update. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update Page

**Slug:** `SITELEAF_UPDATE_PAGE`

Update at least one of a page's content, path, visibility, metadata, or publication date.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `body` | string | No | Replacement page body content. |
| `date` | string | No | Replacement page date in ISO 8601 format. |
| `path` | string | No | Replacement page path. |
| `title` | string | No | Replacement page title. |
| `page_id` | string | Yes | Page to update. |
| `metadata` | object | No | Replacement page custom metadata object. |
| `permalink` | string | No | Replacement custom permalink. |
| `visibility` | string ("visible" | "hidden") | No | Replacement page visibility. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update Role

**Slug:** `SITELEAF_UPDATE_ROLE`

Change an existing Siteleaf role to admin, publisher, or writer.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `kind` | string ("admin" | "publisher" | "writer") | Yes | Replacement role level: admin, publisher, or writer. |
| `role_id` | string | Yes | Role to change. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update Site

**Slug:** `SITELEAF_UPDATE_SITE`

Update at least one of a site's title, domain, timezone, metadata, or Jekyll content defaults. Hosting credentials and repository sync are intentionally not accepted as agent inputs.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `title` | string | No | Replacement site title. |
| `domain` | string | No | Replacement site domain. |
| `site_id` | string | Yes | Siteleaf site ID. |
| `defaults` | array | No | Replacement Jekyll content default definitions. |
| `metadata` | object | No | Replacement site-level custom metadata object. |
| `timezone` | string | No | Replacement site timezone. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create or Replace Source File

**Slug:** `SITELEAF_UPSERT_SOURCE`

Create or replace one raw source file in a Siteleaf site.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `file` | object | Yes | File content to upload as the new contents of the source file. |
| `site_id` | string | Yes | ID of the Siteleaf site where the source file will be stored. |
| `source_name` | string | Yes | Relative filename or nested path for the source file to create or replace. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |
