WebScrapingAPI Docs

Utility APIs

Use helper endpoints for supported SERP locations and Amazon metadata.

WebScrapingAPI provides helper APIs for metadata that is useful before you build a paid scraping request. These endpoints are GET-only and do not require an API key.

Locations API

The Locations API returns supported SERP API locations.

curl --get "https://locations.webscrapingapi.com" \
  --data-urlencode "q=Austin" \
  --data-urlencode "limit=5"
const url = new URL("https://locations.webscrapingapi.com");
url.searchParams.set("q", "Austin");
url.searchParams.set("limit", "5");

const response = await fetch(url);
const data = await response.json();

console.log(data);
import requests

response = requests.get(
    "https://locations.webscrapingapi.com",
    params={"q": "Austin", "limit": 5},
)

print(response.json())
<?php

$query = http_build_query([
    "q" => "Austin",
    "limit" => 5,
]);

$ch = curl_init("https://locations.webscrapingapi.com?" . $query);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

$response = curl_exec($ch);
curl_close($ch);

echo $response;
package main

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

func main() {
    endpoint, _ := url.Parse("https://locations.webscrapingapi.com")
    query := endpoint.Query()
    query.Set("q", "Austin")
    query.Set("limit", "5")
    endpoint.RawQuery = query.Encode()

    response, err := http.Get(endpoint.String())
    if err != nil {
        panic(err)
    }
    defer response.Body.Close()

    body, _ := io.ReadAll(response.Body)
    fmt.Println(string(body))
}
import java.net.URI;
import java.net.URLEncoder;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.nio.charset.StandardCharsets;

public class Main {
    public static void main(String[] args) throws Exception {
        String query = "q=" + URLEncoder.encode("Austin", StandardCharsets.UTF_8)
            + "&limit=5";

        HttpRequest request = HttpRequest.newBuilder()
            .uri(URI.create("https://locations.webscrapingapi.com?" + query))
            .GET()
            .build();

        HttpResponse<String> response = HttpClient.newHttpClient().send(
            request,
            HttpResponse.BodyHandlers.ofString()
        );

        System.out.println(response.body());
    }
}
using System.Net.Http;

using var client = new HttpClient();

var response = await client.GetStringAsync(
    "https://locations.webscrapingapi.com?q=Austin&limit=5"
);

Console.WriteLine(response);
require "net/http"
require "uri"

uri = URI("https://locations.webscrapingapi.com")
uri.query = URI.encode_www_form(q: "Austin", limit: 5)

response = Net::HTTP.get(uri)

puts response

Parameters

NameRequiredDescription
qFilters locations that contain the supplied string.
limitMaximum number of locations to return.

Response

[
  {
    "Criteria ID": "1014438",
    "Name": "Austin",
    "Canonical Name": "Austin",
    "Parent ID": "Colorado",
    "Country Code": "United States",
    "Target Type": "21138",
    "Status": "US"
  }
]

Use the returned location metadata when a SERP engine accepts a location or geotarget parameter.

Amazon Helpers API

The Amazon Helpers API returns supported Amazon categories, countries, and languages.

Categories

curl --get "https://amazon-helpers.webscrapingapi.com/categories" \
  --data-urlencode "q=Baby" \
  --data-urlencode "limit=10"
const url = new URL("https://amazon-helpers.webscrapingapi.com/categories");
url.searchParams.set("q", "Baby");
url.searchParams.set("limit", "10");

const response = await fetch(url);
const data = await response.json();

console.log(data);
import requests

response = requests.get(
    "https://amazon-helpers.webscrapingapi.com/categories",
    params={"q": "Baby", "limit": 10},
)

print(response.json())
<?php

$query = http_build_query([
    "q" => "Baby",
    "limit" => 10,
]);

$ch = curl_init("https://amazon-helpers.webscrapingapi.com/categories?" . $query);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

$response = curl_exec($ch);
curl_close($ch);

echo $response;
package main

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

func main() {
    endpoint, _ := url.Parse("https://amazon-helpers.webscrapingapi.com/categories")
    query := endpoint.Query()
    query.Set("q", "Baby")
    query.Set("limit", "10")
    endpoint.RawQuery = query.Encode()

    response, err := http.Get(endpoint.String())
    if err != nil {
        panic(err)
    }
    defer response.Body.Close()

    body, _ := io.ReadAll(response.Body)
    fmt.Println(string(body))
}
import java.net.URI;
import java.net.URLEncoder;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.nio.charset.StandardCharsets;

