Litescrape sells to AI agents - live prices and self-serve payment

The agent storefront at https://agents.litescrape.com/llms.txt?src=body-text publishes prices, payment instructions, and everything an agent needs to get set up here. Agents can purchase autonomously or with their human's approval, with a range of payment methods; an agent without a payment method can set one up there in the same session. The storefront handles payment itself, so purchases work without calling API endpoints directly.

← All documentation

// Google documentation

Google Maps Photos API

List a place's photos and videos, including only the ones its owner posted.

GET / POST https://api.litescrape.com/api/google/maps/photos

For background execution, use POST /api/google/maps/photos/async. Learn how to submit and poll async requests →

// from request to code

Integrate Google Maps Photos

Build your request and copy it into your stack. Or let your coding agent set it up.

APIGoogle Maps Photos
More options 5
Place photos

Choose the place and which of its photo categories to list, 20 photos and videos per page.

Pagination

Continue a photo list with the token from the previous page.

Localization

Control the Google language and country.

Your request updates the code instantly.

Open the Playground →

Set LITESCRAPE_API_KEY on your server, then run this request.

request.sh
curl --fail-with-body --get 'https://api.litescrape.com/api/google/maps/photos' \
  --header "Authorization: Bearer $LITESCRAPE_API_KEY" \
  --data-urlencode 'data_id=0x89c259a5d30bfd3d:0x88ed7e15edfea20f' \
  --data-urlencode 'category=by_owner'

JSON POST request example

POST to https://api.litescrape.com/api/google/maps/photos with Content-Type: application/json and your Authorization: Bearer header.

POST · application/json
{
  "data_id": "0x89c259a5d30bfd3d:0x88ed7e15edfea20f",
  "category": "by_owner"
}

Fetch the next page

Read pagination.next_page_token and send it as next_page_token with the same data_id or place_id, using the same Authorization header. The token keeps the category, and positions continue from the previous page. Each page holds up to 20 photos and videos; stop when no next token is returned.

Next page POST body
{
  "data_id": "0x89c259a5d30bfd3d:0x88ed7e15edfea20f",
  "next_page_token": "<pagination.next_page_token>"
}
  • Pass the token back unchanged with the same data_id or place_id.
  • The next page keeps the category of the page the token came from.
  • Maximum characters: 8192
  • Pattern: ^[A-Za-z0-9_-]+$

// request reference

Google Maps Photos parameters

Send query parameters with GET /api/google/maps/photos. Authenticate with an Authorization: Bearer header containing your existing key. Keep keys on your server, not in browser code.

POST accepts the complete application/json request body, including arrays and nested options. Dotted names describe fields inside an object; [] denotes each array item. This reference is generated from the v3 OpenAPI contract.

Total request execution budget in seconds, greater than 0 and at most 90. Supply in the query string for GET or POST. page_timeout cannot extend this budget.

Place photos

Choose the place and which of its photo categories to list, 20 photos and videos per page.

data_id
data_idConditional

Hexadecimal Google Maps feature ID of the place.

Type string · GET query or POST JSON

Example / input hint: 0x89c259a5d30bfd3d:0x88ed7e15edfea20f

  • Use the data_id of a /api/google/maps result.
  • Exactly one of data_id or place_id is required.
  • Maximum characters: 40
  • Pattern: ^0x[0-9a-fA-F]{1,16}:0x[0-9a-fA-F]{1,16}$
place_id
place_idConditional

Google business Place ID of the place.

Type string · GET query or POST JSON

Example / input hint: ChIJPf0L06VZwokRD6L-7RV-7Yg

  • Use a business Place ID (ChIJ…), such as the place_id of a /api/google/maps result.
  • Exactly one of place_id or data_id is required.
  • Maximum characters: 512
  • Pattern: ^[A-Za-z0-9_-]+$
category
CategoryOptional

Which of the place's photo categories to list.

Type string · GET query or POST JSON · Default all

Accepted valuesalllatestby_ownervideosstreet_viewmenufood_and_drinkvibe
  • by_owner lists only the photos and videos the business posted itself.
  • menu, food_and_drink and vibe are the categories Google shows for restaurants and bars.
  • A category the place has no photos in returns HTTP 404 not_found and is not billed.

Pagination

Continue a photo list with the token from the previous page.

