For Agents
Upload, list, update, and delete user-contributed 360 photos and photo sequences on Google Maps Street View. Batch endpoints handle many photos in one call.
Use for: I want to upload a 360 photo to Google Maps, Upload an entire 360 photo sequence captured on a drive, List all the 360 photos I have published, Delete a 360 photo I uploaded by mistake
Not supported: Does not render maps, geocode addresses, or browse third-party Street View imagery — use for publishing and managing your own 360 photos on Google Maps only.
The Street View Publish API lets developers and AI agents upload, list, update, and delete user-contributed 360 photos and photo sequences on Google Maps. Single 360 photos and ordered photo sequences are uploaded via a startUpload-then-create flow that returns an upload URL the client streams content into. The API exposes batch operations for retrieving, updating, and deleting many photos at once, and supports attaching metadata such as capture time, place IDs, and connections that link adjacent photos.
Install Jentic One Beta
Jentic One is a self-hosted execution layer for AI agents. It lets your agent call the Street View Publish API, or any other public or private API you need. You set the rules, the agent never sees your credentials, and every call is logged.
Two steps, two machines. Install the instance in a safe environment, then register your agent from wherever it runs.
Step 1: Jentic One Host machine
# On the machine that will host your Jentic One instance:
curl -fsSL https://raw.githubusercontent.com/jentic/jentic-one/main/tools/install.sh | shStep 2: Agent machine
# On the machine where your agent runs (keep this separate from the instance):
curl -fsSL https://raw.githubusercontent.com/jentic/jentic-one/main/tools/install.sh | sh
jentic register # connects your agent to your Jentic One instanceJentic One is in public beta. The setup above keeps your agent separate from the instance, which is what you want before using real credentials: an agent running as the same OS user as Jentic One can read its stored keys directly. Just evaluating? A single local install is fine to start. See the secure deployment guide for the tiers.
What an agent can do with Street View Publish API.
Upload a 360 photo via the startUpload session and create-photo flow
Upload a 360 photo sequence (e.g. driven route) via startUpload for sequences
List, get, update, and delete a single 360 photo on Google Maps
Batch get, update, or delete many photos with one call
Attach metadata — capture time, place IDs, heading — to a photo
Connect adjacent photos to enable navigation between them in Street View
Patterns agents use Street View Publish API for, with concrete tasks.
★ Tourism Operator 360 Tours
A tourism operator publishes 360 photos of guided tour stops to Google Maps so prospective visitors can preview each location. The Street View Publish API exposes photo:startUpload to obtain an upload URL, then photo POST to register the uploaded image with capture time, lat/lng, and place ID metadata so the photo appears on the right map listing.
POST /v1/photo:startUpload, stream the JPEG to the returned URL, then POST /v1/photo with the upload reference, captureTime, and placeIds=['ChIJabc'].
Vehicle-Captured Sequence Upload
A surveyor uploads a continuous 360 photo sequence captured from a roof-mounted rig along a driven route. The Street View Publish API exposes photoSequence:startUpload to allocate a sequence-scoped upload URL, after which POST /v1/photoSequence registers the sequence with route metadata. Long-running processing happens server-side and is polled via GET /v1/photoSequence/{sequenceId}.
POST /v1/photoSequence:startUpload, upload the GPMF-tagged video, POST /v1/photoSequence with the upload reference, then poll GET /v1/photoSequence/{sequenceId} until processing completes.
Bulk Place ID Re-Tagging
Re-tag a backlog of previously uploaded 360 photos with corrected Google Place IDs after a place merge. The API exposes POST /v1/photos:batchUpdate, which accepts up to 20 photo updates per call so the entire backlog can be re-tagged with a small number of batched requests.
POST /v1/photos:batchUpdate with updatePhotoRequests=[{photo: {photoId: 'p1', places: [{placeId: 'ChIJxyz'}]}, updateMask: 'places'}, ...].
AI Agent 360 Photo Curation
An AI agent assigned to curate a customer's published 360 photo set lists the customer's photos via Jentic, identifies any that lack place IDs, then issues a batch update to enrich them. Through Jentic, the agent searches for the photos.list and photos.batchUpdate operations, loads each schema, and executes — credentials never enter the agent context.
Search Jentic for 'list my Street View photos', call GET /v1/photos, identify those with no places set, then POST /v1/photos:batchUpdate to attach the resolved place IDs.
14 endpoints — the street view publish api lets developers and ai agents upload, list, update, and delete user-contributed 360 photos and photo sequences on google maps.
METHOD
PATH
DESCRIPTION
/v1/photo:startUpload
Start an upload session for a 360 photo
/v1/photo
Create a 360 photo record from an uploaded asset
/v1/photo/{photoId}
Get a 360 photo by ID
/v1/photos
List the caller's 360 photos
/v1/photos:batchUpdate
Batch update many photos in one call
/v1/photos:batchDelete
Batch delete many photos in one call
/v1/photoSequence:startUpload
Start an upload session for a 360 photo sequence
/v1/photoSequence
Create a 360 photo sequence record from an uploaded asset
/v1/photo:startUpload
Start an upload session for a 360 photo
/v1/photo
Create a 360 photo record from an uploaded asset
/v1/photo/{photoId}
Get a 360 photo by ID
/v1/photos
List the caller's 360 photos
/v1/photos:batchUpdate
Batch update many photos in one call
/v1/photos:batchDelete
Batch delete many photos in one call
/v1/photoSequence:startUpload
Start an upload session for a 360 photo sequence
/v1/photoSequence
Create a 360 photo sequence record from an uploaded asset
Three things that make agents converge on Jentic-routed access.
Credential isolation
Street View Publish OAuth credentials are stored in the Jentic vault (MAXsystem) and exchanged for scoped, short-lived access tokens on each call. User refresh tokens never enter the agent context.
Intent-based discovery
Agents search Jentic with intents like 'upload a 360 photo to Street View' or 'list my Street View photos', and Jentic returns the matching photo:startUpload, photo create, or photos.list operation along with its request schema.
Time to first call
Direct Street View Publish integration: 1-2 days to wire OAuth, the two-step upload flow, and metadata fields. Through Jentic: under 30 minutes to discover and execute the upload pair.
Alternatives and complements available in the Jentic catalogue.
Specific to using Street View Publish API through Jentic.
What authentication does the Street View Publish API use?
The Street View Publish API uses OAuth 2.0 with the streetviewpublish scope, on behalf of the user that owns the published photos. Through Jentic, OAuth credentials are stored in the Jentic vault (MAXsystem) and exchanged for short-lived access tokens, so refresh tokens never enter the agent context.
Can I upload a 360 photo with the Street View Publish API?
Yes. The flow is two calls: POST /v1/photo:startUpload returns an upload URL the client streams the JPEG to; then POST /v1/photo with the upload reference plus metadata (captureTime, lat/lng, place IDs) registers the photo on Google Maps.
What are the rate limits for the Street View Publish API?
Default project quotas allow several hundred requests per minute, with batch endpoints accepting up to 20 photos per call to keep large updates within budget. Quotas can be inspected and raised in the Google Cloud Console under IAM and admin > Quotas.
How do I publish a 360 photo through Jentic?
Search Jentic for 'upload a 360 photo to Street View', load the photo:startUpload and photo create schemas, and execute. The agent first calls POST /v1/photo:startUpload, streams the photo to the returned URL, then calls POST /v1/photo with the upload reference and capture metadata.
Is the Street View Publish API free?
The API is free to use for accounts publishing their own 360 content to Google Maps. Standard Google Cloud project quotas apply. There is no per-photo or per-call charge.
Can I upload a video sequence rather than individual photos?
Yes. POST /v1/photoSequence:startUpload allocates an upload URL for a sequence (e.g. a 360 video with GPMF telemetry from a driven route). After the content is uploaded, POST /v1/photoSequence registers the sequence and Google processes it server-side into discrete connected photos.
GET STARTED