curl --request GET \
--url https://api.getoneprofile.ai/sender-profiles/{profile_id}/linkedin/actions/length/ \
--header 'X-API-Key: <api-key>'import requests
url = "https://api.getoneprofile.ai/sender-profiles/{profile_id}/linkedin/actions/length/"
headers = {"X-API-Key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-API-Key': '<api-key>'}};
fetch('https://api.getoneprofile.ai/sender-profiles/{profile_id}/linkedin/actions/length/', 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.getoneprofile.ai/sender-profiles/{profile_id}/linkedin/actions/length/",
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-Key: <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.getoneprofile.ai/sender-profiles/{profile_id}/linkedin/actions/length/"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-API-Key", "<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.getoneprofile.ai/sender-profiles/{profile_id}/linkedin/actions/length/")
.header("X-API-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.getoneprofile.ai/sender-profiles/{profile_id}/linkedin/actions/length/")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-API-Key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"count": 123
}{
"detail": "<string>"
}{
"detail": "<string>"
}{
"detail": "<string>"
}{
"detail": "<string>",
"issues": [
{
"input": "<string>",
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}{
"detail": "<string>"
}{
"detail": "<string>"
}{
"detail": "<string>"
}Count a sender's LinkedIn steps
How many LinkedIn steps the sender has that match the filters of the list: the total behind the queue or the history.
curl --request GET \
--url https://api.getoneprofile.ai/sender-profiles/{profile_id}/linkedin/actions/length/ \
--header 'X-API-Key: <api-key>'import requests
url = "https://api.getoneprofile.ai/sender-profiles/{profile_id}/linkedin/actions/length/"
headers = {"X-API-Key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-API-Key': '<api-key>'}};
fetch('https://api.getoneprofile.ai/sender-profiles/{profile_id}/linkedin/actions/length/', 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.getoneprofile.ai/sender-profiles/{profile_id}/linkedin/actions/length/",
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-Key: <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.getoneprofile.ai/sender-profiles/{profile_id}/linkedin/actions/length/"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-API-Key", "<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.getoneprofile.ai/sender-profiles/{profile_id}/linkedin/actions/length/")
.header("X-API-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.getoneprofile.ai/sender-profiles/{profile_id}/linkedin/actions/length/")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-API-Key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"count": 123
}{
"detail": "<string>"
}{
"detail": "<string>"
}{
"detail": "<string>"
}{
"detail": "<string>",
"issues": [
{
"input": "<string>",
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}{
"detail": "<string>"
}{
"detail": "<string>"
}{
"detail": "<string>"
}Authorizations
Path Parameters
Query Parameters
Only steps of this kind. What the browser agent is being asked to do.
The four CHECK_*/READ_* kinds are housekeeping: they read our own
outbound invitations, our own newest connections and our own conversations to
detect what the contact did, so they are free and deliberately excluded from
the priced kinds below.
CHECK_CONNECTIONS reads the first batch of the sender's connections list,
newest first: a person found there has accepted, whenever the invitation
went out. It is how an acceptance is noticed at all once an invitation has
fallen out of the ten rows the sent list shows a background tab.
CHECK_INBOX scans the conversation list for threads with new inbound
activity; READ_CONVERSATION opens one of them and reads it in full. The
split keeps LinkedIn activity proportional to real replies: the cheap scan
runs on every sweep, the expensive read only where the scan saw a change.
LIKE_LATEST_POST targets the contact's most recent post at the moment
the browser runs it. A contact with no posts is not a failure: the driver
reports the action SKIPPED, and the sequence advances either way.
Every profile-targeted outcome carries the facts the browser read off the profile, including the three-state Premium "Open Profile" reading; see the section comment above the outcome models.
profile_view, connection_request, send_message, inmail, withdraw_connection_request, follow_contact, like_latest_post, check_sent_invitations, check_connections, check_inbox, read_conversation Only steps stored in this status. With phase too, a step must match both.
Where one queued action stands.
Governor-deferral is deliberately NOT a status: an action whose kind has hit
its daily cap stays QUEUED and is simply not handed out, with the reason
travelling on the hand-out response instead. A DEFERRED row would make
the queue lie about what is still waiting to happen.
SKIPPED is "not applicable" (no LinkedIn URL, already connected);
REJECTED is "a human refused it"; FAILED is "we tried and could not".
RESUMING is a step put back in line after an attempt that may have
acted on LinkedIn (its browser was granted the press, or lost track of the
step): it is never "queued", so no path that assumes nothing happened yet
(moving it to another sender, a plain copy, "did not run") ever reads it as
such, and it is handed only to a browser that checks LinkedIn before acting.
queued, resuming, claimed, succeeded, failed, rejected, skipped Only steps in these phases, repeating the parameter for several. queued, resuming and claimed are the steps not over yet (the queue); settled is the steps that ended (the history). Every phase when left out.
4Where a step stands in its life; how it ended is its request's outcome.
QUEUED waits in its sender's line. RESUMING was put back after an
attempt that may have acted on LinkedIn, and goes only to a browser that
looks first. CLAIMED is in a browser now. SETTLED is over, and its
request carries the outcome.
queued, resuming, claimed, settled True for only the steps a paused sequence or paused contact holds out of the line, false for only the ones released. Both when left out.
Response
Successful Response
How many of the sender's LinkedIn steps match the filters.
Was this page helpful?