LinkedIn Activity API

Overview


The API is available to users who have an active Dux-Soup Turbo or Cloud license, as well as those using STACKED.


The LinkedIn Activity API allows you to schedule automated LinkedIn actions from external applications. For example, when a new lead is created in your CRM and their LinkedIn profile URL is added, you can automatically schedule a connection request with a personalised message.

This allows you to incorporate LinkedIn outreach into your existing workflows without leaving your CRM or lead management system.



Enabling API command processing


To process commands sent through the LinkedIn Activity API, Remote Control must be enabled for the user.

You can enable it manually under Settings → Connect (available within Expert UI), or programmatically using the User Settings API.

Remote Control is automatically enabled when you click Enroll in Dux-Soup or STACKED.


Using the API to build sequences

If you are building an outreach sequence using the API, enabling Remote Control alone is not sufficient. The following three settings must be enabled:

{
  "followupflag": true,
  "remotecontrolflag": true,
  "messagebridgeflag": true
}

LinkedIn Activity Commands


The LinkedIn Activity API supports a range of LinkedIn actions. When a command is sent to the Dux-Soup API, it is added to the user’s activity queue and waits to be processed. Commands can remain in the queue for up to 365 days.

A successful API call returns the messageidof the queued activity.

If an identical command is submitted more than once, a duplicate queue entry is not created. Instead, the API returns the messageid of the existing queued activity.

The messageid is also included in webhook events generated as the activity is processed. This allows you to correlate the activity originally scheduled through the API with subsequent events generated during its execution.


Visit

This command will open the target profile in a new tab on the remote. After the command has been executed, the tab is closed.


command "visit"
params {
  campaignid Campaign ID to be assigned to this command ( optional, String )
  profile Target profile URL (mandatory, String)
  force Force the action, ignoring all exclusion rules ( optional, boolean )
}
runafter Schedule the command to run after a set time ( optional, ISO date-string)

Enroll

This command will open the target profile in a new tab and enroll the profile into the specified campaign. After the command has been executed, the tab is closed.


command "enroll"
params {
  campaignid Campaign ID of the campaign the profile should be enrolled into ( mandatory, String )
  profile Target profile URL ( mandatory, String )
  force Force the action, ignoring all exclusion rules ( optional, boolean )

}
runafter Schedule the command to run after a set time ( optional, ISO date-string)

Connect

This will open the target profile in a new tab and will attempt to send a personalised connection request. After the command has been executed, the remote will close the tab.


command "connect"
params {
  campaignid Campaign ID to be assigned to this command ( optional, String )
  profile Target profile URL, must be a 2nd or 3rd degree connection ( mandatory, String )
  messagetext Personalised message to be sent with the invite. Can contain placeholders, e.g. _FN_ ( optional, String )
  force Force the action, ignoring all exclusion rules ( optional, boolean )

}
runafter Schedule the command to run after a set time ( optional, ISO date-string)

Message

This will open the target profile in a new tab and will attempt to send a direct message. After the command has executed, the tab is closed.


command "message"
params {
  campaignid Campaign ID to be assigned to this command ( optional, String )
  profile Target profile URL, must be a 1st degree connection ( mandatory, String )
  messagetext Personalised message to be sent. Can contain placeholders, e.g. _FN_ ( mandatory, String )
  force Force the action, ignoring all exclusion rules ( optional, boolean )

}
runafter Schedule the command to run after a set time ( optional, ISO date-string)

InMail

This will open the target profile in a new tab and will attempt to send an InMail message. This requires your LinkedIn account to have InMail credits. After the command has been executed, the tab is closed.


command "inmail"
params {
  campaignid Campaign ID to be assigned to this command ( optional, String )
  profile Target profile URL, must be a Sales Navigator or Recruiter URL ( mandatory, String )
  messagesubject Personalised subject for the InMail. Can contain placeholders, e.g. A message for _FN_ ( mandatory, String )
  messagetext Personalised message to be sent. Can contain placeholders, e.g. Hi _FN_ ( mandatory, String )
  force Force the action, ignoring all exclusion rules ( optional, boolean )

}
runafter Schedule the command to run after a set time ( optional, ISO date-string)

Tag

This will open the target profile in a new tab and will apply one or more Dux-Soup tags to the profile. After the command has been executed, the tab is closed.

