Sync
Introduction
This tutorial will teach you how to update all your locations' data across your website, landing pages and online directories by using the uberall API.
Common Endpoints
POST | /businesses | Creates a new business |
GET | /businesses | Search and filter businesses |
POST | /locations | Creates a new location |
PATCH | /locations/$id | Updates the given location |
PATCH | /locations | Updates the given locations |
POST | /businesses/$id/locations/sync | Starts a sync on all directories for all locations for the given business |
POST | /locations/$id/sync | Starts a sync on all directories for the given location |
Businesses/accounts
A business/account contains one or more locations. All locations have to be linked to a business. If you have not already created businesses/accounts, you can create one manually from uberall ("Accounts">"Create new account") or use /businesses POST request as shown in the example below. curl -X POST -H "Content-Type: application/json" -H "privateKey: $privateKey" -H "Cache-Control: no-cache" -d '{
"identifier":"bus_0000001",
"name": "uberall GmBH",
"type": "SMB",
"streetAndNo": "Oranienburgerstr. 66",
"zip": "10117",
"country": "DE",
"productPlan": $planID,
"amountPOI": 5,
"contractDuration": 12,
"city": "Berlin"
curl -X GET 'https://sandbox.uberall.com/api/businesses' -H 'privateKey: $privateKey' -H 'Cache-Control: no-cache'
"status": "SUCCESS",
"response": {
"offset": 0,
"max": 50,
"count": 261,
"businesses": [
{
"id": 30829,
"identifier": "bus_0001",
"name": "uberall GmBH",
"streetAndNo": "Oranienburgerstr. 66",
"zip": "10117",
"productPlan": {
"updatedDirectories": [
"INFOBEL", "WEB_DE" //,...
] //,...
}
} //,...
]
}
}
Create & update locations
We are going to use /locations POST request to create one location inside the account we have just created.
curl -H "Content-Type: application/json" 'https://sandbox.uberall.com/api/locations' -X POST -d '{
"businessId": 30829,
"name" : "uberall",
"street" : "Oranienburgerstrasse",
"streetNo": 66,
"zip": 10117,
"city" : "Berlin"
}' -H 'privateKey: $privateKey' -H 'Cache-Control: no-cache'
{
"status": "SUCCESS",
"response": {
"location": {
"id": 301626, //...
}
}
}
curl -H "Content-Type: application/json" 'https://sandbox.uberall.com/api/locations/301626' -X PATCH -d '{
"website": "https://uberall.com"
}' -H 'privateKey: $privateKey' -H 'Cache-Control: no-cache'
curl -H "Content-Type: application/json" 'https://sandbox.uberall.com/api/categories?language=en' -X GET -H 'privateKey: $privateKey' -H 'Cache-Control: no-cache'
Sync on all directories
Before syncing locations, we need to activate them. Just use /locations/$id PATCH request with the following payload:{
"status" : "ACTIVE"
}
NEEDS_REVIEW status: Beware that locations with the NEEDS_REVIEW status can't be activated.
Demo accounts: Beware that locations in demo accounts can't sync. You will get a "Location not available for sync" error message.
Use businesses/$id/locations/sync or /locations/$id/sync to start a sync on all directories for all locations related to a specific business or a specific location.
curl -H "Content-Type: application/json" 'https://sandbox.uberall.com/api/locations/301767/sync' -X POST -d '{}' -H 'privateKey: $privateKey' -H 'Cache-Control: no-cache'