Add Tasks
curl --request POST \
--url https://api.lobstr.io/v1/tasks \
--header 'Authorization: <authorization>' \
--header 'Content-Type: <content-type>'import requests
url = "https://api.lobstr.io/v1/tasks"
headers = {
"Authorization": "<authorization>",
"Content-Type": "<content-type>"
}
response = requests.post(url, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: '<authorization>', 'Content-Type': '<content-type>'}
};
fetch('https://api.lobstr.io/v1/tasks', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.lobstr.io/v1/tasks",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_HTTPHEADER => [
"Authorization: <authorization>",
"Content-Type: <content-type>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.lobstr.io/v1/tasks"
req, _ := http.NewRequest("POST", url, nil)
req.Header.Add("Authorization", "<authorization>")
req.Header.Add("Content-Type", "<content-type>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.lobstr.io/v1/tasks")
.header("Authorization", "<authorization>")
.header("Content-Type", "<content-type>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.lobstr.io/v1/tasks")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = '<authorization>'
request["Content-Type"] = '<content-type>'
response = http.request(request)
puts response.read_bodySales Navigator Leads Scraper
Add Tasks
Add LinkedIn Sales Navigator search URLs to scrape lead profiles
POST
/
v1
/
tasks
Add Tasks
curl --request POST \
--url https://api.lobstr.io/v1/tasks \
--header 'Authorization: <authorization>' \
--header 'Content-Type: <content-type>'import requests
url = "https://api.lobstr.io/v1/tasks"
headers = {
"Authorization": "<authorization>",
"Content-Type": "<content-type>"
}
response = requests.post(url, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: '<authorization>', 'Content-Type': '<content-type>'}
};
fetch('https://api.lobstr.io/v1/tasks', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.lobstr.io/v1/tasks",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_HTTPHEADER => [
"Authorization: <authorization>",
"Content-Type: <content-type>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.lobstr.io/v1/tasks"
req, _ := http.NewRequest("POST", url, nil)
req.Header.Add("Authorization", "<authorization>")
req.Header.Add("Content-Type", "<content-type>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.lobstr.io/v1/tasks")
.header("Authorization", "<authorization>")
.header("Content-Type", "<content-type>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.lobstr.io/v1/tasks")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = '<authorization>'
request["Content-Type"] = '<content-type>'
response = http.request(request)
puts response.read_bodyAdd LinkedIn Sales Navigator search URLs to scrape lead profiles. This scraper requires a linked Sales Navigator account to access the data.
Copy the search URL directly from Sales Navigator after applying your filters (company size, seniority level, industry, location, etc.). The scraper will paginate through the search results automatically.
Headers
string
required
Your API authentication token. Value:
Token YOUR_API_KEYstring
required
Request body format. Value:
application/jsonRequest Body
| Field | Type | Required | Description |
|---|---|---|---|
| squid | string | Yes | Hash of your squid configured with the Sales Navigator Leads Scraper crawler |
| tasks | array | Yes | Array of task objects, each containing a url field |
Task Object
| Field | Type | Required | Description |
|---|---|---|---|
| url | string | Yes | Sales Navigator people search URL (e.g., https://www.linkedin.com/sales/search/people?query=...) |
Apply filters in Sales Navigator first, then copy the URL. All filter parameters will be preserved.
This scraper requires a linked Sales Navigator account. Ensure your account is properly connected before running.
You can use saved searches in Sales Navigator and copy their URLs as tasks.
Code Examples
curl -X POST "https://api.lobstr.io/v1/tasks" \
-H "Authorization: Token YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"squid": "YOUR_SQUID_HASH",
"tasks": [
{
"url": "https://www.linkedin.com/sales/search/people?query=(filters:List((type:SENIORITY_LEVEL,values:List((id:300,text:Vice%20President)))))"
}
]
}'
import requests
API_KEY = "YOUR_API_KEY"
BASE_URL = "https://api.lobstr.io/v1"
headers = {"Authorization": f"Token {API_KEY}"}
squid_id = "YOUR_SQUID_HASH"
# Add Sales Navigator search URLs
# Copy the URL directly from Sales Navigator after applying filters
payload = {
"squid": squid_id,
"tasks": [
{
"url": "https://www.linkedin.com/sales/search/people?query=(filters:List((type:SENIORITY_LEVEL,values:List((id:300,text:Vice%20President)))))"
}
]
}
response = requests.post(f"{BASE_URL}/tasks",
headers=headers,
json=payload
)
data = response.json()
print(f"Added {len(data['tasks'])} tasks")
print(f"Duplicates skipped: {data['duplicated_count']}")
Response
200
{
"duplicated_count": 0,
"tasks": [
{
"id": "1995ef75ed06f21b514298b31caa8139",
"created_at": "2025-07-07T10:04:54.651445",
"is_active": true,
"params": {
"url": "https://www.linkedin.com/sales/search/people?query=(filters:List((type:SENIORITY_LEVEL,values:List((id:300,text:Vice%20President)))))"
},
"module": 2,
"object": "task"
}
]
}
⌘I