> ## Documentation Index
> Fetch the complete documentation index at: https://docs.cortex.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Scaffolder

Use these operations to interact with [Scaffolder templates](/streamline/workflows/scaffolder) in Cortex.

### Required permissions

* List or retrieve Scaffolder templates: no additional permission is required.
* Create, update, or delete Scaffolder templates: your API key must have the `Configure Scaffolder` permission.

### Identifying a template

Every Scaffolder template has a `tag`: a stable, human-readable identifier that is unique within your workspace. Tags may contain lowercase letters, numbers, and dashes, and may not start or end with a dash. If you omit the tag when creating a template, Cortex derives one from the template's name. An existing template keeps its tag unless you supply a new one.

Operations that take a `tagOrId` path parameter accept either the tag or the unique, auto-generated Cortex ID. Prefer the tag: it is the identifier you choose, so it stays readable and portable across workspaces.

### Creating and updating

`POST /api/v1/scaffolders` is an upsert. If a template with the same tag already exists, that template is updated instead of a new one being created. Use `PUT /api/v1/scaffolders/{tagOrId}` when you want to update a specific template and have the request fail if it does not exist.

## Operations

<Columns cols={2}>
  <Card title="List Scaffolder templates" icon="code" href="/api/rest/scaffolder/list-scaffolder-templates">
    `GET /api/v1/scaffolders`
  </Card>

  <Card title="Retrieve Scaffolder template" icon="code" href="/api/rest/scaffolder/retrieve-scaffolder-template">
    `GET /api/v1/scaffolders/{tagOrId}`
  </Card>

  <Card title="Create or update Scaffolder template" icon="code" href="/api/rest/scaffolder/create-or-update-scaffolder-template">
    `POST /api/v1/scaffolders`
  </Card>

  <Card title="Update Scaffolder template" icon="code" href="/api/rest/scaffolder/update-scaffolder-template">
    `PUT /api/v1/scaffolders/{tagOrId}`
  </Card>

  <Card title="Delete Scaffolder template" icon="code" href="/api/rest/scaffolder/delete-scaffolder-template">
    `DELETE /api/v1/scaffolders/{tagOrId}`
  </Card>
</Columns>


## Related topics

- [List Scaffolder templates](/api/rest/scaffolder/list-scaffolder-templates.md)
- [Registering a Scaffolder template](/streamline/workflows/scaffolder.md)
- [Update Scaffolder template](/api/rest/scaffolder/update-scaffolder-template.md)
