Skip to content

The Listing Lookup API takes a business name and an address, in any format, and searches all supported platforms at once. It returns each listing's identifier, ready to use with the Reviews and Listing Info APIs. Perfect for onboarding a new location without copying URLs by hand.

  • AccessAPI key
  • Platforms115 supported
  • EndpointGET /listing/match?name=&address=&networks[]=

Key facts

  • Match: the single best listing per platform; Find: up to 10 candidates per platform
  • Search every platform enabled on your account, or pick the ones you need
  • Synchronous: results in the same call
  • Match from 60 credits per call, Find from 50 credits per call

How it works

Up and running in three steps

  1. 1

    Send a name and an address

    Any address format works. Optionally narrow the search to the platforms you need.

  2. 2

    Choose Match or Find

    Match returns the single best listing on each platform; Find returns up to 10 candidates per platform.

  3. 3

    Use the results

    Each result includes the listing's identifier, ready for the Reviews and Listing Info APIs.

Example

Request and response

GET /listing/match?name=&address=&networks[]=
cURL
  • cURL
  • .Net
  • Go
  • Java
  • Node.js
  • PHP
  • Python
  • Ruby
curl --location 'https://api.zembra.io/listing/match?name=My%20Business&address=5621%20Main%20St%2C%20Mallorca%2C%20QC%2078128%2C%20US&street=5621%20Main%20St&city=Mallorca&region=California%2C%20CA&postalCode=78128&country=US%2C%20USA%2C%20United%20States%2C%20etc.' \
--header 'Authorization: Bearer {token}'
var client = new HttpClient();
var request = new HttpRequestMessage(HttpMethod.Get, "https://api.zembra.io/listing/match?name=My Business&address=5621 Main St, Mallorca, QC 78128, US&street=5621 Main St&city=Mallorca&region=California, CA&postalCode=78128&country=US, USA, United States, etc.");
request.Headers.Add("Authorization", "Bearer {token}");
var response = await client.SendAsync(request);
response.EnsureSuccessStatusCode();
Console.WriteLine(await response.Content.ReadAsStringAsync());
package main

import (
  "fmt"
  "net/http"
  "io/ioutil"
)

func main() {

  url := "https://api.zembra.io/listing/match?name=My%20Business&address=5621%20Main%20St%2C%20Mallorca%2C%20QC%2078128%2C%20US&street=5621%20Main%20St&city=Mallorca&region=California%2C%20CA&postalCode=78128&country=US%2C%20USA%2C%20United%20States%2C%20etc."
  method := "GET"

  client := &http.Client {
  }
  req, err := http.NewRequest(method, url, nil)

  if err != nil {
    fmt.Println(err)
    return
  }
  req.Header.Add("Authorization", "Bearer {token}")

  res, err := client.Do(req)
  if err != nil {
    fmt.Println(err)
    return
  }
  defer res.Body.Close()

  body, err := ioutil.ReadAll(res.Body)
  if err != nil {
    fmt.Println(err)
    return
  }
  fmt.Println(string(body))
}
OkHttpClient client = new OkHttpClient().newBuilder()
  .build();
MediaType mediaType = MediaType.parse("text/plain");
RequestBody body = RequestBody.create(mediaType, "");
Request request = new Request.Builder()
  .url("https://api.zembra.io/listing/match?name=My Business&address=5621 Main St, Mallorca, QC 78128, US&street=5621 Main St&city=Mallorca&region=California, CA&postalCode=78128&country=US, USA, United States, etc.")
  .method("GET", body)
  .addHeader("Authorization", "Bearer {token}")
  .build();
Response response = client.newCall(request).execute();
var myHeaders = new Headers();
myHeaders.append("Authorization", "Bearer {token}");

var requestOptions = {
  method: 'GET',
  headers: myHeaders,
  redirect: 'follow'
};

fetch("https://api.zembra.io/listing/match?name=My Business&address=5621 Main St, Mallorca, QC 78128, US&street=5621 Main St&city=Mallorca&region=California, CA&postalCode=78128&country=US, USA, United States, etc.", requestOptions)
  .then(response => response.text())
  .then(result => console.log(result))
  .catch(error => console.log('error', error));
