Update Settings
curl --request POST \
--url https://api.lobstr.io/v1/squids/{squid_hash} \
--header 'Authorization: <authorization>' \
--header 'Content-Type: <content-type>'import requests
url = "https://api.lobstr.io/v1/squids/{squid_hash}"
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/squids/{squid_hash}', 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/squids/{squid_hash}",
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/squids/{squid_hash}"
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/squids/{squid_hash}")
.header("Authorization", "<authorization>")
.header("Content-Type", "<content-type>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.lobstr.io/v1/squids/{squid_hash}")
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_bodyYelp Search Export
Update Settings
Configure Yelp Search Export scraper settings
POST
/
v1
/
squids
/
{squid_hash}
Update Settings
curl --request POST \
--url https://api.lobstr.io/v1/squids/{squid_hash} \
--header 'Authorization: <authorization>' \
--header 'Content-Type: <content-type>'import requests
url = "https://api.lobstr.io/v1/squids/{squid_hash}"
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/squids/{squid_hash}', 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/squids/{squid_hash}",
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/squids/{squid_hash}"
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/squids/{squid_hash}")
.header("Authorization", "<authorization>")
.header("Content-Type", "<content-type>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.lobstr.io/v1/squids/{squid_hash}")
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_bodyConfigure your Yelp Search Export squid settings. Control result limits, contact harvesting, and search filters such as price range, distance, and business amenities.
Headers
string
required
Your API authentication token. Value:
Token YOUR_API_KEYstring
required
Request body format. Value:
application/jsonScraper Parameters
Set these parameters in theparams object:
| Parameter | Type | Default | Description |
|---|---|---|---|
| max_results | integer | 240 | Maximum number of businesses to collect per task. Yelp displays up to 240 results per search |
| max_unique_results_per_run | integer | null | Maximum unique results across all tasks in the entire run |
| collect_contacts | boolean | true | Visit each business’s website to extract email addresses and social links (1 credit per business) |
| sort | string | Recommended | How results are ordered: Recommended, Highest Rated, or Review Count |
| distance | string | Any Distance | Maximum search radius: Any Distance, Bird's-eye View, Driving (25 mi.), Biking (6 mi.), Walking (1 mi.), or Within 4 blocks |
| price_1 | boolean | false | Include businesses with price level $ (inexpensive) |
| price_2 | boolean | false | Include businesses with price level $$ (moderate) |
| price_3 | boolean | false | Include businesses with price level $$$ (pricey) |
| price_4 | boolean | false | Include businesses with price level $$$$ (very expensive) |
| hot_and_new | boolean | false | Only show businesses tagged as Hot and New by Yelp |
| open_now | boolean | false | Only show businesses that are open at the time of the search |
| good_for_kids | boolean | false | Only show businesses marked as good for kids |
| good_for_groups | boolean | false | Only show businesses marked as good for groups |
| free_wifi | boolean | false | Only show businesses that offer free Wi-Fi |
| dogs_allowed | boolean | false | Only show businesses that allow dogs |
| wheelchair_accessible | boolean | false | Only show businesses that are wheelchair accessible |
| open_to_all | boolean | false | Only show businesses tagged as open to all |
| accepts_credit_cards | boolean | false | Only show businesses that accept credit cards |
| accepts_cryptocurrency | boolean | false | Only show businesses that accept cryptocurrency |
| accepts_apple_pay | boolean | false | Only show businesses that accept Apple Pay |
| offers_military_discount | boolean | false | Only show businesses that offer a military discount |
Squid Settings
Configure general squid settings:| Setting | Type | Description |
|---|---|---|
| name | string | Display name for your squid configuration |
| concurrency | integer | Number of parallel scraping threads (default: 1) |
| export_unique_results | boolean | Export only unique results (deduplicated) |
| to_complete | boolean | Run until all tasks complete |
| no_line_breaks | boolean | Remove line breaks from results |
Filter parameters (
price_1, open_now, etc.) apply when tasks use keyword + location as input. When a full URL is provided, Yelp applies the filters embedded in that URL instead.Enable
collect_contacts to extract email addresses from business websites for outreach campaigns.Enabling
collect_contacts adds extra HTTP requests per business, increasing total run time and credit usage.Code Examples
curl -X POST "https://api.lobstr.io/v1/squids/YOUR_SQUID_HASH" \
-H "Authorization: Token YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "Yelp Search Export (1)",
"concurrency": 1,
"export_unique_results": true,
"to_complete": false,
"no_line_breaks": true,
"params": {
"max_results": 240,
"collect_contacts": true,
"sort": "Highest Rated",
"distance": "Driving (25 mi.)",
"price_1": true,
"price_2": true,
"open_now": false,
"good_for_kids": false
}
}'
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"
payload = {
"name": "Yelp Search Export (1)",
"concurrency": 1,
"export_unique_results": True,
"to_complete": False,
"no_line_breaks": True,
"params": {
"max_results": 240,
"collect_contacts": True,
"sort": "Highest Rated",
"distance": "Driving (25 mi.)",
"price_1": True,
"price_2": True,
"open_now": False,
"good_for_kids": False
}
}
response = requests.post(f"{BASE_URL}/squids/{squid_id}", headers=headers, json=payload)
print(f"Settings updated: {response.json()['name']}")
Response
201
{
"name": "Yelp Search Export (1)",
"concurrency": 1,
"export_unique_results": true,
"to_complete": false,
"no_line_breaks": true,
"params": {
"max_results": 240,
"collect_contacts": true,
"sort": "Highest Rated",
"distance": "Driving (25 mi.)",
"price_1": true,
"price_2": true,
"open_now": false,
"good_for_kids": false
}
}
⌘I