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.
| Method | Endpoint | Description |
|---|---|---|
| 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 |
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"Now you can use /businesses GET request to get the list of your accounts.
curl -X GET 'https://sandbox.uberall.com/api/businesses' -H 'privateKey: $privateKey' -H 'Cache-Control: no-cache'Business objects contain the list of directories where appertaining locations will be updated:
{
"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" //,...
] //,...
}
} //,...
]
}
}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, //...
}
}
}Update it using /locations/$id PATCH request.
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'You will also need to provide a category for the location. You can retrieve all the categories with GET /categories/
curl -H "Content-Type: application/json" 'https://sandbox.uberall.com/api/categories?language=en' -X GET -H 'privateKey: $privateKey' -H 'Cache-Control: no-cache'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'