<?php
$client = new Client();
$headers = [
  'Authorization' => 'Bearer {token}'
];
$request = new Request('GET', 'https://api.zembra.io/listing/match?name=My Business&address=5621 Main St, Mallorca, QC 78128, US&street=5621 Main St&city=Mallorca&region=California, CA&postalCode=78128&country=US, USA, United States, etc.', $headers);
$res = $client->sendAsync($request)->wait();
echo $res->getBody();
import requests

url = "https://api.zembra.io/listing/match?name=My Business&address=5621 Main St, Mallorca, QC 78128, US&street=5621 Main St&city=Mallorca&region=California, CA&postalCode=78128&country=US, USA, United States, etc."

payload = {}
headers = {
  'Authorization': 'Bearer {token}'
}

response = requests.request("GET", url, headers=headers, data=payload)

print(response.text)
require "uri"
require "net/http"

url = URI("https://api.zembra.io/listing/match?name=My Business&address=5621 Main St, Mallorca, QC 78128, US&street=5621 Main St&city=Mallorca&region=California, CA&postalCode=78128&country=US, USA, United States, etc.")

https = Net::HTTP.new(url.host, url.port)
https.use_ssl = true

request = Net::HTTP::Get.new(url)
request["Authorization"] = "Bearer {token}"

response = https.request(request)
puts response.read_body

Response