command "tag"
params {
  campaignid Campaign ID to be assigned to this command ( optional, String )
  profile Target profile URL ( mandatory, String )
  tags List of tags to add ( mandatory, Array of Strings )
  force Force the action, ignoring all exclusion rules ( optional, boolean )

}
runafter Schedule the command to run after a set time ( optional, ISO date-string)

Untag

This will open the target profile in a new tab and will remove one or more Dux-Soup tags from the profile. After the command has been executed, the tab is closed.


command "untag"
params {
  campaignid Campaign ID to be assigned to this command ( optional, String )
  profile Target profile URL ( mandatory, String )
  tags List of tags to remove ( mandatory, Array of Strings )
  force Force the action, ignoring all exclusion rules ( optional, boolean )

}
runafter Schedule the command to run after a set time ( optional, ISO date-string)

SaveToPdf

This will open the target profile in a new tab and will save the profile as a PDF. After the command has been executed, the tab is closed.


command "savetopdf"
params {
  campaignid Campaign ID to be assigned to this command ( optional, String )
  profile Target profile URL, must be a regular LinkedIn URL ( mandatory, String )
  force Force the action, ignoring all exclusion rules ( optional, boolean )

}
runafter Schedule the command to run after a set time ( optional, ISO date-string)

Follow

This will open the target profile in a new tab and will 'follow' the profile. After the command has executed, the tab is closed.


command "follow"
params {
  campaignid Campaign ID to be assigned to this command ( optional, String )
  profile Target profile URL, must be a regular LinkedIn URL ( mandatory, String )
  force Force the action, ignoring all exclusion rules ( optional, boolean )

}
runafter Schedule the command to run after a set time ( optional, ISO date-string)

Disconnect

This will open the target profile in a new tab and will disconnect the profile. After the command has been executed, the tab is closed.


command "disconnect"
params {
  campaignid Campaign ID to be assigned to this command ( optional, String )
  profile Target profile URL, must be a 1st degree, regular LinkedIn URL ( mandatory, String )
  force Force the action, ignoring all exclusion rules ( optional, boolean )

}
runafter Schedule the command to run after a set time ( optional, ISO date-string)

Endorse

This will open the target profile in a new window and will attempt to endorse the selected skills. After the command has been executed, the tab is closed.


command "endorse"
params {
  campaignid Campaign ID to be assigned to this command ( optional, String )
  profile Target profile URL, must be a 1st degree, regular LinkedIn URL ( mandatory, String )
  count Number of skills to endorse, e.g. 3 for top 3 or -1 for bottom 1. ( optional, Number, defaults to 3 )
  force Force the action, ignoring all exclusion rules ( optional, boolean )

}
runafter Schedule the command to run after a set time ( optional, ISO date-string)

SaveAsLead

This will open the target profile in a new window and save the profile to the "My saved lead" list. After the command has been executed, the tab is closed.


command "saveaslead"
params {
  campaignid Campaign ID to be assigned to this command ( optional, String )
  profile Target profile URL, must be a Sales Navigator URL ( mandatory, String)
  force Force the action, ignoring all exclusion rules ( optional, boolean )

}
runafter Schedule the command to run after a set time ( optional, ISO date-string)

LikePost

This will open the target profile in a new window and like the most recent profile post. After the command has been executed, the tab is closed.


command "likepost"
params {
  campaignid Campaign ID to be assigned to this command ( optional, String )
  profile Target profile URL, must be a regular LinkedIn URL ( mandatory, String )
  force Force the action, ignoring all exclusion rules ( optional, boolean )

}
runafter Schedule the command to run after a set time ( optional, ISO date-string)

Try the API with Postman


You can explore and test the Dux-Soup API using our public Postman collection.

⁠Open the Dux-Soup Public API in Postman

To start testing the API:

  • Open the Dux-Soup Public API workspace in Postman and sign in to your Postman account.
  • Select the API collection and click Fork.
  • Choose a workspace where you want to save your copy and click Fork Collection.
  • Configure the required Dux-Soup API credentials and variables in your fork.
  • Select an API request, enter any required parameters or request body, and click Send.

Forking creates your own copy of the collection, allowing you to configure and test requests without modifying the public Dux-Soup collection.  


The Dux-Soup API Test Tool


We provide an API testing tool that lets you execute API calls and generate the corresponding curl commands for use from a command line.

Open the API testing tool:

https://app.dux-soup.com/web/rc/test