All endpoints
Place Photos

Place Photos API

Get photos and videos for a Google Maps place by place_id. Returns photo URLs (both standard and high-resolution), coordinates, and capture timestamps. Photos and videos are returned together — filter on the type field client-side if you only want one. Each page returns up to 100 items and is billed as one request.

Price: $0.003 per page
Free tier: 50 requests/month
Endpoint
GET /v1/places/photos

Parameters

place_id *
Google place_id, as returned by Places Search
pages
Number of pages to fetch, 1-10 (default: 1). Each page returns up to 100 items and is billed as one request
country
2-letter region code (default: us)
language
2-letter language code (default: en)

Response fields

photos
Mixed array of photos and videos, aggregated across all fetched pages. Filter on the type field if you only want one
photo_id
Stable photo identifier
type
photo or video
photo_url
Standard-resolution image URL
photo_url_large
High-resolution image URL (typically 3000-4000px wide). Null when no large variant exists (some videos and older photos)
video_thumbnail_url
Video thumbnail URL (only set when type=video)
latitude
Capture latitude (may be null)
longitude
Capture longitude (may be null)
photo_datetime_utc
ISO 8601 capture datetime (UTC)
photo_timestamp
Unix timestamp (seconds)
count
Total photos returned across all pages
pages
Number of pages actually fetched (may be less than requested if photos ran out)

Example Request

curl "https://apidirect.io/v1/places/photos?place_id=ChIJifIePKtZwokRVZ-UdRGkZzs&pages=2" \
  -H "X-API-Key: YOUR_API_KEY"

Example Response

{
  "photos": [
    {
      "photo_id": "CIABIhAViB6GuQB0Czq6u1UIyD60",
      "type": "photo",
      "photo_url": "https://lh3.googleusercontent.com/gps-cs-s/APNQkAH...",
      "photo_url_large": "https://lh3.googleusercontent.com/gps-cs-s/APNQkAH...=w4280-h3407-k-no",
      "video_thumbnail_url": null,
      "latitude": 40.7546469,
      "longitude": -73.9868158,
      "photo_datetime_utc": "2026-05-30T00:00:00.000Z",
      "photo_timestamp": 1780099200
    }
  ],
  "count": 200,
  "pages": 2
}

Frequently asked questions

How does the pages parameter work?

pages is a count, not a page number. pages=3 fetches the first 3 pages of 100 photos each (up to 300 total) in a single request, billed as 3 requests. If a place has fewer photos than pages * 100, the response stops early — but billing is based on the requested pages value, so set it to the smallest count that fits your needs.

Can I get just videos or just photos?

Photos and videos are returned together — check the type field on each item ("photo" or "video") and filter client-side to keep one or the other.

What's the resolution of photo_url_large?

Typically 3000-4000 pixels wide — the original size as captured. Some items don't have a large variant (older photos, some videos) and photo_url_large will be null in that case.

Are these URLs stable?

The URLs are hosted on Google's CDN. They are stable for at least the medium term but may change if Google rotates its CDN tokens. Cache the image, not the URL, for long-term use.

How does pricing work?

You only pay for successful requests. The Place Photos API costs $0.003 per page. There are no monthly fees or commitments. You get 50 free requests per endpoint every month.

Do I need a credit card to start?

No. You can sign up and use the free tier (50 requests/endpoint/month) without adding a payment method. You only need to add a card when you want to exceed the free tier.

Are there rate limits?

Yes, there's a concurrency limit of 3 simultaneous requests per endpoint per user. If you need more, just get in touch.

Start using the Place Photos API

Get your API key and start making requests in minutes. 50 requests/month free every month.

Get API Key