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

# Get template report

> Returns how one template performs: counts and rates per A/B variant, whether each variant has enough proposals to judge, its current instructions and cover letters, and the newest sent letters per outcome



## OpenAPI

````yaml get /proposal-templates/{id}/report
openapi: 3.0.4
info:
  title: Vollna API
  description: API for managing Upwork profiles, proposals, results, and filters
  version: 1.0.0
servers:
  - url: https://api.vollna.com/v1
security: []
tags:
  - name: Profiles
    description: Manage Upwork profiles
  - name: Proposals
    description: Access and manage Upwork proposals
  - name: Results
    description: View monitoring results and projects
  - name: Filters
    description: Manage monitoring filters
  - name: Auto Bidding
    description: Manage auto bidding jobs and setups
  - name: Account
    description: The token team's account, plan and meters
  - name: Invitations
    description: Upwork invitations
  - name: Projects
    description: Upwork jobs and their competition
  - name: AI Qualifier
    description: A filter's AI qualifier and its verdicts
  - name: Market Insights
    description: Upwork market analytics and saved searches
  - name: Proposal Templates
    description: Proposal templates and their results
paths:
  /proposal-templates/{id}/report:
    get:
      tags:
        - Proposal Templates
      summary: Get template report
      description: >-
        Returns how one template performs: counts and rates per A/B variant,
        whether each variant has enough proposals to judge, its current
        instructions and cover letters, and the newest sent letters per outcome
      parameters:
        - name: id
          in: path
          required: true
          description: Template ID
          schema:
            type: integer
        - name: dateRange
          in: query
          required: false
          description: >-
            A preset: today, yesterday, last_7_days, last_week, last_4_weeks,
            last_30_days, last_month, last_3_months, last_90_days,
            last_12_months, month_to_date, quarter_to_date, year_to_date or
            all_time. Or a custom range as YYYY-MM-DD_YYYY-MM-DD. Read in the
            team owner's time zone
          schema:
            type: string
            default: last_30_days
        - name: samplesPerBucket
          in: query
          required: false
          description: Sample letters per outcome
          schema:
            type: integer
            minimum: 0
            maximum: 10
            default: 5
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      dateRange:
                        type: string
                      from:
                        type: string
                        format: date
                      to:
                        type: string
                        format: date
                      timezone:
                        type: string
                      template:
                        type: object
                        properties:
                          id:
                            type: integer
                          name:
                            type: string
                          abVariants:
                            type: boolean
                          instructions:
                            type: string
                            nullable: true
                          coverLetters:
                            type: object
                            properties:
                              variant_a:
                                type: string
                                nullable: true
                              variant_b:
                                type: string
                                nullable: true
                      totals:
                        $ref: '#/components/schemas/TemplateMetrics'
                      variants:
                        type: array
                        items:
                          $ref: '#/components/schemas/TemplateVariantMetrics'
                      sufficient:
                        type: boolean
                        description: Each variant has at least 30 proposals in the range
                      sufficientRule:
                        type: string
                      samples:
                        type: object
                        properties:
                          replied:
                            type: array
                            items:
                              type: object
                              properties:
                                proposalId:
                                  type: integer
                                submittedAt:
                                  type: string
                                  format: date-time
                                  nullable: true
                                variant:
                                  type: string
                                  enum:
                                    - A
                                    - B
                                job:
                                  type: object
                                  properties:
                                    title:
                                      type: string
                                      nullable: true
                                    url:
                                      type: string
                                      nullable: true
                                connects:
                                  type: integer
                                  nullable: true
                                boost:
                                  type: integer
                                  nullable: true
                                letter:
                                  type: string
                                  description: Cut at 2,000 characters
                                  nullable: true
                          viewedNoReply:
                            type: array
                            items:
                              type: object
                              properties:
                                proposalId:
                                  type: integer
                                submittedAt:
                                  type: string
                                  format: date-time
                                  nullable: true
                                variant:
                                  type: string
                                  enum:
                                    - A
                                    - B
                                job:
                                  type: object
                                  properties:
                                    title:
                                      type: string
                                      nullable: true
                                    url:
                                      type: string
                                      nullable: true
                                connects:
                                  type: integer
                                  nullable: true
                                boost:
                                  type: integer
                                  nullable: true
                                letter:
                                  type: string
                                  description: Cut at 2,000 characters
                                  nullable: true
                          notViewed:
                            type: array
                            items:
                              type: object
                              properties:
                                proposalId:
                                  type: integer
                                submittedAt:
                                  type: string
                                  format: date-time
                                  nullable: true
                                variant:
                                  type: string
                                  enum:
                                    - A
                                    - B
                                job:
                                  type: object
                                  properties:
                                    title:
                                      type: string
                                      nullable: true
                                    url:
                                      type: string
                                      nullable: true
                                connects:
                                  type: integer
                                  nullable: true
                                boost:
                                  type: integer
                                  nullable: true
                                letter:
                                  type: string
                                  description: Cut at 2,000 characters
                                  nullable: true
        '400':
          description: >-
            dateRange or samplesPerBucket is not valid. fields names the
            parameter
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServiceError'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '402':
          $ref: '#/components/responses/PaymentRequired'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/TooManyRequests'
      security:
        - apiToken: []
components:
  schemas:
    TemplateMetrics:
      type: object
      properties:
        sent:
          type: integer
        views:
          type: integer
        replies:
          type: integer
        hires:
          type: integer
        viewRate:
          type: number
          description: Percent
        replyRate:
          type: number
          description: Percent
        conversionRate:
          type: number
          description: Replies per view, percent
        costPerView:
          type: number
          description: USD, connects at $0.15 net of refunds
        costPerReply:
          type: number
          description: USD, connects at $0.15 net of refunds
    TemplateVariantMetrics:
      allOf:
        - type: object
          properties:
            name:
              type: string
              enum:
                - Variant A
                - Variant B
        - $ref: '#/components/schemas/TemplateMetrics'
    ServiceError:
      type: object
      properties:
        error:
          type: string
          description: Short error title
          example: Validation failed
        message:
          type: string
          description: What went wrong and what to send instead, written for the user
        fields:
          type: object
          description: >-
            Per-field messages keyed by dot path, when several fields fail at
            once
          additionalProperties:
            type: string
    Error:
      type: object
      properties:
        error:
          type: string
  responses:
    Unauthorized:
      description: Missing or unknown API token
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    PaymentRequired:
      description: The team's subscription is not active
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    Forbidden:
      description: >-
        The plan has no API access, or the token team may not do this. message
        says why
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ServiceError'
    NotFound:
      description: Not found in the token's team
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ServiceError'
    TooManyRequests:
      description: More than 30 requests a minute. See Rate Limiting
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  securitySchemes:
    apiToken:
      type: apiKey
      name: X-API-TOKEN
      in: header
      description: API token for authentication

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.