curl --request POST \
--url https://api.getoneprofile.ai/linkedin/agent/actions/{action_id}/attempts/ \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <api-key>' \
--data '
{
"claimed_at": "2023-11-07T05:31:56Z",
"next_run_id": "<string>",
"stopped_run_id": "<string>",
"duration_ms": 1,
"site": "<string>"
}
'import requests
url = "https://api.getoneprofile.ai/linkedin/agent/actions/{action_id}/attempts/"
payload = {
"claimed_at": "2023-11-07T05:31:56Z",
"next_run_id": "<string>",
"stopped_run_id": "<string>",
"duration_ms": 1,
"site": "<string>"
}
headers = {
"X-API-Key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'X-API-Key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
claimed_at: '2023-11-07T05:31:56Z',
next_run_id: '<string>',
stopped_run_id: '<string>',
duration_ms: 1,
site: '<string>'
})
};
fetch('https://api.getoneprofile.ai/linkedin/agent/actions/{action_id}/attempts/', 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/actions/{action_id}/attempts/",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'claimed_at' => '2023-11-07T05:31:56Z',
'next_run_id' => '<string>',
'stopped_run_id' => '<string>',
'duration_ms' => 1,
'site' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"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"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.getoneprofile.ai/linkedin/agent/actions/{action_id}/attempts/"
payload := strings.NewReader("{\n \"claimed_at\": \"2023-11-07T05:31:56Z\",\n \"next_run_id\": \"<string>\",\n \"stopped_run_id\": \"<string>\",\n \"duration_ms\": 1,\n \"site\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-API-Key", "<api-key>")
req.Header.Add("Content-Type", "application/json")
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/actions/{action_id}/attempts/")
.header("X-API-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"claimed_at\": \"2023-11-07T05:31:56Z\",\n \"next_run_id\": \"<string>\",\n \"stopped_run_id\": \"<string>\",\n \"duration_ms\": 1,\n \"site\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.getoneprofile.ai/linkedin/agent/actions/{action_id}/attempts/")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-API-Key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"claimed_at\": \"2023-11-07T05:31:56Z\",\n \"next_run_id\": \"<string>\",\n \"stopped_run_id\": \"<string>\",\n \"duration_ms\": 1,\n \"site\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"attempt": 123,
"attempts_left": 123,
"claim_expires_at": "2023-11-07T05:31:56Z",
"next_run_id": "<string>",
"server_now": "2023-11-07T05:31:56Z",
"verdict": "retry",
"verification": {
"commit_granted_at": "2023-11-07T05:31:56Z",
"mode": "verify_then_act"
}
}{
"detail": "<string>"
}{
"detail": "<string>"
}{
"detail": "<string>"
}{
"detail": "<string>",
"issues": [
{
"input": "<string>",
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}{
"detail": "<string>"
}{
"detail": "<string>"
}{
"detail": "<string>"
}Report a run of a step that was cut off, and ask what to do with the step
Sent instead of a result by a build that reports attempts (attempts:v1) when a run of the step it holds was cut off without an error from LinkedIn: a person closed the working tab, the extension restarted, a page never loaded, the tab froze, the identity page never answered, or the server could not be asked. The server records the attempt, counts it against the step unless a person closed the tab or the server could not be asked, and answers with what to do: retry (run it again as next_run_id), look_first (run it again, looking on LinkedIn before any press), stop (it was cut off too often and is settled failed; post nothing), lost (the claim is not this browser’s any more; post nothing) or not_retryable (not an interruption; post the result). When the step goes on, the press fence moves to the next run and the claim’s lease is extended. The same report again (the same stopped run) gets the same answer and changes nothing.
curl --request POST \
--url https://api.getoneprofile.ai/linkedin/agent/actions/{action_id}/attempts/ \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <api-key>' \
--data '
{
"claimed_at": "2023-11-07T05:31:56Z",
"next_run_id": "<string>",
"stopped_run_id": "<string>",
"duration_ms": 1,
"site": "<string>"
}
'import requests
url = "https://api.getoneprofile.ai/linkedin/agent/actions/{action_id}/attempts/"
payload = {
"claimed_at": "2023-11-07T05:31:56Z",
"next_run_id": "<string>",
"stopped_run_id": "<string>",
"duration_ms": 1,
"site": "<string>"
}
headers = {
"X-API-Key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'X-API-Key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
claimed_at: '2023-11-07T05:31:56Z',
next_run_id: '<string>',
stopped_run_id: '<string>',
duration_ms: 1,
site: '<string>'
})
};
fetch('https://api.getoneprofile.ai/linkedin/agent/actions/{action_id}/attempts/', 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/actions/{action_id}/attempts/",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'claimed_at' => '2023-11-07T05:31:56Z',
'next_run_id' => '<string>',
'stopped_run_id' => '<string>',
'duration_ms' => 1,
'site' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"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"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.getoneprofile.ai/linkedin/agent/actions/{action_id}/attempts/"
payload := strings.NewReader("{\n \"claimed_at\": \"2023-11-07T05:31:56Z\",\n \"next_run_id\": \"<string>\",\n \"stopped_run_id\": \"<string>\",\n \"duration_ms\": 1,\n \"site\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-API-Key", "<api-key>")
req.Header.Add("Content-Type", "application/json")
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/actions/{action_id}/attempts/")
.header("X-API-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"claimed_at\": \"2023-11-07T05:31:56Z\",\n \"next_run_id\": \"<string>\",\n \"stopped_run_id\": \"<string>\",\n \"duration_ms\": 1,\n \"site\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.getoneprofile.ai/linkedin/agent/actions/{action_id}/attempts/")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-API-Key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"claimed_at\": \"2023-11-07T05:31:56Z\",\n \"next_run_id\": \"<string>\",\n \"stopped_run_id\": \"<string>\",\n \"duration_ms\": 1,\n \"site\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"attempt": 123,
"attempts_left": 123,
"claim_expires_at": "2023-11-07T05:31:56Z",
"next_run_id": "<string>",
"server_now": "2023-11-07T05:31:56Z",
"verdict": "retry",
"verification": {
"commit_granted_at": "2023-11-07T05:31:56Z",
"mode": "verify_then_act"
}
}{
"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
Body
A run of the held step cut off without an error from LinkedIn, reported instead of a result.
The same report again (the same stopped_run_id) gets the same answer and
changes nothing, so a report that got no answer is sent again with the same
ids until it does.
Why the run stopped: person_closed (a person closed the working tab), worker_restarted, page_not_loaded, tab_frozen, identity_no_answer, or outage (the server could not be asked). Every cause but person_closed and outage counts against the step.
person_closed, worker_restarted, page_not_loaded, tab_frozen, identity_no_answer, outage The step's claim, exactly as the claim handed it out.
The run the step goes on in, named by this browser before it reports.
8 - 64^[A-Za-z0-9_-]+$The run that stopped: the one the press fence may name.
8 - 64^[A-Za-z0-9_-]+$How long the stopped run lasted.
x >= 0Where the run stopped, a failure_sites.json name; null for an outage.
^[a-z][a-z0-9_]{0,63}$Response
Successful Response
What the browser does with a step after one of its runs was cut off.
Which attempt this was.
How many counted attempts remain before the step stops.
The claim's lease, extended, read against server_now; null unless it goes on.
The run that may press now; null unless the step goes on.
The server's clock when it answered.
retry: run it again as next_run_id. look_first: run it again, looking on LinkedIn before any press (verification). stop: it was cut off too often and is settled failed; post nothing. lost: the claim is not this browser's any more; post nothing. not_retryable: the exit is not an interruption; post the result.
retry, look_first, stop, lost, not_retryable For look_first: what to look for before acting; null otherwise.
Show child attributes
Show child attributes
Was this page helpful?