The Dux-Soup API

Overview 


The Dux-Soup API allows you to integrate Dux-Soup and STACKED powered by Dux-Soup with external applications and automate LinkedIn outreach programmatically.

The Dux-Soup API consists of several APIs, each providing access to a specific area of Dux-Soup functionality.

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



Available APIs


LinkedIn Activity API

This API enables the scheduling of activities to be executed by the Dux-Soup extension. LinkedIn activities are always added to a queue to allow for the activity to be throttled according to the user's settings. This API was formerly known as the Remote Control API.

Browse the LinkedIn Activity API


User Settings API

This API provides full read and write access to all the Dux-Soup user configuration parameters.

Browse the User Settings API


Extension Control API

This API provides access to a subset of the available UI actions that are commonly triggered by the end-user. 

Browse the Extension Control API


Queue Management API

This API provides access and control over the queued activity.

Browse the Queue Management API


User Profile API

This API provides access to the details of the end user.

Browse the User Profile API


Prospect API

This API provides access to the details of the prospects in a campaign.

Browse the Prospect API


Campaign Management API

The Dux-Soup Campaign Management API lets you create, inspect, update, and control Campaigns.

Browse the Campaign Management API


Messaging & Activity API

The Dux-Soup Messaging & Activity API lets you retrieve LinkedIn conversation history and recent automation activity.

Browse the Messaging & Activity API


Team Monitoring API (admin)

The Dux-Soup Team Monitoring API lets team/agency admins retrieve data across the accounts they manage. Use it to list which accounts and Campaigns are under your management, check whether each managed account's automation is currently running, pull aggregate or per-member Campaign KPIs, and page through funnel data across the team.

Browse the Team Monitoring API (admin)


Reporting & Discovery API

With the Reporting & Discovery API, you can list and search the profiles that the robot has visited and recorded. You can also determine which profiles are active in a Campaign, track how far they have progressed, and identify which actions and parameters are valid when building a Campaign.

Browse the Reporting & Discovery API


Connecting to the API 


Each API has its own endpoint, or in some cases multiple endpoints. Refer to the documentation for the specific API you want to use for its available endpoints, request methods, and parameters.


Authenticating API calls

All calls to the Dux-Soup API require authentication.

API calls are authenticated using a cryptographically signed HTTP header:

X-Dux-Signature: <HMAC> 

This calculation is done using the Authentication Key.

The following JavaScript example uses the jsSHA library to calculate the required HMAC:

function calculateHMAC(apikey, message) {
    var shaObj = new jsSHA("SHA-1", "TEXT");
    shaObj.setHMACKey(apikey, "TEXT");
    shaObj.update(message);
    var hmac = shaObj.getHMAC("B64");
    return hmac;
}

For HTTP POST, PUT, and DELETE requests, the inputs for the function are:

  • The user’s API key, as found in the options panel.
  • The JSON body of the HTTP request.

POST, PUT, and DELETE requests require a JSON body containing targeturl, timestamp, and userid.

For HTTP GET requests, the inputs for the function are:

  • The user’s API key.
  • The URL of the API endpoint being requested.

The resulting HMAC contains the required hash. Include this hash in the HTTP request header: X-Dux-Signature: <<HMAC>>


Required Fields

All API POST, PUT, and DELETE calls require a JSON request body. 

In addition, the following HTTP headers need to be included

Content-type application/json
X-Dux-Signature Valid HMAC value ( See above )

The HTTP body needs to contain a JSON object with the following fields, to ensure acceptance by the server:

targeturl The target URL of this command, where the command is delivered. Should start with https://app.dux-soup.com
timestamp Current ‘unix’ time in milliseconds. The timestamp needs to be within 5 minutes of the current time.
userid The userid to which the command will be sent for execution. Should correspond to the userid in the target URL.

Testing API calls


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

This is the easiest way to test requests before implementing them in your own integration.

Open the API testing tool:

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

For example, you can use the tool to generate the curl command for adding a connection request to the queue, execute the request, and then verify that the activity has been queued.