List delivery logs
curl --request GET \
--url https://scrapebadger.com/v1/twitter/stream/logs \
--header 'x-api-key: <api-key>'import requests
url = "https://scrapebadger.com/v1/twitter/stream/logs"
headers = {"x-api-key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'x-api-key': '<api-key>'}};
fetch('https://scrapebadger.com/v1/twitter/stream/logs', 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://scrapebadger.com/v1/twitter/stream/logs",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"x-api-key: <api-key>"
],
]);
$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://scrapebadger.com/v1/twitter/stream/logs"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-api-key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://scrapebadger.com/v1/twitter/stream/logs")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://scrapebadger.com/v1/twitter/stream/logs")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-api-key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"logs": [
{
"id": "<string>",
"monitor_id": "<string>",
"tweet_id": "<string>",
"delivery_status": "<string>",
"monitor_name": "<string>",
"author_username": "<string>",
"tweet_text_preview": "<string>",
"tweet_url": "<string>",
"tweet_published_at": "2023-11-07T05:31:56Z",
"detected_at": "2023-11-07T05:31:56Z",
"latency_ms": 123,
"latency_badge": "<string>",
"webhook_status_code": 123,
"webhook_attempts": 123
}
],
"total": 123,
"page": 123,
"page_size": 123
}{
"error": "Invalid or missing API key"
}{
"error": "Insufficient credits"
}{
"error": "Rate limit exceeded. Please retry after a short delay."
}Stream Monitors API
List Delivery Logs
List tweet delivery logs for stream monitors. Shows each detected tweet with detection latency, delivery status, and webhook response details. Useful for monitoring stream health and debugging delivery issues.
GET
/
v1
/
twitter
/
stream
/
logs
List delivery logs
curl --request GET \
--url https://scrapebadger.com/v1/twitter/stream/logs \
--header 'x-api-key: <api-key>'import requests
url = "https://scrapebadger.com/v1/twitter/stream/logs"
headers = {"x-api-key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'x-api-key': '<api-key>'}};
fetch('https://scrapebadger.com/v1/twitter/stream/logs', 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://scrapebadger.com/v1/twitter/stream/logs",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"x-api-key: <api-key>"
],
]);
$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://scrapebadger.com/v1/twitter/stream/logs"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-api-key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://scrapebadger.com/v1/twitter/stream/logs")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://scrapebadger.com/v1/twitter/stream/logs")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-api-key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"logs": [
{
"id": "<string>",
"monitor_id": "<string>",
"tweet_id": "<string>",
"delivery_status": "<string>",
"monitor_name": "<string>",
"author_username": "<string>",
"tweet_text_preview": "<string>",
"tweet_url": "<string>",
"tweet_published_at": "2023-11-07T05:31:56Z",
"detected_at": "2023-11-07T05:31:56Z",
"latency_ms": 123,
"latency_badge": "<string>",
"webhook_status_code": 123,
"webhook_attempts": 123
}
],
"total": 123,
"page": 123,
"page_size": 123
}{
"error": "Invalid or missing API key"
}{
"error": "Insufficient credits"
}{
"error": "Rate limit exceeded. Please retry after a short delay."
}Authorizations
Your ScrapeBadger API key. You can find this in your dashboard at https://scrapebadger.com/dashboard/api-keys.
Query Parameters
Filter logs by stream monitor ID.
Page number for pagination.
Required range:
x >= 1Number of logs per page.
Required range:
1 <= x <= 100⌘I

