# SerpBase > SerpBase is a Google SERP API with SerpApi-grade results priced below Serper: the full Google results page (AI Overviews, People Also Ask, local pack, top stories, knowledge graph) as JSON, Markdown or the cleaned raw page, from real phone and desktop sessions. The same API key returns structured JSON from other search engines, social media, e-commerce, maps and the web: 43 endpoints in 6 categories, 0-3 credits per request. - Base URL: https://api.serpbase.dev - Authentication: send the API key in the `X-API-Key` header (never in the URL). - Response: JSON with `status` (0 means success), `error` on failure and `request_id` for support. An HTTP 200 alone does not mean success; check `status`. - Billing: each endpoint has a fixed credit price per request (a Google search is 1 credit); prepaid credits do not expire on a date. Packs, the monthly plan and a dated comparison with Serper and SerpApi are at https://serpbase.dev/pricing. - New accounts get free credits to try the API: https://serpbase.dev/register This file is the complete reference: the rules that apply to every request, then every endpoint in the catalog (43 available now) with its parameters, response fields and a sample request. Sample parameters show usage, not the complete contract; the API validates known fields and accepts additional parameters. OpenAPI: https://serpbase.dev/openapi.json. Agent skill: https://serpbase.dev/skills/serpbase/SKILL.md. # Rules for every request ## Responses & errors > Every answer is JSON with the same envelope. Success or failure is in its status field, not in the HTTP status: check status, then read the result. Source: https://serpbase.dev/docs/responses-and-errors · Index: https://serpbase.dev/llms.txt · OpenAPI: https://serpbase.dev/openapi.json Every answer is JSON with the same envelope. Success or failure is in its status field, not in the HTTP status: check status, then read the result. ### Common response envelope Successful endpoint responses return the same top-level metadata. Endpoint-specific data lives in one result key such as organic, images, news, videos, places, or place. | Field | Type | Availability | Description | | --- | --- | --- | --- | | `status` required | number | required | Business status code. 0 means success. | | `request_id` required | string | required | Stable request identifier for support, retries, and log correlation. | | `elapsed_ms` required | number | required | Gateway-observed execution duration in milliseconds. | | `credits_charged` required | number \| null | required | Actual credits charged after refund logic. null or charge_status: unknown means the charge is not confirmed. | | `search_type` optional | string | optional | Product-specific response type, when returned by the product. | ### Errors | Field | Type | Availability | Description | | --- | --- | --- | --- | | `error` required | string | required | Human-readable failure message. | | status | Field | Description | Charged / Safe to retry | | --- | --- | --- | --- | | 0 | SUCCESS | Request completed successfully. Inspect product-specific outcome fields; no_results alone is not proof of HTTP 404. | Charged | | 1000 | INVALID_REQUEST | Missing or invalid body or parameters. | Not charged Fix the request first | | 1001 | UNAUTHORIZED | Missing, invalid, or revoked API key. | Not charged Fix the request first | | 1004 | NOT_FOUND | Resource not found on gateway routing or catalog. | Not charged Fix the request first | | 1020 | INSUFFICIENT_CREDITS | Account balance is not enough. | Not charged Fix the request first | | 1029 | RATE_LIMITED | QPS or concurrency limit exceeded. | Not charged Safe to retry | | 1500 | INTERNAL_ERROR | Unexpected internal server error. | Not charged Safe to retry | | 1502 | UPSTREAM_FAILED | Worker returned an upstream fetch or parse error. | Not charged Safe to retry | | 1503 | SERVICE_UNAVAILABLE | No worker session is available. | Not charged Safe to retry | | 1504 | UPSTREAM_TIMEOUT | Gateway timed out waiting for a worker result. | Not charged Safe to retry | ```json { "status": 1001, "error": "unauthorized", "request_id": "0f3576b2-6e2e-4f1e-bb0e-8cb0d4a60195", "elapsed_ms": 0, "credits_charged": 0 } ``` Response headers Every product response carries these headers so your client can pace itself and decide whether to retry without parsing the message. X-RateLimit-Limit Requests per second your account allows. X-RateLimit-Remaining Requests still allowed in the current second. Retry-After On a refusal, how many seconds to wait before sending again. X-SerpBase-Retryable true when resending the same request can succeed; false when the request itself must change. When you contact support Include the request_id from the response (every success and every failure has one) and the time of the call. With it we can find the exact request in seconds; without it we have to ask. Privacy and retention Search queries may be logged for billing, debugging, abuse prevention, and account logs. See the privacy page for retention details. ### Timeouts Set your HTTP client's timeout to 60 seconds; the code examples in these docs already do. Every request ends on our side within 30 seconds with either a result or an error, so 60 seconds leaves room for the network. - Most requests answer within a few seconds, but some take 15–20 seconds: when Google is slow or asks for verification, we try again on other routes inside those 30 seconds. A shorter timeout cuts off exactly the requests that were about to succeed. - If your client gives up first, we stop the request and refund it, but you get no result and no error to act on. Don't set your client's timeout below 30 seconds. - If you must answer faster, say so with the timeout parameter (1–30 seconds) on the Google search endpoints: retries start earlier to fit your budget, and when it runs out you get status 1504 at once, not charged. Keep your HTTP client's timeout above it. - If a request still fails or times out, send it again; only an attempt that succeeds is charged. ## Billing > You pay for successful requests only. Each endpoint has a fixed price in credits — most cost 1 or 2 — and a request that fails gives its credits back automatically. Source: https://serpbase.dev/docs/billing-and-credits · Index: https://serpbase.dev/llms.txt · OpenAPI: https://serpbase.dev/openapi.json You pay for successful requests only. Each endpoint has a fixed price in credits — most cost 1 or 2 — and a request that fails gives its credits back automatically. ### What a request costs The price is per request, not per result: a Google search costs the same whether the page has 3 results or 30. Page 2 is a second request. | Endpoint | Category | Credits per request | | --- | --- | --- | | [Google Web Search](https://serpbase.dev/docs/google_web_search) | Search engines | 1 | | [Google Images Search](https://serpbase.dev/docs/google_images_search) | Search engines | 1 | | [Google News Search](https://serpbase.dev/docs/google_news_search) | Search engines | 1 | | [Google Videos Search](https://serpbase.dev/docs/google_videos_search) | Search engines | 1 | | [Google Search Autocomplete](https://serpbase.dev/docs/google_autocomplete) | Search engines | 1 | | [Google Shopping Search](https://serpbase.dev/docs/google_shopping_search) | Search engines | 2 | | [Google Jobs Search](https://serpbase.dev/docs/google_jobs_search) | Search engines | 2 | | [Google Books Search](https://serpbase.dev/docs/google_books_search) | Search engines | 1 | | [Google Finance Search](https://serpbase.dev/docs/google_finance_search) | Search engines | 1 | | [Google Patent Details](https://serpbase.dev/docs/google_patents_detail) | Search engines | 2 | | [Google Play Search](https://serpbase.dev/docs/google_play_search) | Search engines | 1 | | [Google Play App Details](https://serpbase.dev/docs/google_play_app) | Search engines | 1 | | [Google Trends](https://serpbase.dev/docs/google_trends) | Search engines | 2 | | [Google Trends Autocomplete](https://serpbase.dev/docs/google_trends_autocomplete) | Search engines | 2 | | [Google Trends Trending Now](https://serpbase.dev/docs/google_trends_trending) | Search engines | 2 | | [Google Link Resolver](https://serpbase.dev/docs/google_resolve) | Search engines | 0 | | [DuckDuckGo Search](https://serpbase.dev/docs/duckduckgo_search) | Search engines | 1 | | [Google Maps Search](https://serpbase.dev/docs/google_maps_search) | Maps and places | 2 | | [Google Maps Place Detail](https://serpbase.dev/docs/google_maps_place) | Maps and places | 3 | | [Google Maps Reviews](https://serpbase.dev/docs/google_maps_reviews) | Maps and places | 2 | | [Reddit Post & Comments](https://serpbase.dev/docs/reddit_post) | Social media | 2 | | [Reddit Search](https://serpbase.dev/docs/reddit_search) | Social media | 1 | | [TikTok Post](https://serpbase.dev/docs/tiktok_post) | Social media | 2 | | [TikTok Profile](https://serpbase.dev/docs/tiktok_profile) | Social media | 2 | | [TikTok Search](https://serpbase.dev/docs/tiktok_search) | Social media | 1 | | [X Post Details](https://serpbase.dev/docs/x_post) | Social media | 1 | | [YouTube Search](https://serpbase.dev/docs/youtube_search) | Social media | 1 | | [YouTube Video Transcripts](https://serpbase.dev/docs/youtube_transcripts) | Social media | 2 | | [Ajio Product Details](https://serpbase.dev/docs/ajio_product) | E-commerce | 2 | | [Amazon Product Details](https://serpbase.dev/docs/amazon_product) | E-commerce | 2 | | [Amazon Product Search](https://serpbase.dev/docs/amazon_search) | E-commerce | 2 | | [Amazon Search Autocomplete](https://serpbase.dev/docs/amazon_autocomplete) | E-commerce | 1 | | [Apple Product Details](https://serpbase.dev/docs/apple_product) | E-commerce | 1 | | [eBay Product Details](https://serpbase.dev/docs/ebay_product) | E-commerce | 2 | | [eBay Product Search](https://serpbase.dev/docs/ebay_search) | E-commerce | 1 | | [Flipkart Product Details](https://serpbase.dev/docs/flipkart_product) | E-commerce | 2 | | [Myntra Product Details](https://serpbase.dev/docs/myntra_product) | E-commerce | 2 | | [Myntra Search](https://serpbase.dev/docs/myntra_search) | E-commerce | 2 | | [Walmart Product Details](https://serpbase.dev/docs/walmart_product) | E-commerce | 2 | | [Walmart Product Search](https://serpbase.dev/docs/walmart_search) | E-commerce | 2 | | [Walmart Search Autocomplete](https://serpbase.dev/docs/walmart_autocomplete) | E-commerce | 1 | | [User-Agent Generator](https://serpbase.dev/docs/web_user_agent) | Web scraping | 1 | | [Zillow Property Search](https://serpbase.dev/docs/zillow_search) | Real estate | 2 | Every endpoint's page shows its price at the top. Plans and packs are on Pricing. [Pricing →](https://serpbase.dev/pricing) ### When you are charged | What happened | Charged? | | --- | --- | | The request succeeded | Yes | | It succeeded and the answer is “not found” — the product was removed, the video is private | Yes — a confirmed “not found” is a correct answer | | It ran and failed — the site errored, returned an empty page or blocked the request | No — refunded automatically | | It was refused before running — no credits left, over your rate limit, invalid key or parameters | No — nothing was taken | | It timed out, or the connection dropped before an answer arrived | Settled afterwards — refunded if it failed, charged if it succeeded | Retrying a failed request is safe: you are only charged for the attempt that succeeds. Responses & errors says, for each error, whether a retry can work. [Responses & errors →](https://serpbase.dev/docs/responses-and-errors) ### Checking what you paid Every response says what it cost in credits_charged: 1, 2, 3 … Charged that many credits. 0 Not charged. null Being settled (the timeout case above). The dashboard's Logs page lists every request with its cost, and Billing shows your balance. GET /account/credits returns the balance to your code. ### Credits Credits from prepaid packs never expire. Credits that come with a monthly plan last until the end of that month's period. With auto top-up on, a pack is bought for you when the balance falls below the level you set, so requests don't stop at zero. How to pay, and what to do if a payment does not go through: [Payment methods →](https://serpbase.dev/docs/payment-methods) ## API keys & rate limits > Every request is authenticated with an API key and counted against your account's requests per second. Source: https://serpbase.dev/docs/api-keys · Index: https://serpbase.dev/llms.txt · OpenAPI: https://serpbase.dev/openapi.json Every request is authenticated with an API key and counted against your account's requests per second. ### Sending the key Put the key in the X-API-Key header of every request. Keys in the URL are refused, so they never end up in proxy or browser logs. Create, rename and revoke keys on the API keys page of the dashboard. ```bash curl https://api.serpbase.dev/account/credits \ -H "X-API-Key: YOUR_API_KEY" ``` ### Rate limits A request over your limit is refused at once with status 1029 and a Retry-After header, and is not charged. X-RateLimit-Limit and X-RateLimit-Remaining on every response let your client pace itself. #### Automatic account QPS upgrades After an eligible top-up is confirmed as credited, cumulative USD thresholds raise account QPS to at least: $3 → 2, $50 → 5, $100 → 10, $200 → 15, $1,000 → 50, $10,000 → 500. Below $3, your current account limit is unchanged. Upgrades only raise the limit; they never lower an existing higher limit. This is not unlimited QPS. | Cumulative eligible top-ups (USD) | Upgrade to at least (QPS) | | --- | --- | | ≥ $3 | 2 QPS | | ≥ $50 | 5 QPS | | ≥ $100 | 10 QPS | | ≥ $200 | 15 QPS | | ≥ $1,000 | 50 QPS | | ≥ $10,000 | 500 QPS | Only USD credit-pack (credit_pack) and automatic top-up (auto_topup) payments confirmed as credited count. Subscriptions (including Starter Boost), gifts and gift codes do not count. Credit balances are not cumulative USD payments. Non-USD payments are not counted as USD without currency conversion. All API keys, products and gateways for the same account share one QPS limit. Creating more keys does not increase it. Eligible top-ups automatically raise account QPS after confirmed crediting, not merely after returning from checkout. The current limit is the server-reported value shown in your account; API key synchronization may briefly lag. ### Account balance Retrieve the current credit balance for the account that owns an active API key. This request does not consume search credits. GET 0 credits `/account/credits`Pass the key in the X-API-Key header. API keys in URL query parameters are not accepted. ```bash curl https://api.serpbase.dev/account/credits \ -H "X-API-Key: your_api_key" ``` ```json { "status": 0, "credits": 12345, "permanent_credits": 10000, "expiring_credits": 2345, "expiring_expires_at": 1798761600 } ``` The endpoint is limited to 60 requests per minute per account. expiring_expires_at is a Unix timestamp in seconds and is 0 when no limited-time credits are active. ## Location, language & device > Google answers the same query differently by country, language, city and device. Four parameters choose which version you get. Source: https://serpbase.dev/docs/location-language-device · Index: https://serpbase.dev/llms.txt · OpenAPI: https://serpbase.dev/openapi.json Google answers the same query differently by country, language, city and device. Four parameters choose which version you get. ### gl · hl · location · device | Name | What it does | | --- | --- | | `gl` | Country of the results, as a two-letter code: us, gb, de, jp… | | `hl` | Language of the page: en, de, ja, pt-BR… Pair it with gl for the same market. | | `location` | Search as if from a city or region, e.g. "Munich,Bavaria,Germany". Phone results only; names come from GET /google/locations. | | `device` | mobile (default) or pc. The two layouts differ: some blocks appear on only one of them. | gl and hl apply to most Google endpoints; device and location to Google Web Search. Each endpoint's parameter table lists what it accepts. None of them changes the price. ```bash curl -X POST https://api.serpbase.dev/google/search \ -H "X-API-Key: YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{"q": "coffee shops", "gl": "de", "hl": "de", "location": "Munich,Bavaria,Germany"}' ``` ### Search locations Look up the values Google Search's location parameter accepts. Each result's canonical_name can be passed as location on /google/search. This request does not consume credits. GET 0 credits `/google/locations?q=munich&country_code=de&limit=5`q (required) matches the place name or canonical name, case-insensitive; country_code filters by ISO 3166-1 alpha-2 code; limit is 1-100 (default 20). Exact names come first, then broader places before narrower ones. Many towns share a name (Paris, France and Paris, Texas), so pass country_code to find the right one. Pass the key in the X-API-Key header. ```bash curl "https://api.serpbase.dev/google/locations?q=munich&country_code=de&limit=2" \ -H "X-API-Key: your_api_key" curl -X POST https://api.serpbase.dev/google/search \ -H "X-API-Key: your_api_key" \ -H "Content-Type: application/json" \ -d '{"q":"crossfit software","gl":"de","hl":"de","device":"mobile","location":"Munich,Bavaria,Germany"}' ``` ```json { "status": 0, "locations": [ { "canonical_name": "Munich,Bavaria,Germany", "name": "Munich", "country_code": "DE", "target_type": "City" }, { "canonical_name": "Taufkirchen,Munich,Bavaria,Germany", "name": "Taufkirchen", "country_code": "DE", "target_type": "City" } ] } ``` | Country location | gl | City example | | --- | --- | --- | | United States | us | New York,New York,United States | | United Kingdom | gb | London,England,United Kingdom | | Germany | de | Munich,Bavaria,Germany | | Austria | at | Vienna,Vienna,Austria | | Switzerland | ch | Zurich,Zurich,Switzerland | | France | fr | Paris,Ile-de-France,France | | Italy | it | Milan,Lombardy,Italy | | Spain | es | Madrid,Community of Madrid,Spain | | Poland | pl | Warsaw,Masovian Voivodeship,Poland | | Canada | ca | Toronto,Ontario,Canada | | Australia | au | Sydney,New South Wales,Australia | | Japan | jp | Tokyo,Tokyo,Japan | | Indonesia | id | Jakarta,Jakarta,Indonesia | | Philippines | ph | Manila,Metro Manila,Philippines | | Brazil | br | Sao Paulo,State of Sao Paulo,Brazil | | Mexico | mx | Mexico City,Mexico City,Mexico | Limited to 60 lookups per minute per account. A location that is not in this list is ignored rather than rejected: the search still runs, without it. location takes effect only on mobile searches (device mobile, the default). ## Output formats > Results come as JSON by default. Set format to get the same result as Markdown for language models, or, on Google Search, the results page itself as HTML. The price is the same. Source: https://serpbase.dev/docs/output-formats · Index: https://serpbase.dev/llms.txt · OpenAPI: https://serpbase.dev/openapi.json Results come as JSON by default. Set format to get the same result as Markdown for language models, or, on Google Search, the results page itself as HTML. The price is the same. ### format | Value | What you get | | --- | --- | | `json` | Default. The parsed result in the standard envelope: status, credits_charged, request_id and the result fields. | | `markdown` | The same result as Markdown text (text/markdown), ready to hand to a language model: no envelope, no duplicate fields, no inline images. | | `raw` | Google Web Search only: the results page itself as text/html, with tracking scripts removed and result links resolved to their real addresses. | ```bash curl -X POST https://api.serpbase.dev/google/search \ -H "X-API-Key: YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{"q": "coffee shops", "format": "markdown"}' ``` Whatever format you ask for, a failure comes back as the JSON error envelope, so your client can always read status first. # Endpoints ## Google Web Search API Search Google web results with q, language hl, country gl and a supported device. Result sections depend on the query and upstream response. - Category: Search engines - Endpoint: `POST https://api.serpbase.dev/google/search` - Price: 1 credit per request - Status: available - Docs: https://serpbase.dev/docs/google_web_search (Markdown: https://serpbase.dev/docs/google_web_search.md) API reference · Search engines Search Google web results with q, language hl, country gl and a supported device. Result sections depend on the query and upstream response. POST `https://api.serpbase.dev/google/search` 1 credit [Open in Playground](https://serpbase.dev/playground?product=google_web_search) ### Example ```bash curl -X POST 'https://api.serpbase.dev/google/search' \ -H "Content-Type: application/json" \ -H 'X-API-Key: YOUR_API_KEY' \ --max-time 60 \ -d '{"device":"mobile","gl":"us","hl":"en","q":"coffee shops"}' ``` Response · real, shortened ``` { "status": 0, "credits_charged": 1, "request_id": "r-4b27fe8a36d9ac303a5da7dd", "product_id": "google_web_search", "query": "coffee shops", "local_results": [ { "address": "Denver, CO", "category": "Coffee shop", "hours": "Open", "position": 1, "rank": 1, "rating": "4.9", "reviews_count": "455", "title": "Coffeegraph" }, { "address": "Sioux Falls, SD", "category": "Coffee shop", "hours": "Open", "position": 1, "rank": 2, "rating": "4.9", "reviews_count": "295", "title": "The Breaks Coffee Roasting Co." } ], "organic": [ { "date": "Sep 17, 2026", "display_link": "www.discovertheburgh.com", "display_url": "www.discovertheburgh.com", "link": "https://www.discovertheburgh.com/pittsburgh-coffee-shops/", "position": 3, "published_at": "Sep 17, 2026", "rank": 1, "snippet": "🏨 Book Avenue in Garfield. Redhawk Coffee. Ghost Coffee Collab at Trace Brewing. Kaibur Coffee Kaibu…", "source_url": "https://www.google.com/goto?url=CAESdAHrOzAVQPT8-1-RxOq_G62WuAgUAmaFDk4SD6YsadPoLMH5lbvuR0WPu8BR2EKN…", "title": "48 Pittsburgh Coffee Shops to Grab a Delicious Brew", "url": "https://www.discovertheburgh.com/pittsburgh-coffee-shops/" } ], "page": 1, "people_also_ask": [ { "position": 2, "question": "What are the top 10 coffee chains?" }, { "position": 2, "question": "What are the main coffee shop chains?" } ], "people_also_search_for": [ "Best coffee shops", "Coffee shops Orlando" ], "related_searches": [ "Best coffee shops in Pittsburgh to study", "Coffee Shops near Monroeville PA" ], "search_type": "search" } ``` ### Parameters | Name | What it does | | --- | --- | | `q` required string | Search query string. | | `hl` string | Language code. Defaults to en. | | `gl` string | Country code. Defaults to us. | | `location` string | Where the search is made from, as a Google canonical location name: a country ("Germany"), a region ("Bavaria,Germany") or a city ("Munich,Bavaria,Germany"). Look names up with GET /google/locations. Case and spaces after commas are ignored. A name that is not in the list is not sent to Google and the search runs as if location were omitted. Use it together with gl and hl for the same market. It takes effect only with the mobile device (the default); with device pc Google places the search by the exit IP and ignores location. Optional; same credits. | | `page` number | 1-based page number. Defaults to 1. | | `device` "mobile" \| "pc" \| "default" | Google Search only. mobile returns the phone layout, pc (or desktop) the desktop layout; default and an omitted field mean mobile. The page is fetched from a real session of that device, so modules such as the knowledge panel differ between the two. | | `format` "json" \| "raw" \| "markdown" | json (default) returns the parsed result. markdown returns the same result as Markdown text (text/markdown) for language models: no envelope, no duplicate alias fields, no inline images. raw returns the Google page itself as text/html, with the platform's session identifiers, Google's scripts and tracking beacons removed and result links already resolved; with raw, queries with search operators are also served by the signed lanes, so a raw page is always a real desktop or phone page. All formats cost the same credits; failures keep the JSON envelope. | | `timeout` number | How many seconds you will wait, 1 to 30 (decimals allowed). Optional; without it the platform spends up to 30 seconds. With it, retries on other routes start earlier so an answer can still arrive inside your budget, and when the budget runs out the request ends with status 1504 and is not charged, instead of being cut off by your HTTP client. Keep your client's own timeout above this value. | Search can also return ai_overview, weather, finance, flight, and result_stats when those modules appear in the SERP. ### What comes back Fields that are not on the page for a given request are left out rather than sent empty. | Field | Type | Availability | Description | | --- | --- | --- | --- | | `query` required | string | required | Normalized query from the request. | | `page` required | number | required | Current 1-based page number. | | `organic` optional | OrganicResult[] | When organic results are parsed. | Organic search results. | | `featured_snippet` optional | FeaturedSnippet | When Google shows a featured snippet. | Featured snippet answer card, returned separately from organic results. | | `top_stories` optional | TopStory[] | When the SERP contains top stories. | News cards from Top stories, News and Also in the news: title, link, source, time and thumbnail_url. | | `people_also_ask` optional | PAA[] | When People Also Ask is present. | Question, answer, and source links. | | `knowledge_graph` optional | KnowledgeGraph | When a knowledge panel is parsed. | Entity panel data. | | `related_searches` optional | string[] | When related search suggestions are found. | Related search queries. | | `ai_overview` optional | { summary, truncated?, sources[] } | When Google shows an AI Overview on the page. | The AI Overview text (sections and bullets kept as lines) and its cited sources: title (the site name), link, and page_title and snippet when the page shows the source card. truncated is true when Google put only the start of a long answer on the page. | | `local_results` optional | LocalResult[] | When the page shows a Places pack. | Local places with title, rating, reviews_count, category, address and hours. | | `inline_videos` optional | InlineVideo[] | When the page shows a Videos module. | Video cards with title, link, source (site), channel, duration, date and thumbnail_url. | | `short_videos` optional | InlineVideo[] | When the page shows a Short videos carousel. | Short-form clips in the same shape as inline_videos. | | `discussions` optional | Discussion[] | When the page shows Discussions and forums. | Forum threads with title, link, source (e.g. Reddit), forum, comments and date. | | `recipes` optional | Recipe[] | When the page shows recipe cards. | Recipe cards with title, link, source, rating, reviews_count, total_time and ingredients. | | `inline_images` optional | InlineImage[] | When the page shows an image strip (for example beside a knowledge panel). | Images with title, link to the hosting page, source credit and thumbnail_url: the full-size image on its site when the page names it, else Google's https thumbnail, else an inline data: image. | | `weather` optional | { location, temperature, condition, precipitation, humidity, wind, source? } | When the page shows a weather card. | The current weather as displayed: location, temperature (with its unit on desktop), condition, precipitation, humidity and wind. | | `finance` optional | { title, exchange, price, change, after_hours_price?, open?, day_range?, year_range?, market_cap?, pe_ratio?, previous_close?, as_of? } | When the page shows a stock card. | The stock quote as displayed, e.g. price "210.96 USD" and change "−1.25 (−0.59%)", with the after-hours line and the key facts table. | | `social_posts` optional | SocialPost[] | When the page shows What people are saying. | Posts from social sites and forums (up to 10): title (the post text), link, source (e.g. X, Reddit), author, author_description, engagement (e.g. "370+ likes"), date, duration and thumbnail_url. | | `latest_posts` optional | SocialPost[] | When the page shows Latest posts (brand or person queries). | The entity's own recent posts (up to 8), in the same shape as social_posts. | | `social_profiles` optional | SocialProfile[] | When the page shows Profiles. | The entity's social accounts: title (the site), link and followers (e.g. "36M", desktop only). | | `shopping_results` optional | Product[] | When the page shows product cards (Popular products, More products). | Products with title, product_id (Google's catalog id), price, original_price, merchant, delivery, rating, reviews_count, badge (e.g. "LOW PRICE") and thumbnail_url. Cards open Google's product viewer, so they have no link. | | `sports_results` optional | { title, ranking, games[] } | When the page shows a sports team or league card. | The team or league and its standing, and games with status, date, start_time (RFC 3339), stage, teams (name and score) and the highlights link. | | `flight_search` optional | { title, origin, destination, departure_date?, return_date?, options[] } | When the page shows a Search flights card (route queries). | The route and, on mobile, the dates, with the cheapest fare per airline: airline, duration, stops (desktop), price and a Google Flights link. | | `people_also_search_for` optional | string[] | When the page shows People also search for. | Related entity queries, distinct from related_searches. | #### `OrganicResult` Result item schema | Field | Type | Availability | Description | | --- | --- | --- | --- | | `rank` required | number | required | 1-based place of the item within its own module (the 3rd organic result has rank 3). | | `position` optional | number (integer) | On every item and module of Google web search except the plain-text lists related_searches and people_also_search_for; elsewhere when available. | Where the item's module sits on the results page: its block number from the top (1 = first). Each organic result is one block and every other module one block, so all items of a module share its number. Use rank for the order within a module. On products that show a single list, position equals rank. | | `title` required | string | required | Result title. | | `link` required | string | required | Primary link returned by the parser. | | `url` optional | string | Present for normalized result links. | Canonical target URL, usually the same value as link. | | `source_url` optional | string | Only when Google redirect/source URL is observed. | Original Google URL kept for debugging and provenance. | | `display_url` optional | string | When Google display text or a domain can be derived. | Display URL or source domain. | | `display_link` optional | string | When Google display text is present. | Raw Google display link text. | | `snippet` optional | string | When a snippet is parsed. | Organic result summary. | | `date` optional | string | When Google includes a date in the snippet. | Raw date text extracted from snippet. | | `published_at` optional | string | Alias for parsed date when available. | Normalized date alias. | | `icon` optional | string | When a favicon/image is exposed. | Result icon URL. | | `sitelinks` optional | { title, link, url, source_url?, display_url? }[] | When sitelinks are present. | Nested sitelinks for the organic result. | ### If it fails A failed request has a non-zero status and an error, and is not charged. The ones you will see here: `1000`A parameter is missing or wrongFix the request `1020`No credits leftTop up `1029`Over your requests per secondWait Retry-After seconds `1502 · 1504`The source could not be read this timeRetry [All status codes →](https://serpbase.dev/docs/responses-and-errors) ### Related [Google Images Search1 credit](https://serpbase.dev/docs/google_images_search) [Google News Search1 credit](https://serpbase.dev/docs/google_news_search) [Google Videos Search1 credit](https://serpbase.dev/docs/google_videos_search) [Google Search Autocomplete1 credit](https://serpbase.dev/docs/google_autocomplete) ## Google Images Search API Search Google Images by query for image results and source links. Returned links do not grant image usage rights. - Category: Search engines - Endpoint: `POST https://api.serpbase.dev/google/image/search` - Price: 1 credit per request - Status: available - Docs: https://serpbase.dev/docs/google_images_search (Markdown: https://serpbase.dev/docs/google_images_search.md) API reference · Search engines Search Google Images by query for image results and source links. Returned links do not grant image usage rights. POST `https://api.serpbase.dev/google/image/search` 1 credit [Open in Playground](https://serpbase.dev/playground?product=google_images_search) ### Example ```bash curl -X POST 'https://api.serpbase.dev/google/image/search' \ -H "Content-Type: application/json" \ -H 'X-API-Key: YOUR_API_KEY' \ --max-time 60 \ -d '{"query":"red pandas"}' ``` Response · real, shortened ``` { "status": 0, "credits_charged": 1, "request_id": "r-4b27fe8a36d9ac303a5da7dd", "product_id": "google_images_search", "query": "red pandas", "images": [ { "display_link": "en.wikipedia.org", "display_url": "en.wikipedia.org", "domain": "en.wikipedia.org", "image_url": "https://upload.wikimedia.org/wikipedia/commons/f/fd/Red_Panda%2C_Gentle_Tree-Dweller_of_the_Himalaya…", "link": "https://en.wikipedia.org/wiki/Red_panda", "position": 1, "rank": 1, "source": "Wikipedia", "thumbnail": "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcTNeizrqHVhTRtzGZT4s3Pnmc_FSNTmyKg45Jj_Fn8k8A&s=10", "thumbnail_url": "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcTNeizrqHVhTRtzGZT4s3Pnmc_FSNTmyKg45Jj_Fn8k8A&s=10", "title": "Red panda - Wikipedia", "url": "https://en.wikipedia.org/wiki/Red_panda" }, { "display_link": "kids.nationalgeographic.com", "display_url": "kids.nationalgeographic.com", "domain": "kids.nationalgeographic.com", "image_url": "https://i.natgeofe.com/k/63b1a8a7-0081-493e-8b53-81d01261ab5d/red-panda-full-body_16x9.jpg", "link": "https://kids.nationalgeographic.com/animals/mammals/facts/red-panda", "position": 2, "rank": 2, "source": "National Geographic Kids", "thumbnail": "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcSCqYcPPXKAmx1AUafJcJFQ3vJ9RQmG_9xH0vqAXEocBg&s=10", "thumbnail_url": "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcSCqYcPPXKAmx1AUafJcJFQ3vJ9RQmG_9xH0vqAXEocBg&s=10", "title": "Red Panda | National Geographic Kids", "url": "https://kids.nationalgeographic.com/animals/mammals/facts/red-panda" } ], "page": 1, "search_type": "images" } ``` ### Parameters | Name | What it does | | --- | --- | | `q` required string | Search query string. | | `hl` string | Language code. Defaults to en. | | `gl` string | Country code. Defaults to us. | | `page` number | 1-based page number. Defaults to 1. | | `format` "json" \| "markdown" | json (default) returns the parsed result. markdown returns the same result as Markdown text (text/markdown) for language models: no envelope, no duplicate alias fields, no inline images. Same credits; failures keep the JSON envelope. | | `timeout` number | How many seconds you will wait, 1 to 30 (decimals allowed). Optional; without it the platform spends up to 30 seconds. With it, retries on other routes start earlier so an answer can still arrive inside your budget, and when the budget runs out the request ends with status 1504 and is not charged, instead of being cut off by your HTTP client. Keep your client's own timeout above this value. | | `query` string | Example: "red pandas" | Some Google Images payload shapes expose rank/link but not every normalized alias. Treat url, display_url, source_url, position, and thumbnail as optional. ### What comes back Fields that are not on the page for a given request are left out rather than sent empty. | Field | Type | Availability | Description | | --- | --- | --- | --- | | `query` required | string | required | Normalized query from the request. | | `page` required | number | required | Current 1-based page number. | | `images` optional | ImageResult[] | When image results are parsed. | Google Images results. | #### `ImageResult` Result item schema | Field | Type | Availability | Description | | --- | --- | --- | --- | | `rank` required | number | required | 1-based place of the item within its own module (the 3rd organic result has rank 3). | | `position` optional | number (integer) | On every item and module of Google web search except the plain-text lists related_searches and people_also_search_for; elsewhere when available. | Where the item's module sits on the results page: its block number from the top (1 = first). Each organic result is one block and every other module one block, so all items of a module share its number. Use rank for the order within a module. On products that show a single list, position equals rank. | | `title` optional | string | When image title or alt text is parsed. | Result title. | | `link` required | string | required | Primary link returned by the parser. | | `url` optional | string | Present for normalized result links. | Canonical target URL, usually the same value as link. | | `source_url` optional | string | Only when Google redirect/source URL is observed. | Original Google URL kept for debugging and provenance. | | `display_url` optional | string | When Google display text or a domain can be derived. | Display URL or source domain. | | `image_url` required | string | required | Full image URL. | | `thumbnail_url` optional | string | When Google exposes a thumbnail. | Thumbnail URL. | | `thumbnail` optional | string | Alias for thumbnail_url when available. | Normalized thumbnail alias. | | `source` optional | string | When source text is parsed. | Image source label. | | `domain` optional | string | When source page domain can be derived. | Source page domain. | ### If it fails A failed request has a non-zero status and an error, and is not charged. The ones you will see here: `1000`A parameter is missing or wrongFix the request `1020`No credits leftTop up `1029`Over your requests per secondWait Retry-After seconds `1502 · 1504`The source could not be read this timeRetry [All status codes →](https://serpbase.dev/docs/responses-and-errors) ### Related [Google Web Search1 credit](https://serpbase.dev/docs/google_web_search) [Google News Search1 credit](https://serpbase.dev/docs/google_news_search) [Google Videos Search1 credit](https://serpbase.dev/docs/google_videos_search) [Google Search Autocomplete1 credit](https://serpbase.dev/docs/google_autocomplete) ## Google News Search API Google News API: search Google News by keyword, country and language, and get each story's title, link, source, publish time, snippet and image as JSON. - Category: Search engines - Endpoint: `POST https://api.serpbase.dev/google/news/search` - Price: 1 credit per request - Status: available - Docs: https://serpbase.dev/docs/google_news_search (Markdown: https://serpbase.dev/docs/google_news_search.md) API reference · Search engines Google News API: search Google News by keyword, country and language, and get each story's title, link, source, publish time, snippet and image as JSON. POST `https://api.serpbase.dev/google/news/search` 1 credit [Open in Playground](https://serpbase.dev/playground?product=google_news_search) ### Example ```bash curl -X POST 'https://api.serpbase.dev/google/news/search' \ -H "Content-Type: application/json" \ -H 'X-API-Key: YOUR_API_KEY' \ --max-time 60 \ -d '{"query":"semiconductor supply"}' ``` Response · real, shortened ``` { "status": 0, "credits_charged": 1, "request_id": "r-4b27fe8a36d9ac303a5da7dd", "product_id": "google_news_search", "query": "semiconductor supply", "news": [ { "display_link": "www.photonics.com", "display_url": "www.photonics.com", "link": "https://www.photonics.com/Videos/Americas-Future-in-the-Semiconductor-Supply/p5/v1209", "position": 1, "published_at": "1 day ago", "rank": 1, "snippet": "A few years ago, chip shortages elevated semiconductors from an industry focus to a mainstream issue…", "source": "Photonics Spectra", "source_url": "https://www.google.com/goto?url=CAESkAEB6zswFS9aNci69N4BJmkMPL7tZQU1fNIELxsBqciv5d7pyJ8XDDv_iQSHpW5Z…", "thumbnail": "data:image/webp;base64,UklGRjAFAABXRUJQVlA4ICQFAAAQGwCdASpcAFwAP2lw2m0zpDOzlcJwLQlAGc2bnfAcjmy+3g7x9…", "thumbnail_url": "data:image/webp;base64,UklGRjAFAABXRUJQVlA4ICQFAAAQGwCdASpcAFwAP2lw2m0zpDOzlcJwLQlAGc2bnfAcjmy+3g7x9…", "time": "1 day ago", "title": "America’s Future in the Semiconductor Supply Chain – With Shankaran Janardhanan, GlobalFoundries", "url": "https://www.photonics.com/Videos/Americas-Future-in-the-Semiconductor-Supply/p5/v1209" }, { "display_link": "id.usembassy.gov", "display_url": "id.usembassy.gov", "link": "https://id.usembassy.gov/u-s-department-of-state-hosts-regional-workshop-on-semiconductor-supply-cha…", "position": 2, "published_at": "6 days ago", "rank": 2, "snippet": "The U.S. Department of State hosted the Semiconductor Supply Chain Security Regional Workshop in Bal…", "source": "U.S. Embassy & Consulates in Indonesia (.gov)", "source_url": "https://www.google.com/goto?url=CAESqwEB6zswFZJCN2RCRDpDzvB_xD6KEt-kHZsRp1I9vrQEUCaUBC1peIvoCIlrKt-Z…", "thumbnail": "data:image/webp;base64,UklGRpgEAABXRUJQVlA4IIwEAADQGQCdASpcAFwAP2ls2m0zpDOzljJwLQljAMq69vXa24+x+Y/Da…", "thumbnail_url": "data:image/webp;base64,UklGRpgEAABXRUJQVlA4IIwEAADQGQCdASpcAFwAP2ls2m0zpDOzljJwLQljAMq69vXa24+x+Y/Da…", "time": "6 days ago", "title": "U.S. Department of State Hosts Regional Workshop on Semiconductor Supply Chain Security", "url": "https://id.usembassy.gov/u-s-department-of-state-hosts-regional-workshop-on-semiconductor-supply-cha…" } ], "page": 1, "search_type": "news" } ``` ### Parameters | Name | What it does | | --- | --- | | `q` required string | Search query string. | | `hl` string | Language code. Defaults to en. | | `gl` string | Country code. Defaults to us. | | `page` number | 1-based page number. Defaults to 1. | | `format` "json" \| "markdown" | json (default) returns the parsed result. markdown returns the same result as Markdown text (text/markdown) for language models: no envelope, no duplicate alias fields, no inline images. Same credits; failures keep the JSON envelope. | | `timeout` number | How many seconds you will wait, 1 to 30 (decimals allowed). Optional; without it the platform spends up to 30 seconds. With it, retries on other routes start earlier so an answer can still arrive inside your budget, and when the budget runs out the request ends with status 1504 and is not charged, instead of being cut off by your HTTP client. Keep your client's own timeout above this value. | | `query` string | Example: "semiconductor supply" | Source and time are parsed from compact Google metadata text, so clients should treat both as optional. ### What comes back Fields that are not on the page for a given request are left out rather than sent empty. | Field | Type | Availability | Description | | --- | --- | --- | --- | | `query` required | string | required | Normalized query from the request. | | `page` required | number | required | Current 1-based page number. | | `news` optional | NewsResult[] | When news results are parsed. | Google News results. | #### `NewsResult` Result item schema | Field | Type | Availability | Description | | --- | --- | --- | --- | | `rank` required | number | required | 1-based place of the item within its own module (the 3rd organic result has rank 3). | | `position` optional | number (integer) | On every item and module of Google web search except the plain-text lists related_searches and people_also_search_for; elsewhere when available. | Where the item's module sits on the results page: its block number from the top (1 = first). Each organic result is one block and every other module one block, so all items of a module share its number. Use rank for the order within a module. On products that show a single list, position equals rank. | | `title` required | string | required | Result title. | | `link` required | string | required | Primary link returned by the parser. | | `url` optional | string | Present for normalized result links. | Canonical target URL, usually the same value as link. | | `source_url` optional | string | Only when Google redirect/source URL is observed. | Original Google URL kept for debugging and provenance. | | `display_url` optional | string | When Google display text or a domain can be derived. | Display URL or source domain. | | `source` optional | string | When publisher text is parsed. | Publisher/source label. | | `time` optional | string | When Google exposes time text. | Raw published time text. | | `published_at` optional | string | Alias for parsed time when available. | Normalized published time alias. | | `snippet` optional | string | When a snippet is parsed. | Article summary snippet. | | `thumbnail_url` optional | string | When Google exposes a thumbnail. | Thumbnail URL. | | `thumbnail` optional | string | Alias for thumbnail_url when available. | Normalized thumbnail alias. | ### If it fails A failed request has a non-zero status and an error, and is not charged. The ones you will see here: `1000`A parameter is missing or wrongFix the request `1020`No credits leftTop up `1029`Over your requests per secondWait Retry-After seconds `1502 · 1504`The source could not be read this timeRetry [All status codes →](https://serpbase.dev/docs/responses-and-errors) ### Related [Google Web Search1 credit](https://serpbase.dev/docs/google_web_search) [Google Images Search1 credit](https://serpbase.dev/docs/google_images_search) [Google Videos Search1 credit](https://serpbase.dev/docs/google_videos_search) [Google Search Autocomplete1 credit](https://serpbase.dev/docs/google_autocomplete) ## Google Videos Search API Search Google video results by query. This discovers video listings, not a video download or watermark-removal service. - Category: Search engines - Endpoint: `POST https://api.serpbase.dev/google/videos/search` - Price: 1 credit per request - Status: available - Docs: https://serpbase.dev/docs/google_videos_search (Markdown: https://serpbase.dev/docs/google_videos_search.md) API reference · Search engines Search Google video results by query. This discovers video listings, not a video download or watermark-removal service. POST `https://api.serpbase.dev/google/videos/search` 1 credit [Open in Playground](https://serpbase.dev/playground?product=google_videos_search) ### Example ```bash curl -X POST 'https://api.serpbase.dev/google/videos/search' \ -H "Content-Type: application/json" \ -H 'X-API-Key: YOUR_API_KEY' \ --max-time 60 \ -d '{"query":"how espresso machines work"}' ``` Response · real, shortened ``` { "status": 0, "credits_charged": 1, "request_id": "r-4b27fe8a36d9ac303a5da7dd", "product_id": "google_videos_search", "query": "how espresso machines work", "page": 1, "search_type": "videos", "videos": [ { "display_link": "www.youtube.com", "display_url": "www.youtube.com", "duration": "4:09", "link": "https://www.youtube.com/watch?v=bbIFKjyyLew", "position": 1, "published_at": "Oct 15, 2015", "rank": 1, "source": "YouTube", "source_url": "https://www.google.com/goto?url=CAESZgHrOzAVHoIgq_4pyPKW3wk0K59nV_cxYZH3C-hAne4naEUunKnMaaT_FSKPw4uv…", "thumbnail": "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wCEAAkGBwgHBgkIBwgKCgkLDRYPDQwMDRsUFRAWIB0iIiAdH…", "thumbnail_url": "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wCEAAkGBwgHBgkIBwgKCgkLDRYPDQwMDRsUFRAWIB0iIiAdH…", "time": "Oct 15, 2015", "title": "How A Coffee Machine Works | Mike Cooper", "url": "https://www.youtube.com/watch?v=bbIFKjyyLew" }, { "display_link": "www.youtube.com", "display_url": "www.youtube.com", "duration": "17:38", "link": "https://www.youtube.com/watch?v=5igXx83J_Iw", "position": 2, "published_at": "Mar 9, 2016", "rank": 2, "source": "YouTube", "source_url": "https://www.google.com/goto?url=CAESZgHrOzAVkT938-XmxiN3hhv79FUC6ib8mIiTCHDnUyf8s8LvsDsM0921iTJGNxV6…", "thumbnail": "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wCEAAkGBwgHBgkIBwgKCgkLDRYPDQwMDRsUFRAWIB0iIiAdH…", "thumbnail_url": "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wCEAAkGBwgHBgkIBwgKCgkLDRYPDQwMDRsUFRAWIB0iIiAdH…", "time": "Mar 9, 2016", "title": "How it Works: Deep Inside a Cutaway Espresso Machine", "url": "https://www.youtube.com/watch?v=5igXx83J_Iw" } ] } ``` ### Parameters | Name | What it does | | --- | --- | | `q` required string | Search query string. | | `hl` string | Language code. Defaults to en. | | `gl` string | Country code. Defaults to us. | | `page` number | 1-based page number. Defaults to 1. | | `format` "json" \| "markdown" | json (default) returns the parsed result. markdown returns the same result as Markdown text (text/markdown) for language models: no envelope, no duplicate alias fields, no inline images. Same credits; failures keep the JSON envelope. | | `timeout` number | How many seconds you will wait, 1 to 30 (decimals allowed). Optional; without it the platform spends up to 30 seconds. With it, retries on other routes start earlier so an answer can still arrive inside your budget, and when the budget runs out the request ends with status 1504 and is not charged, instead of being cut off by your HTTP client. Keep your client's own timeout above this value. | | `query` string | Example: "how espresso machines work" | If no dedicated video cards are parsed, the parser falls back to news-style extraction for compatible Google layouts. ### What comes back Fields that are not on the page for a given request are left out rather than sent empty. | Field | Type | Availability | Description | | --- | --- | --- | --- | | `query` required | string | required | Normalized query from the request. | | `page` required | number | required | Current 1-based page number. | | `videos` optional | VideoResult[] | When video results are parsed. | Google Videos results. | #### `VideoResult` Result item schema | Field | Type | Availability | Description | | --- | --- | --- | --- | | `rank` required | number | required | 1-based place of the item within its own module (the 3rd organic result has rank 3). | | `position` optional | number (integer) | On every item and module of Google web search except the plain-text lists related_searches and people_also_search_for; elsewhere when available. | Where the item's module sits on the results page: its block number from the top (1 = first). Each organic result is one block and every other module one block, so all items of a module share its number. Use rank for the order within a module. On products that show a single list, position equals rank. | | `title` required | string | required | Result title. | | `link` required | string | required | Primary link returned by the parser. | | `url` optional | string | Present for normalized result links. | Canonical target URL, usually the same value as link. | | `source_url` optional | string | Only when Google redirect/source URL is observed. | Original Google URL kept for debugging and provenance. | | `display_url` optional | string | When Google display text or a domain can be derived. | Display URL or source domain. | | `source` optional | string | When source/channel can be parsed. | Video source or channel label. | | `duration` optional | string | When duration appears in result text. | Video duration text. | | `time` optional | string | When posted time can be parsed. | Raw posted time text. | | `published_at` optional | string | Alias for parsed time when available. | Normalized posted time alias. | | `thumbnail_url` optional | string | When Google exposes a thumbnail. | Thumbnail URL. | | `thumbnail` optional | string | Alias for thumbnail_url when available. | Normalized thumbnail alias. | ### If it fails A failed request has a non-zero status and an error, and is not charged. The ones you will see here: `1000`A parameter is missing or wrongFix the request `1020`No credits leftTop up `1029`Over your requests per secondWait Retry-After seconds `1502 · 1504`The source could not be read this timeRetry [All status codes →](https://serpbase.dev/docs/responses-and-errors) ### Related [Google Web Search1 credit](https://serpbase.dev/docs/google_web_search) [Google Images Search1 credit](https://serpbase.dev/docs/google_images_search) [Google News Search1 credit](https://serpbase.dev/docs/google_news_search) [Google Search Autocomplete1 credit](https://serpbase.dev/docs/google_autocomplete) ## Google Maps Search API Find Google Maps places using a query and location, such as coffee in Seattle. Use the separate place-detail endpoint for an identified place. - Category: Maps and places - Endpoint: `POST https://api.serpbase.dev/google/maps/search` - Price: 2 credits per request - Status: available - Docs: https://serpbase.dev/docs/google_maps_search (Markdown: https://serpbase.dev/docs/google_maps_search.md) API reference · Maps and places Find Google Maps places using a query and location, such as coffee in Seattle. Use the separate place-detail endpoint for an identified place. POST `https://api.serpbase.dev/google/maps/search` 2 credits [Open in Playground](https://serpbase.dev/playground?product=google_maps_search) ### Example ```bash curl -X POST 'https://api.serpbase.dev/google/maps/search' \ -H "Content-Type: application/json" \ -H 'X-API-Key: YOUR_API_KEY' \ --max-time 60 \ -d '{"location":{"location_query":"Seattle, WA"},"query":"coffee"}' ``` Response · real, shortened ``` { "status": 0, "credits_charged": 2, "request_id": "r-4b27fe8a36d9ac303a5da7dd", "product_id": "google_maps_search", "query": "coffee near Seattle, WA", "page": 1, "search_type": "maps_search" } ``` ### Parameters | Name | What it does | | --- | --- | | `q` required string | Search query string. | | `hl` string | Language code. Defaults to en. | | `gl` string | Country code. Defaults to us. | | `page` number | 1-based page number. Defaults to 1. | | `lat` number | Map center latitude. Must be sent together with lng. | | `lng` number | Map center longitude. Must be sent together with lat. | | `zoom` number | Map zoom from 1 to 21. Defaults to 14 when coordinates are sent. | | `format` "json" \| "markdown" | json (default) returns the parsed result. markdown returns the same result as Markdown text (text/markdown) for language models: no envelope, no duplicate alias fields, no inline images. Same credits; failures keep the JSON envelope. | | `location` object | Example: {"location_query":"Seattle, WA"} | | `query` string | Example: "coffee" | lat and lng must be sent together. zoom is valid only with coordinates and defaults to 14. ### What comes back Fields that are not on the page for a given request are left out rather than sent empty. | Field | Type | Availability | Description | | --- | --- | --- | --- | | `query` required | string | required | Normalized query from the request. | | `page` required | number | required | Current 1-based page number. | | `places` optional | MapsPlace[] | When local places are parsed. | Local place results. | #### `MapsPlace` Result item schema | Field | Type | Availability | Description | | --- | --- | --- | --- | | `position` optional | number | Maps Search only. | Place rank in the local result list. | | `name` required | string | required | Place name. | | `title` required | string | required | Alias for name. | | `feature_id` required | string | required | Google Maps feature id. | | `place_id` optional | string | When Google exposes it. | Google place id. | | `data_id` optional | string | Alias for feature_id. | Maps data id. | | `cid` optional | string | Derived from feature_id when possible. | Google CID. | | `kgmid` optional | string | When present in Maps payload. | Knowledge graph machine id. | | `google_maps_url` optional | string | When Google exposes a Maps URL. | Google Maps URL. | | `url` optional | string | google_maps_url or website fallback. | Primary place URL. | | `rating` optional | number | When rating is present. | Google rating. | | `types` optional | string[] | When categories are present. | Place type labels. | | `category` optional | object | When category block is parsed. | Structured category data. | | `address` optional | string | When address is present. | Formatted address. | | `address_components` optional | object | When components are present. | Street, city, postal code, country code. | | `plus_code` optional | object | When plus code is present. | Global and compound plus codes. | | `phone` optional | string | When phone is present. | Local phone number. | | `phone_international` optional | string | When present. | International phone number. | | `phone_uri` optional | string | When present. | Telephone URI. | | `website` optional | string | When website is present. | Business website. | | `website_domain` optional | string | When website domain is present. | Business website domain. | | `latitude` optional | number | When coordinates are present. | Latitude. | | `longitude` optional | number | When coordinates are present. | Longitude. | | `image` optional | string | When image is present. | Primary place image. | | `thumbnail` optional | string | Alias for image when available. | Primary image alias. | | `photos` optional | MapsPhoto[] | When photos are parsed. | Photo id, URL, size, and optional coordinates. | | `hours` optional | Record | When hours are parsed. | Opening hours by day. | | `open_status` optional | object | When status is present. | Open status text and current hours. | | `attributes` optional | object[] | When attributes are parsed. | Grouped place attributes. | | `related_places` optional | object[] | When related places are present. | Related places from Maps payload. | | `short_description` optional | string | When description block is present. | Short place description. | | `description` optional | string | When description block is present. | Longer place description. | | `snippet` optional | string | short_description or description fallback. | Normalized text summary. | | `timezone` optional | string | When present. | Place timezone. | | `region` optional | string | When present. | Region label. | | `country_code` optional | string | When present. | Country code. | | `language` optional | string | When present. | Language code from Maps payload. | ### If it fails A failed request has a non-zero status and an error, and is not charged. The ones you will see here: `1000`A parameter is missing or wrongFix the request `1020`No credits leftTop up `1029`Over your requests per secondWait Retry-After seconds `1502 · 1504`The source could not be read this timeRetry [All status codes →](https://serpbase.dev/docs/responses-and-errors) ### Related [Google Maps Place Detail3 credits](https://serpbase.dev/docs/google_maps_place) [Google Maps Reviews2 credits](https://serpbase.dev/docs/google_maps_reviews) ## Google Maps Place Detail API Look up one Google Maps place by its place ID. This complements Maps search and uses its own catalog request price. - Category: Maps and places - Endpoint: `POST https://api.serpbase.dev/google/maps/detail` - Price: 3 credits per request - Status: available - Docs: https://serpbase.dev/docs/google_maps_place (Markdown: https://serpbase.dev/docs/google_maps_place.md) API reference · Maps and places Look up one Google Maps place by its place ID. This complements Maps search and uses its own catalog request price. POST `https://api.serpbase.dev/google/maps/detail` 3 credits [Open in Playground](https://serpbase.dev/playground?product=google_maps_place) ### Example ```bash curl -X POST 'https://api.serpbase.dev/google/maps/detail' \ -H "Content-Type: application/json" \ -H 'X-API-Key: YOUR_API_KEY' \ --max-time 60 \ -d '{"id":"ChIJb8Jg9pZYwokR-qHGtvSkLzs"}' ``` No recorded response is published for this endpoint yet. Run the example in the Playground to see a live one. ### Parameters | Name | What it does | | --- | --- | | `feature_id` required string | Use the feature_id field returned by Maps Search place results. It is formatted like 0x...:0x.... | | `hl` string | Language code. Defaults to en. | | `gl` string | Country code. Defaults to us. | | `format` "json" \| "markdown" | json (default) returns the parsed result. markdown returns the same result as Markdown text (text/markdown) for language models: no envelope, no duplicate alias fields, no inline images. Same credits; failures keep the JSON envelope. | | `id` string | Example: "ChIJb8Jg9pZYwokR-qHGtvSkLzs" | Use the feature_id field from a Maps Search place result to request a detail record. A well-formed but unknown feature_id returns status 1004. ### What comes back Fields that are not on the page for a given request are left out rather than sent empty. | Field | Type | Availability | Description | | --- | --- | --- | --- | | `feature_id` required | string | required | Feature id resolved from the Maps detail request. | | `page` required | number | required | Always 1 for maps detail. | | `place` optional | MapsPlace | When place details are parsed. | Single place detail object. | #### `MapsPlace` Result item schema | Field | Type | Availability | Description | | --- | --- | --- | --- | | `position` optional | number | Maps Search only. | Place rank in the local result list. | | `name` required | string | required | Place name. | | `title` required | string | required | Alias for name. | | `feature_id` required | string | required | Google Maps feature id. | | `place_id` optional | string | When Google exposes it. | Google place id. | | `data_id` optional | string | Alias for feature_id. | Maps data id. | | `cid` optional | string | Derived from feature_id when possible. | Google CID. | | `kgmid` optional | string | When present in Maps payload. | Knowledge graph machine id. | | `google_maps_url` optional | string | When Google exposes a Maps URL. | Google Maps URL. | | `url` optional | string | google_maps_url or website fallback. | Primary place URL. | | `rating` optional | number | When rating is present. | Google rating. | | `types` optional | string[] | When categories are present. | Place type labels. | | `category` optional | object | When category block is parsed. | Structured category data. | | `address` optional | string | When address is present. | Formatted address. | | `address_components` optional | object | When components are present. | Street, city, postal code, country code. | | `plus_code` optional | object | When plus code is present. | Global and compound plus codes. | | `phone` optional | string | When phone is present. | Local phone number. | | `phone_international` optional | string | When present. | International phone number. | | `phone_uri` optional | string | When present. | Telephone URI. | | `website` optional | string | When website is present. | Business website. | | `website_domain` optional | string | When website domain is present. | Business website domain. | | `latitude` optional | number | When coordinates are present. | Latitude. | | `longitude` optional | number | When coordinates are present. | Longitude. | | `image` optional | string | When image is present. | Primary place image. | | `thumbnail` optional | string | Alias for image when available. | Primary image alias. | | `photos` optional | MapsPhoto[] | When photos are parsed. | Photo id, URL, size, and optional coordinates. | | `hours` optional | Record | When hours are parsed. | Opening hours by day. | | `open_status` optional | object | When status is present. | Open status text and current hours. | | `attributes` optional | object[] | When attributes are parsed. | Grouped place attributes. | | `related_places` optional | object[] | When related places are present. | Related places from Maps payload. | | `short_description` optional | string | When description block is present. | Short place description. | | `description` optional | string | When description block is present. | Longer place description. | | `snippet` optional | string | short_description or description fallback. | Normalized text summary. | | `timezone` optional | string | When present. | Place timezone. | | `region` optional | string | When present. | Region label. | | `country_code` optional | string | When present. | Country code. | | `language` optional | string | When present. | Language code from Maps payload. | ### If it fails A failed request has a non-zero status and an error, and is not charged. The ones you will see here: `1000`A parameter is missing or wrongFix the request `1020`No credits leftTop up `1029`Over your requests per secondWait Retry-After seconds `1502 · 1504`The source could not be read this timeRetry [All status codes →](https://serpbase.dev/docs/responses-and-errors) ### Related [Google Maps Search2 credits](https://serpbase.dev/docs/google_maps_search) [Google Maps Reviews2 credits](https://serpbase.dev/docs/google_maps_reviews) ## Google Maps Reviews API The first page of Google Maps reviews for a place (by data_id): rating, text, date, photos and reviewer details. Owner replies are not included yet. - Category: Maps and places - Endpoint: `POST https://api.serpbase.dev/google/maps/reviews` - Price: 2 credits per request - Status: available - Devices: desktop (default desktop) - Docs: https://serpbase.dev/docs/google_maps_reviews (Markdown: https://serpbase.dev/docs/google_maps_reviews.md) API reference · Maps and places The first page of Google Maps reviews for a place (by data_id): rating, text, date, photos and reviewer details. Owner replies are not included yet. POST `https://api.serpbase.dev/google/maps/reviews` 2 credits [Open in Playground](https://serpbase.dev/playground?product=google_maps_reviews) ### Example ```bash curl -X POST 'https://api.serpbase.dev/google/maps/reviews' \ -H "Content-Type: application/json" \ -H 'X-API-Key: YOUR_API_KEY' \ --max-time 60 \ -d '{"data_id":"0x89c25896f660c26f:0x3b2fa4f4b6c6a1fa"}' ``` Response · real, shortened ``` { "status": 0, "credits_charged": 2, "request_id": "r-4b27fe8a36d9ac303a5da7dd", "product_id": "google_maps_reviews", "action": "maps_reviews", "pagination": {}, "reviews": { "items": [ { "author": "Sherry Li", "author_id": "113186433261396517394", "author_image_url": "https://lh3.googleusercontent.com/a-/ALV-UjWkD8g7AsWbRot1fsAiM-MKpmf8B6kcpDRWdNYa8TyswwsEaQ4=s120-c-…", "author_local_guide": true, "author_photos_count": "24", "author_reviews_count": "8", "author_url": "https://www.google.com/maps/contrib/113186433261396517394?hl=en-US", "date": "3 weeks ago", "edited_at": "2026-10-06T15:41:52.800Z", "id": "Ci9DQUlRQUNvZENodHljRjlvT2pkWlRYUnpSelZuZERoYVluUjJObGt3YzJKeFdHYxAB", "likes_count": "0", "link": "https://www.google.com/maps/reviews/data=!4m8!14m7!1m6!2m5!1sCi9DQUlRQUNvZENodHljRjlvT2pkWlRYUnpSelZ…", "media": [ { "height": 4032, "image_url": "https://lh3.googleusercontent.com/grass-cs/AABkmLfheciGMOTA1uLaVapeKISC1x5H6IK3VvCQREJp9LMTFNrG-2SdT…", "type": "image", "url": "https://lh3.googleusercontent.com/grass-cs/AABkmLfheciGMOTA1uLaVapeKISC1x5H6IK3VvCQREJp9LMTFNrG-2SdT…", "width": 3024 } ], "published_at": "2026-10-06T15:39:47.770Z", "rating": 5, "text": "The Met is honestly one of the most incredible museums I have ever visited. I think it is probably t…", "url": "https://www.google.com/maps/reviews/data=!4m8!14m7!1m6!2m5!1sCi9DQUlRQUNvZENodHljRjlvT2pkWlRYUnpSelZ…" } ] }, "source": "google", "url": "https://www.google.com/maps/preview/place?authuser=0&gl=us&hl=en&pb=%211m14%211s0x89c25896f660c26f%3…" } ``` ### Parameters | Name | What it does | | --- | --- | | `format` "json" \| "markdown" | json (default) returns the parsed result. markdown returns the same result as Markdown text (text/markdown) for language models: no envelope, no duplicate alias fields, no inline images. Same credits; failures keep the JSON envelope. | | `data_id` string | Example: "0x89c25896f660c26f:0x3b2fa4f4b6c6a1fa" | | `country` string | Public alias for locale.country. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `cursor` string | Public alias for pagination.cursor. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `dataID` string | Public alias for data_id. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `device` string | Public alias for options.device. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `gl` string | Public alias for locale.country. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `google_domain` string | Public alias for locale.engine_domain. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `gooogle_domain` string | Public alias for locale.engine_domain. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `hl` string | Public alias for locale.language. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `html` boolean | Public alias for include_html. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `language` string | Public alias for locale.language. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `limit` integer | Public alias for pagination.limit. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `markdown` boolean | Public alias for include_markdown. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `mobile` boolean | Public alias for options.device. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `next_page_token` string | Public alias for next_token. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `num` integer | Public alias for pagination.limit. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `page` integer | Public alias for pagination.page. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `q` string | Public alias for query. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `results` integer | Public alias for pagination.limit. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `topic_id` string | Public alias for attributes.topic_id. Use one spelling at a time; the API validates the parameters and values supported by this product. | The sample shows example parameters, not the complete request contract. Known fields are validated by the API; additional parameters are allowed. ### What comes back The fields are those in the response above; every endpoint also carries status, credits_charged and request_id. ### If it fails A failed request has a non-zero status and an error, and is not charged. The ones you will see here: `1000`A parameter is missing or wrongFix the request `1020`No credits leftTop up `1029`Over your requests per secondWait Retry-After seconds `1502 · 1504`The source could not be read this timeRetry [All status codes →](https://serpbase.dev/docs/responses-and-errors) ### Related [Google Maps Search2 credits](https://serpbase.dev/docs/google_maps_search) [Google Maps Place Detail3 credits](https://serpbase.dev/docs/google_maps_place) ## Google Search Autocomplete API Retrieve Google search suggestions for a query prefix. Suggestions are not search-volume measurements. - Category: Search engines - Endpoint: `POST https://api.serpbase.dev/google/autocomplete` - Price: 1 credit per request - Status: available - Docs: https://serpbase.dev/docs/google_autocomplete (Markdown: https://serpbase.dev/docs/google_autocomplete.md) API reference · Search engines Retrieve Google search suggestions for a query prefix. Suggestions are not search-volume measurements. POST `https://api.serpbase.dev/google/autocomplete` 1 credit [Open in Playground](https://serpbase.dev/playground?product=google_autocomplete) ### Example ```bash curl -X POST 'https://api.serpbase.dev/google/autocomplete' \ -H "Content-Type: application/json" \ -H 'X-API-Key: YOUR_API_KEY' \ --max-time 60 \ -d '{"query":"weather"}' ``` Response · real, shortened ``` { "status": 0, "credits_charged": 1, "request_id": "r-4b27fe8a36d9ac303a5da7dd", "product_id": "google_autocomplete", "query": "weather", "search_type": "autocomplete", "suggestions": [ { "rank": 1, "relevance": 601, "value": "weather tomorrow" }, { "rank": 2, "relevance": 600, "value": "weather rock hill sc" } ] } ``` ### Parameters | Name | What it does | | --- | --- | | `format` "json" \| "markdown" | json (default) returns the parsed result. markdown returns the same result as Markdown text (text/markdown) for language models: no envelope, no duplicate alias fields, no inline images. Same credits; failures keep the JSON envelope. | | `query` string | Example: "weather" | The sample shows example parameters, not the complete request contract. Known fields are validated by the API; additional parameters are allowed. ### What comes back The fields are those in the response above; every endpoint also carries status, credits_charged and request_id. ### If it fails A failed request has a non-zero status and an error, and is not charged. The ones you will see here: `1000`A parameter is missing or wrongFix the request `1020`No credits leftTop up `1029`Over your requests per secondWait Retry-After seconds `1502 · 1504`The source could not be read this timeRetry [All status codes →](https://serpbase.dev/docs/responses-and-errors) ### Related [Google Web Search1 credit](https://serpbase.dev/docs/google_web_search) [Google Images Search1 credit](https://serpbase.dev/docs/google_images_search) [Google News Search1 credit](https://serpbase.dev/docs/google_news_search) [Google Videos Search1 credit](https://serpbase.dev/docs/google_videos_search) ## Google Shopping Search API Search Google Shopping listings by query, such as a product name. This is a search snapshot, not continuous price monitoring. - Category: Search engines - Endpoint: `POST https://api.serpbase.dev/google/shopping` - Price: 2 credits per request - Status: available - Docs: https://serpbase.dev/docs/google_shopping_search (Markdown: https://serpbase.dev/docs/google_shopping_search.md) API reference · Search engines Search Google Shopping listings by query, such as a product name. This is a search snapshot, not continuous price monitoring. POST `https://api.serpbase.dev/google/shopping` 2 credits [Open in Playground](https://serpbase.dev/playground?product=google_shopping_search) ### Example ```bash curl -X POST 'https://api.serpbase.dev/google/shopping' \ -H "Content-Type: application/json" \ -H 'X-API-Key: YOUR_API_KEY' \ --max-time 60 \ -d '{"query":"coffee maker"}' ``` Response · real, shortened ``` { "status": 0, "credits_charged": 2, "request_id": "r-4b27fe8a36d9ac303a5da7dd", "product_id": "google_shopping_search", "query": "coffee maker", "offers": [ { "display_link": "www.google.com", "display_url": "www.google.com", "link": "https://www.google.com/search?ibp=oshop&q=Cuisinart+14+Cup+Programmable&prds=catalogid:9479163313991…", "merchant": "Target", "position": 1, "price": "$119.99", "price_display": "$119.99", "rank": 1, "rating": 4.5, "source": "Target", "title": "Cuisinart 14 Cup Programmable", "url": "https://www.google.com/search?ibp=oshop&q=Cuisinart+14+Cup+Programmable&prds=catalogid:9479163313991…" } ], "page": 1, "search_type": "shopping", "shopping": [ { "display_link": "www.google.com", "display_url": "www.google.com", "link": "https://www.google.com/search?ibp=oshop&q=Cuisinart+14+Cup+Programmable&prds=catalogid:9479163313991…", "merchant": "Target", "position": 1, "price": "$119.99", "price_display": "$119.99", "rank": 1, "rating": 4.5, "source": "Target", "title": "Cuisinart 14 Cup Programmable", "url": "https://www.google.com/search?ibp=oshop&q=Cuisinart+14+Cup+Programmable&prds=catalogid:9479163313991…" } ], "shopping_results": [ { "display_link": "www.google.com", "display_url": "www.google.com", "link": "https://www.google.com/search?ibp=oshop&q=Cuisinart+14+Cup+Programmable&prds=catalogid:9479163313991…", "merchant": "Target", "position": 1, "price": "$119.99", "price_display": "$119.99", "rank": 1, "rating": 4.5, "source": "Target", "title": "Cuisinart 14 Cup Programmable", "url": "https://www.google.com/search?ibp=oshop&q=Cuisinart+14+Cup+Programmable&prds=catalogid:9479163313991…" } ] } ``` ### Parameters | Name | What it does | | --- | --- | | `format` "json" \| "markdown" | json (default) returns the parsed result. markdown returns the same result as Markdown text (text/markdown) for language models: no envelope, no duplicate alias fields, no inline images. Same credits; failures keep the JSON envelope. | | `query` string | Example: "coffee maker" | The sample shows example parameters, not the complete request contract. Known fields are validated by the API; additional parameters are allowed. ### What comes back The fields are those in the response above; every endpoint also carries status, credits_charged and request_id. ### If it fails A failed request has a non-zero status and an error, and is not charged. The ones you will see here: `1000`A parameter is missing or wrongFix the request `1020`No credits leftTop up `1029`Over your requests per secondWait Retry-After seconds `1502 · 1504`The source could not be read this timeRetry [All status codes →](https://serpbase.dev/docs/responses-and-errors) ### Related [Google Web Search1 credit](https://serpbase.dev/docs/google_web_search) [Google Images Search1 credit](https://serpbase.dev/docs/google_images_search) [Google News Search1 credit](https://serpbase.dev/docs/google_news_search) [Google Videos Search1 credit](https://serpbase.dev/docs/google_videos_search) ## Google Jobs Search API Search Google job listings using a role or keyword query. Listings are returned when present; this endpoint does not submit applications. - Category: Search engines - Endpoint: `POST https://api.serpbase.dev/google/jobs` - Price: 2 credits per request - Status: available - Docs: https://serpbase.dev/docs/google_jobs_search (Markdown: https://serpbase.dev/docs/google_jobs_search.md) API reference · Search engines Search Google job listings using a role or keyword query. Listings are returned when present; this endpoint does not submit applications. POST `https://api.serpbase.dev/google/jobs` 2 credits [Open in Playground](https://serpbase.dev/playground?product=google_jobs_search) ### Example ```bash curl -X POST 'https://api.serpbase.dev/google/jobs' \ -H "Content-Type: application/json" \ -H 'X-API-Key: YOUR_API_KEY' \ --max-time 60 \ -d '{"query":"software engineer"}' ``` Response · real, shortened ``` { "status": 0, "credits_charged": 2, "request_id": "r-4b27fe8a36d9ac303a5da7dd", "product_id": "google_jobs_search", "query": "software engineer", "jobs": [], "jobs_results": [], "no_results": true, "page": 1, "search_type": "jobs" } ``` ### Parameters | Name | What it does | | --- | --- | | `format` "json" \| "markdown" | json (default) returns the parsed result. markdown returns the same result as Markdown text (text/markdown) for language models: no envelope, no duplicate alias fields, no inline images. Same credits; failures keep the JSON envelope. | | `query` string | Example: "software engineer" | The sample shows example parameters, not the complete request contract. Known fields are validated by the API; additional parameters are allowed. ### What comes back The fields are those in the response above; every endpoint also carries status, credits_charged and request_id. ### If it fails A failed request has a non-zero status and an error, and is not charged. The ones you will see here: `1000`A parameter is missing or wrongFix the request `1020`No credits leftTop up `1029`Over your requests per secondWait Retry-After seconds `1502 · 1504`The source could not be read this timeRetry [All status codes →](https://serpbase.dev/docs/responses-and-errors) ### Related [Google Web Search1 credit](https://serpbase.dev/docs/google_web_search) [Google Images Search1 credit](https://serpbase.dev/docs/google_images_search) [Google News Search1 credit](https://serpbase.dev/docs/google_news_search) [Google Videos Search1 credit](https://serpbase.dev/docs/google_videos_search) ## Google Scholar Search API Search Google Scholar by research topic or keywords. Result metadata is not a promise of access to full-text papers. - Category: Search engines - Endpoint: `POST https://api.serpbase.dev/google/scholar` - Price: 2 credits per request - Status: paused (temporarily not callable) - Docs: https://serpbase.dev/docs/google_scholar_search (Markdown: https://serpbase.dev/docs/google_scholar_search.md) API reference · Search engines Search Google Scholar by research topic or keywords. Result metadata is not a promise of access to full-text papers. POST `https://api.serpbase.dev/google/scholar` In development · Paused This endpoint is being reworked and is paused for now. It cannot be called until it reopens. ### Example ```bash curl -X POST 'https://api.serpbase.dev/google/scholar' \ -H "Content-Type: application/json" \ -H 'X-API-Key: YOUR_API_KEY' \ --max-time 60 \ -d '{"query":"quantum computing"}' ``` No recorded response is published for this endpoint yet. Run the example in the Playground to see a live one. ### Parameters | Name | What it does | | --- | --- | | `format` "json" \| "markdown" | json (default) returns the parsed result. markdown returns the same result as Markdown text (text/markdown) for language models: no envelope, no duplicate alias fields, no inline images. Same credits; failures keep the JSON envelope. | | `query` string | Example: "quantum computing" | The sample shows example parameters, not the complete request contract. Known fields are validated by the API; additional parameters are allowed. ### What comes back The fields are those in the response above; every endpoint also carries status, credits_charged and request_id. ### If it fails A failed request has a non-zero status and an error, and is not charged. The ones you will see here: `1000`A parameter is missing or wrongFix the request `1020`No credits leftTop up `1029`Over your requests per secondWait Retry-After seconds `1502 · 1504`The source could not be read this timeRetry [All status codes →](https://serpbase.dev/docs/responses-and-errors) ### Related [Google Web Search1 credit](https://serpbase.dev/docs/google_web_search) [Google Images Search1 credit](https://serpbase.dev/docs/google_images_search) [Google News Search1 credit](https://serpbase.dev/docs/google_news_search) [Google Videos Search1 credit](https://serpbase.dev/docs/google_videos_search) ## Google Books Search API Search Google Books using a title, author or keyword query. Book discovery does not include unrestricted book downloads. - Category: Search engines - Endpoint: `POST https://api.serpbase.dev/google/books` - Price: 1 credit per request - Status: available - Docs: https://serpbase.dev/docs/google_books_search (Markdown: https://serpbase.dev/docs/google_books_search.md) API reference · Search engines Search Google Books using a title, author or keyword query. Book discovery does not include unrestricted book downloads. POST `https://api.serpbase.dev/google/books` 1 credit [Open in Playground](https://serpbase.dev/playground?product=google_books_search) ### Example ```bash curl -X POST 'https://api.serpbase.dev/google/books' \ -H "Content-Type: application/json" \ -H 'X-API-Key: YOUR_API_KEY' \ --max-time 60 \ -d '{"query":"clean code"}' ``` Response · real, shortened ``` { "status": 0, "credits_charged": 1, "request_id": "r-4b27fe8a36d9ac303a5da7dd", "product_id": "google_books_search", "query": "clean code", "organic": [ { "date": "2009", "display_link": "books.google.com › books", "display_url": "books.google.com › books", "link": "https://books.google.com/books?id=hjEFCAAAQBAJ&printsec=frontcover&dq=clean+code&hl=en&newbks=1&newb…", "position": 1, "published_at": "2009", "rank": 1, "sitelinks": [ { "display_url": "books.google.com", "link": "https://books.google.com/books?id=hjEFCAAAQBAJ&printsec=frontcover&dq=clean+code&hl=en&newbks=1&newb…", "source_url": "https://books.google.com/books?id=hjEFCAAAQBAJ&printsec=frontcover&dq=clean+code&hl=en&newbks=1&newb…", "title": "Preview", "url": "https://books.google.com/books?id=hjEFCAAAQBAJ&printsec=frontcover&dq=clean+code&hl=en&newbks=1&newb…" } ], "snippet": "This title shows the process of cleaning code.", "source_url": "https://books.google.com/books?id=hjEFCAAAQBAJ&printsec=frontcover&dq=clean+code&hl=en&newbks=1&newb…", "title": "Clean Code: A Handbook of Agile Software Craftsmanship", "url": "https://books.google.com/books?id=hjEFCAAAQBAJ&printsec=frontcover&dq=clean+code&hl=en&newbks=1&newb…" }, { "display_link": "books.google.com › books", "display_url": "books.google.com › books", "link": "https://books.google.com/books?id=Gwdx0QEACAAJ&dq=clean+code&hl=en&newbks=1&newbks_redir=1&sa=X&ved=…", "position": 3, "rank": 2, "sitelinks": [ { "display_url": "books.google.com", "link": "https://books.google.com/books?id=Gwdx0QEACAAJ&dq=clean+code&hl=en&newbks=1&newbks_redir=1&sa=X&ved=…", "source_url": "https://www.google.com/books/edition/Clean_Code/Gwdx0QEACAAJ?hl=en&gl=us&kptab=editions&sa=X&ved=2ah…", "title": "More editions", "url": "https://books.google.com/books?id=Gwdx0QEACAAJ&dq=clean+code&hl=en&newbks=1&newbks_redir=1&sa=X&ved=…" } ], "snippet": "This new edition of the classic guide to software craftsmanship --a comprehensive rewrite of the ori…", "source_url": "https://books.google.com/books?id=Gwdx0QEACAAJ&dq=clean+code&hl=en&newbks=1&newbks_redir=1&sa=X&ved=…", "title": "Clean Code: A Handbook of Agile Software Craftsmanship", "url": "https://books.google.com/books?id=Gwdx0QEACAAJ&dq=clean+code&hl=en&newbks=1&newbks_redir=1&sa=X&ved=…" } ], "page": 1, "related_searches": [ "inauthor:\"Robert C. Martin\"", "inauthor:\"Robert Martin\"" ], "result_stats": "About 5,780,000 results (0.66s)", "search_type": "search" } ``` ### Parameters | Name | What it does | | --- | --- | | `format` "json" \| "markdown" | json (default) returns the parsed result. markdown returns the same result as Markdown text (text/markdown) for language models: no envelope, no duplicate alias fields, no inline images. Same credits; failures keep the JSON envelope. | | `query` string | Example: "clean code" | The sample shows example parameters, not the complete request contract. Known fields are validated by the API; additional parameters are allowed. ### What comes back The fields are those in the response above; every endpoint also carries status, credits_charged and request_id. ### If it fails A failed request has a non-zero status and an error, and is not charged. The ones you will see here: `1000`A parameter is missing or wrongFix the request `1020`No credits leftTop up `1029`Over your requests per secondWait Retry-After seconds `1502 · 1504`The source could not be read this timeRetry [All status codes →](https://serpbase.dev/docs/responses-and-errors) ### Related [Google Web Search1 credit](https://serpbase.dev/docs/google_web_search) [Google Images Search1 credit](https://serpbase.dev/docs/google_images_search) [Google News Search1 credit](https://serpbase.dev/docs/google_news_search) [Google Videos Search1 credit](https://serpbase.dev/docs/google_videos_search) ## Google Finance Search API Query Google Finance using a company or financial search term. This is not a streaming market feed or trading API. - Category: Search engines - Endpoint: `POST https://api.serpbase.dev/google/finance` - Price: 1 credit per request - Status: available - Docs: https://serpbase.dev/docs/google_finance_search (Markdown: https://serpbase.dev/docs/google_finance_search.md) API reference · Search engines Query Google Finance using a company or financial search term. This is not a streaming market feed or trading API. POST `https://api.serpbase.dev/google/finance` 1 credit [Open in Playground](https://serpbase.dev/playground?product=google_finance_search) ### Example ```bash curl -X POST 'https://api.serpbase.dev/google/finance' \ -H "Content-Type: application/json" \ -H 'X-API-Key: YOUR_API_KEY' \ --max-time 60 \ -d '{"query":"apple stock"}' ``` Response · real, shortened ``` { "status": 0, "credits_charged": 1, "request_id": "r-4b27fe8a36d9ac303a5da7dd", "product_id": "google_finance_search", "query": "apple stock", "ai_overview": { "position": 7, "sources": [ { "link": "https://finance.yahoo.com/quote/AAPL/", "page_title": "Apple Inc. (AAPL) - Yahoo Finance", "snippet": "Apple Inc. (AAPL) * 5D. 2.24% * 1M. 1.77% * 6M. 29.70% * YTD. 27.68% * 1Y. 29.12% * 5Y. 133.19% * Al…", "title": "Yahoo Finance" } ], "summary": "Apple Inc. (AAPL) is trading at $346.81 on the NASDAQ, up $1.93 (0.56%) from the previous close of $…" }, "finance": { "after_hours_price": "()", "as_of": "Closed: Oct 28, 9:50 AM EDT", "change": "−1.76 (−0.51%)", "day_range": "344.83 - 347.18", "exchange": "NASDAQ: AAPL", "market_cap": "5.04T", "open": "346.92", "pe_ratio": "39.59", "position": 3, "previous_close": "347.10", "price": "345.34 USD", "title": "Apple Inc", "year_range": "243.42 - 351.73" }, "inline_images": [ { "position": 1, "rank": 1, "source": "t1.gstatic.com", "thumbnail_url": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADgAAAA4CAMAAACfWMssAAAAUVBMVEX///9mZmZeXl5iYmJXV1daWl…" } ], "page": 1, "people_also_ask": [ { "position": 6, "question": "Is it time to sell my Apple stock?" }, { "position": 6, "question": "Is Apple stock declining?" } ], "people_also_search_for": [ "Amazon stock price", "Apple stock stock price prediction" ], "related_searches": [ "Amazon stock price", "Apple stock stock price prediction" ], "result_stats": "About 139 results (0.39s)", "search_type": "search" } ``` ### Parameters | Name | What it does | | --- | --- | | `format` "json" \| "markdown" | json (default) returns the parsed result. markdown returns the same result as Markdown text (text/markdown) for language models: no envelope, no duplicate alias fields, no inline images. Same credits; failures keep the JSON envelope. | | `query` string | Example: "apple stock" | The sample shows example parameters, not the complete request contract. Known fields are validated by the API; additional parameters are allowed. ### What comes back The fields are those in the response above; every endpoint also carries status, credits_charged and request_id. ### If it fails A failed request has a non-zero status and an error, and is not charged. The ones you will see here: `1000`A parameter is missing or wrongFix the request `1020`No credits leftTop up `1029`Over your requests per secondWait Retry-After seconds `1502 · 1504`The source could not be read this timeRetry [All status codes →](https://serpbase.dev/docs/responses-and-errors) ### Related [Google Web Search1 credit](https://serpbase.dev/docs/google_web_search) [Google Images Search1 credit](https://serpbase.dev/docs/google_images_search) [Google News Search1 credit](https://serpbase.dev/docs/google_news_search) [Google Videos Search1 credit](https://serpbase.dev/docs/google_videos_search) ## Google Patent Details API Get one Google Patents record by publication number: title, abstract, claims, inventors, assignees and dates as published. - Category: Search engines - Endpoint: `POST https://api.serpbase.dev/google/patents/detail` - Price: 2 credits per request - Status: available - Devices: desktop (default desktop) - Docs: https://serpbase.dev/docs/google_patents_detail (Markdown: https://serpbase.dev/docs/google_patents_detail.md) API reference · Search engines Get one Google Patents record by publication number: title, abstract, claims, inventors, assignees and dates as published. POST `https://api.serpbase.dev/google/patents/detail` 2 credits [Open in Playground](https://serpbase.dev/playground?product=google_patents_detail) ### Example ```bash curl -X POST 'https://api.serpbase.dev/google/patents/detail' \ -H "Content-Type: application/json" \ -H 'X-API-Key: YOUR_API_KEY' \ --max-time 60 \ -d '{"id":"US8244737B2"}' ``` Response · real, shortened ``` { "status": 0, "credits_charged": 2, "request_id": "r-4b27fe8a36d9ac303a5da7dd", "product_id": "google_patents_detail", "action": "patents.details", "pagination": {}, "source": "google", "url": "https://patents.google.com/patent/US8244737B2/en" } ``` ### Parameters | Name | What it does | | --- | --- | | `format` "json" \| "markdown" | json (default) returns the parsed result. markdown returns the same result as Markdown text (text/markdown) for language models: no envelope, no duplicate alias fields, no inline images. Same credits; failures keep the JSON envelope. | | `id` string | Example: "US8244737B2" | | `country` string | Public alias for locale.country. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `cursor` string | Public alias for pagination.cursor. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `device` string | Public alias for options.device. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `gl` string | Public alias for locale.country. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `google_domain` string | Public alias for locale.engine_domain. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `gooogle_domain` string | Public alias for locale.engine_domain. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `hl` string | Public alias for locale.language. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `html` boolean | Public alias for include_html. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `lanaguage` string | Public alias for locale.language. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `language` string | Public alias for locale.language. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `limit` integer | Public alias for pagination.limit. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `markdown` boolean | Public alias for include_markdown. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `mobile` boolean | Public alias for options.device. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `num` integer | Public alias for pagination.limit. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `page` integer | Public alias for pagination.page. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `patent_id` string | Public alias for id. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `q` string | Public alias for query. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `results` integer | Public alias for pagination.limit. Use one spelling at a time; the API validates the parameters and values supported by this product. | The sample shows example parameters, not the complete request contract. Known fields are validated by the API; additional parameters are allowed. ### What comes back The fields are those in the response above; every endpoint also carries status, credits_charged and request_id. ### If it fails A failed request has a non-zero status and an error, and is not charged. The ones you will see here: `1000`A parameter is missing or wrongFix the request `1020`No credits leftTop up `1029`Over your requests per secondWait Retry-After seconds `1502 · 1504`The source could not be read this timeRetry [All status codes →](https://serpbase.dev/docs/responses-and-errors) ### Related [Google Web Search1 credit](https://serpbase.dev/docs/google_web_search) [Google Images Search1 credit](https://serpbase.dev/docs/google_images_search) [Google News Search1 credit](https://serpbase.dev/docs/google_news_search) [Google Videos Search1 credit](https://serpbase.dev/docs/google_videos_search) ## Google Play Search API Search apps on Google Play by keyword. Returns each app's name, package name, icon and store link; it does not download apps. - Category: Search engines - Endpoint: `POST https://api.serpbase.dev/google/play/search` - Price: 1 credit per request - Status: available - Devices: desktop (default desktop) - Docs: https://serpbase.dev/docs/google_play_search (Markdown: https://serpbase.dev/docs/google_play_search.md) API reference · Search engines Search apps on Google Play by keyword. Returns each app's name, package name, icon and store link; it does not download apps. POST `https://api.serpbase.dev/google/play/search` 1 credit [Open in Playground](https://serpbase.dev/playground?product=google_play_search) ### Example ```bash curl -X POST 'https://api.serpbase.dev/google/play/search' \ -H "Content-Type: application/json" \ -H 'X-API-Key: YOUR_API_KEY' \ --max-time 60 \ -d '{"q":"coffee"}' ``` Response · real, shortened ``` { "status": 0, "credits_charged": 1, "request_id": "r-4b27fe8a36d9ac303a5da7dd", "product_id": "google_play_search", "query": "coffee", "action": "play.search", "products": [ { "app": { "bundle_id": "com.tapblaze.coffeebusiness", "downloads_display": "10,000,000+" }, "categories": [ { "name": "Simulation" } ], "id": "com.tapblaze.coffeebusiness", "link": "https://play.google.com/store/apps/details?id=com.tapblaze.coffeebusiness", "media": [ { "type": "icon", "url": "https://i.ytimg.com/vi/RFUNyVrGCzE/hqdefault.jpg" } ], "position": 1, "rating": 4.5, "title": "Good Coffee, Great Coffee", "url": "https://play.google.com/store/apps/details?id=com.tapblaze.coffeebusiness" }, { "app": { "bundle_id": "coffee.ibrew.ibrewcoffee", "downloads_display": "50,000+" }, "categories": [ { "name": "Food & Drink" } ], "id": "coffee.ibrew.ibrewcoffee", "link": "https://play.google.com/store/apps/details?id=coffee.ibrew.ibrewcoffee", "media": [ { "type": "icon", "url": "https://play-lh.googleusercontent.com/9Mdr7tP1igRhH9UZ62GJ7zkexX2lQ7Z7WYvpiIIqSyS24eYlWS9B_akMxfrkWg…" } ], "position": 2, "rating": 4.7, "title": "iBrewCoffee - Coffee Journal", "url": "https://play.google.com/store/apps/details?id=coffee.ibrew.ibrewcoffee" } ], "source": "google", "url": "https://play.google.com/store/search?c=apps&hl=en&q=coffee" } ``` ### Parameters | Name | What it does | | --- | --- | | `format` "json" \| "markdown" | json (default) returns the parsed result. markdown returns the same result as Markdown text (text/markdown) for language models: no envelope, no duplicate alias fields, no inline images. Same credits; failures keep the JSON envelope. | | `q` string | Example: "coffee" | | `age` string | Public alias for attributes.age. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `country` string | Public alias for locale.country. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `cursor` string | Public alias for pagination.cursor. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `device` string | Public alias for options.device. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `gl` string | Public alias for locale.country. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `google_domain` string | Public alias for locale.engine_domain. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `gooogle_domain` string | Public alias for locale.engine_domain. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `hl` string | Public alias for locale.language. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `html` boolean | Public alias for include_html. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `language` string | Public alias for locale.language. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `limit` integer | Public alias for pagination.limit. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `markdown` boolean | Public alias for include_markdown. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `mobile` boolean | Public alias for options.device. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `num` integer | Public alias for pagination.limit. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `page` integer | Public alias for pagination.page. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `results` integer | Public alias for pagination.limit. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `store_device` string | Public alias for attributes.store_device. Use one spelling at a time; the API validates the parameters and values supported by this product. | The sample shows example parameters, not the complete request contract. Known fields are validated by the API; additional parameters are allowed. ### What comes back The fields are those in the response above; every endpoint also carries status, credits_charged and request_id. ### If it fails A failed request has a non-zero status and an error, and is not charged. The ones you will see here: `1000`A parameter is missing or wrongFix the request `1020`No credits leftTop up `1029`Over your requests per secondWait Retry-After seconds `1502 · 1504`The source could not be read this timeRetry [All status codes →](https://serpbase.dev/docs/responses-and-errors) ### Related [Google Web Search1 credit](https://serpbase.dev/docs/google_web_search) [Google Images Search1 credit](https://serpbase.dev/docs/google_images_search) [Google News Search1 credit](https://serpbase.dev/docs/google_news_search) [Google Videos Search1 credit](https://serpbase.dev/docs/google_videos_search) ## Google Play App Details API Get one Google Play app by package name: name, developer, description, price, version, release dates and age rating from its store page. - Category: Search engines - Endpoint: `POST https://api.serpbase.dev/google/play/app` - Price: 1 credit per request - Status: available - Devices: desktop (default desktop) - Docs: https://serpbase.dev/docs/google_play_app (Markdown: https://serpbase.dev/docs/google_play_app.md) API reference · Search engines Get one Google Play app by package name: name, developer, description, price, version, release dates and age rating from its store page. POST `https://api.serpbase.dev/google/play/app` 1 credit [Open in Playground](https://serpbase.dev/playground?product=google_play_app) ### Example ```bash curl -X POST 'https://api.serpbase.dev/google/play/app' \ -H "Content-Type: application/json" \ -H 'X-API-Key: YOUR_API_KEY' \ --max-time 60 \ -d '{"id":"com.spotify.music"}' ``` Response · real, shortened ``` { "status": 0, "credits_charged": 1, "request_id": "r-4b27fe8a36d9ac303a5da7dd", "product_id": "google_play_app", "action": "play.product", "product": { "app": { "age_rating": "USK: Ages 12+", "bundle_id": "com.spotify.music", "minimum_os_version": "ANDROID" }, "brand": "Spotify AB", "brand_url": "https://www.spotify.com", "categories": [ { "name": "MUSIC_AND_AUDIO" } ], "description": "Listen to songs, play podcasts, create playlists and discover music you'll love", "id": "com.spotify.music", "link": "https://play.google.com/store/apps/details?hl=en&id=com.spotify.music", "media": [ { "type": "icon", "url": "https://play-lh.googleusercontent.com/IzQgYCcnCFCD08GR-3bdtcT8xzOvrNkC84avGT5CwTX2VIqmTmKKJcP_Cd4JoB…" } ], "price": { "amount": "0", "currency": "EUR", "display": "0 EUR" }, "rating": 4.174686431884766, "reviews_count": "36553871", "title": "Spotify: Music and Podcasts", "url": "https://play.google.com/store/apps/details?hl=en&id=com.spotify.music" }, "source": "google", "url": "https://play.google.com/store/apps/details?hl=en&id=com.spotify.music" } ``` ### Parameters | Name | What it does | | --- | --- | | `format` "json" \| "markdown" | json (default) returns the parsed result. markdown returns the same result as Markdown text (text/markdown) for language models: no envelope, no duplicate alias fields, no inline images. Same credits; failures keep the JSON envelope. | | `id` string | Example: "com.spotify.music" | | `country` string | Public alias for locale.country. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `cursor` string | Public alias for pagination.cursor. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `device` string | Public alias for options.device. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `gl` string | Public alias for locale.country. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `google_domain` string | Public alias for locale.engine_domain. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `gooogle_domain` string | Public alias for locale.engine_domain. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `hl` string | Public alias for locale.language. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `html` boolean | Public alias for include_html. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `language` string | Public alias for locale.language. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `limit` integer | Public alias for pagination.limit. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `markdown` boolean | Public alias for include_markdown. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `mobile` boolean | Public alias for options.device. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `num` integer | Public alias for pagination.limit. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `page` integer | Public alias for pagination.page. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `q` string | Public alias for query. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `results` integer | Public alias for pagination.limit. Use one spelling at a time; the API validates the parameters and values supported by this product. | The sample shows example parameters, not the complete request contract. Known fields are validated by the API; additional parameters are allowed. ### What comes back The fields are those in the response above; every endpoint also carries status, credits_charged and request_id. ### If it fails A failed request has a non-zero status and an error, and is not charged. The ones you will see here: `1000`A parameter is missing or wrongFix the request `1020`No credits leftTop up `1029`Over your requests per secondWait Retry-After seconds `1502 · 1504`The source could not be read this timeRetry [All status codes →](https://serpbase.dev/docs/responses-and-errors) ### Related [Google Web Search1 credit](https://serpbase.dev/docs/google_web_search) [Google Images Search1 credit](https://serpbase.dev/docs/google_images_search) [Google News Search1 credit](https://serpbase.dev/docs/google_news_search) [Google Videos Search1 credit](https://serpbase.dev/docs/google_videos_search) ## Google Trends API Google Trends API: up to five comma-separated terms as JSON, with interest over time for your time range and region, interest by region and related queries. - Category: Search engines - Endpoint: `POST https://api.serpbase.dev/google/trends` - Price: 2 credits per request - Status: available - Devices: desktop (default desktop) - Docs: https://serpbase.dev/docs/google_trends (Markdown: https://serpbase.dev/docs/google_trends.md) API reference · Search engines Google Trends API: up to five comma-separated terms as JSON, with interest over time for your time range and region, interest by region and related queries. POST `https://api.serpbase.dev/google/trends` 2 credits [Open in Playground](https://serpbase.dev/playground?product=google_trends) ### Example ```bash curl -X POST 'https://api.serpbase.dev/google/trends' \ -H "Content-Type: application/json" \ -H 'X-API-Key: YOUR_API_KEY' \ --max-time 60 \ -d '{"q":"coffee"}' ``` Response · real, shortened ``` { "status": 0, "credits_charged": 2, "request_id": "r-4b27fe8a36d9ac303a5da7dd", "product_id": "google_trends", "query": "coffee", "action": "trends", "source": "google", "trends": { "query": "coffee", "series": [ { "points": [ { "timestamp": "2025-10-26T00:00:00Z", "value": 59 } ], "term": "coffee" } ], "time_range": "today 12-m" }, "url": "https://trends.google.com/trends/?hl=en" } ``` ### Parameters | Name | What it does | | --- | --- | | `format` "json" \| "markdown" | json (default) returns the parsed result. markdown returns the same result as Markdown text (text/markdown) for language models: no envelope, no duplicate alias fields, no inline images. Same credits; failures keep the JSON envelope. | | `q` string | Example: "coffee" | | `cat` string | Public alias for category_id. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `country` string | Public alias for locale.country. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `cursor` string | Public alias for pagination.cursor. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `date` string | Public alias for time_range. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `device` string | Public alias for options.device. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `geo` string | Public alias for attributes.geo. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `gl` string | Public alias for locale.country. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `google_domain` string | Public alias for locale.engine_domain. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `gooogle_domain` string | Public alias for locale.engine_domain. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `gprop` string | Public alias for attributes.gprop. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `hl` string | Public alias for locale.language. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `html` boolean | Public alias for include_html. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `include_low_search_volume` string | Public alias for attributes.include_low_search_volume. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `language` string | Public alias for locale.language. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `limit` integer | Public alias for pagination.limit. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `markdown` boolean | Public alias for include_markdown. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `mobile` boolean | Public alias for options.device. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `num` integer | Public alias for pagination.limit. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `page` integer | Public alias for pagination.page. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `region` string | Public alias for attributes.region. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `results` integer | Public alias for pagination.limit. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `tz` string | Public alias for attributes.tz. Use one spelling at a time; the API validates the parameters and values supported by this product. | The sample shows example parameters, not the complete request contract. Known fields are validated by the API; additional parameters are allowed. ### What comes back The fields are those in the response above; every endpoint also carries status, credits_charged and request_id. ### If it fails A failed request has a non-zero status and an error, and is not charged. The ones you will see here: `1000`A parameter is missing or wrongFix the request `1020`No credits leftTop up `1029`Over your requests per secondWait Retry-After seconds `1502 · 1504`The source could not be read this timeRetry [All status codes →](https://serpbase.dev/docs/responses-and-errors) ### Related [Google Web Search1 credit](https://serpbase.dev/docs/google_web_search) [Google Images Search1 credit](https://serpbase.dev/docs/google_images_search) [Google News Search1 credit](https://serpbase.dev/docs/google_news_search) [Google Videos Search1 credit](https://serpbase.dev/docs/google_videos_search) ## Google Trends Autocomplete API Google Trends topic suggestions for a keyword, with each topic's type and identifier. - Category: Search engines - Endpoint: `POST https://api.serpbase.dev/google/trends/autocomplete` - Price: 2 credits per request - Status: available - Devices: desktop (default desktop) - Docs: https://serpbase.dev/docs/google_trends_autocomplete (Markdown: https://serpbase.dev/docs/google_trends_autocomplete.md) API reference · Search engines Google Trends topic suggestions for a keyword, with each topic's type and identifier. POST `https://api.serpbase.dev/google/trends/autocomplete` 2 credits [Open in Playground](https://serpbase.dev/playground?product=google_trends_autocomplete) ### Example ```bash curl -X POST 'https://api.serpbase.dev/google/trends/autocomplete' \ -H "Content-Type: application/json" \ -H 'X-API-Key: YOUR_API_KEY' \ --max-time 60 \ -d '{"q":"coffee"}' ``` Response · real, shortened ``` { "status": 0, "credits_charged": 2, "request_id": "r-4b27fe8a36d9ac303a5da7dd", "product_id": "google_trends_autocomplete", "query": "coffee", "action": "trends.autocomplete", "source": "google", "suggestions": [ { "id": "/m/02vqfm", "text": "Coffee", "type": "Beverage" }, { "id": "/m/07xyvk", "text": "Coffeemaker", "type": "Topic" } ], "url": "https://trends.google.com/trends/api/autocomplete/coffee?hl=en" } ``` ### Parameters | Name | What it does | | --- | --- | | `format` "json" \| "markdown" | json (default) returns the parsed result. markdown returns the same result as Markdown text (text/markdown) for language models: no envelope, no duplicate alias fields, no inline images. Same credits; failures keep the JSON envelope. | | `q` string | Example: "coffee" | | `country` string | Public alias for locale.country. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `cursor` string | Public alias for pagination.cursor. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `device` string | Public alias for options.device. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `gl` string | Public alias for locale.country. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `google_domain` string | Public alias for locale.engine_domain. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `gooogle_domain` string | Public alias for locale.engine_domain. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `hl` string | Public alias for locale.language. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `html` boolean | Public alias for include_html. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `language` string | Public alias for locale.language. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `limit` integer | Public alias for pagination.limit. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `markdown` boolean | Public alias for include_markdown. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `mobile` boolean | Public alias for options.device. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `num` integer | Public alias for pagination.limit. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `page` integer | Public alias for pagination.page. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `results` integer | Public alias for pagination.limit. Use one spelling at a time; the API validates the parameters and values supported by this product. | The sample shows example parameters, not the complete request contract. Known fields are validated by the API; additional parameters are allowed. ### What comes back The fields are those in the response above; every endpoint also carries status, credits_charged and request_id. ### If it fails A failed request has a non-zero status and an error, and is not charged. The ones you will see here: `1000`A parameter is missing or wrongFix the request `1020`No credits leftTop up `1029`Over your requests per secondWait Retry-After seconds `1502 · 1504`The source could not be read this timeRetry [All status codes →](https://serpbase.dev/docs/responses-and-errors) ### Related [Google Web Search1 credit](https://serpbase.dev/docs/google_web_search) [Google Images Search1 credit](https://serpbase.dev/docs/google_images_search) [Google News Search1 credit](https://serpbase.dev/docs/google_news_search) [Google Videos Search1 credit](https://serpbase.dev/docs/google_videos_search) ## Google Trends Trending Now API Searches trending now on Google Trends for a country (US by default) over the last 24 hours. - Category: Search engines - Endpoint: `POST https://api.serpbase.dev/google/trends/trending` - Price: 2 credits per request - Status: available - Devices: desktop (default desktop) - Docs: https://serpbase.dev/docs/google_trends_trending (Markdown: https://serpbase.dev/docs/google_trends_trending.md) API reference · Search engines Searches trending now on Google Trends for a country (US by default) over the last 24 hours. POST `https://api.serpbase.dev/google/trends/trending` 2 credits [Open in Playground](https://serpbase.dev/playground?product=google_trends_trending) ### Example ```bash curl -X POST 'https://api.serpbase.dev/google/trends/trending' \ -H "Content-Type: application/json" \ -H 'X-API-Key: YOUR_API_KEY' \ --max-time 60 \ -d '{"gl":"us"}' ``` Response · real, shortened ``` { "status": 0, "credits_charged": 2, "request_id": "r-4b27fe8a36d9ac303a5da7dd", "product_id": "google_trends_trending", "action": "trends.trending_now", "source": "google", "trends": { "geo": "US", "time_range": "24h", "trending_now": [ { "query": "jason galanis", "related_queries": [ "jason galanis" ], "start_time": "2026-10-27T15:30:00Z", "traffic": "200000" } ] }, "url": "https://trends.google.com/trending?geo=US&hl=en&hours=24" } ``` ### Parameters | Name | What it does | | --- | --- | | `format` "json" \| "markdown" | json (default) returns the parsed result. markdown returns the same result as Markdown text (text/markdown) for language models: no envelope, no duplicate alias fields, no inline images. Same credits; failures keep the JSON envelope. | | `gl` string | Example: "us" | | `country` string | Public alias for locale.country. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `cursor` string | Public alias for pagination.cursor. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `device` string | Public alias for options.device. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `geo` string | Public alias for attributes.geo. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `google_domain` string | Public alias for locale.engine_domain. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `gooogle_domain` string | Public alias for locale.engine_domain. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `hl` string | Public alias for locale.language. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `hours` string | Public alias for attributes.hours. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `html` boolean | Public alias for include_html. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `language` string | Public alias for locale.language. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `limit` integer | Public alias for pagination.limit. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `markdown` boolean | Public alias for include_markdown. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `mobile` boolean | Public alias for options.device. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `num` integer | Public alias for pagination.limit. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `page` integer | Public alias for pagination.page. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `q` string | Public alias for query. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `results` integer | Public alias for pagination.limit. Use one spelling at a time; the API validates the parameters and values supported by this product. | The sample shows example parameters, not the complete request contract. Known fields are validated by the API; additional parameters are allowed. ### What comes back The fields are those in the response above; every endpoint also carries status, credits_charged and request_id. ### If it fails A failed request has a non-zero status and an error, and is not charged. The ones you will see here: `1000`A parameter is missing or wrongFix the request `1020`No credits leftTop up `1029`Over your requests per secondWait Retry-After seconds `1502 · 1504`The source could not be read this timeRetry [All status codes →](https://serpbase.dev/docs/responses-and-errors) ### Related [Google Web Search1 credit](https://serpbase.dev/docs/google_web_search) [Google Images Search1 credit](https://serpbase.dev/docs/google_images_search) [Google News Search1 credit](https://serpbase.dev/docs/google_news_search) [Google Videos Search1 credit](https://serpbase.dev/docs/google_videos_search) ## Google Link Resolver API Free: turn Google's google.com/goto and /url result-link wrappers into the real page URLs, up to 50 links per request, from a list or a pasted search answer. - Category: Search engines - Endpoint: `POST https://api.serpbase.dev/google/resolve` - Price: 0 credits per request - Status: available - Devices: mobile, desktop (default mobile) - Docs: https://serpbase.dev/docs/google_resolve (Markdown: https://serpbase.dev/docs/google_resolve.md) API reference · Search engines Free: turn Google's google.com/goto and /url result-link wrappers into the real page URLs, up to 50 links per request, from a list or a pasted search answer. POST `https://api.serpbase.dev/google/resolve` 0 credits [Open in Playground](https://serpbase.dev/playground?product=google_resolve) ### Example ```bash curl -X POST 'https://api.serpbase.dev/google/resolve' \ -H "Content-Type: application/json" \ -H 'X-API-Key: YOUR_API_KEY' \ --max-time 60 \ -d '{"links":["https://www.google.com/url?sa=t&url=https%3A%2F%2Fwww.example.com%2F"]}' ``` No recorded response is published for this endpoint yet. Run the example in the Playground to see a live one. ### Parameters | Name | What it does | | --- | --- | | `links` string[] | Up to 50 Google result links (https://www.google.com/goto?... or /url?...). Anything else is refused. Duplicates are resolved once. | | `response` object | Instead of links: a search answer exactly as returned. Every Google result link in it is resolved, in the order it appears. Send links or response, not both. | | `country` string | Public alias for locale.country. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `cursor` string | Public alias for pagination.cursor. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `device` string | Public alias for options.device. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `gl` string | Public alias for locale.country. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `google_domain` string | Public alias for locale.engine_domain. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `gooogle_domain` string | Public alias for locale.engine_domain. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `hl` string | Public alias for locale.language. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `html` boolean | Public alias for include_html. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `language` string | Public alias for locale.language. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `limit` integer | Public alias for pagination.limit. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `markdown` boolean | Public alias for include_markdown. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `mobile` boolean | Public alias for options.device. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `num` integer | Public alias for pagination.limit. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `page` integer | Public alias for pagination.page. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `q` string | Public alias for query. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `results` integer | Public alias for pagination.limit. Use one spelling at a time; the API validates the parameters and values supported by this product. | Free (0 credits). Limits: 50 links per request and 30 requests per minute per account. Google rate-limits these links, so a request can take up to about 25 seconds; links it could not finish come back with reason paced_over_budget. Send those again after about two minutes: asking sooner makes Google's wait longer. ### What comes back Fields that are not on the page for a given request are left out rather than sent empty. | Field | Type | Availability | Description | | --- | --- | --- | --- | | `resolved_links` required | ResolvedLink[] | required | One entry per link, in request order. | #### `ResolvedLink` Result item schema | Field | Type | Availability | Description | | --- | --- | --- | --- | | `link` required | string | required | The Google link as sent. | | `url` optional | string | When resolved. | The page the link leads to. Absent when it could not be resolved this time. | | `reason` required | string | required | resolved, or why not: paced_over_budget (Google asked for a longer wait than one request allows; send it again after about two minutes, not sooner), challenge, no_location, timeout, not_a_wrapper, error. | ### If it fails A failed request has a non-zero status and an error, and is not charged. The ones you will see here: `1000`A parameter is missing or wrongFix the request `1020`No credits leftTop up `1029`Over your requests per secondWait Retry-After seconds `1502 · 1504`The source could not be read this timeRetry [All status codes →](https://serpbase.dev/docs/responses-and-errors) ### Related [Google Web Search1 credit](https://serpbase.dev/docs/google_web_search) [Google Images Search1 credit](https://serpbase.dev/docs/google_images_search) [Google News Search1 credit](https://serpbase.dev/docs/google_news_search) [Google Videos Search1 credit](https://serpbase.dev/docs/google_videos_search) ## Bing Web Search API Execute Bing web searches with query, country cc, and language setlang parameters for organic search results. - Category: Search engines - Endpoint: `POST https://api.serpbase.dev/bing/search` - Price: 1 credit per request - Status: paused (temporarily not callable) - Devices: desktop (default desktop) - Docs: https://serpbase.dev/docs/bing_search (Markdown: https://serpbase.dev/docs/bing_search.md) API reference · Search engines Execute Bing web searches with query, country cc, and language setlang parameters for organic search results. POST `https://api.serpbase.dev/bing/search` In development · Paused This endpoint is being reworked and is paused for now. It cannot be called until it reopens. ### Example ```bash curl -X POST 'https://api.serpbase.dev/bing/search' \ -H "Content-Type: application/json" \ -H 'X-API-Key: YOUR_API_KEY' \ --max-time 60 \ -d '{"gl":"us","hl":"en","q":"artificial intelligence"}' ``` No recorded response is published for this endpoint yet. Run the example in the Playground to see a live one. ### Parameters | Name | What it does | | --- | --- | | `format` "json" \| "markdown" | json (default) returns the parsed result. markdown returns the same result as Markdown text (text/markdown) for language models: no envelope, no duplicate alias fields, no inline images. Same credits; failures keep the JSON envelope. | | `gl` string | Example: "us" | | `hl` string | Example: "en" | | `q` string | Example: "artificial intelligence" | | `cc` string | Public alias for locale.country. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `count` string | Public alias for attributes.count. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `country` string | Public alias for locale.country. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `cursor` string | Public alias for pagination.cursor. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `device` string | Public alias for options.device. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `first` string | Public alias for attributes.first. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `html` boolean | Public alias for include_html. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `language` string | Public alias for locale.language. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `lat` string | Public alias for attributes.lat. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `limit` integer | Public alias for pagination.limit. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `lon` string | Public alias for attributes.lon. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `markdown` boolean | Public alias for include_markdown. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `mkt` string | Public alias for attributes.mkt. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `mobile` boolean | Public alias for options.device. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `num` integer | Public alias for pagination.limit. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `page` integer | Public alias for pagination.page. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `results` string | Public alias for attributes.results. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `safeSearch` string | Public alias for attributes.safeSearch. Use one spelling at a time; the API validates the parameters and values supported by this product. | The sample shows example parameters, not the complete request contract. Known fields are validated by the API; additional parameters are allowed. ### What comes back The fields are those in the response above; every endpoint also carries status, credits_charged and request_id. ### If it fails A failed request has a non-zero status and an error, and is not charged. The ones you will see here: `1000`A parameter is missing or wrongFix the request `1020`No credits leftTop up `1029`Over your requests per secondWait Retry-After seconds `1502 · 1504`The source could not be read this timeRetry [All status codes →](https://serpbase.dev/docs/responses-and-errors) ### Related [Google Web Search1 credit](https://serpbase.dev/docs/google_web_search) [Google Images Search1 credit](https://serpbase.dev/docs/google_images_search) [Google News Search1 credit](https://serpbase.dev/docs/google_news_search) [Google Videos Search1 credit](https://serpbase.dev/docs/google_videos_search) ## DuckDuckGo Search API Search DuckDuckGo HTML results by query, with supported market and date filters. Continuation uses the returned cursor, not numbered pages. - Category: Search engines - Endpoint: `POST https://api.serpbase.dev/duckduckgo/search` - Price: 1 credit per request - Status: available - Devices: desktop (default desktop) - Docs: https://serpbase.dev/docs/duckduckgo_search (Markdown: https://serpbase.dev/docs/duckduckgo_search.md) API reference · Search engines Search DuckDuckGo HTML results by query, with supported market and date filters. Continuation uses the returned cursor, not numbered pages. POST `https://api.serpbase.dev/duckduckgo/search` 1 credit [Open in Playground](https://serpbase.dev/playground?product=duckduckgo_search) ### Example ```bash curl -X POST 'https://api.serpbase.dev/duckduckgo/search' \ -H "Content-Type: application/json" \ -H 'X-API-Key: YOUR_API_KEY' \ --max-time 60 \ -d '{"query":"coffee shops"}' ``` Response · real, shortened ``` { "status": 0, "credits_charged": 1, "request_id": "r-4b27fe8a36d9ac303a5da7dd", "product_id": "duckduckgo_search", "query": "coffee shops", "action": "search", "organic": [ { "display_link": "www.tripadvisor.com/Restaurants-g303957-c8-Pekanbaru_Riau_Province_Sumatra.html", "link": "https://www.tripadvisor.com/Restaurants-g303957-c8-Pekanbaru_Riau_Province_Sumatra.html", "position": 1, "rank": 1, "snippet": "Best Cafés in Pekanbaru, Riau Province: Find Tripadvisor traveller reviews of Pekanbaru Cafés and se…", "title": "THE 10 BEST Cafés in Pekanbaru (Updated 2026) - Tripadvisor", "url": "https://www.tripadvisor.com/Restaurants-g303957-c8-Pekanbaru_Riau_Province_Sumatra.html" }, { "display_link": "tempatwisataseru.com/cafe-tempat-nongkrong-di-pekanbaru-paling-hits-cozy-abis/", "link": "https://tempatwisataseru.com/cafe-tempat-nongkrong-di-pekanbaru-paling-hits-cozy-abis/", "position": 2, "rank": 2, "snippet": "Tempat nongkrong di Pekanbaru yang terakhir adalah pesona coffee Pekanbaru yang berada di kawasan ja…", "title": "28 Cafe & Tempat Nongkrong di Pekanbaru Paling Hits, Cozy Abis!", "url": "https://tempatwisataseru.com/cafe-tempat-nongkrong-di-pekanbaru-paling-hits-cozy-abis/" } ], "pagination": { "has_more": true, "next_cursor": "eyJhcGkiOlsiZC5qcyJdLCJkYyI6WyIxMSJdLCJrbCI6WyJ3dC13dCJdLCJuZXh0UGFyYW1zIjpbIiJdLCJvIjpbImpzb24iXSwi…" }, "search_type": "search", "search_url": "https://html.duckduckgo.com/html/?q=coffee+shops", "source": "duckduckgo", "url": "https://html.duckduckgo.com/html/?q=coffee+shops" } ``` ### Parameters | Name | What it does | | --- | --- | | `format` "json" \| "markdown" | json (default) returns the parsed result. markdown returns the same result as Markdown text (text/markdown) for language models: no envelope, no duplicate alias fields, no inline images. Same credits; failures keep the JSON envelope. | | `query` string | Example: "coffee shops" | | `country` string | Public alias for locale.country. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `cursor` string | Public alias for pagination.cursor. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `device` string | Public alias for options.device. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `df` string | Public alias for attributes.df. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `gl` string | Public alias for locale.country. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `hl` string | Public alias for locale.language. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `html` boolean | Public alias for include_html. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `kl` string | Public alias for attributes.kl. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `language` string | Public alias for locale.language. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `limit` integer | Public alias for pagination.limit. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `markdown` boolean | Public alias for include_markdown. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `mobile` boolean | Public alias for options.device. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `next_page_token` string | Public alias for pagination.cursor. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `num` integer | Public alias for pagination.limit. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `page` integer | Public alias for pagination.page. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `q` string | Public alias for query. Use one spelling at a time; the API validates the parameters and values supported by this product. | The sample shows example parameters, not the complete request contract. Known fields are validated by the API; additional parameters are allowed. ### What comes back The fields are those in the response above; every endpoint also carries status, credits_charged and request_id. ### If it fails A failed request has a non-zero status and an error, and is not charged. The ones you will see here: `1000`A parameter is missing or wrongFix the request `1020`No credits leftTop up `1029`Over your requests per secondWait Retry-After seconds `1502 · 1504`The source could not be read this timeRetry [All status codes →](https://serpbase.dev/docs/responses-and-errors) ### Related [Google Web Search1 credit](https://serpbase.dev/docs/google_web_search) [Google Images Search1 credit](https://serpbase.dev/docs/google_images_search) [Google News Search1 credit](https://serpbase.dev/docs/google_news_search) [Google Videos Search1 credit](https://serpbase.dev/docs/google_videos_search) ## Reddit Post & Comments API Retrieve full Reddit post content, author details, upvotes, and structured comment threads from a Reddit post URL. - Category: Social media - Endpoint: `POST https://api.serpbase.dev/reddit/post` - Price: 2 credits per request - Status: available - Devices: desktop (default desktop) - Docs: https://serpbase.dev/docs/reddit_post (Markdown: https://serpbase.dev/docs/reddit_post.md) API reference · Social media Retrieve full Reddit post content, author details, upvotes, and structured comment threads from a Reddit post URL. POST `https://api.serpbase.dev/reddit/post` 2 credits [Open in Playground](https://serpbase.dev/playground?product=reddit_post) ### Example ```bash curl -X POST 'https://api.serpbase.dev/reddit/post' \ -H "Content-Type: application/json" \ -H 'X-API-Key: YOUR_API_KEY' \ --max-time 60 \ -d '{"url":"https://www.reddit.com/r/IAmA/comments/z1c9z/i_am_barack_obama_president_of_the_united_states/"}' ``` No recorded response is published for this endpoint yet. Run the example in the Playground to see a live one. ### Parameters | Name | What it does | | --- | --- | | `format` "json" \| "markdown" | json (default) returns the parsed result. markdown returns the same result as Markdown text (text/markdown) for language models: no envelope, no duplicate alias fields, no inline images. Same credits; failures keep the JSON envelope. | | `url` string | Example: "https://www.reddit.com/r/IAmA/comments/z1c9z/i_am_barack_obama_president_of_the_united_states/" | | `country` string | Public alias for locale.country. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `cursor` string | Public alias for pagination.cursor. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `device` string | Public alias for options.device. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `gl` string | Public alias for locale.country. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `hl` string | Public alias for locale.language. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `html` boolean | Public alias for include_html. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `language` string | Public alias for locale.language. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `limit` integer | Public alias for pagination.limit. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `markdown` boolean | Public alias for include_markdown. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `mobile` boolean | Public alias for options.device. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `num` integer | Public alias for pagination.limit. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `page` integer | Public alias for pagination.page. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `q` string | Public alias for query. Use one spelling at a time; the API validates the parameters and values supported by this product. | The sample shows example parameters, not the complete request contract. Known fields are validated by the API; additional parameters are allowed. ### What comes back The fields are those in the response above; every endpoint also carries status, credits_charged and request_id. ### If it fails A failed request has a non-zero status and an error, and is not charged. The ones you will see here: `1000`A parameter is missing or wrongFix the request `1020`No credits leftTop up `1029`Over your requests per secondWait Retry-After seconds `1502 · 1504`The source could not be read this timeRetry [All status codes →](https://serpbase.dev/docs/responses-and-errors) ### Related [Reddit Search1 credit](https://serpbase.dev/docs/reddit_search) [TikTok Post2 credits](https://serpbase.dev/docs/tiktok_post) [TikTok Profile2 credits](https://serpbase.dev/docs/tiktok_profile) [TikTok Search1 credit](https://serpbase.dev/docs/tiktok_search) ## Reddit Search API Search public Reddit posts and discussion threads across subreddits by keyword query. - Category: Social media - Endpoint: `POST https://api.serpbase.dev/reddit/search` - Price: 1 credit per request - Status: available - Devices: desktop (default desktop) - Docs: https://serpbase.dev/docs/reddit_search (Markdown: https://serpbase.dev/docs/reddit_search.md) API reference · Social media Search public Reddit posts and discussion threads across subreddits by keyword query. POST `https://api.serpbase.dev/reddit/search` 1 credit [Open in Playground](https://serpbase.dev/playground?product=reddit_search) ### Example ```bash curl -X POST 'https://api.serpbase.dev/reddit/search' \ -H "Content-Type: application/json" \ -H 'X-API-Key: YOUR_API_KEY' \ --max-time 60 \ -d '{"q":"best mechanical keyboard"}' ``` No recorded response is published for this endpoint yet. Run the example in the Playground to see a live one. ### Parameters | Name | What it does | | --- | --- | | `format` "json" \| "markdown" | json (default) returns the parsed result. markdown returns the same result as Markdown text (text/markdown) for language models: no envelope, no duplicate alias fields, no inline images. Same credits; failures keep the JSON envelope. | | `q` string | Example: "best mechanical keyboard" | | `country` string | Public alias for locale.country. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `cursor` string | Public alias for pagination.cursor. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `device` string | Public alias for options.device. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `gl` string | Public alias for locale.country. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `hl` string | Public alias for locale.language. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `html` boolean | Public alias for include_html. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `language` string | Public alias for locale.language. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `limit` integer | Public alias for pagination.limit. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `markdown` boolean | Public alias for include_markdown. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `mobile` boolean | Public alias for options.device. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `num` integer | Public alias for pagination.limit. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `page` integer | Public alias for pagination.page. Use one spelling at a time; the API validates the parameters and values supported by this product. | The sample shows example parameters, not the complete request contract. Known fields are validated by the API; additional parameters are allowed. ### What comes back The fields are those in the response above; every endpoint also carries status, credits_charged and request_id. ### If it fails A failed request has a non-zero status and an error, and is not charged. The ones you will see here: `1000`A parameter is missing or wrongFix the request `1020`No credits leftTop up `1029`Over your requests per secondWait Retry-After seconds `1502 · 1504`The source could not be read this timeRetry [All status codes →](https://serpbase.dev/docs/responses-and-errors) ### Related [Reddit Post & Comments2 credits](https://serpbase.dev/docs/reddit_post) [TikTok Post2 credits](https://serpbase.dev/docs/tiktok_post) [TikTok Profile2 credits](https://serpbase.dev/docs/tiktok_profile) [TikTok Search1 credit](https://serpbase.dev/docs/tiktok_search) ## TikTok Post API Request a specific TikTok post using its ID and username. This is a post lookup, not profile-wide post discovery. - Category: Social media - Endpoint: `POST https://api.serpbase.dev/tiktok/post` - Price: 2 credits per request - Status: available - Devices: desktop (default desktop) - Docs: https://serpbase.dev/docs/tiktok_post (Markdown: https://serpbase.dev/docs/tiktok_post.md) API reference · Social media Request a specific TikTok post using its ID and username. This is a post lookup, not profile-wide post discovery. POST `https://api.serpbase.dev/tiktok/post` 2 credits [Open in Playground](https://serpbase.dev/playground?product=tiktok_post) ### Example ```bash curl -X POST 'https://api.serpbase.dev/tiktok/post' \ -H "Content-Type: application/json" \ -H 'X-API-Key: YOUR_API_KEY' \ --max-time 60 \ -d '{"id":"7638304516588195103","username":"cristiiicarrillo"}' ``` No recorded response is published for this endpoint yet. Run the example in the Playground to see a live one. ### Parameters | Name | What it does | | --- | --- | | `format` "json" \| "markdown" | json (default) returns the parsed result. markdown returns the same result as Markdown text (text/markdown) for language models: no envelope, no duplicate alias fields, no inline images. Same credits; failures keep the JSON envelope. | | `id` string | Example: "7638304516588195103" | | `username` string | Example: "cristiiicarrillo" | | `country` string | Public alias for locale.country. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `cursor` string | Public alias for pagination.cursor. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `device` string | Public alias for options.device. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `gl` string | Public alias for locale.country. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `hl` string | Public alias for locale.language. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `html` boolean | Public alias for include_html. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `language` string | Public alias for locale.language. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `limit` integer | Public alias for pagination.limit. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `markdown` boolean | Public alias for include_markdown. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `mobile` boolean | Public alias for options.device. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `num` integer | Public alias for pagination.limit. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `page` integer | Public alias for pagination.page. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `post_id` string | Public alias for id. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `q` string | Public alias for query. Use one spelling at a time; the API validates the parameters and values supported by this product. | The sample shows example parameters, not the complete request contract. Known fields are validated by the API; additional parameters are allowed. ### What comes back The fields are those in the response above; every endpoint also carries status, credits_charged and request_id. ### If it fails A failed request has a non-zero status and an error, and is not charged. The ones you will see here: `1000`A parameter is missing or wrongFix the request `1020`No credits leftTop up `1029`Over your requests per secondWait Retry-After seconds `1502 · 1504`The source could not be read this timeRetry [All status codes →](https://serpbase.dev/docs/responses-and-errors) ### Related [Reddit Post & Comments2 credits](https://serpbase.dev/docs/reddit_post) [Reddit Search1 credit](https://serpbase.dev/docs/reddit_search) [TikTok Profile2 credits](https://serpbase.dev/docs/tiktok_profile) [TikTok Search1 credit](https://serpbase.dev/docs/tiktok_search) ## TikTok Profile API Request a TikTok profile using its username. Profile data depends on upstream accessibility and is not an audience-history archive. - Category: Social media - Endpoint: `POST https://api.serpbase.dev/tiktok/profile` - Price: 2 credits per request - Status: available - Devices: desktop (default desktop) - Docs: https://serpbase.dev/docs/tiktok_profile (Markdown: https://serpbase.dev/docs/tiktok_profile.md) API reference · Social media Request a TikTok profile using its username. Profile data depends on upstream accessibility and is not an audience-history archive. POST `https://api.serpbase.dev/tiktok/profile` 2 credits [Open in Playground](https://serpbase.dev/playground?product=tiktok_profile) ### Example ```bash curl -X POST 'https://api.serpbase.dev/tiktok/profile' \ -H "Content-Type: application/json" \ -H 'X-API-Key: YOUR_API_KEY' \ --max-time 60 \ -d '{"username":"tiktok"}' ``` No recorded response is published for this endpoint yet. Run the example in the Playground to see a live one. ### Parameters | Name | What it does | | --- | --- | | `format` "json" \| "markdown" | json (default) returns the parsed result. markdown returns the same result as Markdown text (text/markdown) for language models: no envelope, no duplicate alias fields, no inline images. Same credits; failures keep the JSON envelope. | | `username` string | Example: "tiktok" | | `country` string | Public alias for locale.country. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `cursor` string | Public alias for pagination.cursor. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `device` string | Public alias for options.device. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `gl` string | Public alias for locale.country. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `hl` string | Public alias for locale.language. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `html` boolean | Public alias for include_html. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `language` string | Public alias for locale.language. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `limit` integer | Public alias for pagination.limit. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `markdown` boolean | Public alias for include_markdown. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `mobile` boolean | Public alias for options.device. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `num` integer | Public alias for pagination.limit. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `page` integer | Public alias for pagination.page. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `q` string | Public alias for query. Use one spelling at a time; the API validates the parameters and values supported by this product. | The sample shows example parameters, not the complete request contract. Known fields are validated by the API; additional parameters are allowed. ### What comes back The fields are those in the response above; every endpoint also carries status, credits_charged and request_id. ### If it fails A failed request has a non-zero status and an error, and is not charged. The ones you will see here: `1000`A parameter is missing or wrongFix the request `1020`No credits leftTop up `1029`Over your requests per secondWait Retry-After seconds `1502 · 1504`The source could not be read this timeRetry [All status codes →](https://serpbase.dev/docs/responses-and-errors) ### Related [Reddit Post & Comments2 credits](https://serpbase.dev/docs/reddit_post) [Reddit Search1 credit](https://serpbase.dev/docs/reddit_search) [TikTok Post2 credits](https://serpbase.dev/docs/tiktok_post) [TikTok Search1 credit](https://serpbase.dev/docs/tiktok_search) ## TikTok Search API Search TikTok videos by keyword: video links, captions, authors, view, like, comment and share counts, hashtags and covers, 16 per page by default. - Category: Social media - Endpoint: `POST https://api.serpbase.dev/tiktok/search` - Price: 1 credit per request - Status: available - Devices: desktop (default desktop) - Docs: https://serpbase.dev/docs/tiktok_search (Markdown: https://serpbase.dev/docs/tiktok_search.md) API reference · Social media Search TikTok videos by keyword: video links, captions, authors, view, like, comment and share counts, hashtags and covers, 16 per page by default. POST `https://api.serpbase.dev/tiktok/search` 1 credit [Open in Playground](https://serpbase.dev/playground?product=tiktok_search) ### Example ```bash curl -X POST 'https://api.serpbase.dev/tiktok/search' \ -H "Content-Type: application/json" \ -H 'X-API-Key: YOUR_API_KEY' \ --max-time 60 \ -d '{"q":"pasta recipe"}' ``` Response · real, shortened ``` { "status": 0, "credits_charged": 1, "request_id": "r-4b27fe8a36d9ac303a5da7dd", "product_id": "tiktok_search", "query": "pasta recipe", "action": "search", "pagination": { "has_more": true, "next_cursor": "16" }, "source": "tiktok", "url": "https://www.tiktok.com/discover/pasta-recipe" } ``` ### Parameters | Name | What it does | | --- | --- | | `format` "json" \| "markdown" | json (default) returns the parsed result. markdown returns the same result as Markdown text (text/markdown) for language models: no envelope, no duplicate alias fields, no inline images. Same credits; failures keep the JSON envelope. | | `q` string | Example: "pasta recipe" | | `count` integer | Public alias for pagination.limit. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `country` string | Public alias for locale.country. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `cursor` string | Public alias for pagination.cursor. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `device` string | Public alias for options.device. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `gl` string | Public alias for locale.country. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `hl` string | Public alias for locale.language. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `html` boolean | Public alias for include_html. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `keyword` string | Public alias for query. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `language` string | Public alias for locale.language. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `limit` integer | Public alias for pagination.limit. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `markdown` boolean | Public alias for include_markdown. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `mobile` boolean | Public alias for options.device. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `next_page_token` string | Public alias for pagination.cursor. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `num` integer | Public alias for pagination.limit. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `page` integer | Public alias for pagination.page. Use one spelling at a time; the API validates the parameters and values supported by this product. | The sample shows example parameters, not the complete request contract. Known fields are validated by the API; additional parameters are allowed. ### What comes back The fields are those in the response above; every endpoint also carries status, credits_charged and request_id. ### If it fails A failed request has a non-zero status and an error, and is not charged. The ones you will see here: `1000`A parameter is missing or wrongFix the request `1020`No credits leftTop up `1029`Over your requests per secondWait Retry-After seconds `1502 · 1504`The source could not be read this timeRetry [All status codes →](https://serpbase.dev/docs/responses-and-errors) ### Related [Reddit Post & Comments2 credits](https://serpbase.dev/docs/reddit_post) [Reddit Search1 credit](https://serpbase.dev/docs/reddit_search) [TikTok Post2 credits](https://serpbase.dev/docs/tiktok_post) [TikTok Profile2 credits](https://serpbase.dev/docs/tiktok_profile) ## X Post Details API Look up one X post by ID. This is not an X keyword search, timeline export or streaming endpoint. - Category: Social media - Endpoint: `POST https://api.serpbase.dev/x/post` - Price: 1 credit per request - Status: available - Devices: desktop (default desktop) - Docs: https://serpbase.dev/docs/x_post (Markdown: https://serpbase.dev/docs/x_post.md) API reference · Social media Look up one X post by ID. This is not an X keyword search, timeline export or streaming endpoint. POST `https://api.serpbase.dev/x/post` 1 credit [Open in Playground](https://serpbase.dev/playground?product=x_post) ### Example ```bash curl -X POST 'https://api.serpbase.dev/x/post' \ -H "Content-Type: application/json" \ -H 'X-API-Key: YOUR_API_KEY' \ --max-time 60 \ -d '{"id":"20"}' ``` Response · real, shortened ``` { "status": 0, "credits_charged": 1, "request_id": "r-4b27fe8a36d9ac303a5da7dd", "product_id": "x_post", "action": "post", "post": { "author": { "link": "https://x.com/jack", "name": "jack", "url": "https://x.com/jack", "username": "jack" }, "id": "20", "link": "https://x.com/jack/status/20", "text": "just setting up my twttr", "url": "https://x.com/jack/status/20" }, "source": "x", "url": "https://x.com/jack/status/20" } ``` ### Parameters | Name | What it does | | --- | --- | | `format` "json" \| "markdown" | json (default) returns the parsed result. markdown returns the same result as Markdown text (text/markdown) for language models: no envelope, no duplicate alias fields, no inline images. Same credits; failures keep the JSON envelope. | | `id` string | Example: "20" | | `country` string | Public alias for locale.country. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `cursor` string | Public alias for pagination.cursor. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `device` string | Public alias for options.device. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `gl` string | Public alias for locale.country. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `hl` string | Public alias for locale.language. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `html` boolean | Public alias for include_html. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `language` string | Public alias for locale.language. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `limit` integer | Public alias for pagination.limit. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `markdown` boolean | Public alias for include_markdown. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `mobile` boolean | Public alias for options.device. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `num` integer | Public alias for pagination.limit. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `page` integer | Public alias for pagination.page. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `q` string | Public alias for query. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `tweetId` string | Public alias for id. Use one spelling at a time; the API validates the parameters and values supported by this product. | The sample shows example parameters, not the complete request contract. Known fields are validated by the API; additional parameters are allowed. ### What comes back The fields are those in the response above; every endpoint also carries status, credits_charged and request_id. ### If it fails A failed request has a non-zero status and an error, and is not charged. The ones you will see here: `1000`A parameter is missing or wrongFix the request `1020`No credits leftTop up `1029`Over your requests per secondWait Retry-After seconds `1502 · 1504`The source could not be read this timeRetry [All status codes →](https://serpbase.dev/docs/responses-and-errors) ### Related [Reddit Post & Comments2 credits](https://serpbase.dev/docs/reddit_post) [Reddit Search1 credit](https://serpbase.dev/docs/reddit_search) [TikTok Post2 credits](https://serpbase.dev/docs/tiktok_post) [TikTok Profile2 credits](https://serpbase.dev/docs/tiktok_profile) ## YouTube Search API Search YouTube videos, Shorts, and creator channels with query and region parameters. - Category: Social media - Endpoint: `POST https://api.serpbase.dev/youtube/search` - Price: 1 credit per request - Status: available - Devices: desktop (default desktop) - Docs: https://serpbase.dev/docs/youtube_search (Markdown: https://serpbase.dev/docs/youtube_search.md) API reference · Social media Search YouTube videos, Shorts, and creator channels with query and region parameters. POST `https://api.serpbase.dev/youtube/search` 1 credit [Open in Playground](https://serpbase.dev/playground?product=youtube_search) ### Example ```bash curl -X POST 'https://api.serpbase.dev/youtube/search' \ -H "Content-Type: application/json" \ -H 'X-API-Key: YOUR_API_KEY' \ --max-time 60 \ -d '{"gl":"us","q":"nextjs tutorial"}' ``` Response · real, shortened ``` { "status": 0, "credits_charged": 1, "request_id": "r-4b27fe8a36d9ac303a5da7dd", "product_id": "youtube_search", "query": "nextjs tutorial", "action": "search", "pagination": { "has_more": true, "next_cursor": "EpkEEg9uZXh0anMgdHV0b3JpYWwaggRTQlNDQVF0NGJrOTNUMEpaWVVFemQ0SUJDMU5yYkdOZlpsRkNiV056Z2dFTFdsWnVhazlR…" }, "source": "youtube", "url": "https://www.youtube.com/results?gl=US&search_query=nextjs+tutorial", "videos": [ { "badges": [ "4K" ], "channel": { "id": "UC8S4rDRZn6Z_StJ-hh7ph8g", "image_url": "https://yt3.ggpht.com/Qizn_VAgeCADuMk0RhVQ11j_9TWKrtQ1ifDGo5Yomj4Kjx29OgnHuZc6dQds5jztNlk3LAt6NA=s68…", "link": "https://www.youtube.com/channel/UC8S4rDRZn6Z_StJ-hh7ph8g", "title": "PedroTech", "url": "https://www.youtube.com/channel/UC8S4rDRZn6Z_StJ-hh7ph8g", "verified": true }, "description": "If you know react, but don't know what NextJS is, this is the video for you. NextJS offers a variety…", "duration": "7:35", "id": "xnOwOBYaA3w", "link": "https://www.youtube.com/watch?v=xnOwOBYaA3w", "media": [ { "type": "thumbnail", "url": "https://i.ytimg.com/vi/xnOwOBYaA3w/hq720.jpg?sqp=-oaymwEcCNAFEJQDSFXyq4qpAw4IARUAAIhCGAFwAcABBg==&rs…" } ], "published_at": "1y ago", "title": "Learn NextJS in 7 Minutes", "url": "https://www.youtube.com/watch?v=xnOwOBYaA3w", "views_count": "301453" }, { "badges": [ "4K" ], "channel": { "id": "UCsBjURrPoezykLs9EqgamOA", "image_url": "https://yt3.ggpht.com/3fPNbkf_xPyCleq77ZhcxyeorY97NtMHVNUbaAON_RBDH9ydL4hJkjxC8x_4mpuopkB8oI7Ct6Y=s6…", "link": "https://www.youtube.com/channel/UCsBjURrPoezykLs9EqgamOA", "title": "Fireship", "url": "https://www.youtube.com/channel/UCsBjURrPoezykLs9EqgamOA", "verified": true }, "description": "Learn the basics of Next.js in 100 Seconds! Then build your first server-rendered react app with a f…", "duration": "11:52", "id": "Sklc_fQBmcs", "link": "https://www.youtube.com/watch?v=Sklc_fQBmcs", "media": [ { "type": "thumbnail", "url": "https://i.ytimg.com/vi/Sklc_fQBmcs/hq720.jpg?sqp=-oaymwEcCNAFEJQDSFXyq4qpAw4IARUAAIhCGAFwAcABBg==&rs…" } ], "published_at": "5y ago", "title": "Next.js in 100 Seconds // Plus Full Beginner's Tutorial", "url": "https://www.youtube.com/watch?v=Sklc_fQBmcs", "views_count": "1541058" } ] } ``` ### Parameters | Name | What it does | | --- | --- | | `format` "json" \| "markdown" | json (default) returns the parsed result. markdown returns the same result as Markdown text (text/markdown) for language models: no envelope, no duplicate alias fields, no inline images. Same credits; failures keep the JSON envelope. | | `gl` string | Example: "us" | | `q` string | Example: "nextjs tutorial" | | `country` string | Public alias for locale.country. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `cursor` string | Public alias for pagination.cursor. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `device` string | Public alias for options.device. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `hl` string | Public alias for locale.language. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `html` boolean | Public alias for include_html. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `language` string | Public alias for locale.language. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `limit` integer | Public alias for pagination.limit. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `markdown` boolean | Public alias for include_markdown. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `mobile` boolean | Public alias for options.device. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `num` integer | Public alias for pagination.limit. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `page` integer | Public alias for pagination.page. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `search_query` string | Public alias for query. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `sp` string | Public alias for attributes.sp. Use one spelling at a time; the API validates the parameters and values supported by this product. | The sample shows example parameters, not the complete request contract. Known fields are validated by the API; additional parameters are allowed. ### What comes back The fields are those in the response above; every endpoint also carries status, credits_charged and request_id. ### If it fails A failed request has a non-zero status and an error, and is not charged. The ones you will see here: `1000`A parameter is missing or wrongFix the request `1020`No credits leftTop up `1029`Over your requests per secondWait Retry-After seconds `1502 · 1504`The source could not be read this timeRetry [All status codes →](https://serpbase.dev/docs/responses-and-errors) ### Related [Reddit Post & Comments2 credits](https://serpbase.dev/docs/reddit_post) [Reddit Search1 credit](https://serpbase.dev/docs/reddit_search) [TikTok Post2 credits](https://serpbase.dev/docs/tiktok_post) [TikTok Profile2 credits](https://serpbase.dev/docs/tiktok_profile) ## YouTube Video Transcripts API Extract timestamped multi-language video transcripts and closed captions for a YouTube video ID. - Category: Social media - Endpoint: `POST https://api.serpbase.dev/youtube/transcripts` - Price: 2 credits per request - Status: available - Devices: desktop (default desktop) - Docs: https://serpbase.dev/docs/youtube_transcripts (Markdown: https://serpbase.dev/docs/youtube_transcripts.md) API reference · Social media Extract timestamped multi-language video transcripts and closed captions for a YouTube video ID. POST `https://api.serpbase.dev/youtube/transcripts` 2 credits [Open in Playground](https://serpbase.dev/playground?product=youtube_transcripts) ### Example ```bash curl -X POST 'https://api.serpbase.dev/youtube/transcripts' \ -H "Content-Type: application/json" \ -H 'X-API-Key: YOUR_API_KEY' \ --max-time 60 \ -d '{"id":"dQw4w9WgXcQ"}' ``` No recorded response is published for this endpoint yet. Run the example in the Playground to see a live one. ### Parameters | Name | What it does | | --- | --- | | `format` "json" \| "markdown" | json (default) returns the parsed result. markdown returns the same result as Markdown text (text/markdown) for language models: no envelope, no duplicate alias fields, no inline images. Same credits; failures keep the JSON envelope. | | `id` string | Example: "dQw4w9WgXcQ" | | `country` string | Public alias for locale.country. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `cursor` string | Public alias for pagination.cursor. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `device` string | Public alias for options.device. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `gl` string | Public alias for locale.country. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `hl` string | Public alias for locale.language. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `html` boolean | Public alias for include_html. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `language` string | Public alias for locale.language. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `limit` integer | Public alias for pagination.limit. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `markdown` boolean | Public alias for include_markdown. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `mobile` boolean | Public alias for options.device. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `num` integer | Public alias for pagination.limit. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `page` integer | Public alias for pagination.page. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `q` string | Public alias for query. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `v` string | Public alias for id. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `video_link` string | Public alias for url. Use one spelling at a time; the API validates the parameters and values supported by this product. | The sample shows example parameters, not the complete request contract. Known fields are validated by the API; additional parameters are allowed. ### What comes back The fields are those in the response above; every endpoint also carries status, credits_charged and request_id. ### If it fails A failed request has a non-zero status and an error, and is not charged. The ones you will see here: `1000`A parameter is missing or wrongFix the request `1020`No credits leftTop up `1029`Over your requests per secondWait Retry-After seconds `1502 · 1504`The source could not be read this timeRetry [All status codes →](https://serpbase.dev/docs/responses-and-errors) ### Related [Reddit Post & Comments2 credits](https://serpbase.dev/docs/reddit_post) [Reddit Search1 credit](https://serpbase.dev/docs/reddit_search) [TikTok Post2 credits](https://serpbase.dev/docs/tiktok_post) [TikTok Profile2 credits](https://serpbase.dev/docs/tiktok_profile) ## Ajio Product Details API Read an AJIO product page from its HTTPS /p/ URL. This is a single-item lookup, not an AJIO catalog export. - Category: E-commerce - Endpoint: `POST https://api.serpbase.dev/ajio/product` - Price: 2 credits per request - Status: available - Devices: desktop (default desktop) - Docs: https://serpbase.dev/docs/ajio_product (Markdown: https://serpbase.dev/docs/ajio_product.md) API reference · E-commerce Read an AJIO product page from its HTTPS /p/ URL. This is a single-item lookup, not an AJIO catalog export. POST `https://api.serpbase.dev/ajio/product` 2 credits [Open in Playground](https://serpbase.dev/playground?product=ajio_product) ### Example ```bash curl -X POST 'https://api.serpbase.dev/ajio/product' \ -H "Content-Type: application/json" \ -H 'X-API-Key: YOUR_API_KEY' \ --max-time 60 \ -d '{"url":"https://www.ajio.com/sample/p/1234567890"}' ``` No recorded response is published for this endpoint yet. Run the example in the Playground to see a live one. ### Parameters | Name | What it does | | --- | --- | | `format` "json" \| "markdown" | json (default) returns the parsed result. markdown returns the same result as Markdown text (text/markdown) for language models: no envelope, no duplicate alias fields, no inline images. Same credits; failures keep the JSON envelope. | | `url` string | Example: "https://www.ajio.com/sample/p/1234567890" | | `country` string | Public alias for locale.country. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `cursor` string | Public alias for pagination.cursor. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `device` string | Public alias for options.device. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `gl` string | Public alias for locale.country. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `hl` string | Public alias for locale.language. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `html` boolean | Public alias for include_html. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `language` string | Public alias for locale.language. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `limit` integer | Public alias for pagination.limit. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `markdown` boolean | Public alias for include_markdown. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `mobile` boolean | Public alias for options.device. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `num` integer | Public alias for pagination.limit. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `page` integer | Public alias for pagination.page. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `q` string | Public alias for query. Use one spelling at a time; the API validates the parameters and values supported by this product. | The sample shows example parameters, not the complete request contract. Known fields are validated by the API; additional parameters are allowed. ### What comes back The fields are those in the response above; every endpoint also carries status, credits_charged and request_id. ### If it fails A failed request has a non-zero status and an error, and is not charged. The ones you will see here: `1000`A parameter is missing or wrongFix the request `1020`No credits leftTop up `1029`Over your requests per secondWait Retry-After seconds `1502 · 1504`The source could not be read this timeRetry [All status codes →](https://serpbase.dev/docs/responses-and-errors) ### Related [Amazon Product Details2 credits](https://serpbase.dev/docs/amazon_product) [Amazon Product Reviews2 credits](https://serpbase.dev/docs/amazon_reviews) [Amazon Product Search2 credits](https://serpbase.dev/docs/amazon_search) [Amazon Search Autocomplete1 credit](https://serpbase.dev/docs/amazon_autocomplete) ## Amazon Product Details API Retrieve detailed Amazon product data including titles, multiple variant ASINs, merchant offers, availability, and specs by ASIN. - Category: E-commerce - Endpoint: `POST https://api.serpbase.dev/amazon/product` - Price: 2 credits per request - Status: available - Devices: desktop (default desktop) - Docs: https://serpbase.dev/docs/amazon_product (Markdown: https://serpbase.dev/docs/amazon_product.md) API reference · E-commerce Retrieve detailed Amazon product data including titles, multiple variant ASINs, merchant offers, availability, and specs by ASIN. POST `https://api.serpbase.dev/amazon/product` 2 credits [Open in Playground](https://serpbase.dev/playground?product=amazon_product) ### Example ```bash curl -X POST 'https://api.serpbase.dev/amazon/product' \ -H "Content-Type: application/json" \ -H 'X-API-Key: YOUR_API_KEY' \ --max-time 60 \ -d '{"asin":"B08N5WRWNW","domain":"amazon.com"}' ``` No recorded response is published for this endpoint yet. Run the example in the Playground to see a live one. ### Parameters | Name | What it does | | --- | --- | | `format` "json" \| "markdown" | json (default) returns the parsed result. markdown returns the same result as Markdown text (text/markdown) for language models: no envelope, no duplicate alias fields, no inline images. Same credits; failures keep the JSON envelope. | | `asin` string | Example: "B08N5WRWNW" | | `domain` string | Example: "amazon.com" | | `amazon_domain` string | Public alias for domain. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `country` string | Public alias for locale.country. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `cursor` string | Public alias for pagination.cursor. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `device` string | Public alias for options.device. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `gl` string | Public alias for locale.country. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `hl` string | Public alias for locale.language. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `html` boolean | Public alias for include_html. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `language` string | Public alias for locale.language. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `limit` integer | Public alias for pagination.limit. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `markdown` boolean | Public alias for include_markdown. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `mobile` boolean | Public alias for options.device. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `num` integer | Public alias for pagination.limit. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `page` integer | Public alias for pagination.page. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `q` string | Public alias for query. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `type` string | Public alias for search_type. Use one spelling at a time; the API validates the parameters and values supported by this product. | The sample shows example parameters, not the complete request contract. Known fields are validated by the API; additional parameters are allowed. ### What comes back The fields are those in the response above; every endpoint also carries status, credits_charged and request_id. ### If it fails A failed request has a non-zero status and an error, and is not charged. The ones you will see here: `1000`A parameter is missing or wrongFix the request `1020`No credits leftTop up `1029`Over your requests per secondWait Retry-After seconds `1502 · 1504`The source could not be read this timeRetry [All status codes →](https://serpbase.dev/docs/responses-and-errors) ### Related [Ajio Product Details2 credits](https://serpbase.dev/docs/ajio_product) [Amazon Product Reviews2 credits](https://serpbase.dev/docs/amazon_reviews) [Amazon Product Search2 credits](https://serpbase.dev/docs/amazon_search) [Amazon Search Autocomplete1 credit](https://serpbase.dev/docs/amazon_autocomplete) ## Amazon Product Reviews API Extract authentic customer reviews, star ratings, review text, and reviewer attributes for an Amazon product ASIN. - Category: E-commerce - Endpoint: `POST https://api.serpbase.dev/amazon/reviews` - Price: 2 credits per request - Status: paused (temporarily not callable) - Devices: desktop (default desktop) - Docs: https://serpbase.dev/docs/amazon_reviews (Markdown: https://serpbase.dev/docs/amazon_reviews.md) API reference · E-commerce Extract authentic customer reviews, star ratings, review text, and reviewer attributes for an Amazon product ASIN. POST `https://api.serpbase.dev/amazon/reviews` In development · Paused This endpoint is being reworked and is paused for now. It cannot be called until it reopens. ### Example ```bash curl -X POST 'https://api.serpbase.dev/amazon/reviews' \ -H "Content-Type: application/json" \ -H 'X-API-Key: YOUR_API_KEY' \ --max-time 60 \ -d '{"asin":"B08N5WRWNW","domain":"amazon.com"}' ``` No recorded response is published for this endpoint yet. Run the example in the Playground to see a live one. ### Parameters | Name | What it does | | --- | --- | | `format` "json" \| "markdown" | json (default) returns the parsed result. markdown returns the same result as Markdown text (text/markdown) for language models: no envelope, no duplicate alias fields, no inline images. Same credits; failures keep the JSON envelope. | | `asin` string | Example: "B08N5WRWNW" | | `domain` string | Example: "amazon.com" | | `amazon_domain` string | Public alias for domain. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `country` string | Public alias for locale.country. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `cursor` string | Public alias for pagination.cursor. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `device` string | Public alias for options.device. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `filter_by_star` string | Public alias for review_rating. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `gl` string | Public alias for locale.country. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `hl` string | Public alias for locale.language. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `html` boolean | Public alias for include_html. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `language` string | Public alias for locale.language. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `limit` integer | Public alias for pagination.limit. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `markdown` boolean | Public alias for include_markdown. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `mobile` boolean | Public alias for options.device. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `num` integer | Public alias for pagination.limit. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `page` integer | Public alias for pagination.page. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `q` string | Public alias for query. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `reviewer_type` string | Public alias for review_type. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `type` string | Public alias for search_type. Use one spelling at a time; the API validates the parameters and values supported by this product. | The sample shows example parameters, not the complete request contract. Known fields are validated by the API; additional parameters are allowed. ### What comes back The fields are those in the response above; every endpoint also carries status, credits_charged and request_id. ### If it fails A failed request has a non-zero status and an error, and is not charged. The ones you will see here: `1000`A parameter is missing or wrongFix the request `1020`No credits leftTop up `1029`Over your requests per secondWait Retry-After seconds `1502 · 1504`The source could not be read this timeRetry [All status codes →](https://serpbase.dev/docs/responses-and-errors) ### Related [Ajio Product Details2 credits](https://serpbase.dev/docs/ajio_product) [Amazon Product Details2 credits](https://serpbase.dev/docs/amazon_product) [Amazon Product Search2 credits](https://serpbase.dev/docs/amazon_search) [Amazon Search Autocomplete1 credit](https://serpbase.dev/docs/amazon_autocomplete) ## Amazon Product Search API Search Amazon product catalog by keyword query and domain. Returns structured product listings with prices, ratings, and Prime badges. - Category: E-commerce - Endpoint: `POST https://api.serpbase.dev/amazon/search` - Price: 2 credits per request - Status: available - Devices: desktop (default desktop) - Docs: https://serpbase.dev/docs/amazon_search (Markdown: https://serpbase.dev/docs/amazon_search.md) API reference · E-commerce Search Amazon product catalog by keyword query and domain. Returns structured product listings with prices, ratings, and Prime badges. POST `https://api.serpbase.dev/amazon/search` 2 credits [Open in Playground](https://serpbase.dev/playground?product=amazon_search) ### Example ```bash curl -X POST 'https://api.serpbase.dev/amazon/search' \ -H "Content-Type: application/json" \ -H 'X-API-Key: YOUR_API_KEY' \ --max-time 60 \ -d '{"domain":"amazon.com","q":"wireless headphones"}' ``` No recorded response is published for this endpoint yet. Run the example in the Playground to see a live one. ### Parameters | Name | What it does | | --- | --- | | `format` "json" \| "markdown" | json (default) returns the parsed result. markdown returns the same result as Markdown text (text/markdown) for language models: no envelope, no duplicate alias fields, no inline images. Same credits; failures keep the JSON envelope. | | `domain` string | Example: "amazon.com" | | `q` string | Example: "wireless headphones" | | `amazon_domain` string | Public alias for domain. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `country` string | Public alias for locale.country. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `cursor` string | Public alias for pagination.cursor. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `device` string | Public alias for options.device. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `gl` string | Public alias for locale.country. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `hl` string | Public alias for locale.language. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `html` boolean | Public alias for include_html. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `language` string | Public alias for locale.language. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `limit` integer | Public alias for pagination.limit. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `markdown` boolean | Public alias for include_markdown. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `mobile` boolean | Public alias for options.device. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `num` integer | Public alias for pagination.limit. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `page` integer | Public alias for pagination.page. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `type` string | Public alias for search_type. Use one spelling at a time; the API validates the parameters and values supported by this product. | The sample shows example parameters, not the complete request contract. Known fields are validated by the API; additional parameters are allowed. ### What comes back The fields are those in the response above; every endpoint also carries status, credits_charged and request_id. ### If it fails A failed request has a non-zero status and an error, and is not charged. The ones you will see here: `1000`A parameter is missing or wrongFix the request `1020`No credits leftTop up `1029`Over your requests per secondWait Retry-After seconds `1502 · 1504`The source could not be read this timeRetry [All status codes →](https://serpbase.dev/docs/responses-and-errors) ### Related [Ajio Product Details2 credits](https://serpbase.dev/docs/ajio_product) [Amazon Product Details2 credits](https://serpbase.dev/docs/amazon_product) [Amazon Product Reviews2 credits](https://serpbase.dev/docs/amazon_reviews) [Amazon Search Autocomplete1 credit](https://serpbase.dev/docs/amazon_autocomplete) ## Amazon Search Autocomplete API Get Amazon query suggestions from a prefix. This endpoint returns autocomplete suggestions, not product detail or price history. - Category: E-commerce - Endpoint: `POST https://api.serpbase.dev/amazon/autocomplete` - Price: 1 credit per request - Status: available - Devices: desktop (default desktop) - Docs: https://serpbase.dev/docs/amazon_autocomplete (Markdown: https://serpbase.dev/docs/amazon_autocomplete.md) API reference · E-commerce Get Amazon query suggestions from a prefix. This endpoint returns autocomplete suggestions, not product detail or price history. POST `https://api.serpbase.dev/amazon/autocomplete` 1 credit [Open in Playground](https://serpbase.dev/playground?product=amazon_autocomplete) ### Example ```bash curl -X POST 'https://api.serpbase.dev/amazon/autocomplete' \ -H "Content-Type: application/json" \ -H 'X-API-Key: YOUR_API_KEY' \ --max-time 60 \ -d '{"prefix":"laptop"}' ``` Response · real, shortened ``` { "status": 0, "credits_charged": 1, "request_id": "r-4b27fe8a36d9ac303a5da7dd", "product_id": "amazon_autocomplete", "action": "autocomplete", "source": "amazon", "suggestions": [ { "text": "laptop", "type": "KEYWORD" }, { "text": "laptop stand", "type": "KEYWORD" } ], "url": "https://www.amazon.com/suggestions?alias=aps&limit=11&lop=en_US&plain-mid=1&prefix=laptop&site-varia…" } ``` ### Parameters | Name | What it does | | --- | --- | | `format` "json" \| "markdown" | json (default) returns the parsed result. markdown returns the same result as Markdown text (text/markdown) for language models: no envelope, no duplicate alias fields, no inline images. Same credits; failures keep the JSON envelope. | | `prefix` string | Example: "laptop" | | `amazon_domain` string | Public alias for domain. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `country` string | Public alias for locale.country. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `cursor` string | Public alias for pagination.cursor. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `device` string | Public alias for options.device. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `gl` string | Public alias for locale.country. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `hl` string | Public alias for locale.language. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `html` boolean | Public alias for include_html. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `language` string | Public alias for locale.language. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `limit` integer | Public alias for pagination.limit. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `markdown` boolean | Public alias for include_markdown. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `mid` string | Public alias for marketplace_id. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `mobile` boolean | Public alias for options.device. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `num` integer | Public alias for pagination.limit. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `page` integer | Public alias for pagination.page. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `q` string | Public alias for query. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `type` string | Public alias for search_type. Use one spelling at a time; the API validates the parameters and values supported by this product. | The sample shows example parameters, not the complete request contract. Known fields are validated by the API; additional parameters are allowed. ### What comes back The fields are those in the response above; every endpoint also carries status, credits_charged and request_id. ### If it fails A failed request has a non-zero status and an error, and is not charged. The ones you will see here: `1000`A parameter is missing or wrongFix the request `1020`No credits leftTop up `1029`Over your requests per secondWait Retry-After seconds `1502 · 1504`The source could not be read this timeRetry [All status codes →](https://serpbase.dev/docs/responses-and-errors) ### Related [Ajio Product Details2 credits](https://serpbase.dev/docs/ajio_product) [Amazon Product Details2 credits](https://serpbase.dev/docs/amazon_product) [Amazon Product Reviews2 credits](https://serpbase.dev/docs/amazon_reviews) [Amazon Product Search2 credits](https://serpbase.dev/docs/amazon_search) ## Apple Product Details API Look up an Apple App Store app by numeric app ID or apps.apple.com app URL and country. This is software metadata, not Apple hardware. - Category: E-commerce - Endpoint: `POST https://api.serpbase.dev/apple/product` - Price: 1 credit per request - Status: available - Devices: desktop (default desktop) - Docs: https://serpbase.dev/docs/apple_product (Markdown: https://serpbase.dev/docs/apple_product.md) API reference · E-commerce Look up an Apple App Store app by numeric app ID or apps.apple.com app URL and country. This is software metadata, not Apple hardware. POST `https://api.serpbase.dev/apple/product` 1 credit [Open in Playground](https://serpbase.dev/playground?product=apple_product) ### Example ```bash curl -X POST 'https://api.serpbase.dev/apple/product' \ -H "Content-Type: application/json" \ -H 'X-API-Key: YOUR_API_KEY' \ --max-time 60 \ -d '{"id":"284882215"}' ``` No recorded response is published for this endpoint yet. Run the example in the Playground to see a live one. ### Parameters | Name | What it does | | --- | --- | | `format` "json" \| "markdown" | json (default) returns the parsed result. markdown returns the same result as Markdown text (text/markdown) for language models: no envelope, no duplicate alias fields, no inline images. Same credits; failures keep the JSON envelope. | | `id` string | Example: "284882215" | | `country` string | Public alias for locale.country. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `cursor` string | Public alias for pagination.cursor. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `device` string | Public alias for options.device. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `gl` string | Public alias for locale.country. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `hl` string | Public alias for locale.language. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `html` boolean | Public alias for include_html. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `language` string | Public alias for locale.language. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `limit` integer | Public alias for pagination.limit. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `markdown` boolean | Public alias for include_markdown. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `mobile` boolean | Public alias for options.device. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `num` integer | Public alias for pagination.limit. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `page` integer | Public alias for pagination.page. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `product_id` string | Public alias for id. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `q` string | Public alias for query. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `type` string | Public alias for search_type. Use one spelling at a time; the API validates the parameters and values supported by this product. | The sample shows example parameters, not the complete request contract. Known fields are validated by the API; additional parameters are allowed. ### What comes back The fields are those in the response above; every endpoint also carries status, credits_charged and request_id. ### If it fails A failed request has a non-zero status and an error, and is not charged. The ones you will see here: `1000`A parameter is missing or wrongFix the request `1020`No credits leftTop up `1029`Over your requests per secondWait Retry-After seconds `1502 · 1504`The source could not be read this timeRetry [All status codes →](https://serpbase.dev/docs/responses-and-errors) ### Related [Ajio Product Details2 credits](https://serpbase.dev/docs/ajio_product) [Amazon Product Details2 credits](https://serpbase.dev/docs/amazon_product) [Amazon Product Reviews2 credits](https://serpbase.dev/docs/amazon_reviews) [Amazon Product Search2 credits](https://serpbase.dev/docs/amazon_search) ## eBay Product Details API Retrieve detailed eBay item data, current auction prices, seller ratings, and listing specifications by item ID. - Category: E-commerce - Endpoint: `POST https://api.serpbase.dev/ebay/product` - Price: 2 credits per request - Status: available - Devices: desktop (default desktop) - Docs: https://serpbase.dev/docs/ebay_product (Markdown: https://serpbase.dev/docs/ebay_product.md) API reference · E-commerce Retrieve detailed eBay item data, current auction prices, seller ratings, and listing specifications by item ID. POST `https://api.serpbase.dev/ebay/product` 2 credits [Open in Playground](https://serpbase.dev/playground?product=ebay_product) ### Example ```bash curl -X POST 'https://api.serpbase.dev/ebay/product' \ -H "Content-Type: application/json" \ -H 'X-API-Key: YOUR_API_KEY' \ --max-time 60 \ -d '{"domain":"ebay.com","id":"389471889936"}' ``` No recorded response is published for this endpoint yet. Run the example in the Playground to see a live one. ### Parameters | Name | What it does | | --- | --- | | `format` "json" \| "markdown" | json (default) returns the parsed result. markdown returns the same result as Markdown text (text/markdown) for language models: no envelope, no duplicate alias fields, no inline images. Same credits; failures keep the JSON envelope. | | `domain` string | Example: "ebay.com" | | `id` string | Example: "389471889936" | | `country` string | Public alias for locale.country. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `cursor` string | Public alias for pagination.cursor. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `device` string | Public alias for options.device. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `gl` string | Public alias for locale.country. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `hl` string | Public alias for locale.language. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `html` boolean | Public alias for include_html. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `language` string | Public alias for locale.language. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `limit` integer | Public alias for pagination.limit. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `markdown` boolean | Public alias for include_markdown. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `mobile` boolean | Public alias for options.device. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `num` integer | Public alias for pagination.limit. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `page` integer | Public alias for pagination.page. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `q` string | Public alias for query. Use one spelling at a time; the API validates the parameters and values supported by this product. | The sample shows example parameters, not the complete request contract. Known fields are validated by the API; additional parameters are allowed. ### What comes back The fields are those in the response above; every endpoint also carries status, credits_charged and request_id. ### If it fails A failed request has a non-zero status and an error, and is not charged. The ones you will see here: `1000`A parameter is missing or wrongFix the request `1020`No credits leftTop up `1029`Over your requests per secondWait Retry-After seconds `1502 · 1504`The source could not be read this timeRetry [All status codes →](https://serpbase.dev/docs/responses-and-errors) ### Related [Ajio Product Details2 credits](https://serpbase.dev/docs/ajio_product) [Amazon Product Details2 credits](https://serpbase.dev/docs/amazon_product) [Amazon Product Reviews2 credits](https://serpbase.dev/docs/amazon_reviews) [Amazon Product Search2 credits](https://serpbase.dev/docs/amazon_search) ## eBay Product Search API Search eBay auction and Buy-It-Now listings by query. Returns titles, bids, prices, and seller information. - Category: E-commerce - Endpoint: `POST https://api.serpbase.dev/ebay/search` - Price: 1 credit per request - Status: available - Devices: desktop (default desktop) - Docs: https://serpbase.dev/docs/ebay_search (Markdown: https://serpbase.dev/docs/ebay_search.md) API reference · E-commerce Search eBay auction and Buy-It-Now listings by query. Returns titles, bids, prices, and seller information. POST `https://api.serpbase.dev/ebay/search` 1 credit [Open in Playground](https://serpbase.dev/playground?product=ebay_search) ### Example ```bash curl -X POST 'https://api.serpbase.dev/ebay/search' \ -H "Content-Type: application/json" \ -H 'X-API-Key: YOUR_API_KEY' \ --max-time 60 \ -d '{"domain":"ebay.com","query":"vintage watch"}' ``` No recorded response is published for this endpoint yet. Run the example in the Playground to see a live one. ### Parameters | Name | What it does | | --- | --- | | `format` "json" \| "markdown" | json (default) returns the parsed result. markdown returns the same result as Markdown text (text/markdown) for language models: no envelope, no duplicate alias fields, no inline images. Same credits; failures keep the JSON envelope. | | `domain` string | Example: "ebay.com" | | `query` string | Example: "vintage watch" | | `country` string | Public alias for locale.country. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `cursor` string | Public alias for pagination.cursor. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `device` string | Public alias for options.device. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `gl` string | Public alias for locale.country. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `hl` string | Public alias for locale.language. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `html` boolean | Public alias for include_html. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `language` string | Public alias for locale.language. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `limit` integer | Public alias for pagination.limit. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `markdown` boolean | Public alias for include_markdown. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `mobile` boolean | Public alias for options.device. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `num` integer | Public alias for pagination.limit. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `page` integer | Public alias for pagination.page. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `q` string | Public alias for query. Use one spelling at a time; the API validates the parameters and values supported by this product. | The sample shows example parameters, not the complete request contract. Known fields are validated by the API; additional parameters are allowed. ### What comes back The fields are those in the response above; every endpoint also carries status, credits_charged and request_id. ### If it fails A failed request has a non-zero status and an error, and is not charged. The ones you will see here: `1000`A parameter is missing or wrongFix the request `1020`No credits leftTop up `1029`Over your requests per secondWait Retry-After seconds `1502 · 1504`The source could not be read this timeRetry [All status codes →](https://serpbase.dev/docs/responses-and-errors) ### Related [Ajio Product Details2 credits](https://serpbase.dev/docs/ajio_product) [Amazon Product Details2 credits](https://serpbase.dev/docs/amazon_product) [Amazon Product Reviews2 credits](https://serpbase.dev/docs/amazon_reviews) [Amazon Product Search2 credits](https://serpbase.dev/docs/amazon_search) ## Flipkart Product Details API Read a Flipkart item from a product URL containing /p/. Supply the specific item URL rather than a search query. - Category: E-commerce - Endpoint: `POST https://api.serpbase.dev/flipkart/product` - Price: 2 credits per request - Status: available - Devices: desktop (default desktop) - Docs: https://serpbase.dev/docs/flipkart_product (Markdown: https://serpbase.dev/docs/flipkart_product.md) API reference · E-commerce Read a Flipkart item from a product URL containing /p/. Supply the specific item URL rather than a search query. POST `https://api.serpbase.dev/flipkart/product` 2 credits [Open in Playground](https://serpbase.dev/playground?product=flipkart_product) ### Example ```bash curl -X POST 'https://api.serpbase.dev/flipkart/product' \ -H "Content-Type: application/json" \ -H 'X-API-Key: YOUR_API_KEY' \ --max-time 60 \ -d '{"url":"https://www.flipkart.com/apple-iphone-15-black-128-gb/p/itm6ac6485515ae4"}' ``` No recorded response is published for this endpoint yet. Run the example in the Playground to see a live one. ### Parameters | Name | What it does | | --- | --- | | `format` "json" \| "markdown" | json (default) returns the parsed result. markdown returns the same result as Markdown text (text/markdown) for language models: no envelope, no duplicate alias fields, no inline images. Same credits; failures keep the JSON envelope. | | `url` string | Example: "https://www.flipkart.com/apple-iphone-15-black-128-gb/p/itm6ac6485515ae4" | | `country` string | Public alias for locale.country. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `cursor` string | Public alias for pagination.cursor. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `device` string | Public alias for options.device. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `gl` string | Public alias for locale.country. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `hl` string | Public alias for locale.language. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `html` boolean | Public alias for include_html. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `language` string | Public alias for locale.language. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `limit` integer | Public alias for pagination.limit. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `markdown` boolean | Public alias for include_markdown. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `mobile` boolean | Public alias for options.device. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `num` integer | Public alias for pagination.limit. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `page` integer | Public alias for pagination.page. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `q` string | Public alias for query. Use one spelling at a time; the API validates the parameters and values supported by this product. | The sample shows example parameters, not the complete request contract. Known fields are validated by the API; additional parameters are allowed. ### What comes back The fields are those in the response above; every endpoint also carries status, credits_charged and request_id. ### If it fails A failed request has a non-zero status and an error, and is not charged. The ones you will see here: `1000`A parameter is missing or wrongFix the request `1020`No credits leftTop up `1029`Over your requests per secondWait Retry-After seconds `1502 · 1504`The source could not be read this timeRetry [All status codes →](https://serpbase.dev/docs/responses-and-errors) ### Related [Ajio Product Details2 credits](https://serpbase.dev/docs/ajio_product) [Amazon Product Details2 credits](https://serpbase.dev/docs/amazon_product) [Amazon Product Reviews2 credits](https://serpbase.dev/docs/amazon_reviews) [Amazon Product Search2 credits](https://serpbase.dev/docs/amazon_search) ## Myntra Product Details API Read one Myntra product from its /buy URL. Keep product lookup separate from the Myntra search endpoint. - Category: E-commerce - Endpoint: `POST https://api.serpbase.dev/myntra/product` - Price: 2 credits per request - Status: available - Devices: desktop (default desktop) - Docs: https://serpbase.dev/docs/myntra_product (Markdown: https://serpbase.dev/docs/myntra_product.md) API reference · E-commerce Read one Myntra product from its /buy URL. Keep product lookup separate from the Myntra search endpoint. POST `https://api.serpbase.dev/myntra/product` 2 credits [Open in Playground](https://serpbase.dev/playground?product=myntra_product) ### Example ```bash curl -X POST 'https://api.serpbase.dev/myntra/product' \ -H "Content-Type: application/json" \ -H 'X-API-Key: YOUR_API_KEY' \ --max-time 60 \ -d '{"url":"https://www.myntra.com/casual-shoes/hrx+by+hrithik+roshan/hrx-by-hrithik-roshan-unisex-round-toe-lace-ups-sneakers/32064729/buy"}' ``` Response · real, shortened ``` { "status": 0, "credits_charged": 2, "request_id": "r-4b27fe8a36d9ac303a5da7dd", "product_id": "myntra_product", "action": "product", "product": { "brand": "HRX by Hrithik Roshan", "country_of_origin": "India", "id": "32064729", "link": "https://www.myntra.com/casual-shoes/hrx+by+hrithik+roshan/hrx-by-hrithik-roshan-unisex-round-toe-lac…", "list_price": { "amount": "3399", "currency": "INR", "display": "3399" }, "media": [ { "image_url": "http://assets.myntassets.com/h_($height),q_($qualityPercentage),w_($width)/v1/assets/images/2026/JUL…", "type": "image", "url": "http://assets.myntassets.com/h_($height),q_($qualityPercentage),w_($width)/v1/assets/images/2026/JUL…" } ], "title": "HRX by Hrithik Roshan Unisex Round Toe Lace-Ups Sneakers", "url": "https://www.myntra.com/casual-shoes/hrx+by+hrithik+roshan/hrx-by-hrithik-roshan-unisex-round-toe-lac…", "variants": [ { "id": "103246801", "in_stock": true, "inventory": [ { "available_count": "16", "country_of_origin": "India", "discount_id": "32064729:1020918394", "expiry_date": "0", "frg_list_url": "https://www.myntra.com/free-gift-list?baseStyleId=32064729&sellerPartnerId=22530&skuId=103246801&src=pdp", "list_price": { "amount": "3399", "currency": "INR", "display": "3399" }, "manufacturer_info": "SOBTI FOOTWEAR, F-70 site c, upsidc industrial area, sikandra, agra, (U.P) - 282007", "packer_info": "SOBTI FOOTWEAR, F-70 site c, upsidc industrial area, sikandra, agra, (U.P) - 282007", "price": { "amount": "827", "currency": "INR", "display": "827" }, "procurement_time_days": 1, "sellable_inventory_count": "16", "seller": { "id": "22530" }, "supply_type": "ON_HAND", "warehouse_refs": [ "28817" ] } ], "type": "size", "value": "3" } ] }, "source": "myntra", "url": "https://www.myntra.com/casual-shoes/hrx+by+hrithik+roshan/hrx-by-hrithik-roshan-unisex-round-toe-lac…" } ``` ### Parameters | Name | What it does | | --- | --- | | `format` "json" \| "markdown" | json (default) returns the parsed result. markdown returns the same result as Markdown text (text/markdown) for language models: no envelope, no duplicate alias fields, no inline images. Same credits; failures keep the JSON envelope. | | `url` string | Example: "https://www.myntra.com/casual-shoes/hrx+by+hrithik+roshan/hrx-by-hrithik-roshan-unisex-round-toe-lace-ups-sneakers/32064729/buy" | | `country` string | Public alias for locale.country. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `cursor` string | Public alias for pagination.cursor. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `device` string | Public alias for options.device. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `gl` string | Public alias for locale.country. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `hl` string | Public alias for locale.language. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `html` boolean | Public alias for include_html. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `language` string | Public alias for locale.language. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `limit` integer | Public alias for pagination.limit. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `markdown` boolean | Public alias for include_markdown. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `mobile` boolean | Public alias for options.device. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `num` integer | Public alias for pagination.limit. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `page` integer | Public alias for pagination.page. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `q` string | Public alias for query. Use one spelling at a time; the API validates the parameters and values supported by this product. | The sample shows example parameters, not the complete request contract. Known fields are validated by the API; additional parameters are allowed. ### What comes back The fields are those in the response above; every endpoint also carries status, credits_charged and request_id. ### If it fails A failed request has a non-zero status and an error, and is not charged. The ones you will see here: `1000`A parameter is missing or wrongFix the request `1020`No credits leftTop up `1029`Over your requests per secondWait Retry-After seconds `1502 · 1504`The source could not be read this timeRetry [All status codes →](https://serpbase.dev/docs/responses-and-errors) ### Related [Ajio Product Details2 credits](https://serpbase.dev/docs/ajio_product) [Amazon Product Details2 credits](https://serpbase.dev/docs/amazon_product) [Amazon Product Reviews2 credits](https://serpbase.dev/docs/amazon_reviews) [Amazon Product Search2 credits](https://serpbase.dev/docs/amazon_search) ## Myntra Search API Search Myntra with a query or a supported search URL. Numbered pages are supported; cursor and page-size overrides are not. - Category: E-commerce - Endpoint: `POST https://api.serpbase.dev/myntra/search` - Price: 2 credits per request - Status: available - Devices: desktop (default desktop) - Docs: https://serpbase.dev/docs/myntra_search (Markdown: https://serpbase.dev/docs/myntra_search.md) API reference · E-commerce Search Myntra with a query or a supported search URL. Numbered pages are supported; cursor and page-size overrides are not. POST `https://api.serpbase.dev/myntra/search` 2 credits [Open in Playground](https://serpbase.dev/playground?product=myntra_search) ### Example ```bash curl -X POST 'https://api.serpbase.dev/myntra/search' \ -H "Content-Type: application/json" \ -H 'X-API-Key: YOUR_API_KEY' \ --max-time 60 \ -d '{"query":"shoes"}' ``` Response · real, shortened ``` { "status": 0, "credits_charged": 2, "request_id": "r-4b27fe8a36d9ac303a5da7dd", "product_id": "myntra_search", "query": "shoes", "action": "search", "page": 1, "pagination": { "page": 1, "total_results": "289036" }, "products": [ { "brand": "BAESD", "id": "31293676", "link": "https://www.myntra.com/heels/baesd/baesd-girls-flatform-heel-pumps/31293676/buy", "list_price": { "amount": "2499", "currency": "INR", "display": "2499" }, "media": [ { "image_url": "http://assets.myntassets.com/assets/images/2024/OCTOBER/14/awKpjxCP_9ae5b92694f2485c8ff51afa2dce2e48.jpg", "type": "image", "url": "http://assets.myntassets.com/assets/images/2024/OCTOBER/14/awKpjxCP_9ae5b92694f2485c8ff51afa2dce2e48.jpg" } ], "position": 1, "rating": 4.175662517547607, "reviews_count": "1019", "title": "BAESD Girls Flatform Heel Pumps", "url": "https://www.myntra.com/heels/baesd/baesd-girls-flatform-heel-pumps/31293676/buy" }, { "brand": "HRX by Hrithik Roshan", "id": "32064729", "link": "https://www.myntra.com/casual-shoes/hrx+by+hrithik+roshan/hrx-by-hrithik-roshan-unisex-round-toe-lac…", "list_price": { "amount": "3399", "currency": "INR", "display": "3399" }, "media": [ { "image_url": "http://assets.myntassets.com/assets/images/2026/JULY/17/3kK7Oh2n_f6291ca1421c4245aa70a589409e30d5.jpg", "type": "image", "url": "http://assets.myntassets.com/assets/images/2026/JULY/17/3kK7Oh2n_f6291ca1421c4245aa70a589409e30d5.jpg" } ], "position": 2, "rating": 4.342635631561279, "reviews_count": "645", "title": "HRX by Hrithik Roshan Unisex Round Toe Lace-Ups Sneakers", "url": "https://www.myntra.com/casual-shoes/hrx+by+hrithik+roshan/hrx-by-hrithik-roshan-unisex-round-toe-lac…" } ], "source": "myntra", "url": "https://www.myntra.com/shoes?p=1" } ``` ### Parameters | Name | What it does | | --- | --- | | `format` "json" \| "markdown" | json (default) returns the parsed result. markdown returns the same result as Markdown text (text/markdown) for language models: no envelope, no duplicate alias fields, no inline images. Same credits; failures keep the JSON envelope. | | `query` string | Example: "shoes" | | `country` string | Public alias for locale.country. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `cursor` string | Public alias for pagination.cursor. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `device` string | Public alias for options.device. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `gl` string | Public alias for locale.country. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `hl` string | Public alias for locale.language. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `html` boolean | Public alias for include_html. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `language` string | Public alias for locale.language. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `limit` integer | Public alias for pagination.limit. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `markdown` boolean | Public alias for include_markdown. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `mobile` boolean | Public alias for options.device. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `num` integer | Public alias for pagination.limit. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `page` integer | Public alias for pagination.page. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `q` string | Public alias for query. Use one spelling at a time; the API validates the parameters and values supported by this product. | The sample shows example parameters, not the complete request contract. Known fields are validated by the API; additional parameters are allowed. ### What comes back The fields are those in the response above; every endpoint also carries status, credits_charged and request_id. ### If it fails A failed request has a non-zero status and an error, and is not charged. The ones you will see here: `1000`A parameter is missing or wrongFix the request `1020`No credits leftTop up `1029`Over your requests per secondWait Retry-After seconds `1502 · 1504`The source could not be read this timeRetry [All status codes →](https://serpbase.dev/docs/responses-and-errors) ### Related [Ajio Product Details2 credits](https://serpbase.dev/docs/ajio_product) [Amazon Product Details2 credits](https://serpbase.dev/docs/amazon_product) [Amazon Product Reviews2 credits](https://serpbase.dev/docs/amazon_reviews) [Amazon Product Search2 credits](https://serpbase.dev/docs/amazon_search) ## Walmart Product Details API Extract full Walmart product specification, pricing, variant details, and descriptions using Walmart item ID. - Category: E-commerce - Endpoint: `POST https://api.serpbase.dev/walmart/product` - Price: 2 credits per request - Status: available - Devices: desktop (default desktop) - Docs: https://serpbase.dev/docs/walmart_product (Markdown: https://serpbase.dev/docs/walmart_product.md) API reference · E-commerce Extract full Walmart product specification, pricing, variant details, and descriptions using Walmart item ID. POST `https://api.serpbase.dev/walmart/product` 2 credits [Open in Playground](https://serpbase.dev/playground?product=walmart_product) ### Example ```bash curl -X POST 'https://api.serpbase.dev/walmart/product' \ -H "Content-Type: application/json" \ -H 'X-API-Key: YOUR_API_KEY' \ --max-time 60 \ -d '{"id":"12516374178"}' ``` No recorded response is published for this endpoint yet. Run the example in the Playground to see a live one. ### Parameters | Name | What it does | | --- | --- | | `format` "json" \| "markdown" | json (default) returns the parsed result. markdown returns the same result as Markdown text (text/markdown) for language models: no envelope, no duplicate alias fields, no inline images. Same credits; failures keep the JSON envelope. | | `id` string | Example: "12516374178" | | `country` string | Public alias for locale.country. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `cursor` string | Public alias for pagination.cursor. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `device` string | Public alias for options.device. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `gl` string | Public alias for locale.country. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `hl` string | Public alias for locale.language. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `html` boolean | Public alias for include_html. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `language` string | Public alias for locale.language. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `limit` integer | Public alias for pagination.limit. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `markdown` boolean | Public alias for include_markdown. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `mobile` boolean | Public alias for options.device. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `num` integer | Public alias for pagination.limit. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `page` integer | Public alias for pagination.page. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `q` string | Public alias for query. Use one spelling at a time; the API validates the parameters and values supported by this product. | The sample shows example parameters, not the complete request contract. Known fields are validated by the API; additional parameters are allowed. ### What comes back The fields are those in the response above; every endpoint also carries status, credits_charged and request_id. ### If it fails A failed request has a non-zero status and an error, and is not charged. The ones you will see here: `1000`A parameter is missing or wrongFix the request `1020`No credits leftTop up `1029`Over your requests per secondWait Retry-After seconds `1502 · 1504`The source could not be read this timeRetry [All status codes →](https://serpbase.dev/docs/responses-and-errors) ### Related [Ajio Product Details2 credits](https://serpbase.dev/docs/ajio_product) [Amazon Product Details2 credits](https://serpbase.dev/docs/amazon_product) [Amazon Product Reviews2 credits](https://serpbase.dev/docs/amazon_reviews) [Amazon Product Search2 credits](https://serpbase.dev/docs/amazon_search) ## Walmart Product Search API Search Walmart retail inventory by keyword query. Returns product cards, prices, seller information, and stock status. - Category: E-commerce - Endpoint: `POST https://api.serpbase.dev/walmart/search` - Price: 2 credits per request - Status: available - Devices: desktop (default desktop) - Docs: https://serpbase.dev/docs/walmart_search (Markdown: https://serpbase.dev/docs/walmart_search.md) API reference · E-commerce Search Walmart retail inventory by keyword query. Returns product cards, prices, seller information, and stock status. POST `https://api.serpbase.dev/walmart/search` 2 credits [Open in Playground](https://serpbase.dev/playground?product=walmart_search) ### Example ```bash curl -X POST 'https://api.serpbase.dev/walmart/search' \ -H "Content-Type: application/json" \ -H 'X-API-Key: YOUR_API_KEY' \ --max-time 60 \ -d '{"query":"coffee maker"}' ``` Response · real, shortened ``` { "status": 0, "credits_charged": 2, "request_id": "r-4b27fe8a36d9ac303a5da7dd", "product_id": "walmart_search", "query": "coffee maker", "action": "search", "page": 1, "pagination": { "page": 1, "total_results": "10429" }, "products": [ { "availability": "In stock", "id": "1VBPWK95CE2G", "link": "https://www.walmart.com/ip/Keurig-K-Express-Essentials-Black-Single-Serve-K-Cup-Pod-Coffee-Maker/125…", "media": [ { "image_url": "https://i5.walmartimages.com/seo/Keurig-K-Express-Essentials-Black-Single-Serve-K-Cup-Pod-Coffee-Mak…", "type": "image", "url": "https://i5.walmartimages.com/seo/Keurig-K-Express-Essentials-Black-Single-Serve-K-Cup-Pod-Coffee-Mak…" } ], "offers": [ { "availability": "In stock", "id": "081BC8B3995B323A892D60234C8C3D8B", "product_id": "1VBPWK95CE2G", "seller": { "id": "F55CDC31AB754BB68FE0B39041159D63", "name": "Walmart.com" } } ], "position": 1, "product_type": "VARIANT", "rating": 4.4, "reviews_count": "14528", "seller": { "id": "F55CDC31AB754BB68FE0B39041159D63", "name": "Walmart.com" }, "sponsored": true, "title": "Keurig K-Express Essentials Black Single-Serve K-Cup Pod Coffee Maker", "url": "https://www.walmart.com/ip/Keurig-K-Express-Essentials-Black-Single-Serve-K-Cup-Pod-Coffee-Maker/125…", "us_item_id": "12516374178" } ], "source": "walmart", "url": "https://www.walmart.com/search?page=1&q=coffee+maker" } ``` ### Parameters | Name | What it does | | --- | --- | | `format` "json" \| "markdown" | json (default) returns the parsed result. markdown returns the same result as Markdown text (text/markdown) for language models: no envelope, no duplicate alias fields, no inline images. Same credits; failures keep the JSON envelope. | | `query` string | Example: "coffee maker" | | `country` string | Public alias for locale.country. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `cursor` string | Public alias for pagination.cursor. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `device` string | Public alias for options.device. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `gl` string | Public alias for locale.country. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `hl` string | Public alias for locale.language. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `html` boolean | Public alias for include_html. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `language` string | Public alias for locale.language. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `limit` integer | Public alias for pagination.limit. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `markdown` boolean | Public alias for include_markdown. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `mobile` boolean | Public alias for options.device. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `num` integer | Public alias for pagination.limit. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `page` integer | Public alias for pagination.page. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `q` string | Public alias for query. Use one spelling at a time; the API validates the parameters and values supported by this product. | The sample shows example parameters, not the complete request contract. Known fields are validated by the API; additional parameters are allowed. ### What comes back The fields are those in the response above; every endpoint also carries status, credits_charged and request_id. ### If it fails A failed request has a non-zero status and an error, and is not charged. The ones you will see here: `1000`A parameter is missing or wrongFix the request `1020`No credits leftTop up `1029`Over your requests per secondWait Retry-After seconds `1502 · 1504`The source could not be read this timeRetry [All status codes →](https://serpbase.dev/docs/responses-and-errors) ### Related [Ajio Product Details2 credits](https://serpbase.dev/docs/ajio_product) [Amazon Product Details2 credits](https://serpbase.dev/docs/amazon_product) [Amazon Product Reviews2 credits](https://serpbase.dev/docs/amazon_reviews) [Amazon Product Search2 credits](https://serpbase.dev/docs/amazon_search) ## Walmart Search Autocomplete API Retrieve Walmart search suggestions for a query. This endpoint does not retrieve a Walmart product page. - Category: E-commerce - Endpoint: `POST https://api.serpbase.dev/walmart/autocomplete` - Price: 1 credit per request - Status: available - Devices: desktop (default desktop) - Docs: https://serpbase.dev/docs/walmart_autocomplete (Markdown: https://serpbase.dev/docs/walmart_autocomplete.md) API reference · E-commerce Retrieve Walmart search suggestions for a query. This endpoint does not retrieve a Walmart product page. POST `https://api.serpbase.dev/walmart/autocomplete` 1 credit [Open in Playground](https://serpbase.dev/playground?product=walmart_autocomplete) ### Example ```bash curl -X POST 'https://api.serpbase.dev/walmart/autocomplete' \ -H "Content-Type: application/json" \ -H 'X-API-Key: YOUR_API_KEY' \ --max-time 60 \ -d '{"query":"laptop"}' ``` Response · real, shortened ``` { "status": 0, "credits_charged": 1, "request_id": "r-4b27fe8a36d9ac303a5da7dd", "product_id": "walmart_autocomplete", "query": "laptop", "action": "autocomplete", "source": "walmart", "suggestions": [ { "image_url": "https://i5.walmartimages.com/asr/a39aa0bc-55ec-4191-b551-bb1f2091298a.96c5bae25e4983bb3cd56ebe40bf1aad.jpeg", "link": "https://www.walmart.com/typeahead/v3/query=laptop&typeahead=laptop", "text": "laptop", "type": "QUERY", "url": "https://www.walmart.com/typeahead/v3/query=laptop&typeahead=laptop" }, { "image_url": "https://i5.walmartimages.com/asr/043886ec-7727-46d0-aa46-432fb2e614b3.ae5320e8c87a64e2baf391c5dd85b801.jpeg", "link": "https://www.walmart.com/typeahead/v3/query=laptop%20computers%20under%20%24200&typeahead=laptop", "text": "laptop computers under $200", "type": "QUERY", "url": "https://www.walmart.com/typeahead/v3/query=laptop%20computers%20under%20%24200&typeahead=laptop" } ], "url": "https://www.walmart.com/typeahead/v3/complete?term=laptop" } ``` ### Parameters | Name | What it does | | --- | --- | | `format` "json" \| "markdown" | json (default) returns the parsed result. markdown returns the same result as Markdown text (text/markdown) for language models: no envelope, no duplicate alias fields, no inline images. Same credits; failures keep the JSON envelope. | | `query` string | Example: "laptop" | | `country` string | Public alias for locale.country. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `cursor` string | Public alias for pagination.cursor. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `device` string | Public alias for options.device. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `gl` string | Public alias for locale.country. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `hl` string | Public alias for locale.language. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `html` boolean | Public alias for include_html. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `language` string | Public alias for locale.language. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `limit` integer | Public alias for pagination.limit. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `markdown` boolean | Public alias for include_markdown. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `mobile` boolean | Public alias for options.device. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `num` integer | Public alias for pagination.limit. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `page` integer | Public alias for pagination.page. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `q` string | Public alias for query. Use one spelling at a time; the API validates the parameters and values supported by this product. | The sample shows example parameters, not the complete request contract. Known fields are validated by the API; additional parameters are allowed. ### What comes back The fields are those in the response above; every endpoint also carries status, credits_charged and request_id. ### If it fails A failed request has a non-zero status and an error, and is not charged. The ones you will see here: `1000`A parameter is missing or wrongFix the request `1020`No credits leftTop up `1029`Over your requests per secondWait Retry-After seconds `1502 · 1504`The source could not be read this timeRetry [All status codes →](https://serpbase.dev/docs/responses-and-errors) ### Related [Ajio Product Details2 credits](https://serpbase.dev/docs/ajio_product) [Amazon Product Details2 credits](https://serpbase.dev/docs/amazon_product) [Amazon Product Reviews2 credits](https://serpbase.dev/docs/amazon_reviews) [Amazon Product Search2 credits](https://serpbase.dev/docs/amazon_search) ## User-Agent Generator API Generate desktop or mobile user-agent strings using user_agent_type and user_agent_count (1–5). This local operation still has a catalog request price. - Category: Web scraping - Endpoint: `POST https://api.serpbase.dev/web/user-agent` - Price: 1 credit per request - Status: available - Devices: desktop (default desktop) - Docs: https://serpbase.dev/docs/web_user_agent (Markdown: https://serpbase.dev/docs/web_user_agent.md) API reference · Web scraping Generate desktop or mobile user-agent strings using user_agent_type and user_agent_count (1–5). This local operation still has a catalog request price. POST `https://api.serpbase.dev/web/user-agent` 1 credit [Open in Playground](https://serpbase.dev/playground?product=web_user_agent) ### Example ```bash curl -X POST 'https://api.serpbase.dev/web/user-agent' \ -H "Content-Type: application/json" \ -H 'X-API-Key: YOUR_API_KEY' \ --max-time 60 \ -d '{"user_agent_count":1,"user_agent_type":"desktop"}' ``` Response · real, shortened ``` { "status": 0, "credits_charged": 1, "request_id": "r-4b27fe8a36d9ac303a5da7dd", "product_id": "web_user_agent", "action": "user_agent", "source": "web", "user_agents": [ "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:123.0) Gecko/20100101 Firefox/123.0" ] } ``` ### Parameters | Name | What it does | | --- | --- | | `format` "json" \| "markdown" | json (default) returns the parsed result. markdown returns the same result as Markdown text (text/markdown) for language models: no envelope, no duplicate alias fields, no inline images. Same credits; failures keep the JSON envelope. | | `user_agent_count` number | Example: 1 | | `user_agent_type` string | Example: "desktop" | | `country` string | Public alias for locale.country. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `cursor` string | Public alias for pagination.cursor. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `device` string | Public alias for options.device. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `gl` string | Public alias for locale.country. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `hl` string | Public alias for locale.language. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `html` boolean | Public alias for include_html. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `language` string | Public alias for locale.language. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `limit` integer | Public alias for pagination.limit. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `markdown` boolean | Public alias for include_markdown. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `mobile` boolean | Public alias for options.device. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `num` integer | Public alias for pagination.limit. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `page` integer | Public alias for pagination.page. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `q` string | Public alias for query. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `uanum` integer | Public alias for user_agent_count. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `uatype` string | Public alias for user_agent_type. Use one spelling at a time; the API validates the parameters and values supported by this product. | The sample shows example parameters, not the complete request contract. Known fields are validated by the API; additional parameters are allowed. ### What comes back The fields are those in the response above; every endpoint also carries status, credits_charged and request_id. ### If it fails A failed request has a non-zero status and an error, and is not charged. The ones you will see here: `1000`A parameter is missing or wrongFix the request `1020`No credits leftTop up `1029`Over your requests per secondWait Retry-After seconds `1502 · 1504`The source could not be read this timeRetry [All status codes →](https://serpbase.dev/docs/responses-and-errors) ### Related [Web Crawl1 credit](https://serpbase.dev/docs/web_crawl) [Web Scrape1 credit](https://serpbase.dev/docs/web_scrape) ## Web Crawl API Start a bounded crawl from a public website URL. The catalog price is fixed per customer request, not multiplied by returned pages. - Category: Web scraping - Endpoint: `POST https://api.serpbase.dev/web/crawl` - Price: 1 credit per request - Status: paused (temporarily not callable) - Devices: desktop (default desktop) - Docs: https://serpbase.dev/docs/web_crawl (Markdown: https://serpbase.dev/docs/web_crawl.md) API reference · Web scraping Start a bounded crawl from a public website URL. The catalog price is fixed per customer request, not multiplied by returned pages. POST `https://api.serpbase.dev/web/crawl` In development · Paused This endpoint is being reworked and is paused for now. It cannot be called until it reopens. ### Example ```bash curl -X POST 'https://api.serpbase.dev/web/crawl' \ -H "Content-Type: application/json" \ -H 'X-API-Key: YOUR_API_KEY' \ --max-time 60 \ -d '{"url":"https://example.com"}' ``` No recorded response is published for this endpoint yet. Run the example in the Playground to see a live one. ### Parameters | Name | What it does | | --- | --- | | `format` "json" \| "markdown" | json (default) returns the parsed result. markdown returns the same result as Markdown text (text/markdown) for language models: no envelope, no duplicate alias fields, no inline images. Same credits; failures keep the JSON envelope. | | `url` string | Example: "https://example.com" | | `country` string | Public alias for locale.country. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `cursor` string | Public alias for pagination.cursor. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `device` string | Public alias for options.device. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `gl` string | Public alias for locale.country. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `hl` string | Public alias for locale.language. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `html` boolean | Public alias for include_html. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `language` string | Public alias for locale.language. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `limit` integer | Public alias for pagination.limit. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `markdown` boolean | Public alias for include_markdown. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `mobile` boolean | Public alias for options.device. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `num` integer | Public alias for pagination.limit. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `page` integer | Public alias for pagination.page. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `q` string | Public alias for query. Use one spelling at a time; the API validates the parameters and values supported by this product. | The sample shows example parameters, not the complete request contract. Known fields are validated by the API; additional parameters are allowed. ### What comes back The fields are those in the response above; every endpoint also carries status, credits_charged and request_id. ### If it fails A failed request has a non-zero status and an error, and is not charged. The ones you will see here: `1000`A parameter is missing or wrongFix the request `1020`No credits leftTop up `1029`Over your requests per secondWait Retry-After seconds `1502 · 1504`The source could not be read this timeRetry [All status codes →](https://serpbase.dev/docs/responses-and-errors) ### Related [User-Agent Generator1 credit](https://serpbase.dev/docs/web_user_agent) [Web Scrape1 credit](https://serpbase.dev/docs/web_scrape) ## Web Scrape API Extract a public HTTP or HTTPS page by URL, with supported text, HTML, Markdown and selector options. Source restrictions still apply. Google pages are not supported; use the Google endpoints such as /google/search. - Category: Web scraping - Endpoint: `POST https://api.serpbase.dev/web/scrape` - Price: 1 credit per request - Status: paused (temporarily not callable) - Devices: desktop (default desktop) - Docs: https://serpbase.dev/docs/web_scrape (Markdown: https://serpbase.dev/docs/web_scrape.md) API reference · Web scraping Extract a public HTTP or HTTPS page by URL, with supported text, HTML, Markdown and selector options. Source restrictions still apply. Google pages are not supported; use the Google endpoints such as /google/search. POST `https://api.serpbase.dev/web/scrape` In development · Paused This endpoint is being reworked and is paused for now. It cannot be called until it reopens. ### Example ```bash curl -X POST 'https://api.serpbase.dev/web/scrape' \ -H "Content-Type: application/json" \ -H 'X-API-Key: YOUR_API_KEY' \ --max-time 60 \ -d '{"url":"https://example.com"}' ``` No recorded response is published for this endpoint yet. Run the example in the Playground to see a live one. ### Parameters | Name | What it does | | --- | --- | | `format` "json" \| "markdown" | json (default) returns the parsed result. markdown returns the same result as Markdown text (text/markdown) for language models: no envelope, no duplicate alias fields, no inline images. Same credits; failures keep the JSON envelope. | | `url` string | Example: "https://example.com" | | `country` string | Public alias for locale.country. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `cursor` string | Public alias for pagination.cursor. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `custom_headers` object | Public alias for headers. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `device` string | Public alias for options.device. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `gl` string | Public alias for locale.country. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `hl` string | Public alias for locale.language. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `html` boolean | Public alias for include_html. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `language` string | Public alias for locale.language. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `limit` integer | Public alias for pagination.limit. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `markdown` boolean | Public alias for include_markdown. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `mobile` boolean | Public alias for options.device. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `num` integer | Public alias for pagination.limit. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `page` integer | Public alias for pagination.page. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `q` string | Public alias for query. Use one spelling at a time; the API validates the parameters and values supported by this product. | The sample shows example parameters, not the complete request contract. Known fields are validated by the API; additional parameters are allowed. ### What comes back The fields are those in the response above; every endpoint also carries status, credits_charged and request_id. ### If it fails A failed request has a non-zero status and an error, and is not charged. The ones you will see here: `1000`A parameter is missing or wrongFix the request `1020`No credits leftTop up `1029`Over your requests per secondWait Retry-After seconds `1502 · 1504`The source could not be read this timeRetry [All status codes →](https://serpbase.dev/docs/responses-and-errors) ### Related [User-Agent Generator1 credit](https://serpbase.dev/docs/web_user_agent) [Web Crawl1 credit](https://serpbase.dev/docs/web_crawl) ## Zillow Property Search API Read Zillow search results from a supported Zillow homes URL. This is a listing search snapshot, not an appraisal or transaction feed. - Category: Real estate - Endpoint: `POST https://api.serpbase.dev/zillow/search` - Price: 2 credits per request - Status: available - Devices: desktop (default desktop) - Docs: https://serpbase.dev/docs/zillow_search (Markdown: https://serpbase.dev/docs/zillow_search.md) API reference · Real estate Read Zillow search results from a supported Zillow homes URL. This is a listing search snapshot, not an appraisal or transaction feed. POST `https://api.serpbase.dev/zillow/search` 2 credits [Open in Playground](https://serpbase.dev/playground?product=zillow_search) ### Example ```bash curl -X POST 'https://api.serpbase.dev/zillow/search' \ -H "Content-Type: application/json" \ -H 'X-API-Key: YOUR_API_KEY' \ --max-time 60 \ -d '{"url":"https://www.zillow.com/homes/Seattle-WA_rb/"}' ``` Response · real, shortened ``` { "status": 0, "credits_charged": 2, "request_id": "r-4b27fe8a36d9ac303a5da7dd", "product_id": "zillow_search", "action": "search", "pagination": { "total_pages": 20, "total_results": "3030" }, "properties": [ { "address": { "city": "Seattle", "country": "USA", "display": "1956 Clise Place W, Seattle, WA 98199", "postal_code": "98199", "state": "WA", "street": "1956 Clise Place W" }, "bathrooms": 2, "bedrooms": 3, "features": [ { "name": "zestimate", "value": "1169000" } ], "id": "48943235", "images": [ { "image_url": "https://photos.zillowstatic.com/fp/0908d43e2b15abd0797a7bad51dd81e7-p_e.jpg", "type": "image", "url": "https://photos.zillowstatic.com/fp/0908d43e2b15abd0797a7bad51dd81e7-p_e.jpg" } ], "latitude": 47.63757, "link": "https://www.zillow.com/homedetails/1956-Clise-Pl-W-Seattle-WA-98199/48943235_zpid/", "living_area": 3700, "longitude": -122.39757, "lot_area": 6834.564, "lot_area_unit": "sqft", "price": { "amount": "1195000", "currency": "USD", "display": "$1,195,000", "symbol": "$" }, "property_type": "SINGLE_FAMILY", "status": "Active", "title": "1956 Clise Place W, Seattle, WA 98199", "url": "https://www.zillow.com/homedetails/1956-Clise-Pl-W-Seattle-WA-98199/48943235_zpid/" } ], "source": "zillow", "url": "https://www.zillow.com/homes/Seattle-WA_rb/" } ``` ### Parameters | Name | What it does | | --- | --- | | `format` "json" \| "markdown" | json (default) returns the parsed result. markdown returns the same result as Markdown text (text/markdown) for language models: no envelope, no duplicate alias fields, no inline images. Same credits; failures keep the JSON envelope. | | `url` string | Example: "https://www.zillow.com/homes/Seattle-WA_rb/" | | `country` string | Public alias for locale.country. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `cursor` string | Public alias for pagination.cursor. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `device` string | Public alias for options.device. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `gl` string | Public alias for locale.country. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `hl` string | Public alias for locale.language. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `html` boolean | Public alias for include_html. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `language` string | Public alias for locale.language. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `limit` integer | Public alias for pagination.limit. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `markdown` boolean | Public alias for include_markdown. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `mobile` boolean | Public alias for options.device. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `num` integer | Public alias for pagination.limit. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `page` integer | Public alias for pagination.page. Use one spelling at a time; the API validates the parameters and values supported by this product. | | `q` string | Public alias for query. Use one spelling at a time; the API validates the parameters and values supported by this product. | The sample shows example parameters, not the complete request contract. Known fields are validated by the API; additional parameters are allowed. ### What comes back The fields are those in the response above; every endpoint also carries status, credits_charged and request_id. ### If it fails A failed request has a non-zero status and an error, and is not charged. The ones you will see here: `1000`A parameter is missing or wrongFix the request `1020`No credits leftTop up `1029`Over your requests per secondWait Retry-After seconds `1502 · 1504`The source could not be read this timeRetry [All status codes →](https://serpbase.dev/docs/responses-and-errors)