senders

List senders

get/sender-profiles/

Request

  • Base URL: https://api.getoneprofile.ai (the document declares no server; this is the origin it was published from)
  • URL: https://api.getoneprofile.ai/sender-profiles/
  • Auth: one of:
    • API key in header X-API-Key
    • HTTP bearer

Query parameters

searchstring nullable

Response

Successful Response

booking_urlstring nullable required

The link people use to book a meeting with this sender, such as a Calendly or Cal.com page. It is what the {{Sender booking link}} variable is replaced with. Null when none is set.

created_atstring date-time required
daily_limitinteger
email_approval_mode'manual' | 'auto'

Whether a sender's email steps wait in the approval queue or send on their own.

The per-sender override of the workspace's email approval mode. The workspace setting lives in the outreach-task domain, a layer above this one, so this enum names only the two overrides a sender can carry; the absence of one (SenderProfileDTO.email_approval_mode is None) means the sender follows the workspace.

first_namestring
idstring uuid required
last_namestring
linkedin_checkpointboolean

True while LinkedIn is asking this sender to verify the account.

linkedin_connection_request_capinteger
linkedin_connection_requests_todayinteger
linkedin_identitystring nullable
linkedin_last_seen_atstring date-time nullable

When a browser for this sender last checked in.

linkedin_photo_urlstring nullable
linkedin_presence'active' | 'idle' | 'not_seen'

How recently ANY browser connected to this sender checked in.

Three states, not two, because two different questions are asked of a connection. ACTIVE answers "can a step run right now": a browser is open and heartbeating. IDLE answers "is this still set up": the laptop was closed for the evening. NOT_SEEN is the one that needs a person: nothing has checked in for a day, and queued work is silently waiting.

linkedin_run_mode'manual' | 'auto'

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.

mailbox_countinteger required
namestring required
send_mode'always_send' | 'send_when_confident' | 'always_ask' required

How much of this sender's agent-written email leaves without a person.

ALWAYS_SEND: agent-written email steps and replies go out unattended unless a defect is found in the message itself. SEND_WHEN_CONFIDENT: they go out when the agent's confidence rule holds, and a person is asked when it does not. ALWAYS_ASK: every agent-written email waits for a person, whatever the agent thinks of it.

The three are ordered by strictness (ALWAYS_ASK strictest, then SEND_WHEN_CONFIDENT, then ALWAYS_SEND loosest), and that order is what service.strictest_send_mode folds a cadence's assigned senders down with. The order is the point: everything that combines two modes must resolve towards asking, never towards sending.

Replaces EmailApprovalMode's two-way choice, which cannot express "send the ones the agent stands behind". That enum and its column stay until a release backfills this one; do not read both in one decision.

sent_todayinteger
signature_textstring
status'draft' | 'active' required

Lifecycle of a sender.

A sender is DRAFT from the moment it is created and becomes ACTIVE once at least one mailbox is attached. The status is derived from attachment, never stored, so it cannot drift.

timezonestring nullable

The sender's IANA timezone, such as America/New_York. Their daily limits reset at its midnight, and a sequence sending in each sender's timezone sends in its hours. Null until it is detected or chosen.

timezone_source'guessed' | 'browser' | 'person'

Where a sender's timezone came from, which decides what may replace it.

GUESSED: from whoever created the sender, or from the sequences it already sent for. BROWSER: reported by the browser driving the sender's LinkedIn, which fills a sender that had none. PERSON: chosen on the Senders page or through the AI Assistant. Since 2026-10-09 nothing detected moves a zone a sender has, whatever its source: only a person does, and a zone a person clears is filled again by detection.

titlestring required

The sender's job title, as their messages introduce them. It is what the {{Sender title}} variable is replaced with. Empty when none is set.

updated_atstring date-time required

Changes

No recorded changes to this operation across all 1 revision of this API.