Best Image Recognition APIs in 2026
What is the best image recognition API? For general labels with no setup, Google Cloud Vision ($1.50 per 1,000 images) or Amazon Rekognition ($1.00 per 1,000). For labels in your own words, a vision model such as Gemini 3.5 Flash-Lite costs about $0.34 per 1,000 images. Azure's Image Analysis API retires in September 2028. Prices checked October 14, 2026.
Skip the research? Mixpeek runs image recognition on your own data: extraction, indexing, and search in one platform.
Run it on your own data, freeKey Takeaways
- Google Cloud Vision API ranks first, best for general-purpose labeling, text and logo detection with no training. The widest set of pre-trained detectors behind one request, so labels, text, logos and SafeSearch come back together.
- Amazon Rekognition is second, best for AWS teams that want general labels plus the option to train custom ones. The cheapest per-image general labels from a hyperscaler, with a managed path to custom-trained models in the same service.
- Mixpeek ranks #6, best for labeling a whole image library with your own taxonomy and keeping it searchable.
- The highest-ranked free option is SigLIP 2 / CLIP (self-hosted) at #7. Free and open source; you pay for your own compute.
- We ranked 12 options on label coverage and output (30%), custom labels (25%), price per 1,000 images (25%) and lifecycle and deployment (20%). Prices and claims were checked against each vendor's public pages in October 2026.
Skip the comparison? Mixpeek runs image recognition on your own data: extraction, indexing, and search in one platform.
How We Evaluated
Evaluated by the Mixpeek engineering team, who build and operate multimodal retrieval infrastructure in production. Last tested October 2026; rankings re-checked when the market shifts, with pricing and claims verified against each vendor's public documentation.
Label Coverage and Output
What comes back for an image you have never seen: a fixed vocabulary with confidence scores, bounding boxes, free-text answers to a prompt, or embeddings. Judged from each vendor's documentation, since no shared benchmark covers all of these.
Custom Labels
How you get your own categories: train a classifier, list labels in a prompt, match against a reference set, or none of these.
Price per 1,000 Images
List price from the vendor's own pricing page on October 14, 2026. Token-billed models are converted with the vendor's documented image token count, before output tokens.
Lifecycle and Deployment
Whether the product is still sold to new customers, any announced retirement date, and whether you can run it in your own cloud or on your own hardware.
Quick answer
The short version, before the detail:
- Google Cloud Vision APIbest for general-purpose labeling, text and logo detection with no trainingThe widest set of pre-trained detectors behind one request, so labels, text, logos and SafeSearch come back together.
- Amazon Rekognitionbest for aws teams that want general labels plus the option to train custom onesThe cheapest per-image general labels from a hyperscaler, with a managed path to custom-trained models in the same service.
- Gemini API (image understanding)best for labels from your own vocabulary at the lowest hosted per-image costThe label vocabulary lives in the prompt, so changing your categories means editing a list, and detection and segmentation come from the same model.
- OpenAI API (GPT vision)best for open-ended image questions and attribute extraction in an openai stackThe widest price-to-capability range of the vision-language models, with a documented per-patch token formula you can budget against.
- Anthropic Claude (vision)best for detailed image analysis that follows complex instructionsCareful instruction-following across many images in one request, with a documented per-patch cost and a low-cost Haiku tier.
- Mixpeekbest for labeling a whole image library with your own taxonomy and keeping it searchableRecognition runs over your storage and the labels stay queryable, so classification, filtering and similarity search share one index.
- SigLIP 2 / CLIP (self-hosted)best for teams that want zero-shot labels and embeddings on their own hardwareZero-shot labels and reusable embeddings from one open model, with no per-call fee.
- Roboflowbest for custom detectors and classifiers for objects no pre-trained vocabulary coversThe shortest path from your own labeled images to a deployed custom detector, hosted or self-hosted.
Overview
Best Image Recognition APIs: comparison at a glance
| # | Tool | Best for | Pricing | Key differentiator | Main limit |
|---|---|---|---|---|---|
| 1 | Google Cloud Vision API | General-purpose labeling, text and logo detection with no training | Label detection: first 1,000 units/month free, $1.50 per 1,000 up to 5M/month, $1.00 per 1,000 above 5M. Object localization $2.25 per 1,000. Text detection $1.50 per 1,000. | The widest set of pre-trained detectors behind one request, so labels, text, logos and SafeSearch come back together. | Labels come from Google's vocabulary; there is no way to add your own categories in this API |
| 2 | Amazon Rekognition | AWS teams that want general labels plus the option to train custom ones | DetectLabels (Group 2, us-east-1): $1.00 per 1,000 images for the first 1M/month, $0.80 next 4M, $0.60 next 30M, $0.25 next 45M. Free tier 1,000 images/month for 12 months. Custom Labels $1/training hour, $4/inference hour. | The cheapest per-image general labels from a hyperscaler, with a managed path to custom-trained models in the same service. | Custom Labels bills per hour while a model is running, which is expensive for sporadic traffic |
| 3 | Gemini API (image understanding) | Labels from your own vocabulary at the lowest hosted per-image cost | Gemini 3.5 Flash-Lite: $0.30 per 1M input tokens, $2.50 per 1M output tokens. About $0.34 per 1,000 images at default media resolution (1,120 tokens) or $0.08 at low (280 tokens), before output. Gemini 3.8 Flash: $0.75 input / $3.75 output per 1M tokens through December 31, 2026. | The label vocabulary lives in the prompt, so changing your categories means editing a list, and detection and segmentation come from the same model. | No calibrated confidence score per label unless you ask the model for one |
| 4 | OpenAI API (GPT vision) | Open-ended image questions and attribute extraction in an OpenAI stack | gpt-6-astra: $10 per 1M input tokens, $50 per 1M output (about $12.29 per 1,000 1-megapixel images, before output). gpt-5.6-luna: $0.20 input, $1.20 output per 1M (about $0.25 per 1,000 images). | The widest price-to-capability range of the vision-language models, with a documented per-patch token formula you can budget against. | Flagship models cost far more per image than label APIs |
| 5 | Anthropic Claude (vision) | Detailed image analysis that follows complex instructions | Claude Opus 5.5: $4 per 1M input tokens, $20 per 1M output (about $5.18 per 1,000 1-megapixel images, before output). Claude Haiku 5.5: $0.10 input, $0.50 output per 1M for prompts up to 100K tokens (about $0.13 per 1,000 images). | Careful instruction-following across many images in one request, with a documented per-patch cost and a low-cost Haiku tier. | Will not identify people by name in images |
| 6 | Mixpeek | Labeling a whole image library with your own taxonomy and keeping it searchable | Images $1.50 per 1,000 (base image_search rate); clustering and taxonomy enrichment included; plans from $25/month | Recognition runs over your storage and the labels stay queryable, so classification, filtering and similarity search share one index. | Taxonomy labels need a reference set of examples that you build first |
| 7 | SigLIP 2 / CLIP (self-hosted) | Teams that want zero-shot labels and embeddings on their own hardware | Free and open source; you pay for your own compute | Zero-shot labels and reusable embeddings from one open model, with no per-call fee. | You run and scale the model yourself, usually on a GPU |
| 8 | Roboflow | Custom detectors and classifiers for objects no pre-trained vocabulary covers | Free tier 10 credits/month; Core from $39/month; Enterprise custom. Serverless inference: 8,000 images per credit on YOLOv8 Nano, 2,000 per credit on SAM 3. | The shortest path from your own labeled images to a deployed custom detector, hosted or self-hosted. | You need labeled images of your own to train a custom model |
| 9 | Imagga | Small teams that want a straightforward tagging API on a fixed monthly plan | Free 100 requests/month; Indie $79/month for 70,000 requests; Pro $349/month for 300,000; Enterprise custom | Tagging plus color extraction and smart cropping on a flat monthly plan. | Monthly plans charge for unused requests |
| 10 | Hive | Trust and safety teams that also want scene and logo classifiers | Visual moderation $3.00 per 1,000 requests (higher limits via sales); contextual scene classifier $1.50 per 1,000; object detection (COCO) $1.50 per 1,000; logo recognition $5.00 per 1,000; custom classification inference $3.00 per 1,000 | Moderation-grade classifiers and AI-generated image detection, sold per model with published prices. | Visual moderation at volume is priced by sales |
| 11 | Sightengine | Apps that need moderation and AI-image detection on a small budget | Free 2,000 operations/month (max 500/day); Starter $29/month for 10,000; Pro $99/month for 40,000; $0.002 per extra operation | Moderation, AI-image detection and quality checks behind one endpoint with a usable free plan. | No general object or scene labeling |
| 12 | Azure AI Vision (Image Analysis) | Existing Azure integrations that need to keep running while they plan a migration | S1 (East US): Group 1 (tags, objects, OCR) $1.00 per 1,000 for 0 to 1M, $0.65 1M to 10M, $0.60 10M to 100M, $0.40 above. Group 2 (caption, dense captions, Read) $1.50 per 1,000 to 1M, $0.60 above. Free F0: 5,000 transactions/month. | Tags, objects, captions and smart crops from one Azure service, on a published retirement schedule. | Retires on September 25, 2028, so a new build will have to migrate |
The Mental Model That Makes Multimodal Search Click
Google Cloud Vision API
Google's pre-trained image API. One request can return labels, object locations, text, logos, landmarks and SafeSearch ratings. Label detection costs $1.50 per 1,000 images from the 1,001st image to 5 million a month and $1.00 per 1,000 above that, with the first 1,000 free each month (pricing). Each feature you request on an image is billed as its own unit.
The widest set of pre-trained detectors behind one request, so labels, text, logos and SafeSearch come back together.
Strengths
- +Several detectors on one image in one call: labels, objects, text, logos, landmarks, SafeSearch
- +First 1,000 units each month are free
- +SafeSearch is free when requested together with label detection
- +Mature Python, Node, Go and Java client libraries
Limitations
- -Labels come from Google's vocabulary; there is no way to add your own categories in this API
- -Every feature on an image is a separate billable unit, so a four-feature call costs four units
- -Returns labels only, with no image embeddings for similarity search
Real-World Use Cases
- •Tagging a product catalog with general labels to seed search filters
- •Reading text from photos of signs, receipts and packaging
- •Detecting brand logos in user-submitted images
- •Screening uploads with SafeSearch alongside labeling
Choose This When
If Google's general labels are good enough for your images and you also want text, logo or SafeSearch results from the same call.
Skip This If
When your categories are your own business terms, or when you need embeddings to find similar images.
Integration Example
# Documented sample: https://docs.cloud.google.com/vision/docs/labels
from google.cloud import vision
client = vision.ImageAnnotatorClient()
image = vision.Image()
image.source.image_uri = "gs://my-bucket/product.jpg"
response = client.label_detection(image=image)
for label in response.label_annotations:
print(label.description, label.score)
if response.error.message:
raise Exception(response.error.message)Amazon Rekognition
AWS's image and video analysis service. DetectLabels returns labels with parent labels, categories, bounding boxes for common objects, and optional image properties such as dominant colors and sharpness (DetectLabels docs). DetectLabels costs $1.00 per 1,000 images for the first million a month, falling to $0.25 per 1,000 between 35 and 80 million a month, and Custom Labels trains your own classifier at $1 per training hour and $4 per inference hour (pricing). Bulk Image Analysis stopped accepting new customers on April 30, 2026 (AWS notice); the per-image APIs are unaffected.
The cheapest per-image general labels from a hyperscaler, with a managed path to custom-trained models in the same service.
Strengths
- +Lowest list price of the hyperscaler label APIs, with tiered volume discounts
- +Custom Labels trains a classifier or detector on your own images
- +Labels come with a parent hierarchy and category, useful for faceted filters
- +Reads directly from S3 and fits Lambda-based pipelines
Limitations
- -Custom Labels bills per hour while a model is running, which is expensive for sporadic traffic
- -Bulk Image Analysis closed to new customers on April 30, 2026
- -Returns labels only, with no image embeddings for similarity search
Real-World Use Cases
- •Labeling images as they land in S3 with a Lambda trigger
- •Training a defect or part classifier with Custom Labels
- •Filtering a photo library by label category
- •Detecting missing protective equipment in site photos
Choose This When
If your images already live in S3 and you want general labels now with room to train custom labels later.
Skip This If
When custom models would sit idle most of the day, because Custom Labels bills by the running hour.
Integration Example
# Documented sample: https://docs.aws.amazon.com/rekognition/latest/dg/labels-detect-labels-image.html
import boto3
client = boto3.client("rekognition")
response = client.detect_labels(
Image={"S3Object": {"Bucket": "amzn-s3-demo-bucket", "Name": "photo.jpg"}},
MaxLabels=10,
)
for label in response["Labels"]:
print(label["Name"], label["Confidence"])
for parent in label["Parents"]:
print(" parent:", parent["Name"])Gemini API (image understanding)
Google's Gemini models answer a prompt about an image, so you can list your own labels and ask for JSON back. The models also return bounding boxes for object detection and polygon masks for segmentation (image understanding docs). On Gemini 3 models an image costs 1,120 tokens at default media resolution or 280 at low (media resolution). At Gemini 3.5 Flash-Lite's $0.30 per million input tokens (pricing) that is about $0.34 per 1,000 images at default and $0.08 at low, before output tokens.
The label vocabulary lives in the prompt, so changing your categories means editing a list, and detection and segmentation come from the same model.
Strengths
- +Labels in your own words, or only from a label list you put in the prompt
- +Object detection with bounding boxes and segmentation masks from a prompt
- +Low media resolution cuts an image to 280 tokens for cheap bulk labeling
- +Free tier on the Flash and Flash-Lite models
Limitations
- -No calibrated confidence score per label unless you ask the model for one
- -Output varies with the prompt, so you validate labels against a sample yourself
- -Free-tier usage may be used to improve Google's products
Real-World Use Cases
- •Labeling catalog photos with a merchant's own category list
- •Pulling structured attributes such as color, material and style into JSON
- •Locating specific objects with bounding boxes from a text description
- •Replacing an Azure Image Analysis integration before its 2028 retirement
Choose This When
If your labels are your own business categories and you can check the model's output against a labeled sample before trusting it.
Skip This If
When you need the same output for the same image every time, or a calibrated confidence score per label.
Integration Example
# Documented sample: https://ai.google.dev/gemini-api/docs/image-understanding
from google import genai
client = genai.Client()
my_file = client.files.upload(file="path/to/sample.jpg")
interaction = client.interactions.create(
model="gemini-3.8-flash",
input=[
{"type": "text", "text": "Label this image using only: shoe, bag, jacket, other. Return JSON."},
{"type": "image", "uri": my_file.uri, "mime_type": my_file.mime_type},
],
)
print(interaction.output_text)OpenAI API (GPT vision)
OpenAI's GPT models take images as input through the Responses API and answer any question about them. Current models split an image into 32-pixel patches and multiply by 1.2, so a 1024 x 1024 image is 1,229 input tokens on gpt-6-astra (vision guide). At gpt-6-astra's $10 per million input tokens that is $12.29 per 1,000 images; gpt-5.6-luna at $0.20 per million is about $0.25 per 1,000 (pricing).
The widest price-to-capability range of the vision-language models, with a documented per-patch token formula you can budget against.
Strengths
- +Answers open-ended questions about an image with no fixed label set
- +Structured JSON output for extracting attributes
- +A wide price range, from the luna models to the astra flagship
- +Detail levels let you trade resolution for token cost
Limitations
- -Flagship models cost far more per image than label APIs
- -No calibrated confidence score per label
- -Output can vary between runs on the same image
Real-World Use Cases
- •Extracting product attributes from catalog photos into JSON
- •Writing alt text for accessibility
- •Answering questions about charts and screenshots
- •Checking a photo against a written specification
Choose This When
If the task needs reasoning about the image rather than a label, and you already run on the OpenAI API.
Skip This If
When you are labeling millions of images with a fixed vocabulary, where a label API costs a fraction of a flagship model.
Integration Example
# Documented sample: https://developers.openai.com/api/docs/guides/images-vision
from openai import OpenAI
client = OpenAI()
response = client.responses.create(
model="gpt-6-astra",
input=[
{
"role": "user",
"content": [
{"type": "input_text", "text": "what's in this image?"},
{"type": "input_image", "image_url": "https://example.com/photo.jpg"},
],
}
],
)
print(response.output_text)Anthropic Claude (vision)
Claude models accept images as base64, a URL or a Files API reference, up to 600 images per API request on most models. An image costs one token per 28 x 28 pixel patch, so a 1000 x 1000 image is 1,296 tokens, which Anthropic prices at about $5.18 per 1,000 images on Claude Opus 5.5 (vision docs). Claude Haiku 5.5 at $0.10 per million input tokens (pricing) brings the same image to about $0.13 per 1,000.
Careful instruction-following across many images in one request, with a documented per-patch cost and a low-cost Haiku tier.
Strengths
- +Follows detailed, multi-step instructions about an image
- +Strong on documents, charts and screenshots
- +Many images per request, so you can compare a set of images in one call
- +Haiku 5.5 brings a 1-megapixel image to about $0.13 per 1,000
Limitations
- -Will not identify people by name in images
- -Coordinates and object counts are approximate by Anthropic's own documentation
- -No calibrated confidence score per label
Real-World Use Cases
- •Pulling line items and fields out of photographed forms
- •Comparing several product photos for consistency in one request
- •Describing images in a house style and vocabulary
- •Reviewing screenshots and charts for specific values
Choose This When
If your images need reading and reasoning, such as forms, charts or side-by-side comparisons, more than a list of labels.
Skip This If
When you need face identification, exact counts, or precise bounding boxes.
Integration Example
# Documented sample: https://platform.claude.com/docs/en/build-with-claude/vision
import anthropic
client = anthropic.Anthropic()
message = client.messages.create(
model="claude-opus-5-5",
max_tokens=1024,
messages=[
{
"role": "user",
"content": [
{"type": "image", "source": {"type": "url", "url": "https://example.com/photo.jpg"}},
{"type": "text", "text": "Describe this image."},
],
}
],
)
print(message.content)Mixpeek runs vision models over the images already in your S3 or GCS bucket and keeps the results searchable. The image_search feature embeds each image with Google's SigLIP (image extractor docs). Taxonomies then attach your own labels by matching each image against a reference collection you define, and retrievers let you filter and search by those labels or by visual similarity. Images cost $1.50 per 1,000, with clustering and taxonomy enrichment included and plans from $25 a month (pricing).
Recognition runs over your storage and the labels stay queryable, so classification, filtering and similarity search share one index.
Strengths
- +Labels come from your own taxonomy, including multi-level hierarchies
- +Labels and image embeddings are stored together, so one query can filter by label and rank by similarity
- +Reads images where they already live in object storage
- +Taxonomies can be re-applied to existing images when your categories change
Limitations
- -Taxonomy labels need a reference set of examples that you build first
- -More setup than a single label API call: bucket, collection and taxonomy
- -Plans start at $25 a month, so very small one-off jobs cost more than a pay-per-call API
Real-World Use Cases
- •Tagging a product photo library against your own catalog categories
- •Filtering a media archive by taxonomy label and ranking by visual similarity in one query
- •Re-labeling existing images after a category tree changes, without re-uploading
- •Grouping near-duplicate images by visual content
Choose This When
If the labels must follow your own taxonomy and you need to search and filter the labeled library afterward.
Skip This If
When you want Google- or AWS-style general labels on a handful of images, with nothing to search later.
Integration Example
# Documented sample: https://mixpeek.com/docs/processing/features
import os
from mixpeek import Mixpeek
client = Mixpeek(
api_key=os.environ["MIXPEEK_API_KEY"],
namespace=os.environ["MIXPEEK_NAMESPACE"],
)
collection = client.collections.create(
collection_name="press-photos",
source={"type": "bucket", "bucket_ids": [os.environ["BUCKET_ID"]]},
features=["image_search"],
)SigLIP 2 / CLIP (self-hosted)
Open vision-language encoders that score an image against any text labels you pass in, known as zero-shot classification, and produce embeddings for similarity search. SigLIP 2 So400m is Apache 2.0 licensed and had 867,808 downloads in the last month on Hugging Face as of October 14, 2026. OpenAI's original CLIP remains available. Microsoft's own migration guide names SigLIP as a replacement for Azure image embeddings.
Zero-shot labels and reusable embeddings from one open model, with no per-call fee.
Strengths
- +No per-image API fee
- +Labels are any text strings you choose, changed at query time
- +Same model gives embeddings for similarity search
- +Apache 2.0 license on SigLIP 2
Limitations
- -You run and scale the model yourself, usually on a GPU
- -Zero-shot scores are relative to the labels you supply, so thresholds need tuning
- -No managed API, monitoring or support
Real-World Use Cases
- •Classifying images into categories that change often, without retraining
- •Building text-to-image search over a private collection
- •Labeling images inside a private network
- •Prototyping a category scheme before paying for labeled data
Choose This When
If you have GPU capacity and want labels and similarity search without sending images to a third party.
Skip This If
When nobody on the team can operate model serving, or a fixed category set is stable enough to train a supervised classifier.
Integration Example
# Adapted from the model card: https://huggingface.co/google/siglip2-so400m-patch14-384 from transformers import pipeline ckpt = "google/siglip2-so400m-patch14-384" image_classifier = pipeline(model=ckpt, task="zero-shot-image-classification") url = "http://images.cocodataset.org/val2017/000000039769.jpg" candidate_labels = ["2 cats", "a plane", "a remote"] outputs = image_classifier(url, candidate_labels=candidate_labels) print(outputs)
Roboflow
A platform for training and deploying custom vision models, with a hosted serverless API and an open-source inference server you can run yourself. The core of Roboflow Inference is Apache 2.0, while model weights carry their own licenses. On the pricing page, the free tier includes 10 credits a month and serverless inference on YOLOv8 Nano runs 8,000 images per credit.
The shortest path from your own labeled images to a deployed custom detector, hosted or self-hosted.
Strengths
- +Annotation, training and deployment in one product
- +Hosted serverless API or a self-hosted server on your own hardware
- +Detection and segmentation, as well as classification
- +Free tier for small projects
Limitations
- -You need labeled images of your own to train a custom model
- -Credit-based billing takes work to convert into a per-image cost
- -Community models vary in quality
Real-World Use Cases
- •Detecting manufacturing defects with a model trained on your own photos
- •Recognizing products on retail shelves
- •Running a detector at the edge where images cannot leave the site
- •Counting specific objects in drone or camera imagery
Choose This When
If the thing you need to recognize is specific to your domain and you can label a few hundred examples.
Skip This If
When general labels are enough, since a label API needs no training data at all.
Integration Example
# Documented sample: https://docs.roboflow.com/reference/inference/inference-sdk
from inference_sdk import InferenceHTTPClient, InferenceConfiguration
import os
client = InferenceHTTPClient(
api_url="https://serverless.roboflow.com",
api_key=os.environ["API_KEY"],
).configure(InferenceConfiguration(api_key_transport="header"))
results = client.infer("https://example.com/photo.jpg", model_id="soccer-players-5fuqs/1")
print(results)Imagga
An image tagging, categorization and color extraction API. The /v2/tags endpoint returns tags with a 0 to 100 confidence score, and Imagga builds custom categorizers on request (API docs). On the pricing page the free plan covers 100 requests a month and the Indie plan is $79 a month for 70,000 requests, about $1.13 per 1,000.
Tagging plus color extraction and smart cropping on a flat monthly plan.
Strengths
- +Simple REST API with basic auth
- +Tagging, categorization, color extraction and cropping in one product
- +Flat monthly plans make the bill predictable
- +Custom categorizers available
Limitations
- -Monthly plans charge for unused requests
- -Free plan is only 100 requests a month
- -Custom categorizers are a service engagement, with no self-serve training
Real-World Use Cases
- •Auto-tagging stock photos for keyword search
- •Extracting color palettes from product images
- •Generating smart crops for thumbnails
- •Categorizing user uploads into a fixed set of classes
Choose This When
If your volume is steady and predictable and general tags plus colors cover what you need.
Skip This If
When volume is spiky, since a flat plan bills unused requests.
Integration Example
# Python equivalent of the documented cURL call: https://docs.imagga.com/
import requests
response = requests.get(
"https://api.imagga.com/v2/tags",
params={"image_url": "https://example.com/photo.jpg"},
auth=("api_key", "api_secret"),
)
for tag in response.json()["result"]["tags"]:
print(tag["tag"]["en"], tag["confidence"])Hive
Pre-trained classifiers sold per model, best known for moderation. On the pricing page visual moderation is $3.00 per 1,000 requests (limited to 100 requests a day before you talk to sales), the contextual scene classifier and COCO object detection are $1.50 per 1,000, and logo recognition is $5.00 per 1,000. Custom image classification trains at $40 per million rows seen and serves at $3.00 per 1,000 requests.
Moderation-grade classifiers and AI-generated image detection, sold per model with published prices.
Strengths
- +Specialist moderation models, plus AI-generated image and deepfake detection
- +Per-model prices published for most image models
- +Custom classification training on your own data
- +Free credits when you add a payment method
Limitations
- -Visual moderation at volume is priced by sales
- -General scene labels come from a fixed classifier with no free-form vocabulary
- -Each model is billed separately, so several checks per image add up
Real-World Use Cases
- •Screening user uploads for policy violations before they publish
- •Flagging AI-generated or manipulated images
- •Detecting brand logos for sponsorship reporting
- •Training a custom classifier for a platform-specific policy
Choose This When
If moderation is the main job and general scene or logo labels are a secondary need.
Skip This If
When you need a broad general-purpose label vocabulary or labels in your own words.
Sightengine
A moderation and image-quality API with models for nudity, weapons, drugs, gore, text in images, AI-generated images, faces, image quality and image type (getting started). On the pricing page the free plan covers 2,000 operations a month and Starter is $29 a month for 10,000 operations, with extra operations at $0.002 each, which is $2 per 1,000.
Moderation, AI-image detection and quality checks behind one endpoint with a usable free plan.
Strengths
- +Many moderation categories behind one check endpoint
- +AI-generated image detection on the free plan
- +Image quality and image type checks alongside moderation
- +Only successful requests are billed
Limitations
- -No general object or scene labeling
- -No custom categories
- -One image can use several operations depending on the models requested
Real-World Use Cases
- •Screening profile photos in a dating or community app
- •Flagging AI-generated images in a marketplace
- •Rejecting blurry or low-quality uploads
- •Moderating memes and images with embedded text
Choose This When
If what you need to recognize is unsafe or low-quality content, at small to medium volume.
Skip This If
When you need general labels for search or your own categories.
Azure AI Vision (Image Analysis)
Microsoft's image analysis API for tags, objects, captions, OCR and smart crops. Microsoft will retire the Image Analysis API, versions 3.2 and 4.0, on September 25, 2028, including containers, and recommends Content Understanding, Foundry models, Document Intelligence and SigLIP instead (migration guide). Until then, on the pricing page, tags and object detection cost $1.00 per 1,000 transactions for the first million a month and captions $1.50 per 1,000, with 5,000 free transactions a month.
Tags, objects, captions and smart crops from one Azure service, on a published retirement schedule.
Strengths
- +Tags, objects, captions and OCR from one service
- +Free tier of 5,000 transactions a month
- +Volume tiers bring tags down to $0.40 per 1,000 above 100M
- +Container deployment for on-premises use until retirement
Limitations
- -Retires on September 25, 2028, so a new build will have to migrate
- -Microsoft's recommended replacements are different services, so migrating means new integration code
- -Captions are billed in a separate, more expensive group
Real-World Use Cases
- •Keeping an existing Azure tagging pipeline running through 2028
- •Generating captions for alt text inside an Azure stack
- •Smart-cropping thumbnails
- •Running image analysis in a container on-premises
Choose This When
If you already run on it and need time to migrate before September 2028.
Skip This If
When starting a new project, since Microsoft has scheduled the API's retirement.
Which one fits your use case?
Find your situation in the first column. The last column says when the pick is the wrong call.
| Choose it when | Pick | Look elsewhere when |
|---|---|---|
| Google's general labels are good enough for your images and you also want text, logo or SafeSearch results from the same call. | Google Cloud Vision API | Your categories are your own business terms, or when you need embeddings to find similar images. |
| Your images already live in S3 and you want general labels now with room to train custom labels later. | Amazon Rekognition | Custom models would sit idle most of the day, because Custom Labels bills by the running hour. |
| Your labels are your own business categories and you can check the model's output against a labeled sample before trusting it. | Gemini API (image understanding) | You need the same output for the same image every time, or a calibrated confidence score per label. |
| The task needs reasoning about the image rather than a label, and you already run on the OpenAI API. | OpenAI API (GPT vision) | You are labeling millions of images with a fixed vocabulary, where a label API costs a fraction of a flagship model. |
| Your images need reading and reasoning, such as forms, charts or side-by-side comparisons, more than a list of labels. | Anthropic Claude (vision) | You need face identification, exact counts, or precise bounding boxes. |
| The labels must follow your own taxonomy and you need to search and filter the labeled library afterward. | Mixpeek | You want Google- or AWS-style general labels on a handful of images, with nothing to search later. |
| You have GPU capacity and want labels and similarity search without sending images to a third party. | SigLIP 2 / CLIP (self-hosted) | Nobody on the team can operate model serving, or a fixed category set is stable enough to train a supervised classifier. |
| The thing you need to recognize is specific to your domain and you can label a few hundred examples. | Roboflow | General labels are enough, since a label API needs no training data at all. |
Put image recognition to work
Connect a bucket and Mixpeek runs the whole image recognition pipeline for you: extraction, indexing, and search over your own objects. No models to wire up, nothing to host.
Start with ManagedAlready have vectors?
Keep your embeddings on your own cloud and run dense, sparse, and BM25 search directly on object storage. From $25/mo.
Start with MVSFrequently Asked Questions
What is the best image recognition API?
For general labels with no setup, Google Cloud Vision or Amazon Rekognition. Rekognition is cheaper per image at $1.00 per 1,000, and Google returns text, logos and SafeSearch in the same call at $1.50 per 1,000. For labels in your own words, use a vision-language model such as Gemini, GPT or Claude with your label list in the prompt. For labels that must follow your own taxonomy across a library you will search later, index the images with a tool like Mixpeek. Test whichever you pick on a labeled sample of your own images.
How much does an image recognition API cost per 1,000 images?
Checked October 14, 2026: Amazon Rekognition DetectLabels is $1.00 per 1,000 for the first million a month. Google Cloud Vision label detection is $1.50 per 1,000 after 1,000 free. Azure AI Vision tags are $1.00 per 1,000. Token-billed models depend on image size: a 1-megapixel image is about $0.34 per 1,000 on Gemini 3.5 Flash-Lite, $5.18 on Claude Opus 5.5 and $12.29 on gpt-6-astra, plus output tokens.
Google Vision vs Amazon Rekognition vs Azure AI Vision: which should I use?
Pick Rekognition if your images are in S3, you want the lowest per-image price, or you may need to train custom labels later. Pick Google Cloud Vision if you also want text, logo, landmark or SafeSearch results from the same request. Avoid starting new work on Azure AI Vision Image Analysis: Microsoft retires it on September 25, 2028 (migration guide).
Can I train an image recognition API on my own labels?
Yes, in four ways. Train a model on labeled examples with Amazon Rekognition Custom Labels or Roboflow. List your labels in a prompt to Gemini, GPT or Claude, with no training at all. Score images against your own label text with an open model such as SigLIP 2. Or match each image against a reference set you define, which is how Mixpeek taxonomies work. The Cloud Vision API itself returns only Google's own labels.
Should I use a vision-language model instead of a label API?
Use a vision-language model when your categories are your own, change often, or need reasoning about the image. Use a label API when you want a calibrated confidence score per label, the same output for the same image every time, and a fixed per-image price. On input cost the cheapest models now undercut label APIs: about $0.13 per 1,000 images on Claude Haiku 5.5 and $0.08 per 1,000 on Gemini 3.5 Flash-Lite at low media resolution, before output tokens.
Is Azure AI Vision Image Analysis being retired?
Yes. Microsoft will retire the Image Analysis API, versions 3.2 and 4.0, on September 25, 2028, and calls fail after that date. The retirement covers cloud APIs and both connected and disconnected containers. Microsoft points OCR users to Document Intelligence, face users to the Face API, embedding users to Cohere Embed or SigLIP, and everything else to Foundry models or Content Understanding (migration guide).
See how Mixpeek handles this
Purpose-built for image recognition apis, not bolted on.
Computer Vision
Mixpeek's dedicated page for this capability: architecture, benchmarks, and how it works.
Talk to a Mixpeek engineer: free
30 minutes. Bring your use case and we'll tell you exactly what would work and what wouldn't.
Explore Other Curated Lists
Best Vision-Language Models (VLMs)
A vision-language model reads images (and often video) alongside text and answers in natural language. We compared the leading 2026 VLMs, proprietary frontier APIs and open-weight models you can self-host, on multimodal reasoning, OCR and document understanding, license, and cost.
Best Multimodal AI APIs
A hands-on comparison of the top multimodal AI APIs for processing text, images, video, and audio through a single integration. We evaluated latency, modality coverage, retrieval quality, and developer experience.
Best Feature Extraction APIs
A technical evaluation of APIs for extracting features, embeddings, and structured data from unstructured content. Covers text, image, video, and audio feature extraction for AI applications.