{
    "message": "Found listing on Google and Yelp",
    "data": {
        "google": {
            "address": {
                "street": "5621 Main St",
                "city": "Mallorca",
                "region": "QC",
                "postalCode": "78128",
                "country": "US"
            },
            "aliases": [
                "my-listing-1",
                "my-first-listing"
            ],
            "categories": [
                "Restaurant",
                "Fast Food"
            ],
            "formattedAddress": "5621 Main St, Mallorca, QC 78128, US",
            "globalRating": 4.5,
            "id": "ChIJV9OJxsOq3oARnyGzSXY0ym8",
            "lastCrawled": "2023-01-01T00:00:00Z",
            "lastUpdated": "2023-01-01T00:00:00Z",
            "link": "https://my.zembratech.com/dashboard/review-page/insights/MWJmZTc5MDZjMzg5OGI3OGMyNjJiODNjOGJjMWI3Y2Q",
            "name": "My Google Business",
            "network": "google",
            "phone": "(210) 456-0987",
            "photos": [
                "https://media2.trover.com/T/5a5eae0184b8636d6b0385f0/fixedw-1.jpg",
                "https://media2.trover.com/T/5a5eae0184b8636d6b0385f0/fixedw-2.jpg"
            ],
            "priceRange": "$$$",
            "profileImage": "https://media2.trover.com/T/5a5eae0184b8636d6b0385f0/fixedw.jpg",
            "ratingBreakdown": {
                "overall": 8.4,
                "perCriteria": [
                    {
                        "criteria": "Overall",
                        "rating": 8.4
                    },
                    {
                        "criteria": "Cleanliness",
                        "rating": 8.9
                    },
                    {
                        "criteria": "Facilities",
                        "rating": 8.3
                    },
                    {
                        "criteria": "Location",
                        "rating": 8.7
                    },
                    {
                        "criteria": "Service",
                        "rating": 8.7
                    },
                    {
                        "criteria": "Value for money",
                        "rating": 8.2
                    }
                ],
                "ratingDistribution": [
                    {
                        "rating": "9+ Exceptional",
                        "count": 135
                    },
                    {
                        "rating": "8-9 Excellent",
                        "count": 66
                    },
                    {
                        "rating": "7-8 Very Good",
                        "count": 32
                    },
                    {
                        "rating": "6-7 Good",
                        "count": 24
                    },
                    {
                        "rating": "<6 Below Expectation",
                        "count": 11
                    }
                ]
            },
            "rawData": [],
            "reviewCount": {
                "native": {
                    "total": 6320,
                    "active": 5986,
                    "hidden": 334
                },
                "available": {
                    "total": 6320,
                    "active": 5986,
                    "hidden": 334
                }
            },
            "slug": "my-listing-slug",
            "url": "https://maps.google.com/?cid=16256511492469774330",
            "website": "https://my-business.com"
        },
        "yelp": {
            "address": {
                "street": "5621 Main St",
                "city": "Mallorca",
                "region": "QC",
                "postalCode": "78128",
                "country": "US"
            },
            "aliases": [
                "my-listing-1",
                "my-first-listing"
            ],
            "categories": [
                "Restaurant",
                "Fast Food"
            ],
            "formattedAddress": "5621 Main St, Mallorca, QC 78128, US",
            "globalRating": 4.5,
            "id": "ChIJV9OJxsOq3oARnyGzSXY0ym8",
            "lastCrawled": "2023-01-01T00:00:00Z",
            "lastUpdated": "2023-01-01T00:00:00Z",
            "link": "https://my.zembratech.com/dashboard/review-page/insights/MWJmZTc5MDZjMzg5OGI3OGMyNjJiODNjOGJjMWI3Y2Q",
            "name": "My Google Business",
            "network": "google",
            "phone": "(210) 456-0987",
            "photos": [
                "https://media2.trover.com/T/5a5eae0184b8636d6b0385f0/fixedw-1.jpg",
                "https://media2.trover.com/T/5a5eae0184b8636d6b0385f0/fixedw-2.jpg"
            ],
            "priceRange": "$$$",
            "profileImage": "https://media2.trover.com/T/5a5eae0184b8636d6b0385f0/fixedw.jpg",
            "ratingBreakdown": {
                "overall": 8.4,
                "perCriteria": [
                    {
                        "criteria": "Overall",
                        "rating": 8.4
                    },
                    {
                        "criteria": "Cleanliness",
                        "rating": 8.9
                    },
                    {
                        "criteria": "Facilities",
                        "rating": 8.3
                    },
                    {
                        "criteria": "Location",
                        "rating": 8.7
                    },
                    {
                        "criteria": "Service",
                        "rating": 8.7
                    },
                    {
                        "criteria": "Value for money",
                        "rating": 8.2
                    }
                ],
                "ratingDistribution": [
                    {
                        "rating": "9+ Exceptional",
                        "count": 135
                    },
                    {
                        "rating": "8-9 Excellent",
                        "count": 66
                    },
                    {
                        "rating": "7-8 Very Good",
                        "count": 32
                    },
                    {
                        "rating": "6-7 Good",
                        "count": 24
                    },
                    {
                        "rating": "<6 Below Expectation",
                        "count": 11
                    }
                ]
            },
            "rawData": [],
            "reviewCount": {
                "native": {
                    "total": 6320,
                    "active": 5986,
                    "hidden": 334
                },
                "available": {
                    "total": 6320,
                    "active": 5986,
                    "hidden": 334
                }
            },
            "slug": "my-listing-slug",
            "url": "https://maps.google.com/?cid=16256511492469774330",
            "website": "https://my-business.com"
        }
    }
}
{
    "message": "Invalid parameter [networks]: must be an array or omitted"
}
{
    "message": "Invalid bearer token"
}
{
    "message": "Cannot process request: balance too low!"
}
{
    "message": "Requested network [Facebook] is not enabled for your account"
}
{
    "message": "Listing not found. Maybe not a valid business."
}

Supported platforms

115 platforms, one format#

Use cases

What teams build with it

Customer onboarding

Connect a new client's locations to every platform without copying URLs by hand.

Presence audits

See on which platforms a business is listed, and where it is missing.

Bulk imports

Match thousands of locations with batch requests.

FAQ

Common questions

What's the difference between Match and Find?

Match picks the most likely listing on each platform for you. Find returns up to 10 candidates per platform so you can choose.

How many platforms can I search at once?

All the platforms enabled on your account, in a single call.

Is it synchronous?

Yes. Results come back in the same response.

Pay only for what you use

Every Zembra service is paid with the same credits, and the more you use, the less each credit costs.

Start today for free

Create an account and get 10,000 free credits to try the Listing Lookup API and every other Zembra service.