Get product availability
curl --request GET \
--url https://scrapebadger.com/v1/target/products/{tcin}/availability \
--header 'X-API-Key: <x-api-key>'import requests
url = "https://scrapebadger.com/v1/target/products/{tcin}/availability"
headers = {"X-API-Key": "<x-api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-API-Key': '<x-api-key>'}};
fetch('https://scrapebadger.com/v1/target/products/{tcin}/availability', 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/target/products/{tcin}/availability",
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: <x-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/target/products/{tcin}/availability"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-API-Key", "<x-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/target/products/{tcin}/availability")
.header("X-API-Key", "<x-api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://scrapebadger.com/v1/target/products/{tcin}/availability")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-API-Key"] = '<x-api-key>'
response = http.request(request)
puts response.read_bodyTarget endpoints
Get product availability
Get product availability.
GET
/
v1
/
target
/
products
/
{tcin}
/
availability
Get product availability
curl --request GET \
--url https://scrapebadger.com/v1/target/products/{tcin}/availability \
--header 'X-API-Key: <x-api-key>'import requests
url = "https://scrapebadger.com/v1/target/products/{tcin}/availability"
headers = {"X-API-Key": "<x-api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-API-Key': '<x-api-key>'}};
fetch('https://scrapebadger.com/v1/target/products/{tcin}/availability', 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/target/products/{tcin}/availability",
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: <x-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/target/products/{tcin}/availability"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-API-Key", "<x-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/target/products/{tcin}/availability")
.header("X-API-Key", "<x-api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://scrapebadger.com/v1/target/products/{tcin}/availability")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-API-Key"] = '<x-api-key>'
response = http.request(request)
puts response.read_bodyGet product availability.
Credits: 10 per successful request. Failed requests and empty result sets are not charged.
Browse all Target endpoints.
Authentication
string
required
Your ScrapeBadger API key.
Parameters
string
required
Tcin.
string
required
Zip code.
integer
default:"10"
Limit. Minimum: 1. Maximum: 20.
Response
{
"product_id": "80179068",
"product": {
"__typename": "Product",
"tcin": "80179068",
"item": {
"dpci": "030-09-6480",
"relationship_type_code": "VC"
},
"parent": {
"__typename": "Product",
"tcin": "82286564",
"item": {
"relationship_type_code": "VAP"
}
}
},
"buy_unit_of_measure": "EACH",
"availability_unit_of_measure": "EACH",
"available_to_purchase_date_time": "1970-01-01T00:00:00.000Z",
"street_date": "1970-01-01T00:00:00.000Z",
"locations": [
{
"location_id": "1375",
"location_available_to_promise_quantity": 7.0,
"distance": 0.77,
"order_pickup": {
"pickup_date": "2026-10-16",
"guest_pick_sla": 120,
"location_locale": "America/Chicago",
"availability_status": "IN_STOCK",
"minimum_order_quantity": 1.0
},
"in_store_only": {
"availability_status": "IN_STOCK"
},
"curbside": {
"pickup_date": "2026-10-16",
"guest_pick_sla": 120,
"availability_status": "IN_STOCK",
"location_locale": "America/Chicago",
"minimum_order_quantity": 1.0
},
"store": {
"store_id": "1375",
"main_voice_phone_number": "612-338-0085",
"location_name": "Mpls Nicollet Mall",
"mailing_address": {
"address_line1": "900 Nicollet Mall",
"city": "Minneapolis",
"postal_code": "55403-2530",
"state": "Minnesota"
},
"rolling_operating_hours": {
"main_hours": {
"days": [
{}
]
}
}
}
}
]
}
Example
curl --get 'https://scrapebadger.com/v1/target/products/80179068/availability' \
--header 'X-API-Key: YOUR_API_KEY' \
--data-urlencode 'zip_code=55403' \
--data-urlencode 'limit=10'

