GET/api/v4/locations-by-ids

Get locations by IDs

Returns full location information for a specified set of location IDs in one request.

Requires an API key. See Authentication for header format and key rotation.

Parameters

Query

NameTypeRequiredDescriptionDefault
idsstringrequiredJSON-encoded array of base64 location IDs, e.g. `["TG9jYXRpb246MTgwMDI4OQ=="]`. URL-encode the value.

Responses

200Array of full location objects, one per resolved ID. Unknown IDs are omitted.
{
  "data": {
    "getLocationsByIds": [
      {
        "id": "TG9jYXRpb246MTgwMDI4OQ==",
        "databaseId": 1800289,
        "accountId": 62670,
        "storeId": null,
        "name": "Jenny Home",
        "archived": false,
        "archivedAt": null,
        "street": "19 east, 5th B cross road, Trinity Enclave Main Rd, Banjara Layout",
        "city": "Bengaluru",
        "stateIso": "KA",
        "postalCode": "560043",
        "countryIso": "IN",
        "countryCode": "91",
        "latitude": "13.0334524",
        "longitude": "77.6669171",
        "phone": "8073326913",
        "additionalPhones": [],
        "bizUrl": null,
        "hideAddress": false,
        "categoryId": 15,
        "subCategoryId": 1432,
        "subCategoryName": "Restaurants",
        "additionalCategoryIds": [],
        "description": "This is a standalone duplex house. A comfortable, private villa located in the Banjara Layout neighbourhood of Bengaluru, offering spacious duplex living with easy access to the surrounding Trinity Enclave area and central Bengaluru.",
        "contentPreferredLanguage": "ENGLISH",
        "businessHours": [],
        "moreHours": [],
        "package": "PREMIUM",
        "planId": 3797,
        "planName": "Launch",
        "folderId": "d90630a7-7af0-450f-bdfe-6457eb438b1f",
        "folderName": "root",
        "tags": ["all"],
        "temporarilyClosed": false,
        "ownerName": null,
        "ownerEmail": null,
        "paymentMethods": [],
        "locationPhotos": [],
        "isRestaurant": true,
        "voiceStatus": 3,
        "yearOfIncorporation": null,
        "placeActionLinks": [
          {
            "placeActionType": "FOOD_ORDERING",
            "uri": "https://order.example.com",
            "isPreferred": true,
            "name": "locations/1944.../placeActionLinks/54ada85bc246058a",
            "submissionStatus": "success",
            "submissionMessage": "Already up to date on Google.",
            "lastSubmittedAt": "2026-07-08T12:14:36Z"
          }
        ],
        "discoveredPlaceActionLinks": [
          {
            "placeActionType": "APPOINTMENT",
            "uri": "https://book.example.com",
            "isPreferred": false,
            "name": "locations/1944.../placeActionLinks/abc123",
            "providerType": "MERCHANT",
            "isEditable": true
          }
        ]
      }
    ]
  }
}
401Unauthenticated — missing or invalid API key.
429Rate limit exceeded. Retry after the `Retry-After` header value.

Fetches full location details for a specific set of IDs in a single request — far cheaper than one GET per location. Both active and archived locations resolve. Pass the IDs as a JSON-encoded array in the ids query parameter and URL-encode it.

Use case — hydrate a batch of IDs from a webhook or job. When you receive a list of location IDs (from your own store, a webhook payload, or a paginated locations list crawl), resolve them all at once: ?ids=["TG9jYXRpb246MTgwMDI4OQ==","TG9jYXRpb246MTgwMDI5MA=="]. IDs that don't exist in your account are silently dropped from the array rather than raising an error, so compare the returned count against what you requested to detect stale IDs.

Gotcha — the query key is ids. This endpoint reads the JSON array from the ids parameter. Batching many IDs into one call keeps you well under the rate limit versus looping single lookups; if you do fan out, honor the Retry-After header on a 429.

Each location returns placeActionLinks (the Google action links listingsAPI manages) and discoveredPlaceActionLinks (links found directly on the business's Google profile that aren't managed yet). See the Place Action Links guide.

curl -X GET 'https://listingsapi.com/api/v4/locations-by-ids?ids=<ids>' \
  -H "Authorization: API $LISTINGSAPI_KEY"