Letta · Capability

Letta API — Templates

Templates — reusable agent templates for instantiation. 21 operations. Lead operation: Create Agents from Template. Self-contained Naftiko capability covering one Letta business surface.

Letta API — Templates is a Naftiko capability published by Letta, one of 36 capabilities the APIs.io network indexes for this provider. It bundles 21 operations across the POST, GET, PATCH, DELETE, and PUT methods.

The capability includes 3 read-only operations and 18 state-changing operations. Lead operation: Create Agents from Template. Can be deployed as a REST endpoint, MCP tool, or Agent Skill via Naftiko.

Tagged areas include Letta, Stateful Agents, and Templates.

Run with Naftiko LettaStateful AgentsTemplates

What You Can Do

POST
Templates_createagentsfromtemplate — Create Agents from Template
/v1/templates/{project-id}/{template-version}/agents
POST
Templates_createagentsfromtemplatenoproject — Create Agents from Template
/v1/templates/{template-version}/agents
GET
Templates_listtemplates — List Templates (Cloud-only)
/v1/templates
POST
Templates_createtemplatenoproject — Create Template (Cloud-only)
/v1/templates
POST
Templates_savetemplateversionnoproject — Save Template Version (Cloud-only)
/v1/templates/{template-name}/save
POST
Templates_savetemplateversion — Save Template Version (Cloud-only)
/v1/templates/{project-id}/{template-name}
DELETE
Templates_deletetemplate — Delete Template (Cloud-only)
/v1/templates/{project-id}/{template-name}
GET
Templates_gettemplatesnapshot — Get Template Snapshot (Cloud-only)
/v1/templates/{project-id}/{template-version}/snapshot
PUT
Templates_setcurrenttemplatefromsnapshot — Set Current Template from Snapshot (Cloud-only)
/v1/templates/{project-id}/{template-version}/snapshot
POST
Templates_forktemplate — Fork Template (Cloud-only)
/v1/templates/{project-id}/{template-version}/fork
POST
Templates_createtemplate — Create Template (Cloud-only)
/v1/templates/{project-id}
DELETE
Templates_deletetemplatenoproject — Delete Template (Cloud-only)
/v1/templates/{template-name}
PATCH
Templates_updatecurrenttemplatefromagentfilenoproject — Update Current Template from Agent File (Cloud-only)
/v1/templates/{template-name}
PATCH
Templates_renametemplate — Rename Template (Cloud-only)
/v1/templates/{project-id}/{template-name}/name
PATCH
Templates_updatetemplatedescription — Update Template Description (Cloud-only)
/v1/templates/{project-id}/{template-name}/description
GET
Templates_listtemplateversions — List Template Versions (Cloud-only)
/v1/templates/{project-id}/{name}/versions
POST
Templates_migratedeployment — Migrate Deployment to Template Version (Cloud-only)
/v1/templates/{project-id}/{template-name}/deployments/{deployment-id}/migrate
POST
Templates_rollbacktemplatenoproject — Rollback Template to Previous Version (Cloud-only)
/v1/templates/{template-name}/rollback
POST
Templates_rollbacktemplate — Rollback Template to Previous Version (Cloud-only)
/v1/templates/{project-id}/{template-name}/rollback
PUT
Templates_updatecurrenttemplatefromagentfile — Update Current Template from Agent File (Cloud-only)
/v1/templates/{project-id}/{template-name}/agent-file
POST
Templates_legacymigration — Migrate Template from Legacy Project (Cloud-only)
/v1/legacy-templates/{templateId}/migrates

MCP Tools

create-agents-template

Create Agents from Template

create-agents-template-2

Create Agents from Template

list-templates-cloud-only

List Templates (Cloud-only)

read-only idempotent
create-template-cloud-only

Create Template (Cloud-only)

save-template-version-cloud-only

Save Template Version (Cloud-only)

save-template-version-cloud-only-2

Save Template Version (Cloud-only)

delete-template-cloud-only

Delete Template (Cloud-only)

idempotent
get-template-snapshot-cloud-only

