curl --request GET \
--url https://api.scrapebento.com/v1/public/requests \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.scrapebento.com/v1/public/requests"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.scrapebento.com/v1/public/requests', 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.scrapebento.com/v1/public/requests",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$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.scrapebento.com/v1/public/requests"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.scrapebento.com/v1/public/requests")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.scrapebento.com/v1/public/requests")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"data": {
"items": [
{
"jobId": "<string>",
"kind": "url",
"status": "queued",
"creditsCharged": 123,
"creditsRefunded": true,
"createdAt": "2023-11-07T05:31:56Z",
"format": "<string>",
"errorCode": "<string>",
"errorMessage": "<string>",
"completedAt": "2023-11-07T05:31:56Z"
}
],
"nextBefore": "2023-11-07T05:31:56Z",
"nextBeforeId": "<string>"
}
}List recent scrape and search jobs
Requires api.read. Newest-first history for the token’s organization,
for debugging a failure without opening a support conversation.
Returns a summary per job — status, error code, credits charged, and
whether they were refunded — but not the stored input or result. Fetch
the full record from /v1/public/jobs/{jobId}.
Pages by keyset: pass the returned nextBefore as before and
nextBeforeId as beforeId. A page is the last one when no
nextBefore comes back. before alone still works, but skips any job
sharing the previous page’s last timestamp.
curl --request GET \
--url https://api.scrapebento.com/v1/public/requests \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.scrapebento.com/v1/public/requests"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.scrapebento.com/v1/public/requests', 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.scrapebento.com/v1/public/requests",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$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.scrapebento.com/v1/public/requests"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.scrapebento.com/v1/public/requests")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.scrapebento.com/v1/public/requests")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"data": {
"items": [
{
"jobId": "<string>",
"kind": "url",
"status": "queued",
"creditsCharged": 123,
"creditsRefunded": true,
"createdAt": "2023-11-07T05:31:56Z",
"format": "<string>",
"errorCode": "<string>",
"errorMessage": "<string>",
"completedAt": "2023-11-07T05:31:56Z"
}
],
"nextBefore": "2023-11-07T05:31:56Z",
"nextBeforeId": "<string>"
}
}Authorizations
Send a workspace API token in the Authorization: Bearer <token> header.
Keys carry the satk_ prefix and spend your organization's credit
balance. GET /v1/public/balance reports what is left.
Test-mode keys (satk_test_), which drew on a separate self-refilling
allowance, have been retired and no longer authenticate.
Query Parameters
Page size. Defaults to 25, clamped to 100.
1 <= x <= 100Restrict to one scrape kind.
url, search, reddit_post, reddit_profile, x_post, x_profile, linkedin_post, linkedin_profile, linkedin_person_posts, hn_post, hn_search, rss, site, mentions, channel, seo, infra, ads, company, social_mentions, social_engagement, linkedin_employees, sitemap, brand, producthunt, research queued, running, succeeded, failed RFC3339 timestamp; returns jobs created strictly before it.
Tie-breaker for before, from nextBeforeId. With it, jobs created
at exactly before whose id sorts below beforeId are included too.
Ignored without before.
Response
One page of request history.
Show child attributes
Show child attributes