> Fetch clean Markdown by appending `.md` to any page URL under https://signalwire.com/docs or requesting it with the HTTP header `Accept: text/markdown`. The root index at https://signalwire.com/docs/llms.txt lists the available documentation indexes. # Projects > Create and manage subprojects and rotate a project's signing key. [restclient]: /docs/server-sdks/reference/python/rest/client [project-tokens]: /docs/server-sdks/reference/python/rest/project [paginate]: /docs/server-sdks/reference/python/rest/paginate List the authenticated root project and its subprojects, create and update subprojects, and rotate a project's signing key. Every call operates only within the caller's project tree. For API tokens on the current project, use [`client.project.tokens`][project-tokens]. Access via `client.projects` on a [`RestClient`][restclient] instance. ```python {9} from signalwire.rest import RestClient client = RestClient( project="your-project-id", token="your-api-token", host="your-space.signalwire.com", ) sub = client.projects.create(name="Bayview Taxi - staging") print(sub["id"], sub["subproject"]) ``` ## Methods #### [list](/docs/server-sdks/reference/python/rest/projects/list) List the root project and its subprojects. #### [get](/docs/server-sdks/reference/python/rest/projects/get) Retrieve one project by ID. #### [create](/docs/server-sdks/reference/python/rest/projects/create) Create a subproject. #### [update](/docs/server-sdks/reference/python/rest/projects/update) Update a project's name or media protection settings. #### [delete](/docs/server-sdks/reference/python/rest/projects/delete) Delete a subproject. #### [rotate\_signing\_key](/docs/server-sdks/reference/python/rest/projects/rotate-signing-key) Issue a new signing key for a project. `client.projects` also exposes [`paginate()`][paginate] to iterate across all pages. > Create and manage subprojects and rotate a project's signing key. ## Docs - [create](https://signalwire.com/docs/server-sdks/reference/python/rest/projects/create.md): Create a subproject under the authenticated root project. - [delete](https://signalwire.com/docs/server-sdks/reference/python/rest/projects/delete.md): Delete a subproject. - [get](https://signalwire.com/docs/server-sdks/reference/python/rest/projects/get.md): Retrieve a single project or subproject by ID. - [list](https://signalwire.com/docs/server-sdks/reference/python/rest/projects/list.md): List the authenticated root project and its subprojects. - [rotate_signing_key](https://signalwire.com/docs/server-sdks/reference/python/rest/projects/rotate-signing-key.md): Issue a new signing key for a project, invalidating the old one. - [update](https://signalwire.com/docs/server-sdks/reference/python/rest/projects/update.md): Update a project's name or media protection settings.