curl --request POST \
--url https://api.getoneprofile.ai/linkedin/agent/queue/ \
--header 'X-API-Key: <api-key>'import requests
url = "https://api.getoneprofile.ai/linkedin/agent/queue/"
headers = {"X-API-Key": "<api-key>"}
response = requests.post(url, headers=headers)
print(response.text)const options = {method: 'POST', headers: {'X-API-Key': '<api-key>'}};
fetch('https://api.getoneprofile.ai/linkedin/agent/queue/', 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/linkedin/agent/queue/",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
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/linkedin/agent/queue/"
req, _ := http.NewRequest("POST", 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.post("https://api.getoneprofile.ai/linkedin/agent/queue/")
.header("X-API-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.getoneprofile.ai/linkedin/agent/queue/")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-API-Key"] = '<api-key>'
response = http.request(request)
puts response.read_body[
{
"account_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"claimed_at": "2023-11-07T05:31:56Z",
"duration_ms": 123,
"error_code": "<string>",
"error_message": "<string>",
"expires_at": "2023-11-07T05:31:56Z",
"finished_at": "2023-11-07T05:31:56Z",
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"kind": "profile_view",
"outcome": {},
"params": {},
"priority": 123,
"queued_at": "2023-11-07T05:31:56Z",
"source_enrolment_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"source_step_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"status": "queued",
"approved_at": "2023-11-07T05:31:56Z",
"approved_by": "web"
}
]{
"detail": "<string>"
}{
"detail": "<string>"
}{
"detail": "<string>",
"issues": [
{
"input": "<string>",
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}{
"detail": "<string>"
}{
"detail": "<string>"
}{
"detail": "<string>"
}List the queue, for the side panel
The same rows, in the same order, the dashboard’s queue shows — so the panel renders the identical list, approvals included.
curl --request POST \
--url https://api.getoneprofile.ai/linkedin/agent/queue/ \
--header 'X-API-Key: <api-key>'import requests
url = "https://api.getoneprofile.ai/linkedin/agent/queue/"
headers = {"X-API-Key": "<api-key>"}
response = requests.post(url, headers=headers)
print(response.text)const options = {method: 'POST', headers: {'X-API-Key': '<api-key>'}};
fetch('https://api.getoneprofile.ai/linkedin/agent/queue/', 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/linkedin/agent/queue/",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
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/linkedin/agent/queue/"
req, _ := http.NewRequest("POST", 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.post("https://api.getoneprofile.ai/linkedin/agent/queue/")
.header("X-API-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.getoneprofile.ai/linkedin/agent/queue/")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-API-Key"] = '<api-key>'
response = http.request(request)
puts response.read_body[
{
"account_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"claimed_at": "2023-11-07T05:31:56Z",
"duration_ms": 123,
"error_code": "<string>",
"error_message": "<string>",
"expires_at": "2023-11-07T05:31:56Z",
"finished_at": "2023-11-07T05:31:56Z",
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"kind": "profile_view",
"outcome": {},
"params": {},
"priority": 123,
"queued_at": "2023-11-07T05:31:56Z",
"source_enrolment_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"source_step_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"status": "queued",
"approved_at": "2023-11-07T05:31:56Z",
"approved_by": "web"
}
]{
"detail": "<string>"
}{
"detail": "<string>"
}{
"detail": "<string>",
"issues": [
{
"input": "<string>",
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}{
"detail": "<string>"
}{
"detail": "<string>"
}{
"detail": "<string>"
}Authorizations
Response
Successful Response
What the browser agent is being asked to do.
The three CHECK_*/READ_* kinds are housekeeping — they read our own
outbound invitations and our own conversations to detect what the contact did
— so they are free and deliberately excluded from the priced kinds below.
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.
A PROFILE_VIEW outcome MAY additionally carry open_profile: bool —
whether the member's Premium "Open Profile" toggle is on, read off the
page when the driver can see it. The open-profile condition resolves from
that observation and never from a guess, so a driver that cannot tell
simply omits the key.
profile_view, connection_request, send_message, inmail, withdraw_connection_request, follow_contact, like_latest_post, check_sent_invitations, check_inbox, read_conversation 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".
queued, claimed, succeeded, failed, rejected, skipped Which surface approved a manual step; the two are peers, never a hierarchy.
web, extension Was this page helpful?