Locations
A location is one thing that receives reviews on one platform: a Google Business Profile location, an app in the App Store or Google Play, a Judge.me shop, a Trustpilot business unit, a Yotpo or REVIEWS.io store, a G2 product, or a Yelp, Tripadvisor or Booking.com listing. Locations are created by Prisma when you connect an account, and every review belongs to one. Plans are priced by connected locations: see Pricing.
The location object
{
"id": "loc_01KJ8P9W2C4D6F8G0H2J4K6M8N",
"platform": "google",
"connection_id": "con_01KJ8P7R5S3T1V9W7X5Y3Z1A2B",
"name": "Café Ruzafa",
"address": "Carrer de Sueca 10, Valencia",
"url": "https://maps.google.com/?cid=1234567890",
"external_id": "accounts/1234567890/locations/9876543210",
"status": "active",
"last_synced_at": "2026-10-23T08:00:12.000Z",
"next_sync_at": "2026-10-24T08:00:12.000Z"
}| Field | Type | Description |
|---|---|---|
id | string | Prisma location ID (loc_…). Use it as location_id in GET /v1/reviews. |
platform | enum | Platform ID, as in the review object. |
connection_id | string | The connection that created it. |
name | string | Name on the platform. For Yelp, Tripadvisor and Booking.com it is the listing URL you connected. |
address | string | null | Address for places. For App Store apps it holds the bundle ID. |
url | string | null | Public page of the location, app or listing, when known. |
external_id | string | The platform’s own ID: Google location name, App Store app ID, Android package name, listing URL… |
status | enum | active or disconnected. |
last_synced_at | timestamp | null | Last time Prisma checked it for reviews. null until the first sync finishes. |
next_sync_at | timestamp | null | When the next check is scheduled. null once disconnected. |
How often each platform is checked is on Platforms.
List locations
GET /v1/locations
Returns every connected location of your workspace in the mode of your key, oldest first. Disconnected locations are left out. The list is not paginated: next_cursor is always null.
curl https://api.prismareviews.com/v1/locations \
-H "Authorization: Bearer $PRISMA_API_KEY"const res = await fetch("https://api.prismareviews.com/v1/locations", {
headers: { Authorization: "Bearer " + process.env.PRISMA_API_KEY },
});
const { data } = await res.json();
for (const loc of data) console.log(loc.id, loc.platform, loc.name);import os
import requests
resp = requests.get(
"https://api.prismareviews.com/v1/locations",
headers={"Authorization": f"Bearer {os.environ['PRISMA_API_KEY']}"},
timeout=30,
)
for loc in resp.json()["data"]:
print(loc["id"], loc["platform"], loc["name"])Response 200
{
"data": [
{
"id": "loc_01KJ8P9W2C4D6F8G0H2J4K6M8N",
"platform": "google",
"connection_id": "con_01KJ8P7R5S3T1V9W7X5Y3Z1A2B",
"name": "Café Ruzafa",
"address": "Carrer de Sueca 10, Valencia",
"url": "https://maps.google.com/?cid=1234567890",
"external_id": "accounts/1234567890/locations/9876543210",
"status": "active",
"last_synced_at": "2026-10-23T08:00:12.000Z",
"next_sync_at": "2026-10-24T08:00:12.000Z"
}
],
"next_cursor": null
}There are no query filters: filter by platform or connection_id on your side.
Get a location
GET /v1/locations/{id}
curl https://api.prismareviews.com/v1/locations/loc_01KJ8P9W2C4D6F8G0H2J4K6M8N \
-H "Authorization: Bearer $PRISMA_API_KEY"const res = await fetch(
"https://api.prismareviews.com/v1/locations/loc_01KJ8P9W2C4D6F8G0H2J4K6M8N",
{ headers: { Authorization: "Bearer " + process.env.PRISMA_API_KEY } }
);
console.log(await res.json());resp = requests.get(
"https://api.prismareviews.com/v1/locations/loc_01KJ8P9W2C4D6F8G0H2J4K6M8N",
headers={"Authorization": f"Bearer {os.environ['PRISMA_API_KEY']}"},
timeout=30,
)
print(resp.json())Returns 200 with one location object, including disconnected ones until their data is deleted. 404 resource_not_found if there is no location with that ID in your workspace and mode.
Plan limits
When a connection would bring more locations than your plan allows (Spark 2, Beam 10, Spectrum 50, Aurora 200), Prisma creates locations up to the limit and reports the rest in locations_over_plan_limit on the connection response. Those aren’t imported. To add them, upgrade or delete a connection you no longer need, then connect again. Test locations count separately from live ones. GET /v1/usage shows how many live locations you use: see Usage.
Connect your first two locations for free.
2 locations free, then plans from €49 a month.