Get proposal funnel
curl --request GET \
--url https://api.vollna.com/v1/proposals/funnel \
--header 'X-API-TOKEN: <api-key>'import requests
url = "https://api.vollna.com/v1/proposals/funnel"
headers = {"X-API-TOKEN": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-API-TOKEN': '<api-key>'}};
fetch('https://api.vollna.com/v1/proposals/funnel', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.vollna.com/v1/proposals/funnel",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"X-API-TOKEN: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.vollna.com/v1/proposals/funnel"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-API-TOKEN", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.vollna.com/v1/proposals/funnel")
.header("X-API-TOKEN", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.vollna.com/v1/proposals/funnel")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-API-TOKEN"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"data": {
"dateRange": "<string>",
"from": "2023-12-25",
"to": "2023-12-25",
"timezone": "<string>",
"organization": {
"id": 123,
"name": "<string>",
"type": "freelancer"
},
"locked": true,
"reason": "<string>",
"sent": 123,
"viewed": 123,
"replied": 123,
"hired": 123,
"customHires": 123,
"invitations": 123,
"invitationsAccepted": 123,
"viewRate": 123,
"replyRate": 123,
"conversionRate": 123,
"connects": {
"spent": 123,
"returned": 123,
"perProposal": 123,
"perReply": 123,
"costUsd": 123,
"costPerReplyUsd": 123,
"clientAcquisitionCostUsd": 123
},
"boost": {
"boosted": 123,
"regular": 123,
"connectsSpent": 123,
"connectsReturned": 123,
"outbid": 123,
"boostedReplyRate": 123,
"regularReplyRate": 123
},
"note": "<string>"
}
}{
"error": "Validation failed",
"message": "<string>",
"fields": {}
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": "Validation failed",
"message": "<string>",
"fields": {}
}{
"error": "Validation failed",
"message": "<string>",
"fields": {}
}{
"error": "<string>"
}Proposals
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
GET
/
proposals
/
funnel
Get proposal funnel
curl --request GET \
--url https://api.vollna.com/v1/proposals/funnel \
--header 'X-API-TOKEN: <api-key>'import requests
url = "https://api.vollna.com/v1/proposals/funnel"
headers = {"X-API-TOKEN": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-API-TOKEN': '<api-key>'}};
fetch('https://api.vollna.com/v1/proposals/funnel', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.vollna.com/v1/proposals/funnel",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"X-API-TOKEN: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.vollna.com/v1/proposals/funnel"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-API-TOKEN", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.vollna.com/v1/proposals/funnel")
.header("X-API-TOKEN", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.vollna.com/v1/proposals/funnel")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-API-TOKEN"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"data": {
"dateRange": "<string>",
"from": "2023-12-25",
"to": "2023-12-25",
"timezone": "<string>",
"organization": {
"id": 123,
"name": "<string>",
"type": "freelancer"
},
"locked": true,
"reason": "<string>",
"sent": 123,
"viewed": 123,
"replied": 123,
"hired": 123,
"customHires": 123,
"invitations": 123,
"invitationsAccepted": 123,
"viewRate": 123,
"replyRate": 123,
"conversionRate": 123,
"connects": {
"spent": 123,
"returned": 123,
"perProposal": 123,
"perReply": 123,
"costUsd": 123,
"costPerReplyUsd": 123,
"clientAcquisitionCostUsd": 123
},
"boost": {
"boosted": 123,
"regular": 123,
"connectsSpent": 123,
"connectsReturned": 123,
"outbid": 123,
"boostedReplyRate": 123,
"regularReplyRate": 123
},
"note": "<string>"
}
}{
"error": "Validation failed",
"message": "<string>",
"fields": {}
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": "Validation failed",
"message": "<string>",
"fields": {}
}{
"error": "Validation failed",
"message": "<string>",
"fields": {}
}{
"error": "<string>"
}Authorizations
API token for authentication
Query Parameters
Upwork profile id from GET /profiles
Required range:
x >= 1Alias of organizationId
Required range:
x >= 1A 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
Response
Successful operation
Show child attributes
Show child attributes
Was this page helpful?