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

# Favorite Template

> Mark or unmark an template as a favorite for the authenticated account. The endpoint is idempotent - calling it repeatedly with the same `is_favourite` value has no additional effect. The caller must be able to see the template (own it, the template is public, or it has been shared with them).



## OpenAPI

````yaml api-reference/openapi/templates.json PUT /api/agents/templates/{id}/favorite
openapi: 3.1.0
info:
  title: Recoup API - Templates
  description: >-
    API documentation for managing reusable templates on the Recoup platform.
    Templates capture a prompt, description, and tags that can be shared with
    other accounts or kept private.
  license:
    name: MIT
  version: 1.0.0
servers:
  - url: https://api.recoupable.dev
security:
  - apiKeyAuth: []
  - bearerAuth: []
paths:
  /api/agents/templates/{id}/favorite:
    put:
      summary: Toggle favorite on a template
      description: >-
        Mark or unmark an template as a favorite for the authenticated account.
        The endpoint is idempotent - calling it repeatedly with the same
        `is_favourite` value has no additional effect. The caller must be able
        to see the template (own it, the template is public, or it has been
        shared with them).
      parameters:
        - name: id
          in: path
          description: >-
            The unique identifier (UUID) of the template to favorite or
            unfavorite
          required: true
          schema:
            type: string
            format: uuid
      requestBody:
        description: Desired favorite state
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ToggleFavoriteRequest'
      responses:
        '200':
          description: Favorite state updated successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SuccessResponse'
        '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 template is private and has not been shared with the
            authenticated account
          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'
      security:
        - apiKeyAuth: []
        - bearerAuth: []
components:
  schemas:
    ToggleFavoriteRequest:
      type: object
      required:
        - is_favourite
      properties:
        is_favourite:
          type: boolean
          description: Desired favorite state for the authenticated account
    SuccessResponse:
      type: object
      required:
        - status
      properties:
        status:
          type: string
          enum:
            - success
          description: Status of the request
    ErrorResponse:
      type: object
      required:
        - status
        - error
      properties:
        status:
          type: string
          enum:
            - error
          description: Status of the request
        error:
          type: string
          description: Human-readable error message
        missing_fields:
          type: array
          items:
            type: string
          description: >-
            Names of required fields that were missing from the request, when
            applicable
  securitySchemes:
    apiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key
      description: Your Recoup API key. [Learn more](/quickstart#api-keys).
    bearerAuth:
      type: http
      scheme: bearer

````