RecoupGet a Free AuditFree Audit

API REFERENCE

Update Template

On this page
PATCH/api/agents/templates/{id}

Update fields on an existing template owned by the authenticated account. All body fields are optional and only the supplied fields are modified. Providing share_emails replaces the existing share list for the template.

Authentication

x-api-key in header

bearerAuth bearer

Request

cURL
curl --request PATCH \
  --url 'https://api.recoupable.dev/api/agents/templates/YOUR_ID' \
  --header 'x-api-key: YOUR_API_KEY' \
  --header 'Content-Type: application/json' \
  --data '{
  "title": "string",
  "description": "string",
  "prompt": "string",
  "tags": [
    "string"
  ],
  "is_private": true,
  "share_emails": [
    "string"
  ]
}'

Replace the YOUR_ placeholders with your values. Required query parameters are included; optional parameters are listed below.

Parameters

Path parameters

idstringrequired

The unique identifier (UUID) of the template to update

Request body required

Fields to update on the template

application/json

titlestring

Short human-readable title for the template

minLength: 3 · maxLength: 50

descriptionstring

Description of what the template does

minLength: 10 · maxLength: 200

promptstring

The agent prompt body

minLength: 20 · maxLength: 10000

tagsarray<string>

Free-form tags used to categorize the template. Pass an empty array to clear tags.

Item properties for tags

string

is_privateboolean

When true, the template is restricted to the creator and the accounts listed in share_emails

share_emailsarray<string>

Replaces the existing share list for the template. Only applied when the template is (or becomes) private.

Item properties for share_emails

string

Responses

200Template updated successfully

application/json

statusstring · enumrequired

Status of the request

Values: "success"

templateobjectrequired
Properties for template
idstringrequired

Unique identifier of the template

format: uuid

titlestringrequired

Short human-readable title for the template (3-50 characters)

descriptionstringrequired

Description of what the template does (10-200 characters)

promptstringrequired

The agent prompt body (20-10000 characters)

tagsarray<string>required

Free-form tags used to categorize the template. Empty array when there are no tags.

Item properties for tags

string

creatorobject | nullrequired

The account that created the template. May be null when the creator account is unavailable.

Properties for creator
idstringrequired

Unique identifier of the creator account

format: uuid

namestring | nullrequired

Display name of the creator account

imagestring | nullrequired

Profile image URL of the creator account

is_adminbooleanrequired

Whether the creator is a Recoup admin (their account email is on the platform admin allow-list)

is_privatebooleanrequired

Whether the template is restricted to the creator and explicitly shared accounts

is_favouritebooleanrequired

Whether the authenticated account has favorited this template

favorites_countintegerrequired

Total number of accounts that have favorited this template

shared_emailsarray<string>required

Emails the template has been shared with. Only populated for private templates the authenticated account owns; empty for public templates and for private templates shared with the caller.

Item properties for shared_emails

string

created_atstringrequired

ISO 8601 timestamp of when the template was created

format: date-time

updated_atstring | nullrequired

ISO 8601 timestamp of when the template was last updated

format: date-time

400Bad request - validation failed

application/json

statusstring · enumrequired

Status of the request

Values: "error"

errorstringrequired

Human-readable error message

missing_fieldsarray<string>

Names of required fields that were missing from the request, when applicable

Item properties for missing_fields

string

401Unauthorized - missing or invalid credentials

application/json

statusstring · enumrequired

Status of the request

Values: "error"

errorstringrequired

Human-readable error message

missing_fieldsarray<string>

Names of required fields that were missing from the request, when applicable

Item properties for missing_fields

string

403Forbidden - the authenticated account does not own this template

application/json

statusstring · enumrequired

Status of the request

Values: "error"

errorstringrequired

Human-readable error message

missing_fieldsarray<string>

Names of required fields that were missing from the request, when applicable

Item properties for missing_fields

string

404Template not found

application/json

statusstring · enumrequired

Status of the request

Values: "error"

errorstringrequired

Human-readable error message

missing_fieldsarray<string>

Names of required fields that were missing from the request, when applicable

Item properties for missing_fields

string

500Internal server error

application/json

statusstring · enumrequired

Status of the request

Values: "error"

errorstringrequired

Human-readable error message

missing_fieldsarray<string>

Names of required fields that were missing from the request, when applicable

Item properties for missing_fields

string

Full specification

Download the OpenAPI file for complete schemas, constraints, and examples.

Download templates.json
View operation source
json
{
  "summary": "Update a template",
  "description": "Update fields on an existing template owned by the authenticated account. All body fields are optional and only the supplied fields are modified. Providing `share_emails` replaces the existing share list for the template.",
  "security": [
    {
      "apiKeyAuth": []
    },
    {
      "bearerAuth": []
    }
  ],
  "parameters": [
    {
      "name": "id",
      "in": "path",
      "description": "The unique identifier (UUID) of the template to update",
      "required": true,
      "schema": {
        "type": "string",
        "format": "uuid"
      }
    }
  ],
  "requestBody": {
    "description": "Fields to update on the template",
    "required": true,
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/UpdateTemplateRequest"
        }
      }
    }
  },
  "responses": {
    "200": {
      "description": "Template updated successfully",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/TemplateResponse"
          }
        }
      }
    },
    "400": {
      "description": "Bad request - validation failed",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/ErrorResponse"
          }
        }
      }
    },
    "401": {
      "description": "Unauthorized - missing or invalid credentials",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/ErrorResponse"
          }
        }
      }
    },
    "403": {
      "description": "Forbidden - the authenticated account does not own this template",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/ErrorResponse"
          }
        }
      }
    },
    "404": {
      "description": "Template not found",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/ErrorResponse"
          }
        }
      }
    },
    "500": {
      "description": "Internal server error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/ErrorResponse"
          }
        }
      }
    }
  }
}