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

# List interview templates

> Returns all interview templates configured for the workspace. Interview templates are reusable agent configurations cloned from a blueprint posting.



## OpenAPI

````yaml https://api.heymilo.ai/openapi.json get /api/v2/interview-templates
openapi: 3.1.0
info:
  title: HeyMilo Public API
  description: >-
    External developer-facing API for HeyMilo. Create interviewers with agentic
    workflows, ingest candidates, retrieve interview results, and manage
    workspace resources.
  version: 2.0.0
servers:
  - url: https://api.heymilo.ai
    description: Production
security:
  - ApiKeyAuth: []
tags:
  - name: Interviewers
    description: >-
      Create, read, update, and manage interviewers. An interviewer (posting)
      combines job details with an AI agent configuration and agentic workflow.
  - name: Candidates
    description: >-
      Ingest candidates into an interviewer's workflow (sync or async, single or
      bulk) and list candidates with their progress.
  - name: Interviews
    description: >-
      Retrieve full interview results (scorecard, transcript, resume evaluation)
      and manage per-interview metadata.
  - name: Webhooks
    description: >-
      Register, list, and manage webhook endpoints that receive real-time event
      notifications.
  - name: Voices
    description: Browse the workspace voice registry for AI interviewer voices.
  - name: Phone Numbers
    description: List provisioned phone numbers for SMS and voice agents.
  - name: Sender Emails
    description: Manage sender email addresses used for candidate communications.
  - name: Email Templates
    description: View email templates configured for candidate outreach.
  - name: Email Template Groups
    description: View grouped email template configurations.
  - name: Design Templates
    description: View design templates that control the candidate interview UI.
  - name: Design Template Groups
    description: View grouped design template configurations.
  - name: Interview Templates
    description: >-
      View interview templates, reusable agent configurations cloned from a
      blueprint posting (workflow, questions, criteria, agent settings).
  - name: Domains
    description: Manage custom domains for white-labelled interview URLs.
  - name: Questions
    description: >-
      Create, read, update, delete, and reorder questions and criteria for an
      interviewer's workflow. Covers all modalities: voice, sms, form,
      resume_eligibility, resume_scoring, and voice_tags.
  - name: Workspaces
    description: >-
      List the workspaces accessible to the authenticated caller. API-key
      callers receive a single entry; OAuth callers receive every workspace they
      are a member of.
paths:
  /api/v2/interview-templates:
    get:
      tags:
        - Interview Templates
      summary: List interview templates
      description: >-
        Returns all interview templates configured for the workspace. Interview
        templates are reusable agent configurations cloned from a blueprint
        posting.
      operationId: listInterviewTemplates
      parameters:
        - name: limit
          in: query
          required: false
          schema:
            type: integer
            maximum: 100
            minimum: 1
            default: 20
            title: Limit
        - name: starting_after
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: 'null'
            title: Starting After
        - name: search
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: 'null'
            description: Case-insensitive substring filter applied to the template name.
            title: Search
          description: Case-insensitive substring filter applied to the template name.
        - name: X-API-KEY
          in: header
          required: false
          schema:
            anyOf:
              - type: string
              - type: 'null'
            title: X-Api-Key
        - name: Authorization
          in: header
          required: false
          schema:
            anyOf:
              - type: string
              - type: 'null'
            title: Authorization
        - name: X-Workspace-Id
          in: header
          required: false
          schema:
            anyOf:
              - type: string
              - type: 'null'
            title: X-Workspace-Id
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListResponse_InterviewTemplateResponse_'
        '401':
          description: Invalid or missing API key.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIErrorResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
        '429':
          description: Rate limit exceeded.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIErrorResponse'
