Welcome to this new episode of “The tool of the week”! In this article, you’ll discover a data provider that you may not know: AntsData.
Their core offer includes pre-compiled datasets, SERP APIs, Web Search APIs, and a Web Unlocker API (which is coming soon).
Let me introduce you to the company and show you how easy it is to use the services they offer with a couple of hands-on tutorials.
Let’s go for it!
What is AntsData?
AntsData is a platform that collects, cleans, and delivers data from across the internet. Thanks to its infrastructure, it delivers data ready for AI workflows and analytics:
Its solutions include:
Google SERP extraction at scale:AntsData SERP APIallows you to retrieve structured search results from Google without managing proxies, solving CAPTCHAs, or building your custom scraping infrastructure. Use Python, curl, JavaScript, or even their playground and get the data without infrastructure overhead. By using this API, you can extract all major SERP features, including organic results, paid ads, featured snippets, knowledge panels, and more.Web Scraper APIs: Get clean data in JSON fromYouTube,X,Amazon, and more websites. These are the best solutions if you are doing sentiment analysis from social media posts, price tracking,market research scraping, or if you arebuilding RAG systems.AI-ready datasets: For data enrichment cases, or if you don’t have the right coding skills,AntsData provides ready-to-use datasets.Custom datasets: If the analytics-ready datasets are not enough for you, you can askAntsData to create custom datasets for you. By defining the scraping scenario that fits your needs, the company assists you in delivering the right data for your specific case.
On the side of pricing, the company offers a pretty wide range of options, where the interesting one is probably the pay-as-you-go plan with no minimum commitment:
How to Use AntsData to Retrieve Web Data From Google SERP #
Let’s start by retrieving web data using AntsData Google SERP API.
Introduction to the SERP API
AntsData SERP endpoints are the kind of resources you use for “ask and get an answer” search. In other words, you submit a search query, the server blocks until done, and returns the results. This is a synchronous mechanism, which is different from the async model that works like this: “submit → poll → fetch”. What’s particularly important to remember is that:
The synchronous search is the ideal solution for small jobs.
Large jobs that exceed the sync window, instead, are more suitable for pollable, asynchronous runs.
Here’s a schema that summarizes these two different approaches:
This sync API supports the following endpoints, allowing you to retrieve different kinds of results from Google searches:
In this tutorial, I’ll use the search endpoint. Below are its parameters:
Let’s get into the actual tutorial!
Prerequisites
To reproduce this tutorial, you need the following:
A valid
AntsData account.Python 3.10+ installed on your machine.
Below is the dashboard you’ll see after creating your account:
Note that the company provides you with a free trial option, offering 5$ in credits after registration.
Use the SERP API Via the Playground
To use the Google SERP API, navigate to the Web Access section and click on Playground:
Set up your request parameters directly in the playground:
For this tutorial, the parameters I set up are the following:
Results type: web results. This makes the platform return only web data from Google results.** Research query**: best running shoes. This is the query for the search engine.** Search location**: United States.** Language**: en Google domain:google.com** Page**: 2** Result limits**: 10
NOTE: To learn more about all the parameters and how to set up their values, read AntsData developers’ technical documentation.
When ready, click on Run request, and you’ll see the results directly in the dashboard:
Below is a partial JSON from the retrieved data:
[
{
"organicResults": {
"url": "https://www.google.com/search?q=best+running+shoes\u0026uule=w+CAIQICINVW5pdGVkIFN0YXRlcw\u0026gl=us\u0026start=10\u0026pws=0\u0026hl=en",
"organic": [
{
"pos": 2,
"pos_overall": 2,
"title": "Top Rated Running Shoes | REI Co-op",
"favicon_text": "REI",
"url_shown": "https://www.rei.com › top-rated-running-shoes",
"url": "https://www.rei.com/s/top-rated-running-shoes",
"desc": "Shop for Top Rated Running Shoes at REI - Browse our extensive selection of trusted outdoor brands and high-quality recreation gear."
},
{
"pos": 3,
"pos_overall": 3,
"title": "Best Running Shoes For Men | On United States",
"favicon_text": "on.com",
"url_shown": "https://www.on.com › Shop",
"url": "https://www.on.com/en-us/shop/o/best-running-shoes-for-men?srsltid=AfmBOoqlJHi39Rz0hqhbsQbcn-zIx1pvDbxx8lL7pqB3Qenwkr84hnFc",
"desc": "Best sellers · Cloudswift 4 Road Running Shoe in Wolf/Sand · Cloudrunner 2 Waterproof Road Running Shoe in Sand/Dew · Cloudsurfer Max Wide Road Running Shoe in ...Read more"
},
...< Omitted for brevity>...
}
]
In the Overview tab, you can download the JSON file with the complete response data:
At this point, you may want to know how much this call cost. To discover it, go to Billing:
To talk numbers, I spent 0.002$ for 8 results.
Use the SERP API in Python
If you want to incorporate the data into an AI workflow, you can call the endpoints in Python, curl, and Node.js. The playground provides you with code you can directly use in your local scripts, after setting up the parameters.
If you want to use a Python script, change the autogenerated code from the playground so that the script can save the results in a JSON file.
Before changing the code, first create a folder on your local machine:
mkdir shoes-scraping
Navigate into it:
cd shoes-scraping
Create a virtual environment:
python -m venv venv
Activate the virtual environment:
source venv/bin/activate # On Windows: ./venv/scripts/activate
In the activated virtual environment, install the requests library:
pip install requests
Create a Python file called shoes-scraping.py
and write the following code in it:
import requests
import json
url = "https://api.antsdata.com/v1/serp/google/search"
headers = {
"Authorization": "Bearer <YOUR-API-TOKEN>",
"Content-Type": "application/json",
}
payload = {
"recordLimit": 10,
"dataFormat": "json",
"searchType": "web",
"query": "best running shoes",
"geo_location": "United States",
"host_language": "en",
"domain": "com",
"page": 2
}
resp = requests.request("POST", url, json=payload, headers=headers)
data = resp.json()
with open("running-shoes.json", "w", encoding="utf-8") as f:
json.dump(data, f, indent=4)
print("Results saved to running-shoes.json")
And, of course, you will obtain the same result as before.
How to Use AntsData to Retrieve Data from Amazon #
In this section, you’ll discover how to use the Amazon Web Search API. But before going directly into a hands-on tutorial, let’s introduce this API.
Introduction to the Web Search APIs
All AntsData Web Search APIs use an asynchronous mechanism when retrieving data from the web. Specifically speaking, the Amazon Web Search API supports two endpoints:
In the upcoming tutorial section, you’ll discover how to use the sellers endpoint.
Use the Amazon Web Search API Via the Playground
First of all, navigate to the Amazon Web Scraper API in the AntsData dashboard:
In the platform, you can insert multiple target URLs. For this tutorial, I defined a couple. One from Amazon best sellers like electronic accessories for cameras and photos:
The other from Amazon bestsellers electronics cables for cameras and photo products:
Set up the environment directly in the playground. Select Discover by category URLs in Amazon Best Sellers and attach the target URLs in the Inputs section:
Then click on Run manually. You will automatically be redirected to the Run section, where you’ll see that your job is queued:
When the process is complete, you can download the JSON file and see how much it costed:
Below is a partial result from the JSON:
[
{
"url": "https://www.amazon.com/Best-Sellers-Electronics-Camera-Photo-Accessories/zgbs/electronics/172435/ref=zg_bs_nav_electronics_2_281407",
"depth": 0,
"name": "Best Sellers in Camera \u0026 Photo Accessories"
},
{
"url": "https://www.amazon.com/gp/bestsellers/electronics/502394",
"depth": 1,
"name": "Best Sellers in Camera \u0026 Photo Products"
},
{
"url": "https://www.amazon.com/gp/bestsellers/electronics/14015081",
"depth": 1,
"name": "Best Sellers in Camera \u0026 Photo Cables \u0026 Cords"
},
{
"url": "https://www.amazon.com/gp/bestsellers/electronics/505106",
"depth": 1,
"name": "Best Sellers in Camcorder Accessories"
},
<...OMITTED FOR BREVITY>
{
"url": "https://www.amazon.com/gp/bestsellers/electronics/2243862011",
"depth": 4,
"name": "Best Sellers in Laptop Cooling Pads \u0026 External Fans"
}
]
Note that AntsData charges 0.55$ per 1000 results with its Web Scraper APIs. In this case, I spent 0.55$ for a total of 82 entries retrieved.
AntsData Pros and Cons #
Overall, here’s a summary of the pros and cons from my tests.
👍 Pros:
The APIs have good and comprehensive documentation. The parameters are well defined, and responses are clearly explained, even in the case when the server doesn’t return a 200.
The platform is intuitive to use and to navigate, even for junior engineers.
The playground works well and reports code that can actually be incorporated into your workflows as is or with just minor adjustments.
👎 Cons:
The company claims that developers can use their MCP with the Web Scraper APIs. I tested it and, unfortunately, it doesn’t work. Specifically, the target URL returns a 404. Of course, that could be a temporary error; however, that was the result at the time I tested it.
The offer is limited in terms of datasets and available Web Scraper APIs, compared to similarly sized competitors.
Conclusion #
AntsData positions itself as a middle-ground provider in the crowded web scraping market, focusing on a friction point for engineers: speed to delivery. For teams building RAG pipelines or training LLMs, the “AI-ready” nature of their JSON output significantly reduces the time spent in the data-cleaning purgatory.
However, it isn’t without its growing opportunities. The limited library of specialized APIs and the current instability of their MCP integration suggest that AntsData is still in its scaling phase.
So, let’s discuss in the comments: did you already know AntsData? What’s your experience with them?