> ## 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 proposal funnel

> Returns the proposals dashboard funnel of one Upwork profile: sent, viewed, replied and hired, the rates, connects spent and returned, cost per reply, and boosted against regular proposals. When the plan keeps the profile's analytics locked, locked is true and reason says why



## OpenAPI

````yaml get /proposals/funnel
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:
  /proposals/funnel:
    get:
      tags:
        - Proposals
      summary: Get proposal funnel
      description: >-
        Returns the proposals dashboard funnel of one Upwork profile: sent,
        viewed, replied and hired, the rates, connects spent and returned, cost
        per reply, and boosted against regular proposals. When the plan keeps
        the profile's analytics locked, locked is true and reason says why
      parameters:
        - name: organizationId
          in: query
          required: false
          description: Upwork profile id from GET /profiles
          schema:
            type: integer
            minimum: 1
        - name: profileId
          in: query
          required: false
          description: Alias of organizationId
          schema:
            type: integer
            minimum: 1
        - 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
      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
                      organization:
                        type: object
                        properties:
                          id:
                            type: integer
                          name:
                            type: string
                          type:
                            type: string
                            enum:
                              - freelancer
                              - agency
                      locked:
                        type: boolean
                      reason:
                        type: string
                        description: Only when locked
                      sent:
                        type: integer
                      viewed:
                        type: integer
                      replied:
                        type: integer
                      hired:
                        type: integer
                      customHires:
                        type: integer
                      invitations:
                        type: integer
                      invitationsAccepted:
                        type: integer
                      viewRate:
                        type: number
                      replyRate:
                        type: number
                      conversionRate:
                        type: number
                      connects:
                        type: object
                        properties:
                          spent:
                            type: integer
                          returned:
                            type: integer
                          perProposal:
                            type: number
                          perReply:
                            type: number
                          costUsd:
                            type: number
                          costPerReplyUsd:
                            type: number
                          clientAcquisitionCostUsd:
                            type: number
                      boost:
                        type: object
                        properties:
                          boosted:
                            type: integer
                          regular:
                            type: integer
                          connectsSpent:
                            type: integer
                          connectsReturned:
                            type: integer
                          outbid:
                            type: integer
                          boostedReplyRate:
                            type: number
                          regularReplyRate:
                            type: number
                      note:
                        type: string
        '400':
          description: organizationId is missing, or dateRange is not a range
          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:
    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.