Skip to main content
POST
Set the sender's approval setting from the extension

Authorizations

X-API-Key
string
header
required

Body

application/json
lease_nonce
string | null

This browser's lease identity. When given, lease_granted in the answer says whether this browser holds the lease; when absent it is always true.

Required string length: 8 - 64
run_mode

Whether a person approves a sender's LinkedIn steps before they run, or they run on their own.

The sender's own LinkedIn setting, kept on the sender beside their email modes so the approval queue reads one home for both. The absence of one (SenderProfileDTO.linkedin_approval_mode is None) reads as MANUAL: nothing runs on somebody's LinkedIn unattended until they have said so. The approval queue still tells "never set" apart from "chose manual", which is the level its settings surfaces name.

Available options:
manual,
auto

Response

Successful Response

The authoritative run state, returned on every heartbeat.

account_mismatch is the hard stop: the browser is signed in as somebody other than the account we are bound to, and acting would send this customer's outreach from the wrong identity.

run_mode is the sender's LinkedIn approval setting in force (manual for a sender who never set one): the side panel shows it and can change it. Approval happens on Oneprofile's Tasks page before a step is queued, so a step handed to the browser runs whichever it says.

queued_count counts steps waiting for a browser, not one running in one.

account_mismatch
boolean
required
checkpoint
boolean
required
config_version
integer
required

The version of the selector and pacing config this server serves. A browser running any other version, older or newer, fetches the config again.

lease_granted
boolean
required
poll_after_seconds
integer
required

How long to wait before the next check-in: the account's own time between steps, never more, and never so long the browser stops reading as active. At most 15 seconds while work is about to run (the time between steps is running out, a step may start now, or one is running with more behind it), so a missed wake-up costs seconds rather than a whole interval.

queued_count
integer
required
run_mode
enum<string>
required

Whether a person approves a sender's LinkedIn steps before they run, or they run on their own.

The sender's own LinkedIn setting, kept on the sender beside their email modes so the approval queue reads one home for both. The absence of one (SenderProfileDTO.linkedin_approval_mode is None) reads as MANUAL: nothing runs on somebody's LinkedIn unattended until they have said so. The approval queue still tells "never set" apart from "chose manual", which is the level its settings surfaces name.

Available options:
manual,
auto
approvals_waiting
integer
default:0

How many of this sender's LinkedIn steps wait for a person on Oneprofile's Tasks page, less those a paused sequence or paused contact holds; the side panel offers Approve tasks while any do.

attempts_enabled
boolean
default:false

Whether a build that reports attempts (attempts:v1) reports a run cut off without an error from LinkedIn to /actions/{id}/attempts/ and runs the step again only on the answer. The same switch as resume_enabled.

lease_holder_label
string | null

When lease_granted is false, what the browser holding the lease calls itself (for example 'Chrome on macOS'); null when that is not known.

resume_enabled
boolean
default:false

Whether a build that resumes steps (resume:v1) may resume one that stopped without an error from LinkedIn. Off, a stopped step fails for a person to retry, as it did before; the grant and the saved results stay on either way.

running_claim
enum<string> | null

For a check-in that named a running step: renewed while that claim is still this browser's, lost once it is not (settled, rejected, or lapsed while the browser was gone), and the browser then stops the step before it changes anything more. Null for a check-in that named none.

Available options:
renewed,
lost
unpaced_waiting
boolean
default:false

A step that waits for no gap between steps (one the Oneprofile team fired to test the sender) could be handed out now: ask for it alone (unmetered_only) without waiting out this browser's own gap.

usage
LinkedInKindUsageReadSchema · object[]
usage_resets_at
string<date-time> | null

When today's counts in usage start over: 00:00 in the sender's timezone. Older servers leave it out, and a client then reads the next UTC midnight.

wait
LinkedInWaitReadSchema · object | null

What the next step is waiting on, and until when, as this browser sees it (another browser holding the lease reads as lease_held_elsewhere); null while nothing is queued.