Get Template Snapshot (Cloud-only)

read-only idempotent
set-current-template-snapshot-cloud

Set Current Template from Snapshot (Cloud-only)

idempotent
fork-template-cloud-only

Fork Template (Cloud-only)

create-template-cloud-only-2

Create Template (Cloud-only)

delete-template-cloud-only-2

Delete Template (Cloud-only)

idempotent
update-current-template-agent-file

Update Current Template from Agent File (Cloud-only)

idempotent
rename-template-cloud-only

Rename Template (Cloud-only)

idempotent
update-template-description-cloud-only

Update Template Description (Cloud-only)

idempotent
list-template-versions-cloud-only

List Template Versions (Cloud-only)

read-only idempotent
migrate-deployment-template-version-cloud

Migrate Deployment to Template Version (Cloud-only)

rollback-template-previous-version-cloud

Rollback Template to Previous Version (Cloud-only)

rollback-template-previous-version-cloud-2

Rollback Template to Previous Version (Cloud-only)

update-current-template-agent-file-2

Update Current Template from Agent File (Cloud-only)

idempotent
migrate-template-legacy-project-cloud

Migrate Template from Legacy Project (Cloud-only)

Capability Spec

letta-templates.yaml Raw ↑
naftiko: "1.0.0-alpha2"

info:
  label: "Letta API — Templates"
  description: >-
    Templates — reusable agent templates for instantiation. 21 operations. Lead operation: Create Agents from Template. Self-contained Naftiko capability covering one Letta business surface.
  tags:
    - Letta
    - Stateful Agents
    - Templates
  created: "2026-05-08"
  modified: "2026-05-22"

binds:
  - namespace: env
    keys:
      LETTA_API_KEY: LETTA_API_KEY