public class Main {
    public static void main(String[] args) throws Exception {
        String query = "q=" + URLEncoder.encode("Baby", StandardCharsets.UTF_8)
            + "&limit=10";

        HttpRequest request = HttpRequest.newBuilder()
            .uri(URI.create("https://amazon-helpers.webscrapingapi.com/categories?" + query))
            .GET()
            .build();

        HttpResponse<String> response = HttpClient.newHttpClient().send(
            request,
            HttpResponse.BodyHandlers.ofString()
        );

        System.out.println(response.body());
    }
}
using System.Net.Http;

using var client = new HttpClient();

var response = await client.GetStringAsync(
    "https://amazon-helpers.webscrapingapi.com/categories?q=Baby&limit=10"
);

Console.WriteLine(response);
require "net/http"
require "uri"

uri = URI("https://amazon-helpers.webscrapingapi.com/categories")
uri.query = URI.encode_www_form(q: "Baby", limit: 10)

response = Net::HTTP.get(uri)

puts response
NameRequiredDescription
qFilters categories that contain the supplied string.
limitMaximum number of categories to return.
[
  {
    "category_id": "3045",
    "parent_alias": "books",
    "category_title": "Children's Family Life Books",
    "page_title": "Amazon.com: Family Life: Books",
    "link": "https://www.amazon.com/b?ie=UTF8&node=3045"
  }
]

Countries

curl "https://amazon-helpers.webscrapingapi.com/countries"
const response = await fetch("https://amazon-helpers.webscrapingapi.com/countries");
const data = await response.json();

console.log(data);
import requests

response = requests.get("https://amazon-helpers.webscrapingapi.com/countries")

print(response.json())
<?php

$ch = curl_init("https://amazon-helpers.webscrapingapi.com/countries");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

$response = curl_exec($ch);
curl_close($ch);

echo $response;
package main

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

func main() {
    response, err := http.Get("https://amazon-helpers.webscrapingapi.com/countries")
    if err != nil {
        panic(err)
    }
    defer response.Body.Close()

    body, _ := io.ReadAll(response.Body)
    fmt.Println(string(body))
}
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;

public class Main {
    public static void main(String[] args) throws Exception {
        HttpRequest request = HttpRequest.newBuilder()
            .uri(URI.create("https://amazon-helpers.webscrapingapi.com/countries"))
            .GET()
            .build();

        HttpResponse<String> response = HttpClient.newHttpClient().send(
            request,
            HttpResponse.BodyHandlers.ofString()
        );

        System.out.println(response.body());
    }
}
using System.Net.Http;

using var client = new HttpClient();

var response = await client.GetStringAsync(
    "https://amazon-helpers.webscrapingapi.com/countries"
);

Console.WriteLine(response);
require "net/http"
require "uri"

uri = URI("https://amazon-helpers.webscrapingapi.com/countries")
response = Net::HTTP.get(uri)

puts response

Use this endpoint to find supported Amazon marketplaces before setting marketplace-specific Amazon request parameters.

Languages

curl "https://amazon-helpers.webscrapingapi.com/languages"
const response = await fetch("https://amazon-helpers.webscrapingapi.com/languages");
const data = await response.json();

console.log(data);
import requests

response = requests.get("https://amazon-helpers.webscrapingapi.com/languages")

print(response.json())
<?php

$ch = curl_init("https://amazon-helpers.webscrapingapi.com/languages");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

$response = curl_exec($ch);
curl_close($ch);

echo $response;
package main

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

func main() {
    response, err := http.Get("https://amazon-helpers.webscrapingapi.com/languages")
    if err != nil {
        panic(err)
    }
    defer response.Body.Close()

    body, _ := io.ReadAll(response.Body)
    fmt.Println(string(body))
}
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;

public class Main {
    public static void main(String[] args) throws Exception {
        HttpRequest request = HttpRequest.newBuilder()
            .uri(URI.create("https://amazon-helpers.webscrapingapi.com/languages"))
            .GET()
            .build();

        HttpResponse<String> response = HttpClient.newHttpClient().send(
            request,
            HttpResponse.BodyHandlers.ofString()
        );

        System.out.println(response.body());
    }
}
using System.Net.Http;

using var client = new HttpClient();

var response = await client.GetStringAsync(
    "https://amazon-helpers.webscrapingapi.com/languages"
);

Console.WriteLine(response);
require "net/http"
require "uri"

uri = URI("https://amazon-helpers.webscrapingapi.com/languages")
response = Net::HTTP.get(uri)

puts response

Use this endpoint to find supported Amazon language options for localized Amazon responses.

On this page