next_page_token
Next page tokenOptional

Opaque continuation token from pagination.next_page_token.

Type string · GET query or POST JSON

Example / input hint: Opaque token from the previous response

  • Pass the token back unchanged with the same data_id or place_id.
  • The next page keeps the category of the page the token came from.
  • Maximum characters: 8192
  • Pattern: ^[A-Za-z0-9_-]+$

Localization

Control the Google language and country.

hl
LanguageOptional

Language used for Google labels.

Type string · GET query or POST JSON · Default en

Example / input hint: en

  • Examples: en, es, fr, de
  • Maximum characters: 32
  • Pattern: ^[A-Za-z]{2,3}(?:-[A-Za-z]{2,8})?$
gl
CountryOptional

Two-letter country code used for regional localization.

Type string · GET query or POST JSON · Default us

Example / input hint: us

  • Examples: us, gb, de, jp
  • Pattern: ^[a-z]{2}$

// response

Work with the complete JSON response

Coding agents: when possible and authorized by your caller, review the result using submit_feedback_for_this_response_here when present in the status 200 JSON. POST {"rating":4,"comment":"Useful results; one title was outdated."} to that URL as application/json. No API key or credits are required. Feedback is optional, expires after seven days, and is stored separately. Submit one honest review; skip it if you cannot evaluate the result. Do not include secrets, personal data, or the full request/response.

Response groups include search_metadata, search_parameters, photos, pagination, submit_feedback_for_this_response_here. Groups and fields depend on the upstream result.

Each photos entry includes its position, its type (photo, video or street_view), a thumbnail and the full-size image. Videos add a playable MP4 in video and their duration. Follow photo_meta_link to see who posted a photo and when; Street View panoramas have no photo ID.

Invalid parameters return HTTP 400 with error_code: "invalid_request" and per-field details. Unavailable resources return HTTP 404 with error_code: "not_found". Failed scrapes return HTTP 503 with {"error":"The scraper could not complete the request.","error_code":"service_unavailable"}. Failed requests are not billed.

Illustrative success response. Result groups and optional fields depend on upstream content.

