Reviews
Listing Info
Listing Lookup
Social Media
Accommodation
Scraper
Pull Reviews Over API Without Credentials
The Reviews API provides structured access to customer reviews from 100+ platforms through a single API query. It returns data in a standardized format with automatic updates, out-of-the-box monitoring, and support for high performance and scalability yet the most cost effective solution.
Trusted by leading online reputation and listing management platforms.
Get Real-Time Business Info From Any Source
The Listing API provides real-time, standardized business listing data from over 100 platforms. It returns fields such as name, address, phone number, photos, website, business hours, reviews count, and global rating. All in sync with no background jobs or delays.
Lookup Listings Across ALL Platforms In One Call
The Listing Lookup API scans all our supported platforms to find business listings that match a given name and any form of address. The results are immediately returned without background jobs in a structured format, ready to use with other services.
Stream Social Media Data From Major Platforms
The Social Media API retrieves resource-level information from major platforms like Facebook, Instagram, LinkedIn, Reddit, TikTok, and more. It returns details such as page name, link, like count, post count, and profile picture, and supports streaming dynamic content like comments from Instagram posts or videos from TikTok users, all in a standardized format.
Search Hotels and GET Pricing From Booking and Expedia
The Accommodation API queries platforms like Expedia, Booking, and Trip.com to return available hotels with real-time pricing. It supports search by query string or hotel IDs, and responds instantly with a standardized format including hotel name, rating, pictures, and booking links. Simulate quote from any country with any room configuration.
Scrape Any Resource
The Scraper API handles custom scraping requests across a wide range of data types, including Glassdoor interviews, BBB complaints, and more. Every custom solution we build is at no cost and with no commitment. All the solutions are shared with the community and you only pay per use.
curl --location 'https://api.zembra.io/reviews' \
--header 'Authorization: Bearer {token}' \
--header 'Content-Type: application/json' \
--data '{
"network": "google",
"slug": "my-listing-slug",
"monitoring": "full",
"includeRawData": true,
"internalId": "",
"autoRenew": false,
"sizeLimit": null,
"dateLimit": null
}'
var client = new HttpClient();
var request = new HttpRequestMessage(HttpMethod.Post, "https://api.zembra.io/reviews");
request.Headers.Add("Authorization", "Bearer {token}");
var content = new StringContent("{
\"network\": \"google\",
\"slug\": \"my-listing-slug\",
\"monitoring\": \"full\",
\"includeRawData\": true,
\"internalId\": \"\",
\"autoRenew\": false,
\"sizeLimit\": null,
\"dateLimit\": null
}", null, "application/json");
request.Content = content;
var response = await client.SendAsync(request);
response.EnsureSuccessStatusCode();
Console.WriteLine(await response.Content.ReadAsStringAsync());
package main
import (
"fmt"
"strings"
"net/http"
"io/ioutil"
)
func main() {
url := "https://api.zembra.io/reviews"
method := "POST"
payload := strings.NewReader(`{
"network": "google",
"slug": "my-listing-slug",
"monitoring": "full",
"includeRawData": true,
"internalId": "",
"autoRenew": false,
"sizeLimit": null,
"dateLimit": null
}`)
client := &http.Client {
}
req, err := http.NewRequest(method, url, payload)
if err != nil {
fmt.Println(err)
return
}
req.Header.Add("Authorization", "Bearer {token}")
req.Header.Add("Content-Type", "application/json")
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("application/json");
RequestBody body = RequestBody.create(mediaType, "{
\"network\": \"google\",
\"slug\": \"my-listing-slug\",
\"monitoring\": \"full\",
\"includeRawData\": true,
\"internalId\": \"\",
\"autoRenew\": false,
\"sizeLimit\": null,
\"dateLimit\": null
}");
Request request = new Request.Builder()
.url("https://api.zembra.io/reviews")
.method("POST", body)
.addHeader("Authorization", "Bearer {token}")
.addHeader("Content-Type", "application/json")
.build();
Response response = client.newCall(request).execute();
var myHeaders = new Headers();
myHeaders.append("Authorization", "Bearer {token}");
myHeaders.append("Content-Type", "application/json");
var raw = JSON.stringify({
"network": "google",
"slug": "my-listing-slug",
"monitoring": "full",
"includeRawData": true,
"internalId": "",
"autoRenew": false,
"sizeLimit": null,
"dateLimit": null
});
var requestOptions = {
method: 'POST',
headers: myHeaders,
body: raw,
redirect: 'follow'
};
fetch("https://api.zembra.io/reviews", requestOptions)
.then(response => response.text())
.then(result => console.log(result))
.catch(error => console.log('error', error));
<?php
$client = new Client();
$headers = [
'Authorization' => 'Bearer {token}',
'Content-Type' => 'application/json'
];
$body = '{
"network": "google",
"slug": "my-listing-slug",
"monitoring": "full",
"includeRawData": true,
"internalId": "",
"autoRenew": false,
"sizeLimit": null,
"dateLimit": null
}';
$request = new Request('POST', 'https://api.zembra.io/reviews', $headers, $body);
$res = $client->sendAsync($request)->wait();
echo $res->getBody();
import requests
import json
url = "https://api.zembra.io/reviews"
payload = json.dumps({
"network": "google",
"slug": "my-listing-slug",
"monitoring": "full",
"includeRawData": True,
"internalId": "",
"autoRenew": False,
"sizeLimit": None,
"dateLimit": None
})
headers = {
'Authorization': 'Bearer {token}',
'Content-Type': 'application/json'
}
response = requests.request("POST", url, headers=headers, data=payload)
print(response.text)
require "uri"
require "json"
require "net/http"
url = URI("https://api.zembra.io/reviews")
https = Net::HTTP.new(url.host, url.port)
https.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = "Bearer {token}"
request["Content-Type"] = "application/json"
request.body = JSON.dump({
"network": "google",
"slug": "my-listing-slug",
"monitoring": "full",
"includeRawData": true,
"internalId": "",
"autoRenew": false,
"sizeLimit": nil,
"dateLimit": nil
})
response = https.request(request)
puts response.read_body
Response
{
"message": "Reviews fetching order received for Google: my-listing. Please allow a few minutes before requesting reviews.",
"data": {
"job": {
"network": "google",
"slug": "my-listing-slug",
"jobId": "123e4567-e89b-12d3-a456-426614174000",
"uid": "OTBmNTBlYzViMjM2NTU4MGVmNTUxMmQwMmY0YzZlNmU",
"monitoring": "full",
"internalId": "",
"requestedAt": "2023-01-01T00:00:00Z",
"expiresAt": "2023-01-01T00:00:00Z",
"includeRawData": false,
"cost": 165,
"active": true,
"sizeLimit": 100,
"dateLimit": 1734140315,
"autoRenew": true,
"renewed": false,
"url": ""
},
"target": {
"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 slug [not-a-real-listing-slug]"
}
{
"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 listing."
}
curl --location 'https://api.zembra.io/listing/google?slug=my-listing-slug' \
--header 'Authorization: Bearer {token}'
var client = new HttpClient();
var request = new HttpRequestMessage(HttpMethod.Get, "https://api.zembra.io/listing/google?slug=my-listing-slug");
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/google?slug=my-listing-slug"
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/google?slug=my-listing-slug")
.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/google?slug=my-listing-slug", 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/google?slug=my-listing-slug', $headers);
$res = $client->sendAsync($request)->wait();
echo $res->getBody();
import requests
url = "https://api.zembra.io/listing/google?slug=my-listing-slug"
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/google?slug=my-listing-slug")
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": "Listing found on Google",
"data": {
"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 slug [not-a-real-listing-slug]"
}
{
"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."
}
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®ion=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®ion=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®ion=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®ion=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®ion=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®ion=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®ion=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®ion=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."
}
curl --location 'https://api.zembra.io/social/job/instagram/company/resource-id/ads' \
--header 'Authorization: Bearer {token}' \
--header 'Content-Type: application/json' \
--data '{
"internalId": "",
"sizeLimit": null,
"dateLimit": null
}'
var client = new HttpClient();
var request = new HttpRequestMessage(HttpMethod.Post, "https://api.zembra.io/social/job/instagram/company/resource-id/ads");
request.Headers.Add("Authorization", "Bearer {token}");
var content = new StringContent("{
\"internalId\": \"\",
\"sizeLimit\": null,
\"dateLimit\": null
}", null, "application/json");
request.Content = content;
var response = await client.SendAsync(request);
response.EnsureSuccessStatusCode();
Console.WriteLine(await response.Content.ReadAsStringAsync());
package main
import (
"fmt"
"strings"
"net/http"
"io/ioutil"
)
func main() {
url := "https://api.zembra.io/social/job/instagram/company/resource-id/ads"
method := "POST"
payload := strings.NewReader(`{
"internalId": "",
"sizeLimit": null,
"dateLimit": null
}`)
client := &http.Client {
}
req, err := http.NewRequest(method, url, payload)
if err != nil {
fmt.Println(err)
return
}
req.Header.Add("Authorization", "Bearer {token}")
req.Header.Add("Content-Type", "application/json")
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("application/json");
RequestBody body = RequestBody.create(mediaType, "{
\"internalId\": \"\",
\"sizeLimit\": null,
\"dateLimit\": null
}");
Request request = new Request.Builder()
.url("https://api.zembra.io/social/job/instagram/company/resource-id/ads")
.method("POST", body)
.addHeader("Authorization", "Bearer {token}")
.addHeader("Content-Type", "application/json")
.build();
Response response = client.newCall(request).execute();
var myHeaders = new Headers();
myHeaders.append("Authorization", "Bearer {token}");
myHeaders.append("Content-Type", "application/json");
var raw = JSON.stringify({
"internalId": "",
"sizeLimit": null,
"dateLimit": null
});
var requestOptions = {
method: 'POST',
headers: myHeaders,
body: raw,
redirect: 'follow'
};
fetch("https://api.zembra.io/social/job/instagram/company/resource-id/ads", requestOptions)
.then(response => response.text())
.then(result => console.log(result))
.catch(error => console.log('error', error));
<?php
$client = new Client();
$headers = [
'Authorization' => 'Bearer {token}',
'Content-Type' => 'application/json'
];
$body = '{
"internalId": "",
"sizeLimit": null,
"dateLimit": null
}';
$request = new Request('POST', 'https://api.zembra.io/social/job/instagram/company/resource-id/ads', $headers, $body);
$res = $client->sendAsync($request)->wait();
echo $res->getBody();
import requests
import json
url = "https://api.zembra.io/social/job/instagram/company/resource-id/ads"
payload = json.dumps({
"internalId": "",
"sizeLimit": None,
"dateLimit": None
})
headers = {
'Authorization': 'Bearer {token}',
'Content-Type': 'application/json'
}
response = requests.request("POST", url, headers=headers, data=payload)
print(response.text)
require "uri"
require "json"
require "net/http"
url = URI("https://api.zembra.io/social/job/instagram/company/resource-id/ads")
https = Net::HTTP.new(url.host, url.port)
https.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = "Bearer {token}"
request["Content-Type"] = "application/json"
request.body = JSON.dump({
"internalId": "",
"sizeLimit": nil,
"dateLimit": nil
})
response = https.request(request)
puts response.read_body
Response
{
"message": "Streaming Instagram posts order received for user < the-king-of-internet >. Please allow a few minutes before requesting data.",
"data": {
"job": {
"jobId": "",
"network": "instagram",
"slug": "resource-id",
"resource": "company",
"content": "ads",
"internalId": "",
"requestedAt": "2023-01-01T00:00:00Z",
"expiresAt": "2023-01-01T00:00:00Z",
"sizeLimit": 100,
"dateLimit": null,
"cost": 150,
"active": false
},
"target": {
"slug": "my-listing-slug",
"remoteId": "32146585423198958",
"displayUrl": "https:\/\/instagram.com\/instagram\/profile.jpg",
"url": "https:\/\/instagram.com\/instagram\/",
"link": "https:\/\/my.zembratech.com\/dashboard\/instagram\/users\/MWJmZTc5MDZjMzg5OGI3OGMyNjJiODNjOGJjMWI3Y2Q\/posts",
"network": "instagram",
"resource": "company",
"rawData": []
}
}
}
{
"message": "Invalid resource for selected network"
}
{
"message": "Invalid bearer token"
}
{
"message": "Cannot process request: balance too low!"
}
{
"message": "Requested network [Facebook] is not enabled for your account"
}
{
"message": "Requested post was not found on Instagram."
}
curl --location 'https://api.zembra.io/accommodations/lookup?searchString=Rome%2C%20IT&targetCountry=US¤cy=USD&checkin=2023-01-01&checkout=2023-01-04&rooms=&latitude=25.77178&longitude=-80.19009' \
--header 'Authorization: Bearer {token}'
var client = new HttpClient();
var request = new HttpRequestMessage(HttpMethod.Get, "https://api.zembra.io/accommodations/lookup?searchString=Rome, IT&targetCountry=US¤cy=USD&checkin=2023-01-01&checkout=2023-01-04&rooms=&latitude=25.77178&longitude=-80.19009");
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/accommodations/lookup?searchString=Rome%2C%20IT&targetCountry=US¤cy=USD&checkin=2023-01-01&checkout=2023-01-04&rooms=&latitude=25.77178&longitude=-80.19009"
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/accommodations/lookup?searchString=Rome, IT&targetCountry=US¤cy=USD&checkin=2023-01-01&checkout=2023-01-04&rooms=&latitude=25.77178&longitude=-80.19009")
.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/accommodations/lookup?searchString=Rome, IT&targetCountry=US¤cy=USD&checkin=2023-01-01&checkout=2023-01-04&rooms=&latitude=25.77178&longitude=-80.19009", 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/accommodations/lookup?searchString=Rome, IT&targetCountry=US¤cy=USD&checkin=2023-01-01&checkout=2023-01-04&rooms=&latitude=25.77178&longitude=-80.19009', $headers);
$res = $client->sendAsync($request)->wait();
echo $res->getBody();
import requests
url = "https://api.zembra.io/accommodations/lookup?searchString=Rome, IT&targetCountry=US¤cy=USD&checkin=2023-01-01&checkout=2023-01-04&rooms=&latitude=25.77178&longitude=-80.19009"
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/accommodations/lookup?searchString=Rome, IT&targetCountry=US¤cy=USD&checkin=2023-01-01&checkout=2023-01-04&rooms=&latitude=25.77178&longitude=-80.19009")
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": "List of properties for Miami",
"data": {
"properties": {
"booking": {
"network": "booking",
"id": 123456789,
"name": "The Grand Hotel",
"district": "Larger San Diego",
"distanceFromDestination": "1.3 miles from downtown",
"address": {
"street": "123 Main St.",
"city": "San Diego",
"zipCode": "92078-4605",
"country": "United States",
"countryCode": "us",
"latitude": 25.77178,
"longitude": -80.19009
},
"price": {
"total": 1562.78,
"withoutFees": 1344.99,
"currency": "USD"
},
"reviews": {
"score": 9.2,
"count": 465
},
"link": "",
"photo": ""
}
},
"counts": {
"returned": {
"booking": 501
},
"displayable": {
"booking": 2786
},
"total": 501
}
}
}
{
"message": "Invalid parameter limit"
}
{
"message": "Invalid bearer token"
}
{
"message": "Cannot process request: balance too low!"
}
{
"message": "Requested network [Expedia] is not enabled for your account"
}
{
"message": "Hotels not found!"
}