Best Image Search API Providers in 2026 (Cost per 1,000 Compared)
Every image search API price you can find is quoted in a different unit. One vendor bills a request; a second bills a record; a third bills credits, and spends ten of them on a single image call; a fourth bills a page of a hundred image results at the same price it charges for a page of ten links. Line those four numbers up in a column and the column tells you nothing at all. This post does the conversion instead — twice. Once to dollars per 1,000 API requests, which is what your invoice is denominated in, and once to dollars per 1,000 images actually returned, which is what you are really buying. Where a vendor never publishes the number that would let me convert, the cell stays empty and the reason sits beside it. Checked 2026-09-16.
I read every rate below off the vendor's own live pricing page on 16 September 2026 and linked each one inline. I ran no benchmark and I make no claim about anyone's speed or success rate — this is a pricing, unit and published-field comparison built from documentation, not a race. Serpent is the API this site sells, and it appears here as one row among several.
Short answer: measured per 1,000 requests, the published rates on this page run from $0.25 to $25.00 — a seventyfold spread that is almost entirely about what one request is. Measured per 1,000 images actually returned, the same rate cards collapse into a band between roughly $0.0042 and $0.25, and three of the six vendors cannot be converted at all because they never publish how many images one billable unit contains. The Serpent image search API is $0.35 per 1,000 calls, falling to $0.25 at Scale.
How I normalised this image search API comparison
The task is fixed, and everything else follows from it: collect 1,000 image results for a keyword, at the deepest page size each option supports. Four rules govern how the numbers below were produced, and each one exists because breaking it is how this category's comparisons usually go wrong.
- Entry rate and lowest published rate are separate columns. Quoting one vendor's volume floor against another vendor's entry price is the single most common dishonesty in API price comparisons. Both appear here, and so does what the floor actually costs you every month — because a $0.2727 rate that needs $30,000 a month is not cheaper than a $0.35 rate if you spend $50 a month.
- If a vendor does not publish how many items one unit returns, the row is marked not comparable. An empty cell with a reason beside it is worth more than a confident number I made up. Three of six vendors land in that state on the per-image table, and that is a finding, not an omission.
- Only published rates are claimed. Several vendors here sell contact-sales volume plans. Nobody outside the deal can bound what those cost, so no ranking on this page is a claim about what you could negotiate — only about what is printed on a page you can read today.
- A derived rate is labelled as derived. Where a vendor prints a plan price and a plan volume but no per-1,000 figure, I divide one by the other and show the division. Where the vendor prints the per-1,000 figure itself, I say so. The two are not the same kind of fact and should not be presented as if they were.
If you want the same method applied to plain web search rather than images, the companion piece is the SERP API pricing comparison, and the per-vendor deep dives are DataForSEO pricing explained and SerpApi pricing explained.
The image search API pricing table: cost per 1,000 requests
This is the table in the unit your invoice arrives in. It is the wrong unit for deciding anything, which is the point of the next two sections — but it is the unit every vendor markets in, so it comes first.
| Provider | What one billable unit is | Entry rate per 1,000 requests | Lowest published rate per 1,000 requests | What that lowest rate requires | Free allowance |
|---|---|---|---|---|---|
| Serpent — Image Search API | One API call, whatever the engine and whatever the filters | $0.35 | $0.25 | No monthly plan. A one-time $500 deposit, which stays spendable as balance | Free calls on every new account, shared across endpoints |
| DataForSEO — Google Images SERP API | One SERP page, priced as 100 image results | $0.60 | $0.60 | Nothing beyond the Standard queue. A $50 minimum payment applies to the account | None published |
| SerpApi — Google Images API | One search, stated as a batch of 100 images | $25.00 (Starter, $25/month) | $1.96 | Cloud 54M at $106,050/month for 54,000,000 searches | 250 searches a month |
| Bright Data — Google Images Scraper API | One record. The card never states how many records one image search yields | $1.50 per 1,000 records | $1.30 per 1,000 additional records | Scale at $499/month, with 384,000 records included | 5,000 records a month |
| HasData — Google Images API | One request, billed 5 credits | $1.23 (Startup, $49/month) | $0.35 | Growth at $208/month, for 3,000,000 credits | 1,000 credits a month |
| Scrapingdog — Google Images API | One request, billed 10 credits. The page publishes a per-credit price only | $2.00 (LITE, $40/month) | $0.2727 | NOVA PRO at $30,000/month, for 1.1 billion credits | 200 request credits, one-time |
Arithmetic, checked 2026-09-16. DataForSEO and HasData print their per-1,000 dollar figures themselves; Bright Data prints $1.5 and $1.3 per 1,000 as the rate. SerpApi: $25 for 1,000 searches on Starter is $25.00 per 1,000, and $106,050 for 54,000,000 searches is $1.9639 per 1,000 searches — SerpApi prints neither, so both are our own division of its published plan price by its published plan volume. Scrapingdog: LITE is $40 for 200,000 request credits, so a credit is $0.0002, and its credit table bills a Google Images request at 10 credits, which is $0.002 a request, so $2.00 per 1,000 requests; the top plan is $30,000 for 1,100,000,000 credits, so a credit is $0.00002727 and an image request $0.0002727, which is $0.2727 per 1,000 requests. Serpent's ladder is published in full on the pricing page.
Read that table as a price list and you would conclude that DataForSEO is dear and Scrapingdog is cheap at the top. Read it as a unit list and the ordering inverts, which is the next section.
One unit is not the same product twice
Five vendors on that table say "per 1,000". They mean five different things by it, and nothing in the headline number tells you which.
- A page of 100 image results. DataForSEO's Google Images page defines its unit in words: the base price it prints covers 100 search engine results. So one billable unit is a screenful of images, not an image and not really a request either.
- A search that returns a stated batch of 100. SerpApi's images documentation says images are fetched by batch of 100 images per search. Same effective batch size as DataForSEO, radically different price per batch.
- A record. Bright Data's Google Images card is the odd one out on its own site: its DuckDuckGo, Yahoo and Google Videos cards are all priced per request with 380K requests included, while the Google Images card says record with 384,000 records included — the wording its Web Scraper API uses, not the wording its SERP API uses. And the card never says how many records one image search produces. One? Ten? A hundred? The page does not say, so the honest per-image cell is blank.
- A request that costs ten credits. Scrapingdog's pricing page publishes a credit table rather than a price per endpoint. A Google Images request there bills 10 credits — the same as its Google SERP Advance API and twice its Google SERP Light API — so you have to do two multiplications before you know what an image call costs.
- A request that costs five credits. HasData runs the same mechanism in the opposite direction: its Google Images API sits in the 5-credit column, half the 10 credits its general Google SERP API bills. Images are a discount there and a premium at Scrapingdog, on rate cards that look superficially identical.
None of this is exotic pricing. It is ordinary vendor packaging, and it is why a table of headline numbers is close to useless for a buying decision. The only way through is to convert everything into the thing you actually want — images — and to refuse to convert where the vendor has not given you the conversion factor. That refusal is the difference between a comparison and a marketing page. The same trap, in its web-search form, is catalogued in the hidden costs of a SERP API.
Cost per 1,000 images returned
Here is the table the first one should have been. Same job, same 1,000 images, every published rate converted into the same unit — and three rows that cannot be converted, with the reason printed rather than papered over.
| Provider | Images per billable unit, as the vendor publishes it | Per 1,000 images, entry rate | Per 1,000 images, lowest published rate | Why a cell is blank |
|---|---|---|---|---|
| Serpent | Documented, not guaranteed: about 60 on Google, Bing and Yahoo, around 95 on DuckDuckGo, about 50 on Brave | $0.0058 | $0.0042 | — |
| DataForSEO | 100, stated on the pricing page as the base price of 100 search engine results | $0.0060 | $0.0060 | — |
| SerpApi | 100, stated on the images documentation as a batch of 100 images per search | $0.25 | $0.0196 | — |
| Bright Data | Not published | The card bills records and never states how many records one image search yields. Read twice; both reads agreed | ||
| HasData | Not published | Prints a dollar price per 1,000 requests, but no items-per-request figure anywhere on the rate card | ||
| Scrapingdog | Not published | Publishes credits per request, but no items-per-request figure |
Arithmetic, checked 2026-09-16. Serpent: $0.35 per 1,000 calls is $0.00035 a call, and 1,000 images at about 60 a call is 16.7 calls, so $0.0058; on the Scale rate of $0.25 per 1,000 calls the same job is $0.0042. DataForSEO: $0.0006 a SERP page of 100 results, so ten pages is $0.006 per 1,000 images; the Priority queue is $0.0012 and Live mode $0.002 a page, which is $0.012 and $0.020 per 1,000 images. SerpApi: 100 images a search means ten searches per 1,000 images; $25 for 1,000 searches is $0.25, and $106,050 for 54,000,000 searches is $1.9639 per 1,000 searches, so $0.0196. A unit that comes back short of its stated batch is not discounted anywhere on this table, ours included.
Three things fall out of that conversion, and the first of them is uncomfortable for us.
- DataForSEO changes places with us depending on the engine, and that is worth saying plainly. At about $0.0060 per 1,000 images it lands within a rounding error of our Default tier's $0.0058 on Google, even though its headline per-request price is 71% higher than ours. Take the same Default tier to Brave, where a call returns about 50 images rather than 60, and our per-image figure rises to roughly $0.0070 — at which point DataForSEO is the cheaper option outright. If you are filling a dataset rather than answering one query per keyword, the per-request column was actively misleading you.
- The spread collapses. Per request, the gap between the dearest and cheapest entry rate on this page is about seventy to one. Per image, once you exclude the three vendors that cannot be converted, the entry rates sit about forty to one apart — and almost all of that remainder is SerpApi's entry plan, which is a $25/month starter plan rather than a volume product.
- Half the market cannot be graded at all. Bright Data, HasData and Scrapingdog publish a price and withhold the divisor. That is not a criticism of their product; it is a statement about what their pricing pages let a buyer work out in advance.
What the lowest published rate really costs
A floor rate is only real if you can reach it. This table puts each vendor's lowest published per-1,000 figure next to the plan that unlocks it, what that plan costs every month, and the volume you have to consume before the rate is anything other than theoretical.
| Provider | Lowest published rate per 1,000 requests | Plan that unlocks it | What that plan costs a month | Volume included | Effective all-in per 1,000 requests |
|---|---|---|---|---|---|
| Serpent | $0.25 | Scale tier | Nothing monthly. A one-time $500 deposit, which stays spendable as balance | Pay per call, no commitment | $0.25 |
| DataForSEO | $0.60 | Standard queue, no plan tier | Nothing monthly. A $50 minimum payment applies | Pay per call | $0.60 |
| HasData | $0.35 | Growth | $208/month | 3,000,000 credits, which is 600,000 image requests at 5 credits each | $0.35 |
| Scrapingdog | $0.2727 | NOVA PRO | $30,000/month | 1,100,000,000 credits, which is 110,000,000 image requests at 10 credits each | $0.2727 |
| Bright Data | $1.30 per 1,000 additional records | Scale | $499/month | 384,000 records included | $1.2995 per 1,000 records |
| SerpApi | $1.9639 | Cloud 54M | $106,050/month | 54,000,000 searches | $1.9639 |
Checked 2026-09-16. HasData: $208 buys 3,000,000 credits and its Google Images API bills 5 credits a request, so 600,000 requests. Scrapingdog: $30,000 buys 1,100,000,000 credits and its Google Images API bills 10 credits a request, so 110,000,000 requests. Bright Data: $499 divided by 384,000 records is $1.2995 per 1,000 records. SerpApi: $106,050 divided by 54,000,000 searches is $1.9639 per 1,000 searches. The last two divisions are ours; neither vendor prints the per-1,000 figure.
Put the monthly column next to the rate column and two things stop being true. First, Scrapingdog's $0.2727 — the second-lowest published per-request rate on this page — costs $30,000 a month and 1.1 billion credits to reach. Below about 110 million image requests a month you are buying volume you will not use, so for almost everyone that rate does not exist. Second, and this is the one worth saying plainly: HasData's Growth plan reaches $0.35 per 1,000 requests, which is exactly our Default rate, and if you already buy other HasData endpoints from the same credit balance that plan is very likely the better purchase than adding another vendor. A $208 monthly commitment that also covers your other scraping is a different product from a per-call rate, and the per-1,000 column cannot see the difference. The same logic runs the other way for a low-volume buyer: DataForSEO's best published rate needs a $50 minimum payment and no plan at all, where our Scale rate needs $500 deposited before it applies.
One honest note about our own ladder, since the tiers are visible on the pricing page anyway: image search discounts far less steeply than web search does. Web search runs $0.60 at Default down to $0.06 at Growth and $0.03 at Scale — a twentyfold cut. Images run $0.35 at Default, $0.32 at Growth and $0.25 at Scale, which is 10% off and then 30% off the base rate. If you are modelling a big image workload on the assumption that our volume tiers behave the way our web-search tiers do, they do not, and you should budget from the $0.25 figure rather than from anything steeper.
What you actually get back
Price is the easy half. The half that decides whether a cheap option is actually cheap is what lands in the response, and this is where I have to be careful about what I am entitled to claim. I did not read every vendor's response schema for this post, so there is no field-by-field competitor table here — inventing one would be exactly the sin the rest of this page is arguing against. What follows is our own published contract, offered as a checklist you can run against any vendor on this page before you sign anything.
The Serpent image search endpoint returns eight keys per image result, in the same order on every engine:
| Field | What it carries | Why it matters |
|---|---|---|
position | 1-based rank within the list returned | Never skips a number, so a gap in your data is your bug, not ours |
title | Image title or alt text | The only text signal most image results carry |
thumbnail | Thumbnail URL | Cheap to fetch; enough for a visual diff or a contact sheet |
original | Full-size image URL | The field most often missing or lagged elsewhere. Check it first |
width / height | Pixel dimensions of the full-size image, when the result carries them | Lets you filter for usable assets without downloading every candidate |
source | Host the image is published on | The domain-level answer to "who is using our photography" |
pageUrl | The page the image appears on | Turns an image hit into a takedown target or an outreach target |
Checked 2026-09-16 against our own published API reference. Filters documented alongside those fields: size, type, color, aspect, license, time, people, layout and language, with per-engine support published as a grid rather than implied. No claim is made here about any other vendor's field set.
The three checks worth running before you commit
- Ask for 100 and count what arrives. This is the one number that moves the per-image price more than any rate card does, and almost nobody publishes it. We publish ours, and it is not flattering:
numis a ceiling, not a promise — about 60 results on Google, Bing and Yahoo, around 95 on DuckDuckGo and about 50 on Brave. A response that came back short says so in the payload rather than being padded to look complete. Run the same test on whichever vendor you are comparing and recompute their per-image column with the real number. - Check whether
originalis a real full-size URL. A thumbnail masquerading as an original is the classic image-API defect, and it is invisible until the day you need the asset at print size. Pull ten results and fetch ten originals. - Check what an empty result looks like. A query with genuinely no images and a query that failed must not wear the same response. If they do, your monitoring will report a quiet week and an outage identically, and you will not find out for months. If you are building on top of this, the Python visual SERP monitor walkthrough has a working version of this check, and the image search API guide covers the request side in full.
Who sells an image product at all
Every rate card I read on 2026-09-16 prices a Google-Images product, and that is roughly where the agreement ends. SerpApi's public catalogue is the broadest of the ones I read: alongside its Google Images API it lists a Google Images Light API and a Google Images Related Content API, and separately a Yahoo! Images API. DataForSEO, Bright Data, HasData and Scrapingdog each list exactly one image product, built on Google.
I did not find an image product built on Bing, DuckDuckGo or Brave on those four rate cards. That is a statement about what four pages listed on one day, not proof that no such product exists anywhere — if coverage beyond Google matters to you, ask the vendor directly rather than trusting an absence, mine included. Our own image endpoint takes an engine parameter with five values, and the same call shape and the same eight fields come back whichever one you name, which is the part that actually saves you work. The equivalent breakdown for moving pictures is in the video search API overview.
Two catalogue facts are worth carrying into a procurement conversation. First, an image product's price is frequently not the vendor's headline price — Scrapingdog's image endpoint costs double its cheapest Google endpoint, HasData's costs half of its main one, and neither difference is visible from the plan cards. Second, image endpoints are where "per request" quietly becomes "per record", as Bright Data's own adjacent cards demonstrate. If you are evaluating a vendor on one surface and plan to use it on another, price both surfaces separately.
Which option fits which job
- Filling a dataset, images by the million. Convert to the per-image column and ignore the rest. DataForSEO at about $0.0060 per 1,000 images and Serpent at $0.0042 on Scale are the two published options in that band; the difference between them is small enough that response shape and filter support should decide it, not price.
- One query per keyword, on a schedule. Now the per-request column is the right one, because you are paying for calls and not consuming full batches. Serpent at $0.35, or HasData's Growth plan at the same $0.35 if you are already spending $208 a month there.
- A small project, or a prototype that might not ship. Anything with no monthly plan. A $208 or $499 monthly commitment for a prototype is a worse deal than a rate twice as high with nothing to cancel, and every free allowance on this page — DataForSEO, which publishes none, excepted — is large enough to validate a response shape before you spend anything.
- Brand and asset monitoring rather than bulk collection. Volume is low and field quality is everything: you need
pageUrland a realoriginal, not another thumbnail. Optimise for the response contract, not the rate card — the reverse-image monitoring walkthrough covers what that pipeline needs. - Very high volume, and price is the only constraint. At 110 million image requests a month Scrapingdog's top plan gets to $0.2727 per 1,000 requests, for $30,000 a month. If your volume genuinely lives there, stop reading published rate cards and get quotes from everyone on this page, because every one of them also sells a contact-sales plan whose price nothing on the public internet can tell you.
- Images plus web, on one key and one balance. Worth comparing whole catalogues rather than a single surface. Ours are on one rate card, and the web-search side of it is compared vendor by vendor in the SERP API pricing comparison.
Whichever you choose, run the same two calls first. Ask for 100 images and count what comes back, then fetch ten originals and see how many are really full size. Those two calls will tell you more about what you are buying than any comparison table, this one included.
FAQ
Which image search API has the lowest published price per 1,000 requests?
On the six rate cards I read on 2026-09-16, the lowest published per-request rates are Serpent at $0.25 per 1,000 calls on its Scale tier and Scrapingdog at $0.2727 per 1,000 requests on its $30,000-a-month top plan. HasData's Growth plan reaches $0.35 per 1,000 requests for $208 a month, the same number as Serpent's entry rate with no monthly commitment. These are published rates only: several vendors also sell contact-sales volume plans whose prices nobody outside the deal can see, so nothing here is a claim about what you could negotiate. Checked 2026-09-16.
Why does DataForSEO look cheaper per image than it does per request?
Because its billing unit is a page of 100 image results rather than a single image. DataForSEO prices its Google Images SERP API at $0.60 per 1,000 SERP pages on the Standard queue, and its own pricing page defines that unit as the base price of 100 search engine results. Ten of those pages is 1,000 images, so the same rate works out at about $0.006 per 1,000 images returned. Per request DataForSEO sits mid-table; per image it sits at the cheap end. Both statements are true at once, which is why the unit has to be named every time the number is. Checked 2026-09-16.
Why is the Bright Data row blank in the per-image table?
Because the Google Images Scraper API page bills records and never says how many records one image search produces. Bright Data's neighbouring cards for other engines are priced per request, with 380K requests included on the paid plan; the Google Images card instead says records, with 384,000 records included. I read that page twice with different prompts and both reads agreed. Without a records-per-search figure, any per-image number printed for Bright Data would be an assumption wearing a decimal point, so the cell stays empty and the reason sits next to it. Checked 2026-09-16.
How many images does one API call actually return?
Fewer than the ceiling you asked for, and that is the number every per-image conversion turns on. Serpent publishes the measured figure rather than the marketing one: num accepts 1 to 100, and the documented result is about 60 images on Google, Bing and Yahoo, around 95 on DuckDuckGo and about 50 on Brave, with a short response flagged in the payload instead of quietly padded. SerpApi's images page states that images are fetched by batch of 100 images per search. DataForSEO prices in blocks of 100 results. HasData, Scrapingdog and Bright Data publish no items-per-unit figure at all, which is why three cells in the per-image table are empty. Checked 2026-09-16.
Does an image search cost more than a web search?
That depends on the vendor, and the direction is not the one most people guess. Scrapingdog's published credit table bills a Google Images request at 10 credits, double the 5 credits it bills for Google SERP Light, so images cost more there. HasData runs the other way: its Google Images API is a 5-credit endpoint against 10 credits for its main Google SERP API, so an image request costs half. DataForSEO charges the same rate for a page of 100 image results as it does for a page of 10 organic results. SerpApi publishes one ladder and no per-engine surcharge. Checked 2026-09-16.
What does a free allowance actually get you here?
Enough to check the response shape, not enough to run anything. Bright Data's Google Images card lists 5,000 free records a month. SerpApi's free plan is 250 searches a month. HasData's free plan is 1,000 credits a month, which is 200 image requests at the 5 credits that endpoint bills. Scrapingdog's free plan is 200 request credits, one-time, which is 20 image requests at 10 credits each. Serpent gives every new account free calls shared across eligible endpoints, with no card and no subscription. Checked 2026-09-16.
Related reading, if you are moving from a price decision to a build: the image search API guide for the request and filter surface, a Python visual SERP monitor for a runnable version of the count-what-arrives check, and reverse-image brand monitoring for the low-volume, high-field-quality case.