capability:

  consumes:
    - type: http
      namespace: "letta-templates"
      baseUri: "https://api.letta.com"
      description: "Letta API — Templates business capability. Self-contained, no shared references."
      authentication:
        type: bearer
        token: "{{env.LETTA_API_KEY}}"
      resources:
        - name: "templates-by-id-by-id-agents"
          path: "/v1/templates/{project_id}/{template_version}/agents"
          operations:
            - name: "templates_createagentsfromtemplate"
              method: POST
              description: "Create Agents from Template"
              inputParameters:
                - name: "project_id"
                  in: path
                  type: string
                  required: true
                  description: "The project id"
                - name: "template_version"
                  in: path
                  type: string
                  required: true
                  description: "The template version, formatted as {template-name}:{version-number} or {template-name}:latest. This endpoint is not available for self-hosted Letta."
                - name: "body"
                  in: body
                  type: object
                  required: true
                  description: "Body"
              outputRawFormat: json
              outputParameters:
                - name: result
                  type: object
                  value: "$."
        - name: "templates-by-id-agents"
          path: "/v1/templates/{template_version}/agents"
          operations:
            - name: "templates_createagentsfromtemplatenoproject"
              method: POST
              description: "Create Agents from Template"
              inputParameters:
                - name: "template_version"
                  in: path
                  type: string
                  required: true
                  description: "The template version, formatted as {template-name}:{version-number} or {template-name}:latest. This endpoint is not available for self-hosted Letta."
                - name: "body"
                  in: body
                  type: object
                  required: true
                  description: "Body"
              outputRawFormat: json
              outputParameters:
                - name: result
                  type: object
                  value: "$."
        - name: "templates"
          path: "/v1/templates"
          operations:
            - name: "templates_listtemplates"
              method: GET
              description: "List Templates (Cloud-only)"
              inputParameters:
                - name: "offset"
                  in: query
                  type: string
                  required: false
                  description: "offset parameter"
                - name: "exact"
                  in: query
                  type: string
                  required: false
                  description: "Whether to search for an exact name match"
                - name: "limit"
                  in: query
                  type: string
                  required: false
                  description: "limit parameter"
                - name: "version"
                  in: query
                  type: string
                  required: false
                  description: "Specify the version you want to return, otherwise will return the latest version"
                - name: "template_id"
                  in: query
                  type: string
                  required: false
                  description: "template_id parameter"
                - name: "name"
                  in: query
                  type: string
                  required: false
                  description: "name parameter"
                - name: "search"
                  in: query
                  type: string
                  required: false
                  description: "search parameter"
                - name: "project_slug"
                  in: query
                  type: string
                  required: false
                  description: "project_slug parameter"
                - name: "project_id"
                  in: query
                  type: string
                  required: false
                  description: "project_id parameter"
                - name: "sort_by"
                  in: query
                  type: string
                  required: false
                  description: "sort_by parameter"
              outputRawFormat: json
              outputParameters:
                - name: result
                  type: object
                  value: "$."
            - name: "templates_createtemplatenoproject"
              method: POST
              description: "Create Template (Cloud-only)"
              inputParameters:
                - name: "body"
                  in: body
                  type: object
                  required: true
                  description: "Body"
              outputRawFormat: json
              outputParameters:
                - name: result
                  type: object
                  value: "$."
        - name: "templates-by-id-save"
          path: "/v1/templates/{template_name}/save"
          operations:
            - name: "templates_savetemplateversionnoproject"
              method: POST
              description: "Save Template Version (Cloud-only)"
              inputParameters:
                - name: "template_name"
                  in: path
                  type: string
                  required: true
                  description: "The template version, formatted as {template-name}, any version appended will be ignored"
                - name: "body"
                  in: body
                  type: object
                  required: true
                  description: "Body"
              outputRawFormat: json
              outputParameters:
                - name: result
                  type: object
                  value: "$."
        - name: "templates-by-id-by-id"
          path: "/v1/templates/{project_id}/{template_name}"
          operations:
            - name: "templates_savetemplateversion"
              method: POST
              description: "Save Template Version (Cloud-only)"
              inputParameters:
                - name: "project_id"
                  in: path
                  type: string
                  required: true
                  description: "The project id"
                - name: "template_name"
                  in: path
                  type: string
                  required: true
                  description: "The template version, formatted as {template-name}, any version appended will be ignored"
                - name: "body"
                  in: body
                  type: object
                  required: true
                  description: "Body"
              outputRawFormat: json
              outputParameters:
                - name: result
                  type: object
                  value: "$."
            - name: "templates_deletetemplate"
              method: DELETE
              description: "Delete Template (Cloud-only)"
              inputParameters:
                - name: "project_id"
                  in: path
                  type: string
                  required: true
                  description: "The project id"
                - name: "template_name"
                  in: path
                  type: string
                  required: true
                  description: "The template name (without version)"
                - name: "body"
                  in: body
                  type: object
                  required: true
                  description: "Body"
              outputRawFormat: json
              outputParameters:
                - name: result
                  type: object
                  value: "$."
        - name: "templates-by-id-by-id-snapshot"
          path: "/v1/templates/{project_id}/{template_version}/snapshot"
          operations:
            - name: "templates_gettemplatesnapshot"
              method: GET
              description: "Get Template Snapshot (Cloud-only)"
              inputParameters:
                - name: "project_id"
                  in: path
                  type: string
                  required: true
                  description: "The project id"
                - name: "template_version"
                  in: path
                  type: string
                  required: true
                  description: "The template version, formatted as {template-name}:{version-number} or {template-name}:latest"
              outputRawFormat: json
              outputParameters:
                - name: result
                  type: object
                  value: "$."
            - name: "templates_setcurrenttemplatefromsnapshot"
              method: PUT
              description: "Set Current Template from Snapshot (Cloud-only)"
              inputParameters:
                - name: "project_id"
                  in: path
                  type: string
                  required: true
                  description: "The project id"
                - name: "template_version"
                  in: path
                  type: string
                  required: true
                  description: "The template name with :dev version (e.g., my-template:dev)"
                - name: "body"
                  in: body
                  type: object
                  required: true
                  description: "Body"
              outputRawFormat: json
              outputParameters:
                - name: result
                  type: object
                  value: "$."
        - name: "templates-by-id-by-id-fork"
          path: "/v1/templates/{project_id}/{template_version}/fork"
          operations:
            - name: "templates_forktemplate"
              method: POST
              description: "Fork Template (Cloud-only)"
              inputParameters:
                - name: "project_id"
                  in: path
                  type: string
                  required: true
                  description: "The project id"
                - name: "template_version"
                  in: path
                  type: string
                  required: true
                  description: "The template version, formatted as {template-name}:{version-number} or {template-name}:latest"
                - name: "body"
                  in: body
                  type: object
                  required: true
                  description: "Body"
              outputRawFormat: json
              outputParameters:
                - name: result
                  type: object
                  value: "$."
        - name: "templates-by-id"
          path: "/v1/templates/{project_id}"
          operations:
            - name: "templates_createtemplate"
              method: POST
              description: "Create Template (Cloud-only)"
              inputParameters:
                - name: "project_id"
                  in: path
                  type: string
                  required: true
                  description: "The project id"
                - name: "body"
                  in: body
                  type: object
                  required: true
                  description: "Body"
              outputRawFormat: json
              outputParameters:
                - name: result
                  type: object
                  value: "$."
        - name: "templates-by-id"
          path: "/v1/templates/{template_name}"
          operations:
            - name: "templates_deletetemplatenoproject"
              method: DELETE
              description: "Delete Template (Cloud-only)"
              inputParameters:
                - name: "template_name"
                  in: path
                  type: string
                  required: true
                  description: "The template name (without version)"
                - name: "body"
                  in: body
                  type: object
                  required: true
                  description: "Body"
              outputRawFormat: json
              outputParameters:
                - name: result
                  type: object
                  value: "$."
            - name: "templates_updatecurrenttemplatefromagentfilenoproject"
              method: PATCH
              description: "Update Current Template from Agent File (Cloud-only)"
              inputParameters:
                - name: "template_name"
                  in: path
                  type: string
                  required: true
                  description: "The template name (without version)"
                - name: "body"
                  in: body
                  type: object
                  required: true
                  description: "Body"
              outputRawFormat: json
              outputParameters:
                - name: result
                  type: object
                  value: "$."
        - name: "templates-by-id-by-id-name"
          path: "/v1/templates/{project_id}/{template_name}/name"
          operations:
            - name: "templates_renametemplate"
              method: PATCH
              description: "Rename Template (Cloud-only)"
              inputParameters:
                - name: "project_id"
                  in: path
                  type: string
                  required: true
                  description: "The project id"
                - name: "template_name"
                  in: path
                  type: string
                  required: true
                  description: "The current template name (version will be automatically stripped if included)"
                - name: "body"
                  in: body
                  type: object
                  required: true
                  description: "Body"
              outputRawFormat: json
              outputParameters:
                - name: result
                  type: object
                  value: "$."
        - name: "templates-by-id-by-id-description"
          path: "/v1/templates/{project_id}/{template_name}/description"
          operations:
            - name: "templates_updatetemplatedescription"
              method: PATCH
              description: "Update Template Description (Cloud-only)"
              inputParameters:
                - name: "project_id"
                  in: path
                  type: string
                  required: true
                  description: "The project id"
                - name: "template_name"
                  in: path
                  type: string
                  required: true
                  description: "The template name (version will be automatically stripped if included)"
                - name: "body"
                  in: body
                  type: object
                  required: true
                  description: "Body"
              outputRawFormat: json
              outputParameters:
                - name: result
                  type: object
                  value: "$."
        - name: "templates-by-id-by-id-versions"
          path: "/v1/templates/{project_id}/{name}/versions"
          operations:
            - name: "templates_listtemplateversions"
              method: GET
              description: "List Template Versions (Cloud-only)"
              inputParameters:
                - name: "project_id"
                  in: path
                  type: string
                  required: true
                  description: "The project id"
                - name: "name"
                  in: path
                  type: string
                  required: true
                  description: "The template name (without version)"
                - name: "offset"
                  in: query
                  type: string
                  required: false
                  description: "offset parameter"
                - name: "limit"
                  in: query
                  type: string
                  required: false
                  description: "limit parameter"
              outputRawFormat: json
              outputParameters:
                - name: result
                  type: object
                  value: "$."
        - name: "templates-by-id-by-id-deployments-by-id-migrate"
          path: "/v1/templates/{project_id}/{template_name}/deployments/{deployment_id}/migrate"
          operations:
            - name: "templates_migratedeployment"
              method: POST
              description: "Migrate Deployment to Template Version (Cloud-only)"
              inputParameters:
                - name: "project_id"
                  in: path
                  type: string
                  required: true
                  description: "The project id"
                - name: "template_name"
                  in: path
                  type: string
                  required: true
                  description: "The template name (without version)"
                - name: "deployment_id"
                  in: path
                  type: string
                  required: true
                  description: "The deployment ID to migrate"
                - name: "body"
                  in: body
                  type: object
                  required: true
                  description: "Body"
              outputRawFormat: json
              outputParameters:
                - name: result
                  type: object
                  value: "$."
        - name: "templates-by-id-rollback"
          path: "/v1/templates/{template_name}/rollback"
          operations:
            - name: "templates_rollbacktemplatenoproject"
              method: POST
              description: "Rollback Template to Previous Version (Cloud-only)"
              inputParameters:
                - name: "template_name"
                  in: path
                  type: string
                  required: true
                  description: "The template name (without version)"
                - name: "body"
                  in: body
                  type: object
                  required: true
                  description: "Body"
              outputRawFormat: json
              outputParameters:
                - name: result
                  type: object
                  value: "$."
        - name: "templates-by-id-by-id-rollback"
          path: "/v1/templates/{project_id}/{template_name}/rollback"
          operations:
            - name: "templates_rollbacktemplate"
              method: POST
              description: "Rollback Template to Previous Version (Cloud-only)"
              inputParameters:
                - name: "project_id"
                  in: path
                  type: string
                  required: true
                  description: "The project id"
                - name: "template_name"
                  in: path
                  type: string
                  required: true
                  description: "The template name (without version)"
                - name: "body"
                  in: body
                  type: object
                  required: true
                  description: "Body"
              outputRawFormat: json
              outputParameters:
                - name: result
                  type: object
                  value: "$."
        - name: "templates-by-id-by-id-agent-file"
          path: "/v1/templates/{project_id}/{template_name}/agent-file"
          operations:
            - name: "templates_updatecurrenttemplatefromagentfile"
              method: PUT
              description: "Update Current Template from Agent File (Cloud-only)"
              inputParameters:
                - name: "project_id"
                  in: path
                  type: string
                  required: true
                  description: "The project id"
                - name: "template_name"
                  in: path
                  type: string
                  required: true
                  description: "The template name (without version)"
                - name: "body"
                  in: body
                  type: object
                  required: true
                  description: "Body"
              outputRawFormat: json
              outputParameters:
                - name: result
                  type: object
                  value: "$."
        - name: "legacy-templates-by-id-migrates"
          path: "/v1/legacy-templates/{templateId}/migrates"
          operations:
            - name: "templates_legacymigration"
              method: POST
              description: "Migrate Template from Legacy Project (Cloud-only)"
              inputParameters:
                - name: "templateId"
                  in: path
                  type: string
                  required: true
                  description: "The template ID"
                - name: "body"
                  in: body
                  type: object
                  required: true
                  description: "Body"
              outputRawFormat: json
              outputParameters:
                - name: result
                  type: object
                  value: "$."

  exposes:
    - type: rest
      namespace: "letta-templates-rest"
      port: 8080
      description: "REST adapter for Letta API — Templates. One Spectral-compliant resource per consumed operation."
      resources:
        - path: "/v1/templates/{project-id}/{template-version}/agents"
          name: "templates-by-id-by-id-agents"
          description: "REST surface for templates-by-id-by-id-agents."
          operations:
            - method: POST
              name: "templates_createagentsfromtemplate"
              description: "Create Agents from Template"
              call: "letta-templates.templates_createagentsfromtemplate"
              with:
                "project_id": "rest.project_id"
                "template_version": "rest.template_version"
                "body": "rest.body"
              outputParameters:
                - type: object
                  mapping: "$."
        - path: "/v1/templates/{template-version}/agents"
          name: "templates-by-id-agents"
          description: "REST surface for templates-by-id-agents."
          operations:
            - method: POST
              name: "templates_createagentsfromtemplatenoproject"
              description: "Create Agents from Template"
              call: "letta-templates.templates_createagentsfromtemplatenoproject"
              with:
                "template_version": "rest.template_version"
                "body": "rest.body"
              outputParameters:
                - type: object
                  mapping: "$."
        - path: "/v1/templates"
          name: "templates"
          description: "REST surface for templates."
          operations:
            - method: GET
              name: "templates_listtemplates"
              description: "List Templates (Cloud-only)"
              call: "letta-templates.templates_listtemplates"
              with:
                "offset": "rest.offset"
                "exact": "rest.exact"
                "limit": "rest.limit"
                "version": "rest.version"
                "template_id": "rest.template_id"
                "name": "rest.name"
                "search": "rest.search"
                "project_slug": "rest.project_slug"
                "project_id": "rest.project_id"
                "sort_by": "rest.sort_by"
              outputParameters:
                - type: object
                  mapping: "$."
            - method: POST
              name: "templates_createtemplatenoproject"
              description: "Create Template (Cloud-only)"
              call: "letta-templates.templates_createtemplatenoproject"
              with:
                "body": "rest.body"
              outputParameters:
                - type: object
                  mapping: "$."
        - path: "/v1/templates/{template-name}/save"
          name: "templates-by-id-save"
          description: "REST surface for templates-by-id-save."
          operations:
            - method: POST
              name: "templates_savetemplateversionnoproject"
              description: "Save Template Version (Cloud-only)"
              call: "letta-templates.templates_savetemplateversionnoproject"
              with:
                "template_name": "rest.template_name"
                "body": "rest.body"
              outputParameters:
                - type: object
                  mapping: "$."
        - path: "/v1/templates/{project-id}/{template-name}"
          name: "templates-by-id-by-id"
          description: "REST surface for templates-by-id-by-id."
          operations:
            - method: POST
              name: "templates_savetemplateversion"
              description: "Save Template Version (Cloud-only)"
              call: "letta-templates.templates_savetemplateversion"
              with:
                "project_id": "rest.project_id"
                "template_name": "rest.template_name"
                "body": "rest.body"
              outputParameters:
                - type: object
                  mapping: "$."
            - method: DELETE
              name: "templates_deletetemplate"
              description: "Delete Template (Cloud-only)"
              call: "letta-templates.templates_deletetemplate"
              with:
                "project_id": "rest.project_id"
                "template_name": "rest.template_name"
                "body": "rest.body"
              outputParameters:
                - type: object
                  mapping: "$."
        - path: "/v1/templates/{project-id}/{template-version}/snapshot"
          name: "templates-by-id-by-id-snapshot"
          description: "REST surface for templates-by-id-by-id-snapshot."
          operations:
            - method: GET
              name: "templates_gettemplatesnapshot"
              description: "Get Template Snapshot (Cloud-only)"
              call: "letta-templates.templates_gettemplatesnapshot"
              with:
                "project_id": "rest.project_id"
                "template_version": "rest.template_version"
              outputParameters:
                - type: object
                  mapping: "$."
            - method: PUT
              name: "templates_setcurrenttemplatefromsnapshot"
              description: "Set Current Template from Snapshot (Cloud-only)"
              call: "letta-templates.templates_setcurrenttemplatefromsnapshot"
              with:
                "project_id": "rest.project_id"
                "template_version": "rest.template_version"
                "body": "rest.body"
              outputParameters:
                - type: object
                  mapping: "$."
        - path: "/v1/templates/{project-id}/{template-version}/fork"
          name: "templates-by-id-by-id-fork"
          description: "REST surface for templates-by-id-by-id-fork."
          operations:
            - method: POST
              name: "templates_forktemplate"
              description: "Fork Template (Cloud-only)"
              call: "letta-templates.templates_forktemplate"
              with:
                "project_id": "rest.project_id"
                "template_version": "rest.template_version"
                "body": "rest.body"
              outputParameters:
                - type: object
                  mapping: "$."
        - path: "/v1/templates/{project-id}"
          name: "templates-by-id"
          description: "REST surface for templates-by-id."
          operations:
            - method: POST
              name: "templates_createtemplate"
              description: "Create Template (Cloud-only)"
              call: "letta-templates.templates_createtemplate"
              with:
                "project_id": "rest.project_id"
                "body": "rest.body"
              outputParameters:
                - type: object
                  mapping: "$."
        - path: "/v1/templates/{template-name}"
          name: "templates-by-id"
          description: "REST surface for templates-by-id."
          operations:
            - method: DELETE
              name: "templates_deletetemplatenoproject"
              description: "Delete Template (Cloud-only)"
              call: "letta-templates.templates_deletetemplatenoproject"
              with:
                "template_name": "rest.template_name"
                "body": "rest.body"
              outputParameters:
                - type: object
                  mapping: "$."
            - method: PATCH
              name: "templates_updatecurrenttemplatefromagentfilenoproject"
              description: "Update Current Template from Agent File (Cloud-only)"
              call: "letta-templates.templates_updatecurrenttemplatefromagentfilenoproject"
              with:
                "template_name": "rest.template_name"
                "body": "rest.body"
              outputParameters:
                - type: object
                  mapping: "$."
        - path: "/v1/templates/{project-id}/{template-name}/name"
          name: "templates-by-id-by-id-name"
          description: "REST surface for templates-by-id-by-id-name."
          operations:
            - method: PATCH
              name: "templates_renametemplate"
              description: "Rename Template (Cloud-only)"
              call: "letta-templates.templates_renametemplate"
              with:
                "project_id": "rest.project_id"
                "template_name": "rest.template_name"
                "body": "rest.body"
              outputParameters:
                - type: object
                  mapping: "$."
        - path: "/v1/templates/{project-id}/{template-name}/description"
          name: "templates-by-id-by-id-description"
          description: "REST surface for templates-by-id-by-id-description."
          operations:
            - method: PATCH
              name: "templates_updatetemplatedescription"
              description: "Update Template Description (Cloud-only)"
              call: "letta-templates.templates_updatetemplatedescription"
              with:
                "project_id": "rest.project_id"
                "template_name": "rest.template_name"
                "body": "rest.body"
              outputParameters:
                - type: object
                  mapping: "$."
        - path: "/v1/templates/{project-id}/{name}/versions"
          name: "templates-by-id-by-id-versions"
          description: "REST surface for templates-by-id-by-id-versions."
          operations:
            - method: GET
              name: "templates_listtemplateversions"
              description: "List Template Versions (Cloud-only)"
              call: "letta-templates.templates_listtemplateversions"
              with:
                "project_id": "rest.project_id"
                "name": "rest.name"
                "offset": "rest.offset"
                "limit": "rest.limit"
              outputParameters:
                - type: object
                  mapping: "$."
        - path: "/v1/templates/{project-id}/{template-name}/deployments/{deployment-id}/migrate"
          name: "templates-by-id-by-id-deployments-by-id-migrate"
          description: "REST surface for templates-by-id-by-id-deployments-by-id-migrate."
          operations:
            - method: POST
              name: "templates_migratedeployment"
              description: "Migrate Deployment to Template Version (Cloud-only)"
              call: "letta-templates.templates_migratedeployment"
              with:
                "project_id": "rest.project_id"
                "template_name": "rest.template_name"
                "deployment_id": "rest.deployment_id"
                "body": "rest.body"
              outputParameters:
                - type: object
                  mapping: "$."
        - path: "/v1/templates/{template-name}/rollback"
          name: "templates-by-id-rollback"
          description: "REST surface for templates-by-id-r

# --- truncated at 32 KB (45 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/letta/refs/heads/main/capabilities/letta-templates.yaml