Skip to content
looot docs
Esc
↑↓navigate↵open⌘Jpreview
On this page

Search Google Maps business listings

Run job:maps.business.listings through the looot API: 1 provider, from $0.012 per call. Inputs, prices, output shape and code for curl, JavaScript and Python.

Search Google Maps business listings.

Job id maps.business.listings, in Maps & local (Maps & local). As of 2026-10-01, 1 provider serve it through 1 tool. Run job:maps.business.listings and looot picks one of them; with fallback on, a miss moves on to the next. See Jobs.

Inputs

This job has one tool, so it takes that tool’s fields. Any key you send passes through unchanged.

Name Type Required Description
categories array no business categories the categories you specify are used to search for business listings; if you don’t use this field, we will return business listings found in the specified location; you can specify up to 10 categories
description string no description of the element in SERP optional field the description of the business entity for which the results are collected; can contain up to 200 characters
filters array no Array-based filter expression. A single condition is a 3-element array: [field, operator, value]. Combine conditions with [“and”|“or”] between them: [condition, “and”, condition]. Max 8 filters. Operators: regex, not_regex, <, <=, >, >=, =, <>, in, not_in, like, not_like, match, not_match Use % with like/not_like as a wildcard. Example: Single: [“rating.value”, “>”, 3]
is_claimed boolean no indicates whether the business is verified by its owner on Google Maps
limit number no the maximum number of returned businesses
location_coordinate string no GPS coordinates of a location optional field location_coordinate parameter should be specified in the “latitude,longitude,radius” format the maximum number of decimal digits for “latitude” and “longitude”: 7 the value of “radius” is specified in kilometres (km) the minimum value for “radius”: 1 the maximum value for “radius”: 100000 example: 53.476225,-2.243572,200
offset number no offset in the results array of returned businesses optional field default value: 0 if you specify the 10 value, the first ten entities in the results array will be omitted and the data will be provided for the successive entities
order_by array no results sorting rules optional field you can use the same values as in the filters array to sort the results possible sorting types: asc, results will be sorted in the ascending order desc, results will be sorted in the descending order you should use a comma to set up a sorting parameter example: [“rating.value,desc”]note that you can set no more than three sorting rules in a single request you should use a comma to separate several sorting rules example: [“rating.value,desc”,“rating.votes…
title string no title of the element in SERP optional field the name of the business entity for which the results are collected; can contain up to 200 characters

Providers and prices

A call that fails at the provider costs $0. See What’s free.

Output

The run’s result holds the provider’s answer. Signed in, looot inspect dataforseo-business-data-business-listings-search-live-ai prints its fields.

Run it

Every call needs your API token in LOOOT_TOKEN; Sign in shows how to get one. Each run also needs a new idempotency key, so a retry never pays twice. With wait: 30 the answer comes back inline when the run ends within 30 seconds. Otherwise you get the running run back: poll GET /v1/runs/<runId>.

Example input with placeholder values:

curl -X POST "https://api.looot.ai/v1/runs" \
  -H "Authorization: Bearer $LOOOT_TOKEN" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"endpointId":"job:maps.business.listings","input":{},"wait":30}'
const response = await fetch("https://api.looot.ai/v1/runs", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.LOOOT_TOKEN}`,
    "Content-Type": "application/json",
    "Idempotency-Key": crypto.randomUUID(),
  },
  body: JSON.stringify({
    endpointId: "job:maps.business.listings",
    input: {},
    wait: 30,
  }),
});
const run = await response.json();
console.log(run.status, run.result);
import os
import uuid

import requests

response = requests.post(
    "https://api.looot.ai/v1/runs",
    headers={
        "Authorization": f"Bearer {os.environ['LOOOT_TOKEN']}",
        "Idempotency-Key": str(uuid.uuid4()),
    },
    json={
        "endpointId": "job:maps.business.listings",
        "input": {},
        "wait": 30,
    },
    timeout=90,
)
run = response.json()
print(run["status"], run.get("result"))

To pin one provider, send its tool id as endpointId instead of job:maps.business.listings.

Was this page helpful?