curl --request GET \
--url https://scrapebadger.com/v1/twitter/stream/filter-rules/{rule_id} \
--header 'x-api-key: <api-key>'import requests
url = "https://scrapebadger.com/v1/twitter/stream/filter-rules/{rule_id}"
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/filter-rules/{rule_id}', 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/filter-rules/{rule_id}",
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/filter-rules/{rule_id}"
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/filter-rules/{rule_id}")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://scrapebadger.com/v1/twitter/stream/filter-rules/{rule_id}")
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{
"id": "<string>",
"tag": "AI news tracker",
"query": "(\"artificial intelligence\" OR \"machine learning\") min_faves:100 lang:en",
"interval_seconds": 60,
"max_results_per_poll": 20,
"status": "active",
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"status_reason": "<string>",
"webhook_url": "<string>",
"webhook_secret_set": true,
"credits_per_rule_per_day": 123,
"pricing_tier": "1-minute"
}{
"error": "Invalid or missing API key"
}{
"error": "Insufficient credits"
}{
"error": "Rate limit exceeded. Please retry after a short delay."
}Get Filter Rule
Retrieve details of a specific filter rule by its ID. Returns full rule configuration, status, and pricing information.
curl --request GET \
--url https://scrapebadger.com/v1/twitter/stream/filter-rules/{rule_id} \
--header 'x-api-key: <api-key>'import requests
url = "https://scrapebadger.com/v1/twitter/stream/filter-rules/{rule_id}"
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/filter-rules/{rule_id}', 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/filter-rules/{rule_id}",
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/filter-rules/{rule_id}"
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/filter-rules/{rule_id}")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://scrapebadger.com/v1/twitter/stream/filter-rules/{rule_id}")
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{
"id": "<string>",
"tag": "AI news tracker",
"query": "(\"artificial intelligence\" OR \"machine learning\") min_faves:100 lang:en",
"interval_seconds": 60,
"max_results_per_poll": 20,
"status": "active",
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"status_reason": "<string>",
"webhook_url": "<string>",
"webhook_secret_set": true,
"credits_per_rule_per_day": 123,
"pricing_tier": "1-minute"
}{
"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.
Path Parameters
The unique ID of the filter rule.
Response
Successfully retrieved filter rule.
Filter rule configuration and status.
Unique filter rule identifier.
Human-readable label for the rule.
"AI news tracker"
Twitter Advanced Search query.
"(\"artificial intelligence\" OR \"machine learning\") min_faves:100 lang:en"
Polling interval in seconds.
60
Maximum number of tweets returned per poll cycle.
20
Current status of the rule. Suspended indicates the rule was auto-paused due to insufficient credits.
active, paused, suspended Timestamp when the rule was created.
Timestamp when the rule was last updated.
Reason for the current status, if applicable.
HTTPS URL receiving webhook deliveries.
Whether a webhook secret is configured. The actual secret is never returned.
Credit cost per day for this rule at the current interval.
Current pricing tier label based on interval.
"1-minute"

