SerpApi Google Images compatible
Change the address.
SerpApi's Starter plan is $25 a month for 1,000 searches, 200 an hour. Since November 10, 2026, SpecStream answers the same engine=google_images call, and tbm=isch, in SerpApi's JSON at $0.005 a search with no plan.
The switch is the base address: https://api.specstream.ai/serpapi where your code has https://serpapi.com, and a SpecStream key as api_key. Your web, news and image calls then go to one address, as they did on SerpApi.
An image search of up to 10 results costs $0.005, the price of a web search, with no daily limit. A new account gets $10 of credit, no card, which covers 2,000 image searches.
New accounts get $10 of credit, no card. It covers 2,000 searches.
SerpApi Google Images to SpecStream, parameter by parameter and field by field
| SpecStream | SerpApi | |
|---|---|---|
| Address | GET https://api.specstream.ai/serpapi/search.json | GET https://serpapi.com/search?engine=google_images |
| The key | A SpecStream key as api_key in the address | A SerpApi key as api_key in the address |
| Engines | engine=google_images, and engine=google with tbm=isch. Web and Google News calls answer at the same address | One /search path, the engine chosen by engine |
| Each image | position, source, title, link (the page the image is on) and original (the image). thumbnail, original_width and original_height when the search engines give them | images_results[] with position, thumbnail, source, title, link, original, original_width and original_height |
| Paging | ijn from 0 to 99, in pages of num (10 when unset), and serpapi_pagination.next on our host | ijn from 0 to 99 |
| Errors | SerpApi's {"error": ...}: 401 with no key, 400 for another engine. A busy call gets 429 with Retry-After and is not charged | 429 past the hourly throughput or when the account has run out of searches |
| Price | $0.005 a search of up to 10 images, $5 per 1,000, with no plan and no daily limit | Starter $25 a month for 1,000 searches, 200 an hour. Developer $75 a month for 5,000 |
| Free to start | $10 of credit, no card, which covers 2,000 image searches | Free plan: 250 searches a month |
The SerpApi Google Images reference, on SpecStream
The call, before and after
# Before
curl "https://serpapi.com/search.json?engine=google_images&q=lighthouse+at+dusk&api_key=$SERPAPI_API_KEY"
# After
curl "https://api.specstream.ai/serpapi/search.json?engine=google_images&q=lighthouse+at+dusk&api_key=$SPECSTREAM_API_KEY"The path, the parameters and the parser stay as they are. Google's Images tab form works the same way: engine=google&tbm=isch&q=lighthouse+at+dusk at the same address.
What the route reads, and what it refuses
Read and applied: q, gl for the country, hl for the language, safe, num from 1 to 100 and ijn for the page. search_parameters echoes google_domain, gl, hl, ijn, safe and tbs as you sent them.
Refused, in SerpApi's error form: another engine, such as engine=bing, gets 400 with the engines this address answers; a call with no api_key gets 401; a num outside 1 to 100 or an ijn outside 0 to 99 gets 400 naming the range.
Every field that comes back
search_metadata carries id, status, created_at, processed_at and total_time_taken. search_parameters carries engine, q, tbm on the Images tab form, and the fields above. Each of images_results[] has position, source, title, link for the page the image is on and original for the image itself. thumbnail, original_width and original_height are there when the search engines give them, and absent otherwise; the route never fills them in.
serpapi_pagination has current, and next when there is another page. A search with no images answers 200 with SerpApi's own error line, "Google hasn't returned any results for this query." One field is added, specstream, with the call's price.
Left out of each reply: related_content_id, serpapi_related_content_link, source_logo, is_product, in_stock, tag and suggested_searches.
One price a search, the same as the web
On SerpApi the plan sets the searches a month and the searches an hour. On SpecStream an image search of up to 10 results is $0.005, the same as a web search. num asks for up to 100, and each started block of 10 more adds $0.006, so num=100 costs $0.059. There is no plan to renew and no daily limit, and credit you buy never expires. A busy call gets 429 in SerpApi's form with Retry-After and charges nothing.
What is kept, set on the key
A key made with zero_retention keeps no request text and no answer once the reply is sent, on image searches as on every other call. spend_cap_cents sets the most that key can spend, so a loop in a SerpApi client cannot run past it.
curl -X POST https://api.specstream.ai/v1/account/keys \
-H "Authorization: Bearer $SPECSTREAM_API_KEY" -H "Content-Type: application/json" \
-d '{"name": "production", "scopes": ["account:read", "finds:spend"], "spend_cap_cents": 500000, "zero_retention": true}'Images, web, news and pages on one key
The results come from the image search of several engines at once, one result for each image address. The same key answers SerpApi's Google web search at the same address (the SerpApi migration has every field), Google News with engine=google_news, and Google Custom Search with searchType=image (see the Google image search migration).
The Extract API reads the page behind each link, up to 20 pages a call at $0.80 per 1,000 pages, and a page with no text is not charged. Deep Search returns every match for a request in plain words as structured rows, at 5¢, 15¢ or $1 a row, with a source URL on every value.
On SimpleQA Verified the SpecStream Search API scores 97.9 F-score on all 1,000 official questions, 978 of them correct, and on WideSearch 64.0 item F1 and 43.4 row F1 on all 200 official tasks. The Extract API scores 0.908 F1 on WCXB. Each score and its method is on the benchmarks page.
What else SerpApi Google Images users price
Serper
Google results sold in credit packs from $1.00 per 1,000 for 50,000 credits, valid for 6 months, with 2,500 free queries. SpecStream credit never expires, and the same key answers Serper's /images call at /serper/images (Serper images migration).
SearchApi
A plan per month: Developer is $40 for 10,000 searches, $4 per 1,000, after 100 free requests. SpecStream has no plan, and the same key answers SearchApi's engine=google_images call (SearchApi Google Images migration).
Brave Search API
$5 per 1,000 requests, images included, up to 50 queries per second, with $5 in free credits every month. SpecStream answers Brave's /res/v1/images/search at the same address (Brave image search migration).
How SpecStream scores
The same numbers as the benchmarks page, from the official tasks and scorers.
How to migrate, step by step
1. Create a key under Agents & API in the workspace. A new account gets $10 of credit, no card, which covers 2,000 image searches.
2. Set the address to https://api.specstream.ai/serpapi/search.json where your code has https://serpapi.com/search.json, and send the SpecStream key as api_key. In Python:
import requests
URL = "https://api.specstream.ai/serpapi/search.json" # was https://serpapi.com/search.json
reply = requests.get(URL, {"engine": "google_images", "q": "lighthouse at dusk", "gl": "us", "hl": "en", "ijn": 0, "api_key": SPECSTREAM_KEY}, timeout=30)
reply.raise_for_status()
for image in reply.json()["images_results"]:
print(image["position"], image["original"], image.get("original_width"), image.get("original_height"), image["link"])3. In JavaScript:
const url = new URL("https://api.specstream.ai/serpapi/search.json");
url.search = new URLSearchParams({ engine: "google", tbm: "isch", q: "lighthouse at dusk", api_key: process.env.SPECSTREAM_KEY });
const data = await (await fetch(url)).json();
for (const image of data.images_results) console.log(image.position, image.title, image.original, image.thumbnail ?? "");4. With SerpApi's Python client, set client.BASE_DOMAIN = "https://api.specstream.ai/serpapi" and client.search(engine="google_images", q=...) stays as it is. The older google-search-results takes GoogleSearch.BACKEND = "https://api.specstream.ai/serpapi" and searches with engine="google" and tbm="isch". Tested on November 10, 2026 with serpapi 1.2.0 and google-search-results 2.4.2: each read 10 images_results.
Page with ijn=1, ijn=2 and on, or follow serpapi_pagination.next and add your key as before. Read 429 as a call to send again after Retry-After. It is not charged.
Frequently asked questions
Something we didn't answer? Talk to a human
Is there a SerpApi Google Images API alternative with the same JSON?
engine=google_images and engine=google with tbm=isch at https://api.specstream.ai/serpapi/search.json with images_results[] in SerpApi's shape. A search of up to 10 images costs $0.005.How much does the SerpApi Google Images API cost?
How do I migrate from SerpApi Google Images?
https://serpapi.com becomes https://api.specstream.ai/serpapi, and a SpecStream key goes in api_key. engine, q, gl, hl, safe, num and ijn keep their meaning.How does paging work?
ijn starts at 0 and goes up to 99, one page of num images at a time, 10 when num is unset. serpapi_pagination.next holds the next page's address on our host.Which image fields does SpecStream return?
position, source, title, link (the page) and original (the image). thumbnail, original_width and original_height come when the search engines give them.Which SerpApi image fields are left out?
related_content_id, serpapi_related_content_link, source_logo, is_product, in_stock, tag and suggested_searches.Is there a free Google Images API?
Sources
SpecStream wrote this page. Each SerpApi figure comes from SerpApi's own pages, and each other provider's figure from that company's own page, all read on Nov 10, 2026. The route's behavior comes from its code.
- SerpApi pricingserpapi.com/pricing.md, read Nov 10, 2026
- SerpApi Google Images APIserpapi.com/google-images-api, read Nov 10, 2026
- SerpApi status and error codesserpapi.com/api-status-and-error-codes, read Nov 10, 2026
- Serperserper.dev/, read Nov 10, 2026
- SearchApi pricingsearchapi.io/pricing, read Nov 10, 2026
- Brave Search APIbrave.com/search/api/, read Nov 10, 2026
- SpecStream benchmarksspecstream.ai/benchmarks, read Nov 10, 2026
- SpecStream pricingspecstream.ai/pricing, read Nov 10, 2026
- SpecStream for agentsspecstream.ai/agents.md, read Nov 10, 2026