components:
  schemas:
    ListResponse_InterviewTemplateResponse_:
      properties:
        data:
          items:
            $ref: '#/components/schemas/InterviewTemplateResponse'
          type: array
          title: Data
        pagination:
          $ref: '#/components/schemas/PaginationMeta'
      type: object
      required:
        - data
        - pagination
      title: ListResponse[InterviewTemplateResponse]
    APIErrorResponse:
      properties:
        error:
          $ref: '#/components/schemas/APIError'
      type: object
      required:
        - error
      title: APIErrorResponse
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    InterviewTemplateResponse:
      properties:
        object:
          type: string
          const: interview_template
          title: Object
          description: Object type identifier.
          default: interview_template
        id:
          type: string
          title: Id
          description: Unique interview template identifier.
          examples:
            - IT_abc123
        template_code:
          type: string
          title: Template Code
          description: >-
            Human-readable template code used for ATS integrations. Alphanumeric
            and dashes only, max 32 characters, unique per workspace.
          examples:
            - senior-swe-template
        name:
          type: string
          title: Name
          description: Human-readable template name.
          examples:
            - Senior Software Engineer Template
        description:
          anyOf:
            - type: string
            - type: 'null'
          title: Description
          description: Optional description of the template.
          examples:
            - Standard 3-stage interview for senior backend roles.
        posting_id:
          type: string
          title: Posting Id
          description: >-
            ID of the blueprint posting whose workflow, questions, and agent
            configuration this template captures.
          examples:
            - posting_xyz789
        is_default:
          type: boolean
          title: Is Default
          description: Whether this template is the workspace default.
          default: false
        created_at:
          type: number
          title: Created At
          description: Unix timestamp when the template was created.
          examples:
            - 1739612400
        updated_at:
          type: number
          title: Updated At
          description: Unix timestamp when the template was last updated.
          examples:
            - 1739617200
      type: object
      required:
        - id
        - template_code
        - name
        - posting_id
        - created_at
        - updated_at
      title: InterviewTemplateResponse
      description: |-
        A reusable interview agent configuration.

        Interview templates capture a blueprint posting's full agentic
        workflow (questions, criteria, agent settings) so it can be cloned
        onto new postings or used as the seed for new agents. Each template
        references its blueprint posting via ``posting_id``.
    PaginationMeta:
      properties:
        has_more:
          type: boolean
          title: Has More
          description: Whether more results exist beyond this page
        total_count:
          anyOf:
            - type: integer
            - type: 'null'
          title: Total Count
          description: Total number of results (if available)
        url:
          anyOf:
            - type: string
            - type: 'null'
          title: Url
          description: URL of this resource
      type: object
      required:
        - has_more
      title: PaginationMeta
    APIError:
      properties:
        type:
          type: string
          title: Type
          description: Error category
          examples:
            - invalid_request_error
        code:
          type: string
          title: Code
          description: Machine-readable error code
          examples:
            - validation_error
        message:
          type: string
          title: Message
          description: Human-readable summary
          examples:
            - The request body failed validation
        param:
          anyOf:
            - type: string
            - type: 'null'
          title: Param
          description: Top-level parameter that caused the error
        doc_url:
          anyOf:
            - type: string
            - type: 'null'
          title: Doc Url
          description: Link to relevant documentation
        errors:
          items:
            $ref: '#/components/schemas/APIErrorDetail'
          type: array
          title: Errors
          description: Detailed per-field validation errors
      type: object
      required:
        - type
        - code
        - message
      title: APIError
    ValidationError:
      properties:
        loc:
          items:
            anyOf:
              - type: string
              - type: integer
          type: array
          title: Location
        msg:
          type: string
          title: Message
        type:
          type: string
          title: Error Type
      type: object
      required:
        - loc
        - msg
        - type
      title: ValidationError
    APIErrorDetail:
      properties:
        code:
          type: string
          title: Code
          description: Machine-readable error code
          examples:
            - invalid_param
        message:
          type: string
          title: Message
          description: Human-readable explanation
          examples:
            - title must be between 3 and 200 characters
        param:
          anyOf:
            - type: string
            - type: 'null'
          title: Param
          description: Parameter that caused the error
          examples:
            - title
      type: object
      required:
        - code
        - message
      title: APIErrorDetail
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: X-API-KEY
      description: API key for authentication. Pass your key in the X-API-KEY header.

````