logo

Postal Code (ZIP Code) Targeting

Postal code targeting

Scrape.do supports postal code (ZIP code) based targeting for proxy requests. This allows you to access location-specific content such as local pricing, regional search results, and geo-restricted pages by routing your requests through proxies in a specific postal code area.

Required: Postal code targeting requires both super=true and a valid geoCode parameter. It only works with Residential & Mobile proxies.

Usage

Add the postalcode (or zipcode) parameter to your API request along with super=true and geoCode:

https://api.scrape.do?token=YOUR_TOKEN&url=TARGET_URL&super=true&geoCode=us&postalcode=90210

Parameters

ParameterRequiredDescription
superYesMust be true. Postal code targeting only works with Residential & Mobile proxies.
geoCodeYes2-letter country code (ISO 3166-1 alpha-2). Example: us, gb, de
postalcode or zipcodeYesThe postal code for the target area. Both parameter names are interchangeable and work identically.

Supported Countries & Example Postal Codes

Below is a list of Example countries with example postal codes you can use:

CountrygeoCodeFormatExample Postal Codes
United Statesus5-digit90210, 10001, 60601, 30301, 98101
United KingdomgbAlphanumeric (A9A 9AA)SW1A1AA, EC1A1BB, E14, SE1, M1
Germanyde5-digit10115, 80331, 20095, 50667, 70173
Francefr5-digit75001, 13001, 69001, 31000, 33000
CanadacaAlphanumeric (A9A 9A9)M5V3L9, V6B1A1, H3B1A7, T2P1J9
Australiaau4-digit2000, 3000, 4000, 5000, 6000
Indiain6-digit110001, 400001, 560001, 600001
Netherlandsnl4-digit + 2 letters1012AB, 3011AA, 1000AA
Italyit5-digit00100, 20100, 80100, 50100
Spaines5-digit28001, 08001, 41001, 46001
Brazilbr5 or 8-digit01001, 20040, 30130, 01001000
Japanjp7-digit (with or without hyphen)100-0001, 530-0001, 460-0008

Important Notes

  • postalcode and zipcode parameters are interchangeable — both work identically.
  • geoCode is required. A postal code alone without a country code will not work.
  • super=true is required. Without it, the postal code parameter will be ignored and requests will be routed through datacenter proxies.
  • Postal codes should be sent without spaces. For example, use SW1A1AA instead of SW1A 1AA for UK postal codes.

Example Requests

# United States — Beverly Hills area
&super=true&geoCode=us&postalcode=90210

# United States — New York area
&super=true&geoCode=us&zipcode=10001

# United Kingdom — Central London
&super=true&geoCode=gb&postalcode=SW1A1AA

# Germany — Berlin
&super=true&geoCode=de&postalcode=10115

# Japan — Tokyo (Chiyoda)
&super=true&geoCode=jp&postalcode=100-0001

Code Examples

curl --location --request GET 'https://api.scrape.do/?url=https://httpbin.co/anything&token=YOUR_TOKEN&super=true&geoCode=us&postalcode=90210'
import requests
import urllib.parse
token = "YOUR_TOKEN"
targetUrl = urllib.parse.quote("https://httpbin.co/anything")
geoCode = "us"
postalcode = "90210"
url = "http://api.scrape.do/?token={}&url={}&super=true&geoCode={}&postalcode={}".format(token, targetUrl, geoCode, postalcode)
response = requests.request("GET", url)
print(response.text)
const axios = require('axios');
const token = "YOUR_TOKEN";
const targetUrl = encodeURIComponent("https://httpbin.co/anything");
const geoCode = "us";
const postalcode = "90210";
const config = {
    'method': 'GET',
    'url': `https://api.scrape.do/?token=${token}&url=${targetUrl}&super=true&geoCode=${geoCode}&postalcode=${postalcode}`,
    'headers': {}
};
axios(config)
    .then(function (response) {
        console.log(response.data);
    })
    .catch(function (error) {
        console.log(error);
    });
package main

import (
	"fmt"
	"io/ioutil"
	"net/http"
	"net/url"
)

func main() {
	token := "YOUR_CODE"
	encoded_url := url.QueryEscape("https://httpbin.co/anything")
	url := fmt.Sprintf("https://api.scrape.do/?token=%s&url=%s&super=true&geoCode=us&postalcode=90210", token, encoded_url)
	method := "GET"
	client := &http.Client{}
	req, err := http.NewRequest(method, url, nil)
	if err != nil {
		fmt.Println(err)
		return
	}
	res, err := client.Do(req)
	if err != nil {
		fmt.Println(err)
		return
	}
	defer res.Body.Close()
	body, err := ioutil.ReadAll(res.Body)
	if err != nil {
		fmt.Println(err)
		return
	}
	fmt.Println(string(body))
}
require "uri"
require "net/http"
require 'cgi'
str =  CGI.escape "https://httpbin.co/anything"
url = URI("https://api.scrape.do/?url=" + str + "&token=YOUR_TOKEN&super=true&geoCode=us&postalcode=90210")
https = Net::HTTP.new(url.host, url.port)
https.use_ssl = true
request = Net::HTTP::Get.new(url)
response = https.request(request)
puts response.read_body
OkHttpClient client = new OkHttpClient().newBuilder()
  .build();
MediaType mediaType = MediaType.parse("text/plain");
RequestBody body = RequestBody.create(mediaType, "");
String encoded_url = URLEncoder.encode("https://httpbin.co/anything", "UTF-8");
Request request = new Request.Builder()
  .url("https://api.scrape.do/?url=" + encoded_url + "&token=YOUR_TOKEN&super=true&geoCode=us&postalcode=90210")
  .method("GET", body)
  .build();
Response response = client.newCall(request).execute();
string token = "YOUR_TOKEN";
string url = WebUtility.UrlEncode("https://httpbin.co/anything");
var client = new HttpClient();
var requestURL = $"https://api.scrape.do/?token={token}&url={url}&super=true&geoCode=us&postalcode=90210";
var request = new HttpRequestMessage(HttpMethod.Get, requestURL);
var response = client.SendAsync(request).Result;
var content = response.Content.ReadAsStringAsync().Result;
Console.WriteLine(content);
<?php
$curl = curl_init();
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_HEADER, false);
$data = [
   "url" => "https://httpbin.co/anything",
   "token" => "YOUR_TOKEN",
   "super" => "true",
   "geoCode" => "us",
   "postalcode" => "90210"
];
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'GET');
curl_setopt($curl, CURLOPT_URL, "https://api.scrape.do/?".http_build_query($data));
curl_setopt($curl, CURLOPT_HTTPHEADER, array(
    "Accept: */*",
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
?>

On this page