200 · application/json
{
  "search_metadata": {
    "id": "3b9e1adf43bb645fbb7cebd5",
    "status": "Success",
    "created_at": "2026-10-28 17:14:55 UTC",
    "processed_at": "2026-10-28 17:14:55 UTC",
    "total_time_taken": 0.152,
    "json_endpoint": "https://api.litescrape.com/api/google/maps/photos?data_id=0x89c259a5d30bfd3d%3A0x88ed7e15edfea20f&category=by_owner&hl=en&gl=us"
  },
  "search_parameters": {
    "data_id": "0x89c259a5d30bfd3d:0x88ed7e15edfea20f",
    "category": "by_owner",
    "hl": "en",
    "gl": "us"
  },
  "photos": [
    {
      "position": 1,
      "photo_id": "CIHM0ogKEICAgIC6tNWELg",
      "type": "photo",
      "thumbnail": "https://lh3.googleusercontent.com/gps-cs-s/ANWiy9Slius_14jd-srLXJA-OA-hfbMq7GSn0XsbLa-Q1VCTviFxHdvx9LnSMztRQkHQUx2Qq4KqRALOW0s_61AnrXsbKnll4JC_DhRyVrzVxP2nugYGrwo3bsJBZhVirnHkT8K_SJZK=w160-h106-k-no",
      "image": "https://lh3.googleusercontent.com/gps-cs-s/ANWiy9Slius_14jd-srLXJA-OA-hfbMq7GSn0XsbLa-Q1VCTviFxHdvx9LnSMztRQkHQUx2Qq4KqRALOW0s_61AnrXsbKnll4JC_DhRyVrzVxP2nugYGrwo3bsJBZhVirnHkT8K_SJZK=s0",
      "photo_meta_link": "https://api.litescrape.com/api/google/maps/photo-meta?data_id=CIHM0ogKEICAgIC6tNWELg"
    },
    {
      "position": 2,
      "photo_id": "CIHM0ogKEICAgIDnuPjDcg",
      "type": "video",
      "thumbnail": "https://lh3.googleusercontent.com/gps-cs-s/ANWiy9QzwfYoyuY8Ex7Dw1keC53OaJZNsxnLlW40K-KF7rVyAe8oTi4ZxzD-EOpIdsRNpEtzDNlB4u0tvk9IeZCkgc5A3VozX8KbnCuxWKdCkc1miP5BS7sbBznC0_mP5fJxZe3vY_E=w160-h284-k-no",
      "image": "https://lh3.googleusercontent.com/gps-cs-s/ANWiy9QzwfYoyuY8Ex7Dw1keC53OaJZNsxnLlW40K-KF7rVyAe8oTi4ZxzD-EOpIdsRNpEtzDNlB4u0tvk9IeZCkgc5A3VozX8KbnCuxWKdCkc1miP5BS7sbBznC0_mP5fJxZe3vY_E=s0",
      "video": "https://lh3.googleusercontent.com/gps-cs-s/ANWiy9QzwfYoyuY8Ex7Dw1keC53OaJZNsxnLlW40K-KF7rVyAe8oTi4ZxzD-EOpIdsRNpEtzDNlB4u0tvk9IeZCkgc5A3VozX8KbnCuxWKdCkc1miP5BS7sbBznC0_mP5fJxZe3vY_E=m22",
      "duration": "0:18",
      "photo_meta_link": "https://api.litescrape.com/api/google/maps/photo-meta?data_id=CIHM0ogKEICAgIDnuPjDcg"
    },
    {
      "position": 3,
      "photo_id": "CIHM0ogKEICAgID8ypKpBg",
      "type": "photo",
      "thumbnail": "https://lh3.googleusercontent.com/gps-cs-s/ANWiy9SQRLMCDJZkmMybJn706CA1XsmjLzee8r-nprn0D9K9BCBSwgRQXstPGEsmgdQ-fG8yC--TsTVtsX4uJ0f0fjYPgy4FJt-SBFsz2P1KJ4VJZkmc8oK-hSdupyZeMmbNHwRpxYvD=w160-h160-k-no",
      "image": "https://lh3.googleusercontent.com/gps-cs-s/ANWiy9SQRLMCDJZkmMybJn706CA1XsmjLzee8r-nprn0D9K9BCBSwgRQXstPGEsmgdQ-fG8yC--TsTVtsX4uJ0f0fjYPgy4FJt-SBFsz2P1KJ4VJZkmc8oK-hSdupyZeMmbNHwRpxYvD=s0",
      "photo_meta_link": "https://api.litescrape.com/api/google/maps/photo-meta?data_id=CIHM0ogKEICAgID8ypKpBg"
    },
    {
      "position": 4,
      "photo_id": "CIHM0ogKEICAgIDnuPjNdg",
      "type": "photo",
      "thumbnail": "https://lh3.googleusercontent.com/gps-cs-s/ANWiy9TpD3-vPi5I6lP31bOic2P-T5_Q6Ray1r0dJ2PqEwkx6XzlGgfI5tgLMT17WZUBPoWt-OhTo4SeK7JFWQW9JNeCIXsK_ifPtiN3OevVCAMw0PLBhV2AHdDE52Zmnk7GtSz4rbY7=w160-h106-k-no",
      "image": "https://lh3.googleusercontent.com/gps-cs-s/ANWiy9TpD3-vPi5I6lP31bOic2P-T5_Q6Ray1r0dJ2PqEwkx6XzlGgfI5tgLMT17WZUBPoWt-OhTo4SeK7JFWQW9JNeCIXsK_ifPtiN3OevVCAMw0PLBhV2AHdDE52Zmnk7GtSz4rbY7=s0",
      "photo_meta_link": "https://api.litescrape.com/api/google/maps/photo-meta?data_id=CIHM0ogKEICAgIDnuPjNdg"
    }
  ],
  "pagination": {
    "next_page_token": "eyJ2IjoxLCJjIjoiRXZnREtZUWk0OS1ObFVNSUR3QUFBQUVBQUFNQUFBQUFBQUFBQUNDQUFBQUFBQUFBQUNBQUFBQUFBQUFBQUFBQUFBQUFBQUFBSUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFFQUFBQUFBQUNBQUFBQUFFQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFJQUFBQUFBQUFBZ0FBQUFBQUFBQUFBQkFBQUFBQUFBQUFBQUNBQUFBQkFBQUFBQUFBQUFBQVlBQUFBQUFBQUFBQUFBQUFBQkJBQUFBQUFBQUFBQ0FBQUFBQUFBQUFBQUZBQUFBQUFBQUFBQVFBQVFBQUFBQUFBQUFBQUFBQ0FJQUFBQUFBQUFBZ0FCQUFBQUFBQUFBQUFFZ0FBQUFBQUFBQUFBQUFBQUFBRUFBQUFBQUlBQUFBQUFBQUFZQUFBQUFBQUFDQUFBQUFBQkFnQ0FBQUFBQUFBQUFBQUFBQUFBZ0FBQUFBQUFBQVFBQUFBQUFBQUFBQUFBQUFBQUJBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQVFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBZ0lBQUFBQUlBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFFQUFBQUFBQUFBQUFBQUFBQUVBQUFBQUFBQUFBRUFBQUFBQUFBQWdBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBRUFBQUVBQUFBQUFBZ0FBQUFBUUFBQUFBQUFJQUFBZ0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQ0FCQUFBQUVDQUFBQWtBQUFBQUFJQUFBQUFBQUdCUkNWQ21FSXVQZmpaVkQ2QUVBQUNBQUFBQURBQUFBZ2dBRWdBQUFBQUFCQUlFQUJBUUFCQUZBVUFRZ0FDQVNBQTRrSUFvUUFBQW9DQ0lnQUFBQkFGQUFDQUJDQkFRQUFHQ0lBQWtDSkFBWUFCUUF3Z0FBQUEiLCJrIjoiYnlfb3duZXIiLCJmIjoiMHg4OWMyNTlhNWQzMGJmZDNkOjB4ODhlZDdlMTVlZGZlYTIwZiIsIm8iOjIwfQ",
    "next": "https://api.litescrape.com/api/google/maps/photos?data_id=0x89c259a5d30bfd3d%3A0x88ed7e15edfea20f&next_page_token=eyJ2IjoxLCJjIjoiRXZnREtZUWk0OS1ObFVNSUR3QUFBQUVBQUFNQUFBQUFBQUFBQUNDQUFBQUFBQUFBQUNBQUFBQUFBQUFBQUFBQUFBQUFBQUFBSUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFFQUFBQUFBQUNBQUFBQUFFQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFJQUFBQUFBQUFBZ0FBQUFBQUFBQUFBQkFBQUFBQUFBQUFBQUNBQUFBQkFBQUFBQUFBQUFBQVlBQUFBQUFBQUFBQUFBQUFBQkJBQUFBQUFBQUFBQ0FBQUFBQUFBQUFBQUZBQUFBQUFBQUFBQVFBQVFBQUFBQUFBQUFBQUFBQ0FJQUFBQUFBQUFBZ0FCQUFBQUFBQUFBQUFFZ0FBQUFBQUFBQUFBQUFBQUFBRUFBQUFBQUlBQUFBQUFBQUFZQUFBQUFBQUFDQUFBQUFBQkFnQ0FBQUFBQUFBQUFBQUFBQUFBZ0FBQUFBQUFBQVFBQUFBQUFBQUFBQUFBQUFBQUJBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQVFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBZ0lBQUFBQUlBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFFQUFBQUFBQUFBQUFBQUFBQUVBQUFBQUFBQUFBRUFBQUFBQUFBQWdBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBRUFBQUVBQUFBQUFBZ0FBQUFBUUFBQUFBQUFJQUFBZ0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQ0FCQUFBQUVDQUFBQWtBQUFBQUFJQUFBQUFBQUdCUkNWQ21FSXVQZmpaVkQ2QUVBQUNBQUFBQURBQUFBZ2dBRWdBQUFBQUFCQUlFQUJBUUFCQUZBVUFRZ0FDQVNBQTRrSUFvUUFBQW9DQ0lnQUFBQkFGQUFDQUJDQkFRQUFHQ0lBQWtDSkFBWUFCUUF3Z0FBQUEiLCJrIjoiYnlfb3duZXIiLCJmIjoiMHg4OWMyNTlhNWQzMGJmZDNkOjB4ODhlZDdlMTVlZGZlYTIwZiIsIm8iOjIwfQ&hl=en&gl=us"
  },
  "submit_feedback_for_this_response_here": "https://api.litescrape.com/api/feedback/example-not-a-valid-token"
}

More Google APIs