Last updated

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

MethodEndpointDescription
POST/businessesCreates a new business
GET/businessesSearch and filter businesses
POST/locationsCreates a new location
PATCH/locations/$idUpdates the given location
PATCH/locationsUpdates the given locations
POST/businesses/$id/locations/syncStarts a sync on all directories for all locations for the given business
POST/locations/$id/syncStarts 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'