# Projects

> Folders that group workflows, apps, skills, and shared files. Sharing a project shares everything in it.

Source: https://docs.generalinput.com/api/projects



A project is a single-home container: a workflow, app, or skill sits in at most one project, or at the root. Grants on a project flow down to what it holds. Project files are human input that every chat in the project mounts read-only at `project/`.

<Access scope="projects:manage" />

## Endpoints [#endpoints]

| Endpoint                                                            | Does                                     |
| ------------------------------------------------------------------- | ---------------------------------------- |
| [`GET /v1/projects`](/api/projects/list)                            | Projects the member can access           |
| [`POST /v1/projects`](/api/projects/create)                         | Create                                   |
| [`GET /v1/projects/:id`](/api/projects/get)                         | A project and what it holds              |
| [`PATCH /v1/projects/:id`](/api/projects/update)                    | Rename, describe, set the icon           |
| [`POST /v1/projects/:id/delete`](/api/projects/delete)              | Delete, owner only                       |
| [`POST /v1/projects/pin`](/api/projects/pin)                        | Move a resource into or out of a project |
| [`GET /v1/projects/:id/files`](/api/projects/list-files)            | List shared files                        |
| [`GET /v1/projects/:id/files/bundle`](/api/projects/download-files) | Download every file as a tar.gz          |
| [`POST /v1/projects/:id/files/bundle`](/api/projects/upload-files)  | Upload a tar.gz, additive                |
| [`DELETE /v1/projects/:id/files?path=`](/api/projects/delete-file)  | Remove one file                          |

## Roles [#roles]

`role` on a project is `owner`, `editor`, or `viewer`, resolved from the nearest grant (owner, collaborator, workspace grant). Reads need any access; writes to the project and its files need edit; deleting needs ownership.
