curl --request GET \
--url https://api.scraperize.com/v1/threads/search \
--header 'x-api-key: <api-key>'import requests
url = "https://api.scraperize.com/v1/threads/search"
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://api.scraperize.com/v1/threads/search', 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.scraperize.com/v1/threads/search",
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://api.scraperize.com/v1/threads/search"
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://api.scraperize.com/v1/threads/search")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.scraperize.com/v1/threads/search")
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{
"data": {
"query": "coffee",
"startDate": null,
"endDate": null,
"posts": [
{
"id": "4011488263802609679",
"code": "Derq1J4mmAP",
"url": "https://www.threads.com/@robertgcoulter/post/Derq1J4mmAP",
"text": "A long coffee read - \nThe United States is now threatening Europe with devastating economic retaliation over Elon Musk's Starlink. And the reason behind this latest confrontation should concern Canada too.\n\nThis is becoming much bigger than a disagreement over satellite internet.",
"createdAt": "2026-10-19T16:18:07.000Z",
"isEdited": false,
"language": null,
"author": {
"id": "66420218195",
"handle": "robertgcoulter",
"url": "https://www.threads.com/@robertgcoulter",
"fullName": "Robert Coulter",
"profilePicUrl": "https://scontent-los4-1.cdninstagram.com/v/t51.82787-19/773827420_17955109617210196_3137191367319950265_n.jpg?stp=dst-jpg_s150x150_tt6&efg=eyJ2ZW5jb2RlX3RhZyI6InByb2ZpbGVfcGljLmRqYW5nby4xMDgwLmMyIn0&_nc_ht=scontent-los4-1.cdninstagram.com&_nc_cat=104&_nc_oc=Q6cZ2gEcneWKZYglCNi6kD5lThwXGxLTtYbCl6dJ48beAu70IcMJ4XcqZ2DSKt7jgEbLj_o&_nc_ohc=T5-EL5GQ6oAQ7kNvwFxURCD&_nc_gid=6o57mOXEQwiwyBAIYswPcA&edm=APs17CUBAAAA&ccb=7-5&oh=00_AQMvRzJDRydNg-sZMfBqXeaIH8IRiIPZxjbi6kRco3LBwg&oe=6ADC0178&_nc_sid=10d13b",
"isVerified": false
},
"mediaType": "text",
"media": [],
"likeCount": 41,
"replyCount": 22,
"repostCount": 8,
"quoteCount": 1,
"shareCount": null,
"countsHidden": false,
"mentions": [],
"links": [],
"topic": null,
"linkPreview": null,
"textAttachment": null,
"gif": null,
"stickers": [],
"music": null,
"podcast": null,
"podcastEpisode": null,
"instagramPost": null,
"quotedPost": null,
"isQuotedPostUnavailable": false,
"isReply": false,
"replyToAuthor": null,
"rootPostAuthor": null,
"isPinned": false,
"isPinnedReply": false,
"isSpoiler": false,
"replyControl": "everyone",
"aiDetectionMethod": null,
"parentPosts": []
},
{
"id": "4011315598499317184",
"code": "DerDkiyiQXA",
"url": "https://www.threads.com/@ashman.is/post/DerDkiyiQXA",
"text": "Yeay my rumah bujang - dining progress. Nak beli mesin coffee pulak! Please recommend coffee machine apa yang simple for entry level",
"createdAt": "2026-10-19T10:35:04.000Z",
"isEdited": true,
"language": null,
"author": {
"id": "63424351209",
"handle": "ashman.is",
"url": "https://www.threads.com/@ashman.is",
"fullName": "Ameer Faris",
"profilePicUrl": "https://scontent-los4-1.cdninstagram.com/v/t51.82787-19/846221386_18133610236677789_7007536909766717596_n.jpg?stp=dst-jpg_s150x150_tt6&efg=eyJ2ZW5jb2RlX3RhZyI6InByb2ZpbGVfcGljLmRqYW5nby4xMDgwLmMyIn0&_nc_ht=scontent-los4-1.cdninstagram.com&_nc_cat=1&_nc_oc=Q6cZ2gEcneWKZYglCNi6kD5lThwXGxLTtYbCl6dJ48beAu70IcMJ4XcqZ2DSKt7jgEbLj_o&_nc_ohc=J5Fi1QfZ7KIQ7kNvwHzXm5e&_nc_gid=6o57mOXEQwiwyBAIYswPcA&edm=APs17CUBAAAA&ccb=7-5&oh=00_AQNXPRXsXobE-T3RagDYlCZHlaceKO4ehsvqongRbTb2EQ&oe=6ADC23AE&_nc_sid=10d13b",
"isVerified": true
},
"mediaType": "carousel",
"media": [
{
"type": "image",
"url": "https://scontent-los4-1.cdninstagram.com/v/t51.82787-15/858016518_17990422356119210_7234377358879619186_n.jpg?stp=cp6_dst-jpegr_e35_tt6&_nc_cat=102&ig_cache_key=NDAxMTMxNTMxMTE1NzcxMTk5Mw%3D%3D.3-ccb7-5&ccb=7-5&_nc_sid=58cdad&efg=eyJ2ZW5jb2RlX3RhZyI6IkNBUk9VU0VMX0lURU0ueHBpZHMuMzA3Mi5oZHIucmVndWxhcl9waG90by5DMyJ9&_nc_ohc=XLoX327TK2cQ7kNvwGywyuQ&_nc_oc=AdrvElfgTmNBspnba4kfc26k0HRZGH1WXDDlgs5rGyBBRAkz6TxGhKa5rgeXoNRM6Kg&_nc_ad=z-m&_nc_cid=0&_nc_zt=23&_nc_ht=scontent-los4-1.cdninstagram.com&_nc_gid=6o57mOXEQwiwyBAIYswPcA&_nc_ss=7a22e&oh=00_AQNjzsfjAC0Xv4kmlKxNeUKf8ZYv8L7_fty_GFpnGmtfUQ&oe=6ADC05BA",
"thumbnailUrl": null,
"width": 3072,
"height": 4096,
"altText": null,
"hasAudio": null
},
{
"type": "image",
"url": "https://scontent-los4-1.cdninstagram.com/v/t51.82787-15/856577468_17990422383119210_2150889464325433341_n.jpg?stp=cp6_dst-jpegr_e35_tt6&_nc_cat=108&ig_cache_key=NDAxMTMxNTM0Nzk1MDE5MjY3NA%3D%3D.3-ccb7-5&ccb=7-5&_nc_sid=58cdad&efg=eyJ2ZW5jb2RlX3RhZyI6IkNBUk9VU0VMX0lURU0ueHBpZHMuMzA3Mi5oZHIucmVndWxhcl9waG90by5DMyJ9&_nc_ohc=T9g6Q8wUwfMQ7kNvwEmXJ5Z&_nc_oc=AdpTIa6_y9_QQZUHAQFSMf40ItFCgnSjQj8UhKCmyrK_-ZPdBHfS_smP8nnQop4JXuQ&_nc_ad=z-m&_nc_cid=0&_nc_zt=23&_nc_ht=scontent-los4-1.cdninstagram.com&_nc_gid=6o57mOXEQwiwyBAIYswPcA&_nc_ss=7a22e&oh=00_AQN8pGn7kb2pS9XAd8klAOBmTeqD6qtWbIqpEJQhNOdCXg&oe=6ADC0068",
"thumbnailUrl": null,
"width": 3072,
"height": 4096,
"altText": null,
"hasAudio": null
}
],
"likeCount": 3358,
"replyCount": 112,
"repostCount": 343,
"quoteCount": 12,
"shareCount": 510,
"countsHidden": false,
"mentions": [],
"links": [],
"topic": null,
"linkPreview": null,
"textAttachment": null,
"gif": null,
"stickers": [],
"music": null,
"podcast": null,
"podcastEpisode": null,
"instagramPost": null,
"quotedPost": null,
"isQuotedPostUnavailable": false,
"isReply": false,
"replyToAuthor": null,
"rootPostAuthor": null,
"isPinned": false,
"isPinnedReply": false,
"isSpoiler": false,
"replyControl": "everyone",
"aiDetectionMethod": null,
"parentPosts": []
},
{
"id": "4011475450739618801",
"code": "Dern6syiPPx",
"url": "https://www.threads.com/@mustafa21.35/post/Dern6syiPPx",
"text": "Akademi coffee",
"createdAt": "2026-10-19T15:52:40.000Z",
"isEdited": false,
"language": null,
"author": {
"id": "43594090351",
"handle": "mustafa21.35",
"url": "https://www.threads.com/@mustafa21.35",
"fullName": "Mustafa21.35",
"profilePicUrl": "https://scontent-los4-1.cdninstagram.com/v/t51.82787-19/758658363_18074735495450352_7691589404724910550_n.jpg?stp=dst-jpg_s150x150_tt6&efg=eyJ2ZW5jb2RlX3RhZyI6InByb2ZpbGVfcGljLmRqYW5nby45MDAuYzIifQ&_nc_ht=scontent-los4-1.cdninstagram.com&_nc_cat=100&_nc_oc=Q6cZ2gEcneWKZYglCNi6kD5lThwXGxLTtYbCl6dJ48beAu70IcMJ4XcqZ2DSKt7jgEbLj_o&_nc_ohc=5k779HihsFsQ7kNvwFXuy27&_nc_gid=6o57mOXEQwiwyBAIYswPcA&edm=APs17CUBAAAA&ccb=7-5&oh=00_AQPSnFU_KaMIMfudThsKpWxWRIUyDJ0KYCoOwT4mjGZphg&oe=6ADC13A2&_nc_sid=10d13b",
"isVerified": false
},
"mediaType": "image",
"media": [
{
"type": "image",
"url": "https://scontent-los4-1.cdninstagram.com/v/t51.82787-15/858181245_18096037988450352_6232265725398473225_n.jpg?stp=dst-jpg_e35_tt6&_nc_cat=108&ig_cache_key=NDAxMTQ3NTQ1MDczOTYxODgwMQ%3D%3D.3-ccb7-5&ccb=7-5&_nc_sid=58cdad&efg=eyJ2ZW5jb2RlX3RhZyI6IkZFRUQueHBpZHMuMjA2Mi5zZHIucmVndWxhcl9waG90by5DMyJ9&_nc_ohc=HuxOs0Vry0IQ7kNvwEKcKKr&_nc_oc=AdrHAR9tyGpQHY6WmYOjOFKyCXioxMXcW4UVUnAqbBEYd-HJvBPB5NwPToRE-O4bv0Q&_nc_ad=z-m&_nc_cid=0&_nc_zt=23&_nc_ht=scontent-los4-1.cdninstagram.com&_nc_gid=6o57mOXEQwiwyBAIYswPcA&_nc_ss=7a22e&oh=00_AQPdHeq79NHEByLIkLheYxehYsU9GkJWg7dWT2C6nB7VbQ&oe=6ADC09F5",
"thumbnailUrl": null,
"width": 2062,
"height": 3664,
"altText": null,
"hasAudio": null
}
],
"likeCount": 37,
"replyCount": 0,
"repostCount": 0,
"quoteCount": 0,
"shareCount": null,
"countsHidden": false,
"mentions": [],
"links": [],
"topic": null,
"linkPreview": null,
"textAttachment": null,
"gif": null,
"stickers": [],
"music": {
"songId": "298758564236239",
"title": "Naze",
"artist": "Alişan",
"imageUrl": "https://scontent-los4-1.xx.fbcdn.net/v/t39.30808-6/489528734_90029761732871_8489383670698725054_n.jpg?stp=dst-jpg_s1080x2048_tt6&_nc_cat=1&ccb=1-7&_nc_sid=2f2557&_nc_ohc=NSW-BfZXFawQ7kNvwEMj1Qx&_nc_oc=Adr0yDpg6YXWTGnfsSLqivz-aGcM2VRikKR-cqxcVzgAoKdKadsF-nKPmxGeCrAdgSw&_nc_ad=z-m&_nc_cid=0&_nc_zt=23&_nc_ht=scontent-los4-1.xx&_nc_gid=6o57mOXEQwiwyBAIYswPcA&_nc_ss=7a20f&oh=00_AQOU5avQurAjXIfuzM27ciSn-7jASSD7vILE3134KVzQfw&oe=6ADC17D0&dl=1",
"startTimeMs": 60050
},
"podcast": null,
"podcastEpisode": null,
"instagramPost": null,
"quotedPost": null,
"isQuotedPostUnavailable": false,
"isReply": false,
"replyToAuthor": null,
"rootPostAuthor": null,
"isPinned": false,
"isPinnedReply": false,
"isSpoiler": false,
"replyControl": "everyone",
"aiDetectionMethod": null,
"parentPosts": []
}
],
"count": 20,
"fetchedAt": "2026-10-19T16:35:18.974Z"
},
"meta": {
"requestId": "req_8f0c2b7e-1a2b-4c3d-9e8f-0a1b2c3d4e5f",
"creditsCharged": 1,
"creditsRemaining": 4999,
"cached": false
}
}{
"error": {
"code": "UNAUTHORIZED",
"message": "API key required — pass it in the `x-api-key` header.",
"requestId": "req_8f0c2b7e-1a2b-4c3d-9e8f-0a1b2c3d4e5f"
}
}{
"error": {
"code": "INSUFFICIENT_CREDITS",
"message": "This request costs 1 credit, but your balance is 0. Top up to continue.",
"requestId": "req_8f0c2b7e-1a2b-4c3d-9e8f-0a1b2c3d4e5f"
}
}{
"error": {
"code": "VALIDATION_ERROR",
"message": "Request validation failed",
"requestId": "req_8f0c2b7e-1a2b-4c3d-9e8f-0a1b2c3d4e5f",
"details": [
{
"path": "url",
"message": "url is required"
}
]
}
}{
"error": {
"code": "RATE_LIMITED",
"message": "Rate limit exceeded — max 100 requests per 60s. Retry in ~30s.",
"requestId": "req_8f0c2b7e-1a2b-4c3d-9e8f-0a1b2c3d4e5f"
}
}{
"error": {
"code": "UPSTREAM_BLOCKED",
"message": "The source is temporarily unavailable. Please try again shortly.",
"requestId": "req_8f0c2b7e-1a2b-4c3d-9e8f-0a1b2c3d4e5f"
}
}Keyword search
Searches Threads posts by keyword, like Threads search’s top results: up to 20 posts in one response, optionally limited to a date range with startdate and enddate. Each post has its id, link, text, date, author, like, reply, repost, quote and share counts, images, videos and carousels (with alt text), mentions and links, its topic, link preview, text attachment, GIFs and stickers, music, podcast or episode, an embedded Instagram post, the quoted post, and pinned, spoiler and AI-label flags. A matching reply also comes with the posts it replies to (parentPosts). No match returns an empty list. Only publicly available data is returned.
curl --request GET \
--url https://api.scraperize.com/v1/threads/search \
--header 'x-api-key: <api-key>'import requests
url = "https://api.scraperize.com/v1/threads/search"
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://api.scraperize.com/v1/threads/search', 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.scraperize.com/v1/threads/search",
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://api.scraperize.com/v1/threads/search"
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://api.scraperize.com/v1/threads/search")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.scraperize.com/v1/threads/search")
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{
"data": {
"query": "coffee",
"startDate": null,
"endDate": null,
"posts": [
{
"id": "4011488263802609679",
"code": "Derq1J4mmAP",
"url": "https://www.threads.com/@robertgcoulter/post/Derq1J4mmAP",
"text": "A long coffee read - \nThe United States is now threatening Europe with devastating economic retaliation over Elon Musk's Starlink. And the reason behind this latest confrontation should concern Canada too.\n\nThis is becoming much bigger than a disagreement over satellite internet.",
"createdAt": "2026-10-19T16:18:07.000Z",
"isEdited": false,
"language": null,
"author": {
"id": "66420218195",
"handle": "robertgcoulter",
"url": "https://www.threads.com/@robertgcoulter",
"fullName": "Robert Coulter",
"profilePicUrl": "https://scontent-los4-1.cdninstagram.com/v/t51.82787-19/773827420_17955109617210196_3137191367319950265_n.jpg?stp=dst-jpg_s150x150_tt6&efg=eyJ2ZW5jb2RlX3RhZyI6InByb2ZpbGVfcGljLmRqYW5nby4xMDgwLmMyIn0&_nc_ht=scontent-los4-1.cdninstagram.com&_nc_cat=104&_nc_oc=Q6cZ2gEcneWKZYglCNi6kD5lThwXGxLTtYbCl6dJ48beAu70IcMJ4XcqZ2DSKt7jgEbLj_o&_nc_ohc=T5-EL5GQ6oAQ7kNvwFxURCD&_nc_gid=6o57mOXEQwiwyBAIYswPcA&edm=APs17CUBAAAA&ccb=7-5&oh=00_AQMvRzJDRydNg-sZMfBqXeaIH8IRiIPZxjbi6kRco3LBwg&oe=6ADC0178&_nc_sid=10d13b",
"isVerified": false
},
"mediaType": "text",
"media": [],
"likeCount": 41,
"replyCount": 22,
"repostCount": 8,
"quoteCount": 1,
"shareCount": null,
"countsHidden": false,
"mentions": [],
"links": [],
"topic": null,
"linkPreview": null,
"textAttachment": null,
"gif": null,
"stickers": [],
"music": null,
"podcast": null,
"podcastEpisode": null,
"instagramPost": null,
"quotedPost": null,
"isQuotedPostUnavailable": false,
"isReply": false,
"replyToAuthor": null,
"rootPostAuthor": null,
"isPinned": false,
"isPinnedReply": false,
"isSpoiler": false,
"replyControl": "everyone",
"aiDetectionMethod": null,
"parentPosts": []
},
{
"id": "4011315598499317184",
"code": "DerDkiyiQXA",
"url": "https://www.threads.com/@ashman.is/post/DerDkiyiQXA",
"text": "Yeay my rumah bujang - dining progress. Nak beli mesin coffee pulak! Please recommend coffee machine apa yang simple for entry level",
"createdAt": "2026-10-19T10:35:04.000Z",
"isEdited": true,
"language": null,
"author": {
"id": "63424351209",
"handle": "ashman.is",
"url": "https://www.threads.com/@ashman.is",
"fullName": "Ameer Faris",
"profilePicUrl": "https://scontent-los4-1.cdninstagram.com/v/t51.82787-19/846221386_18133610236677789_7007536909766717596_n.jpg?stp=dst-jpg_s150x150_tt6&efg=eyJ2ZW5jb2RlX3RhZyI6InByb2ZpbGVfcGljLmRqYW5nby4xMDgwLmMyIn0&_nc_ht=scontent-los4-1.cdninstagram.com&_nc_cat=1&_nc_oc=Q6cZ2gEcneWKZYglCNi6kD5lThwXGxLTtYbCl6dJ48beAu70IcMJ4XcqZ2DSKt7jgEbLj_o&_nc_ohc=J5Fi1QfZ7KIQ7kNvwHzXm5e&_nc_gid=6o57mOXEQwiwyBAIYswPcA&edm=APs17CUBAAAA&ccb=7-5&oh=00_AQNXPRXsXobE-T3RagDYlCZHlaceKO4ehsvqongRbTb2EQ&oe=6ADC23AE&_nc_sid=10d13b",
"isVerified": true
},
"mediaType": "carousel",
"media": [
{
"type": "image",
"url": "https://scontent-los4-1.cdninstagram.com/v/t51.82787-15/858016518_17990422356119210_7234377358879619186_n.jpg?stp=cp6_dst-jpegr_e35_tt6&_nc_cat=102&ig_cache_key=NDAxMTMxNTMxMTE1NzcxMTk5Mw%3D%3D.3-ccb7-5&ccb=7-5&_nc_sid=58cdad&efg=eyJ2ZW5jb2RlX3RhZyI6IkNBUk9VU0VMX0lURU0ueHBpZHMuMzA3Mi5oZHIucmVndWxhcl9waG90by5DMyJ9&_nc_ohc=XLoX327TK2cQ7kNvwGywyuQ&_nc_oc=AdrvElfgTmNBspnba4kfc26k0HRZGH1WXDDlgs5rGyBBRAkz6TxGhKa5rgeXoNRM6Kg&_nc_ad=z-m&_nc_cid=0&_nc_zt=23&_nc_ht=scontent-los4-1.cdninstagram.com&_nc_gid=6o57mOXEQwiwyBAIYswPcA&_nc_ss=7a22e&oh=00_AQNjzsfjAC0Xv4kmlKxNeUKf8ZYv8L7_fty_GFpnGmtfUQ&oe=6ADC05BA",
"thumbnailUrl": null,
"width": 3072,
"height": 4096,
"altText": null,
"hasAudio": null
},
{
"type": "image",
"url": "https://scontent-los4-1.cdninstagram.com/v/t51.82787-15/856577468_17990422383119210_2150889464325433341_n.jpg?stp=cp6_dst-jpegr_e35_tt6&_nc_cat=108&ig_cache_key=NDAxMTMxNTM0Nzk1MDE5MjY3NA%3D%3D.3-ccb7-5&ccb=7-5&_nc_sid=58cdad&efg=eyJ2ZW5jb2RlX3RhZyI6IkNBUk9VU0VMX0lURU0ueHBpZHMuMzA3Mi5oZHIucmVndWxhcl9waG90by5DMyJ9&_nc_ohc=T9g6Q8wUwfMQ7kNvwEmXJ5Z&_nc_oc=AdpTIa6_y9_QQZUHAQFSMf40ItFCgnSjQj8UhKCmyrK_-ZPdBHfS_smP8nnQop4JXuQ&_nc_ad=z-m&_nc_cid=0&_nc_zt=23&_nc_ht=scontent-los4-1.cdninstagram.com&_nc_gid=6o57mOXEQwiwyBAIYswPcA&_nc_ss=7a22e&oh=00_AQN8pGn7kb2pS9XAd8klAOBmTeqD6qtWbIqpEJQhNOdCXg&oe=6ADC0068",
"thumbnailUrl": null,
"width": 3072,
"height": 4096,
"altText": null,
"hasAudio": null
}
],
"likeCount": 3358,
"replyCount": 112,
"repostCount": 343,
"quoteCount": 12,
"shareCount": 510,
"countsHidden": false,
"mentions": [],
"links": [],
"topic": null,
"linkPreview": null,
"textAttachment": null,
"gif": null,
"stickers": [],
"music": null,
"podcast": null,
"podcastEpisode": null,
"instagramPost": null,
"quotedPost": null,
"isQuotedPostUnavailable": false,
"isReply": false,
"replyToAuthor": null,
"rootPostAuthor": null,
"isPinned": false,
"isPinnedReply": false,
"isSpoiler": false,
"replyControl": "everyone",
"aiDetectionMethod": null,
"parentPosts": []
},
{
"id": "4011475450739618801",
"code": "Dern6syiPPx",
"url": "https://www.threads.com/@mustafa21.35/post/Dern6syiPPx",
"text": "Akademi coffee",
"createdAt": "2026-10-19T15:52:40.000Z",
"isEdited": false,
"language": null,
"author": {
"id": "43594090351",
"handle": "mustafa21.35",
"url": "https://www.threads.com/@mustafa21.35",
"fullName": "Mustafa21.35",
"profilePicUrl": "https://scontent-los4-1.cdninstagram.com/v/t51.82787-19/758658363_18074735495450352_7691589404724910550_n.jpg?stp=dst-jpg_s150x150_tt6&efg=eyJ2ZW5jb2RlX3RhZyI6InByb2ZpbGVfcGljLmRqYW5nby45MDAuYzIifQ&_nc_ht=scontent-los4-1.cdninstagram.com&_nc_cat=100&_nc_oc=Q6cZ2gEcneWKZYglCNi6kD5lThwXGxLTtYbCl6dJ48beAu70IcMJ4XcqZ2DSKt7jgEbLj_o&_nc_ohc=5k779HihsFsQ7kNvwFXuy27&_nc_gid=6o57mOXEQwiwyBAIYswPcA&edm=APs17CUBAAAA&ccb=7-5&oh=00_AQPSnFU_KaMIMfudThsKpWxWRIUyDJ0KYCoOwT4mjGZphg&oe=6ADC13A2&_nc_sid=10d13b",
"isVerified": false
},
"mediaType": "image",
"media": [
{
"type": "image",
"url": "https://scontent-los4-1.cdninstagram.com/v/t51.82787-15/858181245_18096037988450352_6232265725398473225_n.jpg?stp=dst-jpg_e35_tt6&_nc_cat=108&ig_cache_key=NDAxMTQ3NTQ1MDczOTYxODgwMQ%3D%3D.3-ccb7-5&ccb=7-5&_nc_sid=58cdad&efg=eyJ2ZW5jb2RlX3RhZyI6IkZFRUQueHBpZHMuMjA2Mi5zZHIucmVndWxhcl9waG90by5DMyJ9&_nc_ohc=HuxOs0Vry0IQ7kNvwEKcKKr&_nc_oc=AdrHAR9tyGpQHY6WmYOjOFKyCXioxMXcW4UVUnAqbBEYd-HJvBPB5NwPToRE-O4bv0Q&_nc_ad=z-m&_nc_cid=0&_nc_zt=23&_nc_ht=scontent-los4-1.cdninstagram.com&_nc_gid=6o57mOXEQwiwyBAIYswPcA&_nc_ss=7a22e&oh=00_AQPdHeq79NHEByLIkLheYxehYsU9GkJWg7dWT2C6nB7VbQ&oe=6ADC09F5",
"thumbnailUrl": null,
"width": 2062,
"height": 3664,
"altText": null,
"hasAudio": null
}
],
"likeCount": 37,
"replyCount": 0,
"repostCount": 0,
"quoteCount": 0,
"shareCount": null,
"countsHidden": false,
"mentions": [],
"links": [],
"topic": null,
"linkPreview": null,
"textAttachment": null,
"gif": null,
"stickers": [],
"music": {
"songId": "298758564236239",
"title": "Naze",
"artist": "Alişan",
"imageUrl": "https://scontent-los4-1.xx.fbcdn.net/v/t39.30808-6/489528734_90029761732871_8489383670698725054_n.jpg?stp=dst-jpg_s1080x2048_tt6&_nc_cat=1&ccb=1-7&_nc_sid=2f2557&_nc_ohc=NSW-BfZXFawQ7kNvwEMj1Qx&_nc_oc=Adr0yDpg6YXWTGnfsSLqivz-aGcM2VRikKR-cqxcVzgAoKdKadsF-nKPmxGeCrAdgSw&_nc_ad=z-m&_nc_cid=0&_nc_zt=23&_nc_ht=scontent-los4-1.xx&_nc_gid=6o57mOXEQwiwyBAIYswPcA&_nc_ss=7a20f&oh=00_AQOU5avQurAjXIfuzM27ciSn-7jASSD7vILE3134KVzQfw&oe=6ADC17D0&dl=1",
"startTimeMs": 60050
},
"podcast": null,
"podcastEpisode": null,
"instagramPost": null,
"quotedPost": null,
"isQuotedPostUnavailable": false,
"isReply": false,
"replyToAuthor": null,
"rootPostAuthor": null,
"isPinned": false,
"isPinnedReply": false,
"isSpoiler": false,
"replyControl": "everyone",
"aiDetectionMethod": null,
"parentPosts": []
}
],
"count": 20,
"fetchedAt": "2026-10-19T16:35:18.974Z"
},
"meta": {
"requestId": "req_8f0c2b7e-1a2b-4c3d-9e8f-0a1b2c3d4e5f",
"creditsCharged": 1,
"creditsRemaining": 4999,
"cached": false
}
}{
"error": {
"code": "UNAUTHORIZED",
"message": "API key required — pass it in the `x-api-key` header.",
"requestId": "req_8f0c2b7e-1a2b-4c3d-9e8f-0a1b2c3d4e5f"
}
}{
"error": {
"code": "INSUFFICIENT_CREDITS",
"message": "This request costs 1 credit, but your balance is 0. Top up to continue.",
"requestId": "req_8f0c2b7e-1a2b-4c3d-9e8f-0a1b2c3d4e5f"
}
}{
"error": {
"code": "VALIDATION_ERROR",
"message": "Request validation failed",
"requestId": "req_8f0c2b7e-1a2b-4c3d-9e8f-0a1b2c3d4e5f",
"details": [
{
"path": "url",
"message": "url is required"
}
]
}
}{
"error": {
"code": "RATE_LIMITED",
"message": "Rate limit exceeded — max 100 requests per 60s. Retry in ~30s.",
"requestId": "req_8f0c2b7e-1a2b-4c3d-9e8f-0a1b2c3d4e5f"
}
}{
"error": {
"code": "UPSTREAM_BLOCKED",
"message": "The source is temporarily unavailable. Please try again shortly.",
"requestId": "req_8f0c2b7e-1a2b-4c3d-9e8f-0a1b2c3d4e5f"
}
}cache_max_age) are free.Copy for AI assistant
Copy for AI assistant
I want to make an API call to /v1/threads/search. Here are the details:
Endpoint: GET https://api.scraperize.com/v1/threads/search
Description: Searches Threads posts by keyword, like Threads search's top results: up to 20 posts in one response, optionally limited to a date range with `startdate` and `enddate`. Each post has its id, link, text, date, author, like, reply, repost, quote and share counts, images, videos and carousels (with alt text), mentions and links, its topic, link preview, text attachment, GIFs and stickers, music, podcast or episode, an embedded Instagram post, the quoted post, and pinned, spoiler and AI-label flags. A matching reply also comes with the posts it replies to (`parentPosts`). No match returns an empty list. Only publicly available data is returned.
Required Headers:
- x-api-key: Your API key
Parameters:
- query (string) [required]: The keyword(s) to search for, e.g. `coffee`.
- startdate (string): Only posts from this day on, as `YYYY-MM-DD` (UTC), e.g. `2024-07-01`.
- enddate (string): Only posts up to the end of this day, as `YYYY-MM-DD` (UTC). Must not be before `startdate`.
- cache_max_age (select): Optional. Return a cached result if one this age or newer exists — served for **0 credits** with `meta.cached=true` and `meta.cachedAt`. Otherwise a fresh scrape runs (**1 credit**) and refreshes the cache. Omit to always scrape fresh.
Example Response:
{
"data": {
"query": "coffee",
"startDate": null,
"endDate": null,
"posts": [
{
"id": "4011488263802609679",
"code": "Derq1J4mmAP",
"url": "https://www.threads.com/@robertgcoulter/post/Derq1J4mmAP",
"text": "A long coffee read - \nThe United States is now threatening Europe with devastating economic retaliation over Elon Musk's Starlink. And the reason behind this la…",
"createdAt": "2026-10-19T16:18:07.000Z",
"isEdited": false,
"language": null,
"author": {
"id": "66420218195",
"handle": "robertgcoulter",
"url": "https://www.threads.com/@robertgcoulter",
"fullName": "Robert Coulter",
"profilePicUrl": "https://scontent-los4-1.cdninstagram.com/v/t51.82787-19/773827420_17955109617210196_3137191367319950265_n.jpg?stp=dst-jpg_s150x150_tt6&efg=eyJ2ZW5jb2RlX3RhZyI6I…",
"isVerified": false
},
"mediaType": "text",
"media": [],
"likeCount": 41,
"replyCount": 22,
"repostCount": 8,
"quoteCount": 1,
"shareCount": null,
"countsHidden": false,
"mentions": [],
"links": [],
"topic": null,
"linkPreview": null,
"textAttachment": null,
"gif": null,
"stickers": [],
"music": null,
"podcast": null,
"podcastEpisode": null,
"instagramPost": null,
"quotedPost": null,
"isQuotedPostUnavailable": false,
"isReply": false,
"replyToAuthor": null,
"rootPostAuthor": null,
"isPinned": false,
"isPinnedReply": false,
"isSpoiler": false,
"replyControl": "everyone",
"aiDetectionMethod": null,
"parentPosts": []
}
],
"count": 20,
"fetchedAt": "2026-10-19T16:35:18.974Z"
},
"meta": {
"requestId": "req_8f0c2b7e-1a2b-4c3d-9e8f-0a1b2c3d4e5f",
"creditsCharged": 1,
"creditsRemaining": 4999,
"cached": false
}
}
Please help me write code in my preferred programming language to make this API call and handle the response appropriately. Include error handling and best practices.
Authorizations
Your API key. Send it in the x-api-key header (or Authorization: Bearer <key>). Create and manage keys from your dashboard.
Query Parameters
The keyword(s) to search for, e.g. coffee.
1 - 100Only posts from this day on, as YYYY-MM-DD (UTC), e.g. 2024-07-01.
Only posts up to the end of this day, as YYYY-MM-DD (UTC). Must not be before startdate.
Optional. Return a cached result if one this age or newer exists — served for 0 credits with meta.cached=true and meta.cachedAt. Otherwise a fresh scrape runs (1 credit) and refreshes the cache. Omit to always scrape fresh.
1d, 3d, 7d, 14d, 30d