uberall

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"
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" //,...
          ] //,...
        }
      } //,...
    ]
  }
}

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, //...
    }
  }
} 
        
    
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'

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'