Street View and 360 Panoramas, Addressed by Place Name
A Street View API you can call with a business name instead of coordinates, returning the panoramas attached to that place as rows.
When to use this skill
- The user wants a "street view api" or "google street view images" for a specific business.
- They need 360 panoramas or exterior frontage shots for site surveys, real estate, insurance, or field-service prep.
- They have a place name or a Google Maps URL and do not want to geocode and pick a heading first.
- They want the video clips attached to a place rather than still photos.
Not for: bulk gallery download across a whole category (use the companion apify-google-maps-photo-download skill) or routing and drive times (johnvc/google-maps-directions-api). See references/actor-index.md.
Why this is not the official Street View endpoint
Street View Static renders one tile from a latitude, longitude, heading, pitch, and field of view you supply. Getting from "this restaurant" to "the right panorama facing the right way" is a geocoding and aiming problem you own. This skill instead lists the panoramas Google already associates with the place, so the aiming is already done and the input is a name.
What you get
One dataset row per image. result_type separates the row kinds:
image(full-size URL) andthumbnailpositionin the gallery sectionphoto_id, stable across runsdata_idandplace_titlecategory_id, echoing the filter that was applied- one
place_summaryrow per place withphotos_returnedandplace_categories
Prerequisites
- Apify account (sign up at https://apify.com?fpr=9n7kx3&fp_sid=awesomeskills).
- Authentication via
apify login, or anAPIFY_TOKENenvironment variable (Apify Console, Settings, Integrations).
The Actor
- Store page: https://apify.com/johnvc/google-maps-photos-api?fpr=9n7kx3&fp_sid=awesomeskills
- Actor ID:
johnvc/google-maps-photos-api - Pricing: pay per event; see the cost section below and
references/gotchas.mdfor live-price commands.
Run it with the Apify CLI
Street View and 360 panoramas for one place:
apify actors call "johnvc/google-maps-photos-api" -i '{"searchTerm":"Mozart Coffee Roasters, Austin TX","maxPlacesPerSearch":1,"photoCategory":"street_view","maxPhotosPerPlace":20}' \
--json \
--user-agent apify-awesome-skills/apify-google-street-view-api \
2>/dev/null
Panoramas for a list of sites you already hold URLs for:
apify actors call "johnvc/google-maps-photos-api" -i '{"placeUrls":["https://www.google.com/maps/place/..."],"photoCategory":"street_view"}' \
--json \
--user-agent apify-awesome-skills/apify-google-street-view-api \
2>/dev/null
Video clips instead of stills:
apify actors call "johnvc/google-maps-photos-api" -i '{"searchTerm":"Mozart Coffee Roasters, Austin TX","maxPlacesPerSearch":1,"photoCategory":"videos"}' \
--json \
--user-agent apify-awesome-skills/apify-google-street-view-api \
2>/dev/null
Confirm live pricing and the input schema before a large batch:
apify actors info "johnvc/google-maps-photos-api" --json \
--user-agent apify-awesome-skills/apify-google-street-view-api \
2>/dev/null
Every call carries the three flags this repo expects: --json, --user-agent apify-awesome-skills/apify-google-street-view-api, and 2>/dev/null.
Run it from Claude or another AI agent (MCP)
The Actor is MCP-ready. Add the hosted server URL:
https://mcp.apify.com/?tools=actors,docs,johnvc/google-maps-photos-api
Then ask, for example: "Get the Street View panoramas for this address and tell me whether the entrance looks step-free." MCP setup docs: https://docs.apify.com/platform/integrations/mcp
Workflow
- Identify the place by name plus city, or by its Google Maps URL. A URL costs nothing to resolve; a search adds one charge.
- Set
photoCategorytostreet_viewfor panoramas, orvideosfor clips. - Keep
maxPlacesPerSearchat 1 when you mean one specific site, so a loose name does not sweep neighbours. - Read the rows; check
photos_returnedon the summary row before concluding a place has no coverage. - Re-host anything you plan to display or archive.
Inputs
searchTerm(string): a place name, ideally with city and stateplaceUrls(array): Google Maps URLs, parsed locally at no API costdataId/dataIds(string, array): place identifiers you already holdphotoCategory(enum, usestreet_viewhere, orvideosfor clips)maxPlacesPerSearch(integer, default 3, max 20): keep at 1 for a single sitemaxPhotosPerPlace(integer, default 20, max 1000)hl(string, defaulten): interface language
Cost
Billing is pay per event, plus a negligible platform fee per dataset row. Prices below are the BRONZE tier at the time of writing; confirm live prices with the info command above.
- About $0.0015 per image returned.
- About $0.012 per search term, and nothing when you pass URLs or identifiers instead.
- About $0.001 to start a run.
- Checking 50 sites by URL, a few panoramas each, is well under $1.
Suggested confirmation thresholds: warn the user over about $5; get explicit confirmation over about $20. Present cost as "around $X", never a guarantee.
Honest limits
- Street View coverage is uneven. Rural addresses, interior units, and new construction often have none, and an empty result is a real answer rather than a failure.
- The panoramas are whatever Google associates with the place. You cannot request a specific heading, pitch, or field of view the way the Static endpoint lets you.
- No capture dates, so there is no way to tell how old a panorama is or to request an older one.
- Image URLs are Google-hosted and can rotate, so hotlinking them long term is unreliable.
Troubleshooting
- Empty result for
street_view: that place has no panoramas attached. Readplace_categorieson the summary row to see which sections do exist. - Wrong building: the name matched a neighbour. Pass the Google Maps URL instead of a search term.
- Several places came back when you wanted one: set
maxPlacesPerSearchto 1. - An
errorrow: clean failure, stated plainly; retry once before investigating.
See references/gotchas.md for cost guardrails and error recovery, and references/actor-index.md for the Actor routing table.
Related Actors
- Google Maps Places API: https://apify.com/johnvc/google-maps-places-api?fpr=9n7kx3&fp_sid=awesomeskills
- Google Maps Directions API: https://apify.com/johnvc/google-maps-directions-api?fpr=9n7kx3&fp_sid=awesomeskills
- Google Maps Contributor Reviews API: https://apify.com/johnvc/google-maps-contributor-reviews-api?fpr=9n7kx3&fp_sid=awesomeskills
- Apple Maps API: https://apify.com/johnvc/apple-maps-api?fpr=9n7kx3&fp_sid=awesomeskills