Dish Photo Matcher — Google Maps Food Photos to Menu Items avatar

Dish Photo Matcher — Google Maps Food Photos to Menu Items

Pricing

from $12.00 / 1,000 photo matcheds

Go to Apify Store
Dish Photo Matcher — Google Maps Food Photos to Menu Items

Dish Photo Matcher — Google Maps Food Photos to Menu Items

Match restaurant food & drink photos to menu items with AI vision. Scrapes Google Maps guest photos (or takes your photo URLs) plus your menu, returns {photoUrl, dishName} pairs. More than a Google Maps photos scraper: every photo is AI-matched to a dish. No API keys needed.

Pricing

from $12.00 / 1,000 photo matcheds

Rating

0.0

(0)

Developer

Nomad.Dev

Nomad.Dev

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

4 days ago

Last modified

Categories

Share

Restaurant Dish Photo Matcher — Match Food Photos to Menu Items

Match restaurant food & drink photos to the menu items they actually show, using AI vision — no API keys, no setup. A menu without photos converts poorly; guest photos without labels are just noise. This actor joins the two:

  • Input: your menu (JSON array of items) + food/drink photos — either direct photoUrls, or a Google Maps placeUrl whose "Food & drink" guest photos are fetched automatically.
  • Output: one record per photo — {photoUrl, dishName, matched}, with dishName the exact menu item name or null when nothing matches.

More than a plain Google Maps photos scraper: instead of dumping raw guest-photo URLs, every photo is matched by AI vision to the menu item it shows.

Photos are matched in batches of 9 by visual appearance; hallucinated names (not on your menu) are filtered to null automatically. Ported from the production photo-matching pipeline of a dietary-restrictions travel app.

What you can build with it

  • Menu enrichment — attach a real guest photo to every dish on a parsed menu (delivery apps, restaurant sites, food discovery apps).
  • Google Maps photo labeling — turn an unlabeled pile of place photos into structured photo → dish data.
  • Menu photo verification — check which of your menu items actually have photographic evidence in guest uploads.
  • Food image classification against a known label set — unlike generic image-classification APIs, the label space is your menu, so results are directly usable.

No API keys needed

Photo fetching and AI matching both run on our managed keys, and their cost is already included in the per-photo price. No Google AI Studio signup, no Outscraper account, no proxy configuration.

Input example

{
"placeUrl": "https://www.google.com/maps/place/Katz's+Delicatessen,+205+E+Houston+St,+New+York",
"menuItems": [
{"name": "Pastrami on Rye", "category": "Sandwiches"},
{"name": "Matzo Ball Soup", "category": "Soups"}
]
}

menuItems accepts plain strings too: ["Pastrami on Rye", "Tiramisu"]. Fields originalName, category and description improve match quality.

Output example

photoUrldishNamematched
https://lh3.googleusercontent.com/p/AF1…Pastrami on Ryetrue
https://lh3.googleusercontent.com/p/AF2…Matzo Ball Souptrue
https://lh3.googleusercontent.com/p/AF3…nullfalse

Unmatched photos (interiors, receipts, dishes not on your menu) come back with dishName: null — they are analyzed and billed like any other photo, since confirming a non-match costs the same AI work as a match.

Chain it: scrape menu → match photos

The Google Maps Menu Scraper and AI Menu Parser actors produce menu records this actor accepts directly:

  1. Run Google Maps Menu Scraper on a place → structured menuItems.
  2. Feed those items plus the same placeUrl into this actor.
  3. Join on dishName — every dish now has a real guest photo.

Pricing — what does a run cost?

EventPrice
Actor start (covers photo fetching in place mode)$0.03
Per photo matched (or confirmed unmatched)$0.004

A typical run with the default 27 photos costs about $0.14, AI and photo-scraping costs included. Failed runs and diagnostic rows are never billed per-photo. Raw Google Maps photo scrapers charge less per photo, but return unlabeled URLs — here the per-photo fee includes the AI vision inference that turns each photo into a labeled photo → dish pair.

Prefer to pay Google and Outscraper directly and control your own quota? The Restaurant Dish Photo Matcher (BYO keys) actor is the same matcher at a lower per-photo price, with geminiApiKey / outscraperApiKey inputs.

FAQ

Why do some photos come back unmatched? Google Maps "Food & drink" galleries include drinks, interiors and dishes that aren't on the menu you supplied. matched: false is a real answer, not an error — filter on it.

photoUrls vs placeUrl — which should I use? photoUrls if you already have image URLs (from your own scrape or dataset). placeUrl to let the actor fetch the place's guest food photos for you. When both are set, photoUrls wins.

How many photos can one run match? Up to 100 (maxPhotos, default 27). Values above 100 are clamped, not rejected.

What AI model does the matching? Gemini Flash-Lite vision — fast and accurate for appearance matching, and its cost is included in the per-photo price.

Can I run it on non-restaurant photos? It works on any photo-vs-item-list matching where appearance decides — but it's tuned for food and drink.