Skip to content

List senders

sender.list(SenderListParams**kwargs) -> SenderListResponse
GET/v1/senders

Returns a paginated list of the email and LinkedIn senders that sequences send from, archived ones included, ordered by createdAt descending. Use offset and limit to paginate, and bracketed filters to narrow the list.

Supported filters: channel[equal] (EMAIL, LINKEDIN), health[equal] (UNVERIFIED, HEALTHY, UNHEALTHY), owner[equal] (a member ID), and archived[equal] (true, false). Filters are combined with AND.

Required scope: senders:read

Rate limit category: Search

ParametersExpand Collapse
limit: Optional[int]

Maximum number of records to return. Defaults to 25, maximum 25.

minimum1
maximum9007199254740991
offset: Optional[int]

Number of records to skip for pagination. Defaults to 0.

minimum0
maximum9007199254740991
ReturnsExpand Collapse
class SenderListResponse: …
data: List[Data]
id: str

Unique identifier of the sender.

archived_at: Optional[str]

When the sender was archived, or null if it is active. Archived senders never send.

channel: Literal["EMAIL", "LINKEDIN"]

Whether this sender sends email or LinkedIn messages.

One of the following:
"EMAIL"
"LINKEDIN"
created_at: str

When the sender was created.

email_address: Optional[str]

The address email from this sender is sent from. Null for LinkedIn senders, or when the connected account has no address.

health: Literal["UNVERIFIED", "HEALTHY", "UNHEALTHY"]

HEALTHY can send. UNHEALTHY cannot send until healthReason is resolved. UNVERIFIED means no health verdict yet: an email sender in this state cannot send until it passes a health check, while a LinkedIn sender is never health-checked, so a working LinkedIn sender is usually UNVERIFIED and can send.

One of the following:
"UNVERIFIED"
"HEALTHY"
"UNHEALTHY"
health_reason: Optional[str]

Why the sender is UNHEALTHY or UNVERIFIED, for example ACCOUNT_DISCONNECTED, BOUNCE_THRESHOLD or INVITE_LIMIT; null when healthy.

object_type: Literal["sender"]

Always sender.

owner: Optional[str]

Member ID of the person who owns this sender, or null when no workspace membership can be resolved.

pacing: DataPacing

How this sender paces each step type it sends, keyed by sequence step type: EMAIL for an email sender; LINKEDIN_INVITE and LINKEDIN_MESSAGE for a LinkedIn sender.

email: Optional[DataPacingEmail]

Email steps. Present only on an email sender.

daily_limit: int

Most sends of this step type in any rolling 24 hours.

minimum-9007199254740991
maximum9007199254740991
max_gap_seconds: Optional[int]

Upper bound of the minimum spacing, in seconds. Before each send, a minimum spacing is drawn at random between minGapSeconds and this value, and the send waits until that long after the previous one. Sends can be further apart, for example outside the send window or once dailyLimit is reached. Null means the minimum spacing is always minGapSeconds.

minimum-9007199254740991
maximum9007199254740991
min_gap_seconds: int

Lower bound of the minimum spacing between two of its sends, in seconds.

minimum-9007199254740991
maximum9007199254740991
linkedin_invite: Optional[DataPacingLinkedinInvite]

LinkedIn connection requests. Present only on a LinkedIn sender.

daily_limit: int

Most sends of this step type in any rolling 24 hours.

minimum-9007199254740991
maximum9007199254740991
max_gap_seconds: Optional[int]

Upper bound of the minimum spacing, in seconds. Before each send, a minimum spacing is drawn at random between minGapSeconds and this value, and the send waits until that long after the previous one. Sends can be further apart, for example outside the send window or once dailyLimit is reached. Null means the minimum spacing is always minGapSeconds.

minimum-9007199254740991
maximum9007199254740991
min_gap_seconds: int

Lower bound of the minimum spacing between two of its sends, in seconds.

minimum-9007199254740991
maximum9007199254740991
linkedin_message: Optional[DataPacingLinkedinMessage]

LinkedIn messages. Present only on a LinkedIn sender.

daily_limit: int

Most sends of this step type in any rolling 24 hours.

minimum-9007199254740991
maximum9007199254740991
max_gap_seconds: Optional[int]

Upper bound of the minimum spacing, in seconds. Before each send, a minimum spacing is drawn at random between minGapSeconds and this value, and the send waits until that long after the previous one. Sends can be further apart, for example outside the send window or once dailyLimit is reached. Null means the minimum spacing is always minGapSeconds.

minimum-9007199254740991
maximum9007199254740991
min_gap_seconds: int

Lower bound of the minimum spacing between two of its sends, in seconds.

minimum-9007199254740991
maximum9007199254740991
reply_to_address: Optional[str]

SMTP senders only: the connected mailbox replies are sent to and read from. Null for other senders.

transport: Optional[Literal["SMTP", "OAUTH"]]

How an email sender sends: SMTP through its own mail server, OAUTH through its connected Google or Microsoft account. Null for LinkedIn senders.

One of the following:
"SMTP"
"OAUTH"
object: Literal["list"]
total_count: int
minimum-9007199254740991
maximum9007199254740991

List senders

from lightfield import Lightfield

client = Lightfield(
    api_key="My API Key",
)
sender_list_response = client.sender.list()
print(sender_list_response.data)
{
  "data": [
    {
      "id": "id",
      "archivedAt": "archivedAt",
      "channel": "EMAIL",
      "createdAt": "createdAt",
      "emailAddress": "emailAddress",
      "health": "UNVERIFIED",
      "healthReason": "healthReason",
      "objectType": "sender",
      "owner": "owner",
      "pacing": {
        "EMAIL": {
          "dailyLimit": -9007199254740991,
          "maxGapSeconds": -9007199254740991,
          "minGapSeconds": -9007199254740991
        },
        "LINKEDIN_INVITE": {
          "dailyLimit": -9007199254740991,
          "maxGapSeconds": -9007199254740991,
          "minGapSeconds": -9007199254740991
        },
        "LINKEDIN_MESSAGE": {
          "dailyLimit": -9007199254740991,
          "maxGapSeconds": -9007199254740991,
          "minGapSeconds": -9007199254740991
        }
      },
      "replyToAddress": "replyToAddress",
      "transport": "SMTP"
    }
  ],
  "object": "list",
  "totalCount": -9007199254740991
}
Returns Examples
{
  "data": [
    {
      "id": "id",
      "archivedAt": "archivedAt",
      "channel": "EMAIL",
      "createdAt": "createdAt",
      "emailAddress": "emailAddress",
      "health": "UNVERIFIED",
      "healthReason": "healthReason",
      "objectType": "sender",
      "owner": "owner",
      "pacing": {
        "EMAIL": {
          "dailyLimit": -9007199254740991,
          "maxGapSeconds": -9007199254740991,
          "minGapSeconds": -9007199254740991
        },
        "LINKEDIN_INVITE": {
          "dailyLimit": -9007199254740991,
          "maxGapSeconds": -9007199254740991,
          "minGapSeconds": -9007199254740991
        },
        "LINKEDIN_MESSAGE": {
          "dailyLimit": -9007199254740991,
          "maxGapSeconds": -9007199254740991,
          "minGapSeconds": -9007199254740991
        }
      },
      "replyToAddress": "replyToAddress",
      "transport": "SMTP"
    }
  ],
  "object": "list",
  "totalCount": -9007199254740991
}