Zenserp Batch API
Batch processing for multiple simultaneous queries.
Documentation
Documentation
https://app.zenserp.com/documentation
Authentication
https://app.zenserp.com/documentation
Batch processing for multiple simultaneous queries.
openapi: 3.0.3
info:
title: Zenserp Search Batch API
description: REST API for scraping real-time Google search results including organic results, paid ads, featured snippets, knowledge graphs, related questions, maps, news, shopping, images, videos, YouTube, Bing, Yandex, and DuckDuckGo search results. Supports geolocation targeting across 200+ countries and languages.
version: '2.0'
contact:
name: Zenserp Support
url: https://zenserp.com/
email: support@zenserp.com
termsOfService: https://zenserp.com/terms-of-service/
x-logo:
url: https://zenserp.com/wp-content/uploads/2019/07/zenserp-logo.png
servers:
- url: https://app.zenserp.com/api/v2
description: Zenserp API v2
security:
- apiKeyHeader: []
- apiKeyQuery: []
tags:
- name: Batch
description: Batch processing for multiple simultaneous queries.
paths:
/batch:
post:
operationId: batchSearch
summary: Batch Search
description: Submit multiple search queries in a single API request. Available on Medium plan and above. Each item in the batch uses the same parameters as the `/search` endpoint.
tags:
- Batch
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/BatchRequest'
example:
queries:
- q: pied piper
gl: us
hl: en
- q: silicon valley tv show
gl: us
hl: en
responses:
'200':
description: Batch search results array.
content:
application/json:
schema:
$ref: '#/components/schemas/BatchResponse'
'401':
description: Unauthorized.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'402':
description: Plan does not support batch requests.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'429':
description: Rate limit exceeded.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
components:
schemas:
KnowledgeGraph:
type: object
description: Google Knowledge Graph panel data.
properties:
title:
type: string
type:
type: string
description:
type: string
url:
type: string
format: uri
image:
type: string
format: uri
attributes:
type: object
additionalProperties:
type: string
description: Key-value entity attributes from the knowledge panel.
ShoppingResult:
type: object
description: A single Google Shopping product result.
properties:
position:
type: integer
title:
type: string
url:
type: string
format: uri
price:
type: string
description: Product price as a formatted string (e.g., "$29.99").
store:
type: string
description: Merchant/store name.
rating:
type: number
format: float
description: Product rating (0-5).
reviews:
type: integer
description: Number of reviews.
thumbnail:
type: string
format: uri
RelatedQuestion:
type: object
description: A People Also Ask question-answer pair.
properties:
question:
type: string
answer:
type: string
url:
type: string
format: uri
title:
type: string
OrganicResult:
type: object
description: A single organic (non-paid) search result.
properties:
position:
type: integer
description: 1-based ranking position in results.
title:
type: string
description: Title of the result.
url:
type: string
format: uri
description: URL of the result page.
domain:
type: string
description: Domain of the result.
description:
type: string
description: Snippet/description text for the result.
favicon:
type: string
format: uri
description: URL of the site favicon.
sitelinks:
type: array
description: Additional sub-links shown below the main result.
items:
type: object
properties:
title:
type: string
url:
type: string
format: uri
SearchResponse:
type: object
description: Top-level search result object returned by the /search endpoint.
properties:
request_info:
$ref: '#/components/schemas/RequestInfo'
query:
$ref: '#/components/schemas/QueryInfo'
organic_results:
type: array
description: List of organic (non-paid) search results.
items:
$ref: '#/components/schemas/OrganicResult'
paid_results:
type: array
description: List of paid advertisement results.
items:
$ref: '#/components/schemas/PaidResult'
featured_snippet:
$ref: '#/components/schemas/FeaturedSnippet'
knowledge_graph:
$ref: '#/components/schemas/KnowledgeGraph'
related_questions:
type: array
description: People Also Ask questions and answers.
items:
$ref: '#/components/schemas/RelatedQuestion'
related_searches:
type: array
description: Related search suggestions.
items:
$ref: '#/components/schemas/RelatedSearch'
image_results:
type: array
description: Image results (when tbm=isch).
items:
$ref: '#/components/schemas/ImageResult'
news_results:
type: array
description: News article results (when tbm=nws).
items:
$ref: '#/components/schemas/NewsResult'
shopping_results:
type: array
description: Shopping product results (when tbm=shop).
items:
$ref: '#/components/schemas/ShoppingResult'
map_results:
type: array
description: Local business results (when tbm=map).
items:
$ref: '#/components/schemas/MapResult'
video_results:
type: array
description: Video/YouTube results (when tbm=vid).
items:
$ref: '#/components/schemas/VideoResult'
trends_results:
type: array
description: Google Trends data points (when tbm=trends).
items:
$ref: '#/components/schemas/TrendsResult'
RelatedSearch:
type: object
description: A related search suggestion.
properties:
query:
type: string
description: Related query text.
ErrorResponse:
type: object
description: API error response.
properties:
error:
type: string
description: Human-readable error message.
code:
type: integer
description: HTTP status code.
NewsResult:
type: object
description: A single news article result.
properties:
position:
type: integer
title:
type: string
url:
type: string
format: uri
source:
type: string
description: News source name.
published_at:
type: string
description: Publication timestamp or relative time.
thumbnail:
type: string
format: uri
RequestInfo:
type: object
description: Metadata about the API request.
properties:
success:
type: boolean
description: Whether the request was successful.
credits_used:
type: integer
description: Number of API credits consumed by this request.
credits_remaining:
type: integer
description: Remaining credits in the current billing period.
VideoResult:
type: object
description: A single YouTube/video search result.
properties:
position:
type: integer
title:
type: string
url:
type: string
format: uri
channel:
type: string
description: Channel or uploader name.
published_at:
type: string
description: Video publication date or relative time.
duration:
type: string
description: Video duration (e.g., "5:32").
views:
type: string
description: View count as formatted string.
thumbnail:
type: string
format: uri
ImageResult:
type: object
description: A single image search result.
properties:
position:
type: integer
title:
type: string
url:
type: string
format: uri
image_url:
type: string
format: uri
description: Direct URL to the image.
thumbnail:
type: string
format: uri
description: URL to thumbnail version.
source:
type: string
description: Originating website domain.
BatchRequest:
type: object
description: Batch search request body.
required:
- queries
properties:
queries:
type: array
description: Array of search query objects (same parameters as /search).
minItems: 1
maxItems: 100
items:
type: object
required:
- q
properties:
q:
type: string
gl:
type: string
hl:
type: string
num:
type: integer
minimum: 1
maximum: 100
engine:
type: string
enum:
- google
- bing
- yandex
- duckduckgo
tbm:
type: string
location:
type: string
device:
type: string
QueryInfo:
type: object
description: Echo of the query parameters used for this search.
properties:
q:
type: string
description: The search query.
gl:
type: string
description: Country code used.
hl:
type: string
description: Language code used.
num:
type: integer
description: Number of results requested.
engine:
type: string
description: Search engine used.
tbm:
type: string
description: Search type modifier used.
location:
type: string
description: Geo location used.
BatchResponse:
type: object
description: Batch search response.
properties:
request_info:
$ref: '#/components/schemas/RequestInfo'
results:
type: array
description: Array of search result objects, one per query.
items:
$ref: '#/components/schemas/SearchResponse'
TrendsResult:
type: object
description: A Google Trends comparison data point.
properties:
query:
type: string
description: The search term being tracked.
date:
type: string
description: Date or time period.
value:
type: integer
description: Relative popularity score (0-100).
MapResult:
type: object
description: A single Google Maps local business result.
properties:
position:
type: integer
title:
type: string
address:
type: string
phone:
type: string
website:
type: string
format: uri
rating:
type: number
format: float
reviews:
type: integer
category:
type: string
hours:
type: string
description: Business hours summary.
latitude:
type: number
format: double
longitude:
type: number
format: double
FeaturedSnippet:
type: object
description: Google featured snippet (answer box).
properties:
title:
type: string
url:
type: string
format: uri
description:
type: string
type:
type: string
description: Snippet type (paragraph, table, list, etc.).
PaidResult:
type: object
description: A paid advertisement result.
properties:
position:
type: integer
description: Ad position.
title:
type: string
url:
type: string
format: uri
domain:
type: string
description:
type: string
displayed_url:
type: string
description: The URL as displayed in the ad.
securitySchemes:
apiKeyHeader:
type: apiKey
in: header
name: apikey
description: API key passed in the request header.
apiKeyQuery:
type: apiKey
in: query
name: apikey
description: API key passed as a query parameter.