Add Tasks
curl --request POST \
--url https://api.lobstr.io/v1/tasks \
--header 'Authorization: <authorization>' \
--header 'Content-Type: <content-type>' \
--data '
{
"squid": "<string>",
"tasks": [
{}
],
"tasks[].url": "<string>"
}
'import requests
url = "https://api.lobstr.io/v1/tasks"
payload = {
"squid": "<string>",
"tasks": [{}],
"tasks[].url": "<string>"
}
headers = {
"Authorization": "<authorization>",
"Content-Type": "<content-type>"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: '<authorization>', 'Content-Type': '<content-type>'},
body: JSON.stringify({squid: '<string>', tasks: [{}], 'tasks[].url': '<string>'})
};
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_POSTFIELDS => json_encode([
'squid' => '<string>',
'tasks' => [
[
]
],
'tasks[].url' => '<string>'
]),
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"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.lobstr.io/v1/tasks"
payload := strings.NewReader("{\n \"squid\": \"<string>\",\n \"tasks\": [\n {}\n ],\n \"tasks[].url\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
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>")
.body("{\n \"squid\": \"<string>\",\n \"tasks\": [\n {}\n ],\n \"tasks[].url\": \"<string>\"\n}")
.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>'
request.body = "{\n \"squid\": \"<string>\",\n \"tasks\": [\n {}\n ],\n \"tasks[].url\": \"<string>\"\n}"
response = http.request(request)
puts response.read_bodyCapterra Reviews Scraper
Add Tasks
Add tasks to your Capterra Reviews Scraper squid
POST
/
v1
/
tasks
Add Tasks
curl --request POST \
--url https://api.lobstr.io/v1/tasks \
--header 'Authorization: <authorization>' \
--header 'Content-Type: <content-type>' \
--data '
{
"squid": "<string>",
"tasks": [
{}
],
"tasks[].url": "<string>"
}
'import requests
url = "https://api.lobstr.io/v1/tasks"
payload = {
"squid": "<string>",
"tasks": [{}],
"tasks[].url": "<string>"
}
headers = {
"Authorization": "<authorization>",
"Content-Type": "<content-type>"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: '<authorization>', 'Content-Type': '<content-type>'},
body: JSON.stringify({squid: '<string>', tasks: [{}], 'tasks[].url': '<string>'})
};
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_POSTFIELDS => json_encode([
'squid' => '<string>',
'tasks' => [
[
]
],
'tasks[].url' => '<string>'
]),
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"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.lobstr.io/v1/tasks"
payload := strings.NewReader("{\n \"squid\": \"<string>\",\n \"tasks\": [\n {}\n ],\n \"tasks[].url\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
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>")
.body("{\n \"squid\": \"<string>\",\n \"tasks\": [\n {}\n ],\n \"tasks[].url\": \"<string>\"\n}")
.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>'
request.body = "{\n \"squid\": \"<string>\",\n \"tasks\": [\n {}\n ],\n \"tasks[].url\": \"<string>\"\n}"
response = http.request(request)
puts response.read_bodyAdd Capterra product URLs to your Capterra Reviews Scraper squid.
Crawler ID:
1b9cbf17d4315e37f52ddd8928b44484Headers
string
required
Your API authentication token. Value:
Token YOUR_API_KEYstring
required
Must be application/json. Value:
application/jsonBody
string
required
Hash ID of your squid.
array
required
Array of task objects.
Task Fields
string
required
The Capterra page of the product whose reviews you want, e.g.
https://www.capterra.com/p/150854/Apify/reviews/. The product page itself (https://www.capterra.com/p/150854/Apify/) and the older https://www.capterra.com/reviews/150854/Apify form work too, with or without the trailing slash: the product is identified by the number in the URL, so an outdated product name in the URL is corrected automatically. Capterra’s regional sites work too, with their own URL form, e.g. https://www.capterra.co.uk/software/150854/apify or https://www.capterra.fr/reviews/150854/apify: co.uk, ca, com.au, co.nz, ie, in, ae, co.za, fr, es, it, nl, be, ch, at, pt, com.br, mx, se, dk, no, fi and pl. A regional site is collected on that site, in the language it shows by default. Regional sites sort only by Most Recent or Most Helpful and have no Reviewer’s Role or Frequency of Use filter. The order and the filters come from the settings below, not from the URL. A URL ending in ?page=N starts the collection at page N of that order (25 reviews per page; on a regional site page 1 holds the 5 highlighted reviews). Example: https://www.capterra.com/p/150854/Apify/reviews/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.capterra.com/p/150854/Apify/reviews/"}
]
}'
import requests
response = requests.post(
"https://api.lobstr.io/v1/tasks",
headers={
"Authorization": "Token YOUR_API_KEY",
"Content-Type": "application/json",
},
json={
"squid": "YOUR_SQUID_HASH",
"tasks": [
{"url": "https://www.capterra.com/p/150854/Apify/reviews/"}
],
},
)
print(response.json())
Response
200
{"duplicated_count": 0, "tasks": [{"id": "TASK_HASH", "is_active": true, "params": {"url": "https://www.capterra.com/p/150854/Apify/reviews/"}, "object": "task"}]}