MENU navbar-image

Introduction

This documentation aims to provide all the information you need to work with Dots Platform Clients API.

Base URL

clients-api.dots.live

Authenticating requests

This API is authenticated by sending a Api-Auth-Token header with the value "{{YOUR_API_AUTH_TOKEN}}".

All authenticated endpoints are marked with a requires authentication badge in the documentation below.

See Authentication section to retrieve your token

Endpoints

DELETE api/v2/users/{user}

Example request:
curl --request DELETE \
    "clients-api.dots.live/api/v2/users/earum?v=2.0.0" \
    --header "Api-Token: {{YOUR_API_TOKEN}}" \
    --header "Api-Account-Token: {{YOUR_ACCOUNT_TOKEN}}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
$client = new \GuzzleHttp\Client();
$response = $client->delete(
    'clients-api.dots.live/api/v2/users/earum',
    [
        'headers' => [
            'Api-Token' => '{{YOUR_API_TOKEN}}',
            'Api-Account-Token' => '{{YOUR_ACCOUNT_TOKEN}}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'query' => [
            'v'=> '2.0.0',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request   

DELETE api/v2/users/{user}

URL Parameters

user  string  

Query Parameters

v  string  

Api Version

POST api/v2/orders/{order}/siri/validate

Example request:
curl --request POST \
    "clients-api.dots.live/api/v2/orders/ACfBeecC-Aaac-EDCb-edBf-EadbdCADfAFb/siri/validate?v=2.0.0" \
    --header "Api-Token: {{YOUR_API_TOKEN}}" \
    --header "Api-Account-Token: {{YOUR_ACCOUNT_TOKEN}}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
$client = new \GuzzleHttp\Client();
$response = $client->post(
    'clients-api.dots.live/api/v2/orders/ACfBeecC-Aaac-EDCb-edBf-EadbdCADfAFb/siri/validate',
    [
        'headers' => [
            'Api-Token' => '{{YOUR_API_TOKEN}}',
            'Api-Account-Token' => '{{YOUR_ACCOUNT_TOKEN}}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'query' => [
            'v'=> '2.0.0',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request   

POST api/v2/orders/{order}/siri/validate

URL Parameters

order  string  

Query Parameters

v  string  

Api Version

POST api/v2/orders/{order}/siri/reorder

Example request:
curl --request POST \
    "clients-api.dots.live/api/v2/orders/fAFeCDde-Bffd-eBDC-aBcD-aaBCDbBBeedA/siri/reorder?v=2.0.0" \
    --header "Api-Token: {{YOUR_API_TOKEN}}" \
    --header "Api-Account-Token: {{YOUR_ACCOUNT_TOKEN}}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
$client = new \GuzzleHttp\Client();
$response = $client->post(
    'clients-api.dots.live/api/v2/orders/fAFeCDde-Bffd-eBDC-aBcD-aaBCDbBBeedA/siri/reorder',
    [
        'headers' => [
            'Api-Token' => '{{YOUR_API_TOKEN}}',
            'Api-Account-Token' => '{{YOUR_ACCOUNT_TOKEN}}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'query' => [
            'v'=> '2.0.0',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request   

POST api/v2/orders/{order}/siri/reorder

URL Parameters

order  string  

Query Parameters

v  string  

Api Version

Geo

Reverse Geocode Data Returns reverse geocoded data by longitude and latitude.

Example request:
curl --request GET \
    --get "clients-api.dots.live/api/v2/accounts/deleniti/start-screen/reverse-geocode?latitude=14&longitude=40556&v=2.0.0" \
    --header "Api-Token: {{YOUR_API_TOKEN}}" \
    --header "Api-Account-Token: {{YOUR_ACCOUNT_TOKEN}}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'clients-api.dots.live/api/v2/accounts/deleniti/start-screen/reverse-geocode',
    [
        'headers' => [
            'Api-Token' => '{{YOUR_API_TOKEN}}',
            'Api-Account-Token' => '{{YOUR_ACCOUNT_TOKEN}}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'query' => [
            'latitude'=> '14',
            'longitude'=> '40556',
            'v'=> '2.0.0',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
access-control-expose-headers: *
 

{
    "cityId": null,
    "cityMonoCompanyId": null,
    "isCitySupported": false,
    "isInDeliveryZone": false,
    "geocodedAddress": null
}
 

Request   

GET api/v2/accounts/{account}/start-screen/reverse-geocode

URL Parameters

account  string  

Query Parameters

latitude  number  

longitude  number  

v  string  

Api Version

Geocode Data Returns geocoded data by address.

Example request:
curl --request GET \
    --get "clients-api.dots.live/api/v2/accounts/ipsa/geo/geocode?address=assumenda&v=2.0.0" \
    --header "Api-Token: {{YOUR_API_TOKEN}}" \
    --header "Api-Account-Token: {{YOUR_ACCOUNT_TOKEN}}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'clients-api.dots.live/api/v2/accounts/ipsa/geo/geocode',
    [
        'headers' => [
            'Api-Token' => '{{YOUR_API_TOKEN}}',
            'Api-Account-Token' => '{{YOUR_ACCOUNT_TOKEN}}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'query' => [
            'address'=> 'assumenda',
            'v'=> '2.0.0',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (422):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
access-control-expose-headers: *
 

{
    "message": "The city field is required.",
    "errors": {
        "city": [
            "The city field is required."
        ]
    }
}
 

Request   

GET api/v2/accounts/{account}/geo/geocode

URL Parameters

account  string  

Query Parameters

address  string  

v  string  

Api Version

Reverse Geocode Data Returns reverse geocoded data by longitude and latitude.

Example request:
curl --request GET \
    --get "clients-api.dots.live/api/v2/accounts/illo/geo/reverse-geocode?latitude=50787.697898&longitude=62055920.756574&v=2.0.0" \
    --header "Api-Token: {{YOUR_API_TOKEN}}" \
    --header "Api-Account-Token: {{YOUR_ACCOUNT_TOKEN}}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'clients-api.dots.live/api/v2/accounts/illo/geo/reverse-geocode',
    [
        'headers' => [
            'Api-Token' => '{{YOUR_API_TOKEN}}',
            'Api-Account-Token' => '{{YOUR_ACCOUNT_TOKEN}}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'query' => [
            'latitude'=> '50787.697898',
            'longitude'=> '62055920.756574',
            'v'=> '2.0.0',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
access-control-expose-headers: *
 

{
    "cityId": null,
    "cityMonoCompanyId": null,
    "isCitySupported": false,
    "isInDeliveryZone": false,
    "geocodedAddress": null
}
 

Request   

GET api/v2/accounts/{account}/geo/reverse-geocode

URL Parameters

account  string  

Query Parameters

latitude  number  

longitude  number  

v  string  

Api Version

Accounts

Account Settings By Domain Information.

These settings bit differ from account settings. Used for Web.

Example request:
curl --request GET \
    --get "clients-api.dots.live/api/v2/accounts/settings-by-domain?domain=jacksburgersbar.com&v=2.0.0" \
    --header "Api-Token: {{YOUR_API_TOKEN}}" \
    --header "Api-Account-Token: {{YOUR_ACCOUNT_TOKEN}}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'clients-api.dots.live/api/v2/accounts/settings-by-domain',
    [
        'headers' => [
            'Api-Token' => '{{YOUR_API_TOKEN}}',
            'Api-Account-Token' => '{{YOUR_ACCOUNT_TOKEN}}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'query' => [
            'domain'=> 'jacksburgersbar.com',
            'v'=> '2.0.0',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200, Success Example):


{
    "phoneMask": "+38 (###) ###-##-##",
    "phoneDigitsCount": 12,
    "isCashbackAvailable": true,
    "isCompaniesZoningActive": true,
    "minCashbackChargeAmount": 50,
    "monoCityId": null,
    "gdpr": {
        "cookiesMessagesMode": 0,
        "privacyDataUsageMode": 2
    },
    "appearances": {
        "isShadowEnabled": true,
        "colors": {
            "primaryColor": "#47C128",
            "accentColor": "#FA9A10",
            "elementTextColor": "#FFFFFF",
            "lightTheme": {
                "backgroundColor": "#F7F7F7",
                "blockColor": "#FFFFFF",
                "primaryTextColor": "#000000"
            },
            "darkTheme": {
                "backgroundColor": "#010101",
                "blockColor": "#262626",
                "primaryTextColor": "#FFFFFF"
            }
        }
    },
    "rulesUrlsByLangs": {
        "ru": "https://docs.google.com/document/d/123A7Nn3mzd3A5h8OU8Xhy4o09w-W_6CkfGl3Vjdc630/edit",
        "en": "https://docs.google.com/document/d/123A7Nn3mzd3A5h8OU8Xhy4o09w-W_6CkfGl3Vjdc630/edit"
    }
}
 

Request   

GET api/v2/accounts/settings-by-domain

Query Parameters

domain  string  

Account Domain.

v  string  

Api Version

Account Settings.

Example request:
curl --request GET \
    --get "clients-api.dots.live/api/v2/accounts/sed/settings?v=2.0.0" \
    --header "Api-Token: {{YOUR_API_TOKEN}}" \
    --header "Api-Account-Token: {{YOUR_ACCOUNT_TOKEN}}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'clients-api.dots.live/api/v2/accounts/sed/settings',
    [
        'headers' => [
            'Api-Token' => '{{YOUR_API_TOKEN}}',
            'Api-Account-Token' => '{{YOUR_ACCOUNT_TOKEN}}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'query' => [
            'v'=> '2.0.0',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200, Success Example):


{
    "phoneMask": "+38 (###) ###-##-##",
    "phoneDigitsCount": 12,
    "isCashbackAvailable": true,
    "isCompaniesZoningActive": true,
    "minCashbackChargeAmount": 50,
    "monoCityId": null,
    "gdpr": {
        "cookiesMessagesMode": 0,
        "privacyDataUsageMode": 2
    },
    "appearances": {
        "isShadowEnabled": true,
        "colors": {
            "primaryColor": "#47C128",
            "accentColor": "#FA9A10",
            "elementTextColor": "#FFFFFF",
            "lightTheme": {
                "backgroundColor": "#F7F7F7",
                "blockColor": "#FFFFFF",
                "primaryTextColor": "#000000"
            },
            "darkTheme": {
                "backgroundColor": "#010101",
                "blockColor": "#262626",
                "primaryTextColor": "#FFFFFF"
            }
        }
    },
    "rulesUrlsByLangs": {
        "ru": "https://docs.google.com/document/d/123A7Nn3mzd3A5h8OU8Xhy4o09w-W_6CkfGl3Vjdc630/edit",
        "en": "https://docs.google.com/document/d/123A7Nn3mzd3A5h8OU8Xhy4o09w-W_6CkfGl3Vjdc630/edit"
    }
}
 

Request   

GET api/v2/accounts/{account}/settings

URL Parameters

account  string  

Query Parameters

v  string  

Api Version

Account Start Data.

Example request:
curl --request GET \
    --get "clients-api.dots.live/api/v2/accounts/at/start?city=ut&deviceLocale=dolorem&v=2.0.0" \
    --header "Api-Token: {{YOUR_API_TOKEN}}" \
    --header "Api-Account-Token: {{YOUR_ACCOUNT_TOKEN}}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'clients-api.dots.live/api/v2/accounts/at/start',
    [
        'headers' => [
            'Api-Token' => '{{YOUR_API_TOKEN}}',
            'Api-Account-Token' => '{{YOUR_ACCOUNT_TOKEN}}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'query' => [
            'city'=> 'ut',
            'deviceLocale'=> 'dolorem',
            'v'=> '2.0.0',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
  "settings" => [
    "phoneMask" => "380999999999",
    "phoneDigitsCount" => 12,
    "isCashbackAvailable" => false,
    "minCashbackChargeAmount" => 0.0,
    "monoCityId" => null,
    "gdpr" => null,
    "appearances" => [
      "isShadowEnabled" => true,
      "colors" => [
        "primaryColor" => "#01AFB2",
        "accentColor" => "#FA9A0F",
        "elementTextColor" => "#FFFFFF",
        "lightTheme" => [
          "backgroundColor" => "#F7F7F7",
          "blockColor" => "#FFFFFF",
          "primaryTextColor" => "#000000",
        ],
        "darkTheme" => [
          "backgroundColor" => "#010101",
          "blockColor" => "#262626",
          "primaryTextColor" => "#FFFFFF",
        ],
      ],
    ],
  ],
  "langs" => [
    "items" => [],
    "hasNext" => false,
  ],
  "cityMonoCompanyId" => null,
}
 

Request   

GET api/v2/accounts/{account}/start

URL Parameters

account  string  

Query Parameters

city  string optional  

selected city (we detect mono company id by this city)

deviceLocale  string optional  

Current Device Locale

v  string  

Api Version

Account Langs Information.

Example request:
curl --request GET \
    --get "clients-api.dots.live/api/v2/accounts/nisi/langs?deviceLocale=ua&v=2.0.0" \
    --header "Api-Token: {{YOUR_API_TOKEN}}" \
    --header "Api-Account-Token: {{YOUR_ACCOUNT_TOKEN}}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'clients-api.dots.live/api/v2/accounts/nisi/langs',
    [
        'headers' => [
            'Api-Token' => '{{YOUR_API_TOKEN}}',
            'Api-Account-Token' => '{{YOUR_ACCOUNT_TOKEN}}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'query' => [
            'deviceLocale'=> 'ua',
            'v'=> '2.0.0',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200, Success Example):


{
    "items": [
        {
            "code": "ru",
            "locale": "ru",
            "name": "Русский",
            "isCurrent": false,
            "isMain": false
        },
        {
            "code": "en",
            "locale": "en",
            "name": "English",
            "isCurrent": true,
            "isMain": true
        }
    ],
    "hasNext": false
}
 

Request   

GET api/v2/accounts/{account}/langs

URL Parameters

account  string  

Query Parameters

deviceLocale  string optional  

Current Device Locale.

v  string  

Api Version

Account id by domain.

Example request:
curl --request GET \
    --get "clients-api.dots.live/api/v2/accounts/id-by-domain?v=2.0.0" \
    --header "Api-Token: {{YOUR_API_TOKEN}}" \
    --header "Api-Account-Token: {{YOUR_ACCOUNT_TOKEN}}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'clients-api.dots.live/api/v2/accounts/id-by-domain',
    [
        'headers' => [
            'Api-Token' => '{{YOUR_API_TOKEN}}',
            'Api-Account-Token' => '{{YOUR_ACCOUNT_TOKEN}}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'query' => [
            'v'=> '2.0.0',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (422):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
access-control-expose-headers: *
 

{
    "message": "The domain field is required.",
    "errors": {
        "domain": [
            "The domain field is required."
        ]
    }
}
 

Request   

GET api/v2/accounts/id-by-domain

Query Parameters

v  string  

Api Version

App

Api version info.

Check that version is supported.

Example request:
curl --request GET \
    --get "clients-api.dots.live/api/v2/app/version?v=2.0.0" \
    --header "Api-Token: {{YOUR_API_TOKEN}}" \
    --header "Api-Account-Token: {{YOUR_ACCOUNT_TOKEN}}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'clients-api.dots.live/api/v2/app/version',
    [
        'headers' => [
            'Api-Token' => '{{YOUR_API_TOKEN}}',
            'Api-Account-Token' => '{{YOUR_ACCOUNT_TOKEN}}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'query' => [
            'v'=> '2.0.0',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "version": 2,
    "supported": true
}
 

Request   

GET api/v2/app/version

Query Parameters

v  string  

Api Version

Welcome screens.

Shows configured welcome screens.

Example request:
curl --request GET \
    --get "clients-api.dots.live/api/v2/app/welcome-screen?v=2.0.0" \
    --header "Api-Token: {{YOUR_API_TOKEN}}" \
    --header "Api-Account-Token: {{YOUR_ACCOUNT_TOKEN}}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'clients-api.dots.live/api/v2/app/welcome-screen',
    [
        'headers' => [
            'Api-Token' => '{{YOUR_API_TOKEN}}',
            'Api-Account-Token' => '{{YOUR_ACCOUNT_TOKEN}}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'query' => [
            'v'=> '2.0.0',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200, Success Example):


{
    "firstScreen": {
        "title": "Jack's Burgers - order in a few clicks.",
        "description": "Reliable service and fast delivery at your service."
    },
    "secondScreen": {
        "title": "Turn on notifications - it is important!",
        "description": "They will help tracking the status of each order."
    },
    "thirdScreen": {
        "title": "Please share your location.",
        "description": "This will help determine the possibility of delivery to your address."
    }
}
 

Request   

GET api/v2/app/welcome-screen

Query Parameters

v  string  

Api Version

AppTokens

Register app.

Example request:
curl --request POST \
    "clients-api.dots.live/api/v2/app-tokens?v=2.0.0" \
    --header "Api-Token: {{YOUR_API_TOKEN}}" \
    --header "Api-Account-Token: {{YOUR_ACCOUNT_TOKEN}}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"deviceToken\": \"i0F1kt1jAqsZC7vewcfv4d\",
    \"type\": \"ios\",
    \"data\": \"{\\\"deviceModel\\\": \\\"Iphone 13 Pro\\\", \\\"apiVersion\\\": \\\"2.0.0\\\"}\",
    \"notificationToken\": \"r88W2NwhWTqgzQCdVs01UeLIhvfzTWIS9Ek3D7JK8rxFX8VkYKZ4uphaNxh1OrZelyJGercYC1DhTqmCKcplAWvipo1ducbZXJvHGb0yNhk0gm9vKaajk25GoRZwfnJpp9vVVzKOExIrqkPmQJvlF1clHc1zzzNCF5pICLOX6ptgNC3nTLVsTGp5tzzJmRXxFnztzdOWDvZjddQKR6dCkmC581ugDQLUZJiSQJdWrynllMgnFCQ7lV2nh7fpAmO3\"
}"
$client = new \GuzzleHttp\Client();
$response = $client->post(
    'clients-api.dots.live/api/v2/app-tokens',
    [
        'headers' => [
            'Api-Token' => '{{YOUR_API_TOKEN}}',
            'Api-Account-Token' => '{{YOUR_ACCOUNT_TOKEN}}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'query' => [
            'v'=> '2.0.0',
        ],
        'json' => [
            'deviceToken' => 'i0F1kt1jAqsZC7vewcfv4d',
            'type' => 'ios',
            'data' => '{"deviceModel": "Iphone 13 Pro", "apiVersion": "2.0.0"}',
            'notificationToken' => 'r88W2NwhWTqgzQCdVs01UeLIhvfzTWIS9Ek3D7JK8rxFX8VkYKZ4uphaNxh1OrZelyJGercYC1DhTqmCKcplAWvipo1ducbZXJvHGb0yNhk0gm9vKaajk25GoRZwfnJpp9vVVzKOExIrqkPmQJvlF1clHc1zzzNCF5pICLOX6ptgNC3nTLVsTGp5tzzJmRXxFnztzdOWDvZjddQKR6dCkmC581ugDQLUZJiSQJdWrynllMgnFCQ7lV2nh7fpAmO3',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200, Success Example):


{
    "id": "2a07c7eb-fed2-4d1e-8442-b92e77300484"
}
 

Request   

POST api/v2/app-tokens

Query Parameters

v  string  

Api Version

Body Parameters

deviceToken  uuid  

Unique device id token.

type  string  

Platform App Type. Must be within: ios|android.

data  string optional  

All Other Data: Device Model, Current Version.

notificationToken  string optional  

Device token where to send notification.

Set app notification token.

This token will be used to send Push notifications. Used when token is changed in app.

.
Example request:
curl --request POST \
    "clients-api.dots.live/api/v2/app-tokens/numquam/notification?v=2.0.0" \
    --header "Api-Token: {{YOUR_API_TOKEN}}" \
    --header "Api-Account-Token: {{YOUR_ACCOUNT_TOKEN}}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"notificationToken\": \"z7gJsy9X5wp1ys6c2ehuJU9Lx4vcNef9jPVBXabRVsCzGMEfUdSJvgNZmWD6dqpkMC98F2mlGXu1AFSHGetJiZhWt63FyfGXkOCd50hMiPlJXVEz4IPivlEps1nGR9OulozcneVoyRrvOZWeObi9VrD2AMDOKhALN99GLrQyiu6ekjxA1t22gdivvRB7d3f3zM4ZvUEqIqxCOs53EmYhPzMCYWLBFNOpAnp1JbdyMpsiwth9ibiCtI9gNCInfYiO\"
}"
$client = new \GuzzleHttp\Client();
$response = $client->post(
    'clients-api.dots.live/api/v2/app-tokens/numquam/notification',
    [
        'headers' => [
            'Api-Token' => '{{YOUR_API_TOKEN}}',
            'Api-Account-Token' => '{{YOUR_ACCOUNT_TOKEN}}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'query' => [
            'v'=> '2.0.0',
        ],
        'json' => [
            'notificationToken' => 'z7gJsy9X5wp1ys6c2ehuJU9Lx4vcNef9jPVBXabRVsCzGMEfUdSJvgNZmWD6dqpkMC98F2mlGXu1AFSHGetJiZhWt63FyfGXkOCd50hMiPlJXVEz4IPivlEps1nGR9OulozcneVoyRrvOZWeObi9VrD2AMDOKhALN99GLrQyiu6ekjxA1t22gdivvRB7d3f3zM4ZvUEqIqxCOs53EmYhPzMCYWLBFNOpAnp1JbdyMpsiwth9ibiCtI9gNCInfYiO',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200, Success Example):


[
    "ok"
]
 

Request   

POST api/v2/app-tokens/{appToken}/notification

URL Parameters

appToken  string  

Query Parameters

v  string  

Api Version

Body Parameters

notificationToken  string  

FCM Notification token where to send notification.

Update app token lang.

Use it when user changes lang in your app. Then system will send notifications in specified lang.

Example request:
curl --request PATCH \
    "clients-api.dots.live/api/v2/app-tokens/et/lang?v=2.0.0" \
    --header "Api-Token: {{YOUR_API_TOKEN}}" \
    --header "Api-Account-Token: {{YOUR_ACCOUNT_TOKEN}}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"lang\": \"ua\"
}"
$client = new \GuzzleHttp\Client();
$response = $client->patch(
    'clients-api.dots.live/api/v2/app-tokens/et/lang',
    [
        'headers' => [
            'Api-Token' => '{{YOUR_API_TOKEN}}',
            'Api-Account-Token' => '{{YOUR_ACCOUNT_TOKEN}}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'query' => [
            'v'=> '2.0.0',
        ],
        'json' => [
            'lang' => 'ua',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200, Success Example):


[
    "ok"
]
 

Request   

PATCH api/v2/app-tokens/{appToken}/lang

URL Parameters

appToken  string  

Query Parameters

v  string  

Api Version

Body Parameters

lang  string  

Must be within supported langs by account.

Cart

Cart info.

Returns Cart Info. Used to render Company Name. And to get amount that is required for free delivery if promotion is configured. Additional massages are also retrieved here. See example response.

Example request:
curl --request POST \
    "clients-api.dots.live/api/v2/cart/info?v=2.0.0" \
    --header "Api-Token: {{YOUR_API_TOKEN}}" \
    --header "Api-Account-Token: {{YOUR_ACCOUNT_TOKEN}}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"companyId\": \"{{companyId}}\",
    \"cartItems\": \"[{\\\"id\\\": {{itemId}}, \\\"count\\\": 2}]\"
}"
$client = new \GuzzleHttp\Client();
$response = $client->post(
    'clients-api.dots.live/api/v2/cart/info',
    [
        'headers' => [
            'Api-Token' => '{{YOUR_API_TOKEN}}',
            'Api-Account-Token' => '{{YOUR_ACCOUNT_TOKEN}}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'query' => [
            'v'=> '2.0.0',
        ],
        'json' => [
            'companyId' => '{{companyId}}',
            'cartItems' => '[{"id": {{itemId}}, "count": 2}]',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200, Success Example):


{
    "companyName": "Peperoni",
    "cartMessagesPopup": {
        "title": "Important!",
        "minPriceForFreeDelivery": 100,
        "messages": [
            "You have alcohol in cart. Please show your ID when you receive your order."
        ]
    }
}
 

Example response (422, Validation error: No company id):


{
    "message": "The given data was invalid.",
    "errors": {
        "companyId": [
            "validation.required"
        ]
    }
}
 

Request   

POST api/v2/cart/info

Query Parameters

v  string  

Api Version

Body Parameters

companyId  uuid  

cartItems  string  

Specify cart items here: Array of objects: id,count,modifier: "[{"id": {{itemId}}, "count": 2, "modifier": 0}]".

Resolve cart prices.

Validation and params are NOT the same as in Store Order Request. Username and phone are not required.

.
Example request:
curl --request POST \
    "clients-api.dots.live/api/v2/cart/prices/resolve?v=2.0.0" \
    --header "Api-Token: {{YOUR_API_TOKEN}}" \
    --header "Api-Account-Token: {{YOUR_ACCOUNT_TOKEN}}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
$client = new \GuzzleHttp\Client();
$response = $client->post(
    'clients-api.dots.live/api/v2/cart/prices/resolve',
    [
        'headers' => [
            'Api-Token' => '{{YOUR_API_TOKEN}}',
            'Api-Account-Token' => '{{YOUR_ACCOUNT_TOKEN}}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'query' => [
            'v'=> '2.0.0',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200, Success Example With Distance Popup Message):


{
    "price": 75,
    "basePrice": 0,
    "deliveryPrice": 95,
    "totalPrice": 170,
    "baseTotalPrice": 125,
    "popups": [
        {
            "acceptButtonShow": true,
            "cancelButtonShow": true,
            "message": "Відстань від точки видачі до вказаної Вами адреси перевищує 4 км. Доплата становитиме 45 ₴",
            "title": "Доплата за доставку",
            "type": "general"
        }
    ],
    "data": null,
    "paidByCashbackAmount": 0,
    "totalPromoDiscountsAmount": 0,
    "promoCodeApplied": false
}
 

Request   

POST api/v2/cart/prices/resolve

Query Parameters

v  string  

Api Version

Body Parameters

orderFields  object  

orderFields.cityId  uuid  

City where you create order.

orderFields.companyId  uuid  

Company where you create order. Must belong to city.

orderFields.companyAddressId  uuid  

Company Address where exactly need to prepare order. Used when delivery type in [2,3,4,5] (non delivering order). For orders with type 0 or 1 system will automatically use the best companyAddress. Must belong to company.

orderFields.deliveryType  integer  

Delivery type. Must be one of 0, 1, 2, 3, 4, or 5.

orderFields.paymentType  integer  

Payment type. Must be one of 1, 2, 3.

orderFields.deliveryTime  integer  

Timestamp when user wants to receive order. Use 0 if user want to receive order as soon as possible.

orderFields.deliveryAddressStreet  string optional  

orderFields.deliveryAddressHouse  string optional  

orderFields.promoCode  string optional  

orderFields.paidByCashbackAmount  number optional  

Should be specified if user has available cashback and wants to pay with it

orderFields.cartItems  string  

Specify cart items here.

Validate Cart Prices.

Validation and params are the same as in Store Order Request.

.
Example request:
curl --request POST \
    "clients-api.dots.live/api/v2/cart/prices/validate?v=2.0.0" \
    --header "Api-Token: {{YOUR_API_TOKEN}}" \
    --header "Api-Account-Token: {{YOUR_ACCOUNT_TOKEN}}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
$client = new \GuzzleHttp\Client();
$response = $client->post(
    'clients-api.dots.live/api/v2/cart/prices/validate',
    [
        'headers' => [
            'Api-Token' => '{{YOUR_API_TOKEN}}',
            'Api-Account-Token' => '{{YOUR_ACCOUNT_TOKEN}}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'query' => [
            'v'=> '2.0.0',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request   

POST api/v2/cart/prices/validate

Query Parameters

v  string  

Api Version

Body Parameters

orderFields  object  

orderFields.cityId  uuid  

City where you create order.

orderFields.companyId  uuid  

Company where you create order. Must belong to city.

orderFields.companyAddressId  uuid  

Company Address where exactly need to prepare order. Used when delivery type in [2,3,4,5] (non delivering order). For orders with type 0 or 1 system will automatically use the best companyAddress. Must belong to company.

orderFields.userName  string  

Displayed name of user. Max 100 characters.

orderFields.userPhone  string  

Displayed phone of user. Must be in format 380XXXXXXXXX.

orderFields.deliveryType  integer  

Delivery type. Must be one of 0, 1, 2, 3, 4, or 5.

orderFields.paymentType  integer  

Payment type. Must be one of 1, 2, 3.

orderFields.deliveryTime  integer  

Timestamp when user wants to receive order. Use 0 if user want to receive order as soon as possible.

orderFields.paidByCashbackAmount  number optional  

Should be specified if user has available cashback and wants to pay with it

orderFields.cartItems  string  

Specify cart items here.

Checkout

Checkout page info Returns all needed information to render checkout page.

Example request:
curl --request GET \
    --get "clients-api.dots.live/api/v2/cart/checkout?v=2.0.0" \
    --header "Api-Token: {{YOUR_API_TOKEN}}" \
    --header "Api-Account-Token: {{YOUR_ACCOUNT_TOKEN}}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'clients-api.dots.live/api/v2/cart/checkout',
    [
        'headers' => [
            'Api-Token' => '{{YOUR_API_TOKEN}}',
            'Api-Account-Token' => '{{YOUR_ACCOUNT_TOKEN}}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'query' => [
            'v'=> '2.0.0',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
  [
    "nonDeliveryCompanyAddressesData" => [
      "pickUpAddresses" => [
        0 => [
          "id" => "6cfac268-cf8f-3c7c-8c81-d8fea53d1db7"
          "address" => "Pr. Mury 41"
        ]
      ]
      "bookingAddresses" => [
        0 => [
          "id" => "6cfac268-cf8f-3c7c-8c81-d8fea53d1db7"
          "address" => "Pr. Mury 41"
        ]
      ]
      "innerDeliveryAddresses" => [
        0 => [
          "id" => "6cfac268-cf8f-3c7c-8c81-d8fea53d1db7"
          "address" => "Pr. Mury 41"
        ]
      ]
      "innerDeliveryToRoomAddresses" => [
        0 => [
          "id" => "6cfac268-cf8f-3c7c-8c81-d8fea53d1db7"
          "address" => "Pr. Mury 41"
        ]
      ]
    ]
    "timeForGetting" => [
      "deliveryTime" => [
        0 => {
          "date": 1617310800,
          "times": [
            1617372300,
            1617372900,
            1617373500,
            1617374100,
            1617374700,
            1617375300,
          ]
        }
      ]
      "nonDeliveryTime" => [
        0 => {
          "date": 1617310800,
          "times": [
            1617372300,
            1617372900,
            1617373500,
            1617374100,
            1617374700,
            1617375300,
          ]
        }
      ]
    ]
    "deliveryTypes" => [
      0 => [
        "title" => "Delivery home"
        "price" => 24.0
        "type" => 0
        "isPeopleCountAvailable" => true
      ]
      1 => [
        "title" => "Door delivery"
        "price" => 26.0
        "type" => 1
       "isPeopleCountAvailable" => true
      ]
      2 => [
        "title" => "Pickup"
        "price" => 0.0
        "type" => 2
        "isPeopleCountAvailable" => true
      ]
      3 => [
        "title" => "Pre-order and table reservation"
        "price" => 0.0
        "type" => 3
        "isPeopleCountAvailable" => true
      ]
      4 => [
        "title" => "Delivery to table"
        "price" => 0.0
        "type" => 4
        "isPeopleCountAvailable" => true
      ]
      5 => [
        "title" => "Delivery to room"
        "price" => 0.0
        "type" => 5
        "isPeopleCountAvailable" => true
      ]
    ]
    "paymentTypes" => [
      0 => [
        "type" => 1
        "title" => "Cash payment"
      ]
      1 => [
        "type" => 2
        "title" => "Online payment"
      ]
      2 => [
        "type" => 3
        "title" => "Payment by terminal"
      ]
    ]
    "userAddresses" => []
    "deliveryTimeTypes" => [
      0 => [
        "title" => "As soon as possible"
        "type" => "asap"
      ]
      1 => [
        "title" => "On specific time"
        "type" => "onTime"
      ]
    ]
    "userAvailableCashbackBalance" => 0.0
    "cashbackInfoText" => "1 bonus = 1 UAH"
    "phoneMask" => "380999999999"
    "phoneDigitsCount" => 12
    "gdpr" => [
      "gdprMode" => 0
    ]
  ]
}
 

Request   

GET api/v2/cart/checkout

Query Parameters

v  string  

Api Version

Cities

Active Cities List.

Example request:
curl --request GET \
    --get "clients-api.dots.live/api/v2/cities?v=2.0.0" \
    --header "Api-Token: {{YOUR_API_TOKEN}}" \
    --header "Api-Account-Token: {{YOUR_ACCOUNT_TOKEN}}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'clients-api.dots.live/api/v2/cities',
    [
        'headers' => [
            'Api-Token' => '{{YOUR_API_TOKEN}}',
            'Api-Account-Token' => '{{YOUR_ACCOUNT_TOKEN}}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'query' => [
            'v'=> '2.0.0',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200, One City Account):


{
    "items": [
        {
            "id": "f68b48c2-5521-11eb-9cdd-f23c92a7f68e",
            "name": "Kyiv",
            "url": "kyiv",
            "status": 1,
            "centerCoordinates": {
                "latitude": 50.4501,
                "longitude": 30.5234
            }
        }
    ],
    "hasNext": false
}
 

Example response (200, Multi Cities Account):


{
    "items": [
        {
            "id": "ccf4725c-4ff3-11eb-a418-0242ac130005",
            "name": "Чернигов",
            "url": "chernigov",
            "status": 1,
            "centerCoordinates": {
                "latitude": 51.4982,
                "longitude": 31.2893499
            }
        },
        {
            "id": "ccf61141-4ff3-11eb-a418-0242ac130005",
            "name": "Лутск",
            "url": "lutsk",
            "status": 1,
            "centerCoordinates": {
                "latitude": 50.747233,
                "longitude": 25.325383
            }
        }
    ],
    "hasNext": false
}
 

Example response (200, Empty List):


{
    "items": [],
    "hasNext": false
}
 

Request   

GET api/v2/cities

Query Parameters

v  string  

Api Version

City by ip info.

Example request:
curl --request GET \
    --get "clients-api.dots.live/api/v2/cities/by-ip?v=2.0.0" \
    --header "Api-Token: {{YOUR_API_TOKEN}}" \
    --header "Api-Account-Token: {{YOUR_ACCOUNT_TOKEN}}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'clients-api.dots.live/api/v2/cities/by-ip',
    [
        'headers' => [
            'Api-Token' => '{{YOUR_API_TOKEN}}',
            'Api-Account-Token' => '{{YOUR_ACCOUNT_TOKEN}}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'query' => [
            'v'=> '2.0.0',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200, Success Example):


{
    "id": "f68b48c2-5521-11eb-9cdd-f23c92a7f68e",
    "name": "Kyiv",
    "url": "kyiv",
    "supportPhone": "(050) 000-00-00",
    "status": 1,
    "isChatEnabled": true,
    "currency": {
        "formatted": "$",
        "token": "USD"
    },
    "timezone": "Europe/Kiev",
    "pageFacebook": "https://www.facebook.com/mister.am.chernigov",
    "pageInsta": "https://www.instagram.com/mister.am.chernihiv",
    "noticeMessage": null,
    "centerCoordinates": {
        "latitude": 50.4501,
        "longitude": 30.5234
    },
    "deliveryTypes": [
        {
            "id": 0,
            "title": "Home delivery"
        },
        {
            "id": 1,
            "title": "Door delivery"
        },
        {
            "id": 2,
            "title": "Takeaway"
        },
        {
            "id": 3,
            "title": "Table reservation"
        }
    ],
    "promotions": []
}
 

Request   

GET api/v2/cities/by-ip

Query Parameters

v  string  

Api Version

City info.

Example request:
curl --request GET \
    --get "clients-api.dots.live/api/v2/cities/rem?v=2.0.0" \
    --header "Api-Token: {{YOUR_API_TOKEN}}" \
    --header "Api-Account-Token: {{YOUR_ACCOUNT_TOKEN}}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'clients-api.dots.live/api/v2/cities/rem',
    [
        'headers' => [
            'Api-Token' => '{{YOUR_API_TOKEN}}',
            'Api-Account-Token' => '{{YOUR_ACCOUNT_TOKEN}}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'query' => [
            'v'=> '2.0.0',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200, Success Example):


{
    "id": "f68b48c2-5521-11eb-9cdd-f23c92a7f68e",
    "name": "Kyiv",
    "url": "kyiv",
    "supportPhone": "(050) 000-00-00",
    "status": 1,
    "isChatEnabled": true,
    "currency": {
        "formatted": "$",
        "token": "USD"
    },
    "timezone": "Europe/Kiev",
    "pageFacebook": "https://www.facebook.com/mister.am.chernigov",
    "pageInsta": "https://www.instagram.com/mister.am.chernihiv",
    "noticeMessage": null,
    "centerCoordinates": {
        "latitude": 50.4501,
        "longitude": 30.5234
    },
    "deliveryTypes": [
        {
            "id": 0,
            "title": "Home delivery"
        },
        {
            "id": 1,
            "title": "Door delivery"
        },
        {
            "id": 2,
            "title": "Takeaway"
        },
        {
            "id": 3,
            "title": "Table reservation"
        }
    ],
    "promotions": []
}
 

Request   

GET api/v2/cities/{id}

URL Parameters

id  string  

The ID of the city.

Query Parameters

v  string  

Api Version

City Active Companies.

Example request:
curl --request GET \
    --get "clients-api.dots.live/api/v2/cities/dBcdCcaB-AbdC-abfd-bFAB-BACDdeddFFCf/companies?v=2.0.0" \
    --header "Api-Token: {{YOUR_API_TOKEN}}" \
    --header "Api-Account-Token: {{YOUR_ACCOUNT_TOKEN}}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'clients-api.dots.live/api/v2/cities/dBcdCcaB-AbdC-abfd-bFAB-BACDdeddFFCf/companies',
    [
        'headers' => [
            'Api-Token' => '{{YOUR_API_TOKEN}}',
            'Api-Account-Token' => '{{YOUR_ACCOUNT_TOKEN}}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'query' => [
            'v'=> '2.0.0',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200, Success Example):


{
    "items": [
        {
            "id": "f7bccc99-5521-11eb-9cdd-f23c92a7f68e",
            "name": "Jack's Burgers",
            "image": "https://assets.dots.live/misteram-public/94232638631eb7a7a21e7566ddb3bff8.png",
            "availablePaymentTypes": [
                {
                    "type": 1,
                    "title": "Cash"
                },
                {
                    "type": 2,
                    "title": "Online"
                },
                {
                    "type": 3,
                    "title": "Terminal"
                }
            ],
            "rating": 4.8,
            "status": 1,
            "showReviews": true,
            "schedule": [
                {
                    "id": 0,
                    "start": "08:00",
                    "end": "23:00",
                    "startTime": 1635746440,
                    "endTime": 1635800440,
                    "isActive": true
                },
                {
                    "id": 1,
                    "start": "08:00",
                    "end": "23:00",
                    "startTime": 1635832840,
                    "endTime": 1635886840,
                    "isActive": true
                },
                {
                    "id": 2,
                    "start": "08:00",
                    "end": "23:00",
                    "startTime": 1635919240,
                    "endTime": 1635973240,
                    "isActive": true
                },
                {
                    "id": 3,
                    "start": "09:00",
                    "end": "23:00",
                    "startTime": 1636009240,
                    "endTime": 1636059640,
                    "isActive": true
                },
                {
                    "id": 4,
                    "start": "09:00",
                    "end": "23:00",
                    "startTime": 1636095640,
                    "endTime": 1636146040,
                    "isActive": true
                },
                {
                    "id": 5,
                    "start": "08:30",
                    "end": "23:00",
                    "startTime": 1636180240,
                    "endTime": 1636232440,
                    "isActive": true
                },
                {
                    "id": 6,
                    "start": "08:00",
                    "end": "23:00",
                    "startTime": 1636264840,
                    "endTime": 1636318840,
                    "isActive": true
                }
            ],
            "deliveryTimeText": "up to 45 min.",
            "deliveryPriceText": "from $50",
            "promoLabelText": null,
            "availableDeliveryTypes": [
                0,
                1,
                2,
                3,
                4,
                5
            ],
            "specializedCityCategoryIds": [
                "f6e39653-5521-11eb-9cdd-f23c92a7f68e",
                "f6e39b09-5521-11eb-9cdd-f23c92a7f68e",
                "f6e399a6-5521-11eb-9cdd-f23c92a7f68e"
            ],
            "priority": 100,
            "url": "jacks-burgers"
        }
    ],
    "hasNext": false
}
 

Example response (200, Empty List):


{
    "items": [],
    "hasNext": false
}
 

Request   

GET api/v2/cities/{city}/companies

URL Parameters

city  string  

Query Parameters

v  string  

Api Version

City Top Active Categories.

Example request:
curl --request GET \
    --get "clients-api.dots.live/api/v2/cities/EdAFbffd-FAbB-CeBd-EEEa-BEBCceAdfDFD/categories?v=2.0.0" \
    --header "Api-Token: {{YOUR_API_TOKEN}}" \
    --header "Api-Account-Token: {{YOUR_ACCOUNT_TOKEN}}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'clients-api.dots.live/api/v2/cities/EdAFbffd-FAbB-CeBd-EEEa-BEBCceAdfDFD/categories',
    [
        'headers' => [
            'Api-Token' => '{{YOUR_API_TOKEN}}',
            'Api-Account-Token' => '{{YOUR_ACCOUNT_TOKEN}}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'query' => [
            'v'=> '2.0.0',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200, Success Example):


{
    "items": [
        {
            "id": "f6e39653-5521-11eb-9cdd-f23c92a7f68e",
            "url": "burgers",
            "name": "Burgers"
        },
        {
            "id": "f6e39b09-5521-11eb-9cdd-f23c92a7f68e",
            "url": "sushi",
            "name": "Sushi"
        },
        {
            "id": "f6e399a6-5521-11eb-9cdd-f23c92a7f68e",
            "url": "drinks",
            "name": "Drinks"
        },
        {
            "id": "f6e93487-5521-11eb-9cdd-f23c92a7f68e",
            "url": "eating-utensils",
            "name": "Eating utensils"
        }
    ],
    "hasNext": false
}
 

Example response (200, Empty List):


{
    "items": [],
    "hasNext": false
}
 

Request   

GET api/v2/cities/{city}/categories

URL Parameters

city  string  

Query Parameters

v  string  

Api Version

City polygon.

Example request:
curl --request GET \
    --get "clients-api.dots.live/api/v2/cities/adFEbeDf-EcCe-dDCE-aADC-CBEAdbdbffAC/polygons?v=2.0.0" \
    --header "Api-Token: {{YOUR_API_TOKEN}}" \
    --header "Api-Account-Token: {{YOUR_ACCOUNT_TOKEN}}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'clients-api.dots.live/api/v2/cities/adFEbeDf-EcCe-dDCE-aADC-CBEAdbdbffAC/polygons',
    [
        'headers' => [
            'Api-Token' => '{{YOUR_API_TOKEN}}',
            'Api-Account-Token' => '{{YOUR_ACCOUNT_TOKEN}}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'query' => [
            'v'=> '2.0.0',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200, Success Example):


{
    "items": [
        [
            {
                "latitude": 50.51517303835635,
                "longitude": 30.36210517061685
            },
            {
                "latitude": 50.49421062933561,
                "longitude": 30.366208821575448
            },
            {
                "latitude": 50.47804575442329,
                "longitude": 30.35934542283279
            },
            {
                "latitude": 50.46056399318573,
                "longitude": 30.357971191406257
            },
            {
                "latitude": 50.43914002650341,
                "longitude": 30.356600251417923
            },
            {
                "latitude": 50.42383125367359,
                "longitude": 30.366898288315987
            },
            {
                "latitude": 50.40589182397226,
                "longitude": 30.394368575580337
            },
            {
                "latitude": 50.39407434322027,
                "longitude": 30.42388892505352
            },
            {
                "latitude": 50.37787523228101,
                "longitude": 30.448609573951153
            },
            {
                "latitude": 50.366488762738264,
                "longitude": 30.46440171532267
            },
            {
                "latitude": 50.35641383867467,
                "longitude": 30.474017103459293
            },
            {
                "latitude": 50.35203276986297,
                "longitude": 30.492557002375708
            },
            {
                "latitude": 50.34283120939227,
                "longitude": 30.502169804382344
            },
            {
                "latitude": 50.33581929989812,
                "longitude": 30.51178119577264
            },
            {
                "latitude": 50.34151655520418,
                "longitude": 30.52963280346211
            },
            {
                "latitude": 50.34326941936873,
                "longitude": 30.56259790050805
            },
            {
                "latitude": 50.350280229138775,
                "longitude": 30.60584739849384
            },
            {
                "latitude": 50.36447394633435,
                "longitude": 30.63317500263451
            },
            {
                "latitude": 50.418318894367,
                "longitude": 30.70817801907518
            },
            {
                "latitude": 50.47454991925151,
                "longitude": 30.683446334369396
            },
            {
                "latitude": 50.493074890507174,
                "longitude": 30.643356974156788
            },
            {
                "latitude": 50.513513865467566,
                "longitude": 30.612861866429892
            },
            {
                "latitude": 50.514125138233894,
                "longitude": 30.55353964676316
            },
            {
                "latitude": 50.52870631568803,
                "longitude": 30.504226919673055
            },
            {
                "latitude": 50.52608727455503,
                "longitude": 30.456849084942164
            },
            {
                "latitude": 50.523904629228625,
                "longitude": 30.434875958486725
            }
        ]
    ],
    "hasNext": false
}
 

Request   

GET api/v2/cities/{city}/polygons

URL Parameters

city  string  

Query Parameters

v  string  

Api Version

Companies

Company Info.

Example request:
curl --request GET \
    --get "clients-api.dots.live/api/v2/companies/iste?v=2.0.0" \
    --header "Api-Token: {{YOUR_API_TOKEN}}" \
    --header "Api-Account-Token: {{YOUR_ACCOUNT_TOKEN}}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'clients-api.dots.live/api/v2/companies/iste',
    [
        'headers' => [
            'Api-Token' => '{{YOUR_API_TOKEN}}',
            'Api-Account-Token' => '{{YOUR_ACCOUNT_TOKEN}}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'query' => [
            'v'=> '2.0.0',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200, Success Example):


{
    "id": "f7bccc99-5521-11eb-9cdd-f23c92a7f68e",
    "name": "Jack's Burgers",
    "status": 1,
    "rating": 4.8,
    "reviewsCount": 170,
    "showReviews": true,
    "payForBox": true,
    "description": "Jack's Burgers - real American burgers! We have built an authentic burger bar where the main dish is a gastronomic phenomenon, and not just a quick bite on the go. Specialty burgers are prepared with medium roasting on an open grill. Served with crispy fries and coleslaw salad. There is also a wide selection of snacks and drinks.",
    "packagePrice": 0,
    "maxCountInPackage": 5,
    "schedule": [
        {
            "id": 0,
            "start": "08:00",
            "end": "23:00",
            "startTime": 1635746406,
            "endTime": 1635800406,
            "isActive": true
        },
        {
            "id": 1,
            "start": "08:00",
            "end": "23:00",
            "startTime": 1635832806,
            "endTime": 1635886806,
            "isActive": true
        },
        {
            "id": 2,
            "start": "08:00",
            "end": "23:00",
            "startTime": 1635919206,
            "endTime": 1635973206,
            "isActive": true
        },
        {
            "id": 3,
            "start": "09:00",
            "end": "23:00",
            "startTime": 1636009206,
            "endTime": 1636059606,
            "isActive": true
        },
        {
            "id": 4,
            "start": "09:00",
            "end": "23:00",
            "startTime": 1636095606,
            "endTime": 1636146006,
            "isActive": true
        },
        {
            "id": 5,
            "start": "08:30",
            "end": "23:00",
            "startTime": 1636180206,
            "endTime": 1636232406,
            "isActive": true
        },
        {
            "id": 6,
            "start": "08:00",
            "end": "23:00",
            "startTime": 1636264806,
            "endTime": 1636318806,
            "isActive": true
        }
    ],
    "paymentTypes": [
        {
            "type": 1,
            "title": "Cash"
        },
        {
            "type": 2,
            "title": "Online"
        },
        {
            "type": 3,
            "title": "Terminal"
        }
    ],
    "deliveryTime": {
        "title": "Delivery time is up to 45 minutes",
        "label": "up to 45 min.",
        "description": "On average, the delivery time takes up to 45 minutes. Orders, on holidays or weekends, as well as during peak periods, may take longer to deliver."
    },
    "delivery": {
        "title": "Standard delivery from $50",
        "label": "from $50",
        "description": "Standard delivery - $50.\r\nDoorstep delivery - $55.\r\nTakeaway - free."
    },
    "promotions": [],
    "noticeMessage": {
        "title": "Important!",
        "message": "Please note: This is a demo version, so your orders won't be processed."
    },
    "addresses": [
        {
            "id": "f841fda9-5521-11eb-9cdd-f23c92a7f68e",
            "title": "Knyazhiy Zaton St., 9",
            "location": {
                "latitude": 50.402,
                "longitude": 30.625218
            },
            "polygon": [
                {
                    "latitude": 50.49041019120218,
                    "longitude": 30.582946877205476
                },
                {
                    "latitude": 50.48232779485382,
                    "longitude": 30.562697331614952
                },
                {
                    "latitude": 50.45129603365142,
                    "longitude": 30.588095066762417
                },
                {
                    "latitude": 50.42614975196303,
                    "longitude": 30.593929681593572
                },
                {
                    "latitude": 50.40864880687259,
                    "longitude": 30.600107509061885
                },
                {
                    "latitude": 50.3768680698219,
                    "longitude": 30.589261998107848
                },
                {
                    "latitude": 50.34598622295793,
                    "longitude": 30.60676584260137
                },
                {
                    "latitude": 50.35277757206081,
                    "longitude": 30.64829457169382
                },
                {
                    "latitude": 50.38540631004711,
                    "longitude": 30.681242984858073
                },
                {
                    "latitude": 50.40182168300679,
                    "longitude": 30.681242984858073
                },
                {
                    "latitude": 50.44889131492515,
                    "longitude": 30.659757882153094
                },
                {
                    "latitude": 50.48320163407991,
                    "longitude": 30.642254037659573
                },
                {
                    "latitude": 50.50045664818744,
                    "longitude": 30.596949969558743
                },
                {
                    "latitude": 50.50373220481898,
                    "longitude": 30.577730061879592
                }
            ]
        },
        {
            "id": "f84200c2-5521-11eb-9cdd-f23c92a7f68e",
            "title": "Shota Rustaveli St., 10",
            "location": {
                "latitude": 50.4397796,
                "longitude": 30.5212356
            },
            "polygon": [
                {
                    "latitude": 50.4734176904836,
                    "longitude": 30.52203968466383
                },
                {
                    "latitude": 50.4763251751987,
                    "longitude": 30.514980893772595
                },
                {
                    "latitude": 50.476543664279106,
                    "longitude": 30.503658235981195
                },
                {
                    "latitude": 50.479820879300895,
                    "longitude": 30.496796019137957
                },
                {
                    "latitude": 50.47414022885109,
                    "longitude": 30.48959069145253
                },
                {
                    "latitude": 50.4702070709315,
                    "longitude": 30.484444028820064
                },
                {
                    "latitude": 50.45695757588128,
                    "longitude": 30.482082366943363
                },
                {
                    "latitude": 50.45214859173516,
                    "longitude": 30.48465758100008
                },
                {
                    "latitude": 50.448787470539486,
                    "longitude": 30.48890446976818
                },
                {
                    "latitude": 50.443977655582565,
                    "longitude": 30.487875137241684
                },
                {
                    "latitude": 50.43498527759335,
                    "longitude": 30.49263916439429
                },
                {
                    "latitude": 50.43148625882513,
                    "longitude": 30.50602929668685
                },
                {
                    "latitude": 50.43017406011533,
                    "longitude": 30.52113537211483
                },
                {
                    "latitude": 50.43479392398924,
                    "longitude": 30.53007777082775
                },
                {
                    "latitude": 50.437855365839624,
                    "longitude": 30.54242976114564
                },
                {
                    "latitude": 50.43370050391744,
                    "longitude": 30.54448842619863
                },
                {
                    "latitude": 50.435668641863806,
                    "longitude": 30.547919534620256
                },
                {
                    "latitude": 50.440260645542,
                    "longitude": 30.556154194832164
                },
                {
                    "latitude": 50.44522239702681,
                    "longitude": 30.556091441581852
                },
                {
                    "latitude": 50.452178398616425,
                    "longitude": 30.54326288588923
                },
                {
                    "latitude": 50.45812497302285,
                    "longitude": 30.529049575036684
                },
                {
                    "latitude": 50.46190018447044,
                    "longitude": 30.526784983039835
                },
                {
                    "latitude": 50.467264442847394,
                    "longitude": 30.525958610692804
                },
                {
                    "latitude": 50.47152064949413,
                    "longitude": 30.52531642342576
                }
            ]
        }
    ],
    "appearanceSettings": {
        "miniCoverImage": "https://assets.dots.live/misteram-public/94232638631eb7a7a21e7566ddb3bff8.png",
        "maxiCoverImage": "https://assets.dots.live/misteram-public/0bfebdd8086ed09b45845f0a12f63ac0.png"
    },
    "deliveryTypes": [
        {
            "title": "Home delivery",
            "price": 0,
            "type": 0,
            "isPeopleCountAvailable": true
        },
        {
            "title": "Door delivery",
            "price": 0,
            "type": 1,
            "isPeopleCountAvailable": true
        },
        {
            "title": "Takeaway",
            "price": 0,
            "type": 2,
            "isPeopleCountAvailable": true
        },
        {
            "title": "Table reservation",
            "price": 0,
            "type": 3,
            "isPeopleCountAvailable": true
        },
        {
            "title": "Serving to the table",
            "price": 0,
            "type": 4,
            "isPeopleCountAvailable": true
        },
        {
            "title": "Room delivery",
            "price": 0,
            "type": 5,
            "isPeopleCountAvailable": true
        }
    ]
}
 

Request   

GET api/v2/companies/{id}

URL Parameters

id  string  

The ID of the company.

Query Parameters

v  string  

Api Version

Company Active Items By Active Categories.

Example request:
curl --request GET \
    --get "clients-api.dots.live/api/v2/companies/EedBDcef-dCFF-eECC-CFAe-AfefCDadCCEE/items-by-categories?v=2.0.0" \
    --header "Api-Token: {{YOUR_API_TOKEN}}" \
    --header "Api-Account-Token: {{YOUR_ACCOUNT_TOKEN}}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'clients-api.dots.live/api/v2/companies/EedBDcef-dCFF-eECC-CFAe-AfefCDadCCEE/items-by-categories',
    [
        'headers' => [
            'Api-Token' => '{{YOUR_API_TOKEN}}',
            'Api-Account-Token' => '{{YOUR_ACCOUNT_TOKEN}}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'query' => [
            'v'=> '2.0.0',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200, Success Example):


{
    "items": [
        {
            "id": "f99efa0f-5521-11eb-9cdd-f23c92a7f68e",
            "name": "Burgers",
            "url": "burgers",
            "items": [
                {
                    "id": "68d0d9ec-5522-11eb-9cdd-f23c92a7f68e",
                    "companyCategoryId": "f99efa0f-5521-11eb-9cdd-f23c92a7f68e",
                    "isAvailableToOrder": true,
                    "name": "Big Boss",
                    "description": "Grilled pork cutlet, a slice of cheese, fresh lettuce, cucumber, tomato, seasoned with hot sauce in a fragrant bun.",
                    "fullDescription": "You won't be able to resist the crispy crust covering the juicy pork cutlet on a vegetable cushion spiced with original sauce. There is a great opportunity to choose the sharpness of our signature sauce to your taste.",
                    "measureText": "320 g",
                    "price": 105,
                    "promotionPrice": null,
                    "packagePrice": 0,
                    "maxCountPositionsInPackage": 1,
                    "image": "https://assets.dots.live/misteram-public/022fb434302d8f320051bed88848c617-400x0.png",
                    "promotionsIds": [],
                    "modifiers": [
                        "Hot",
                        " Medium",
                        " Mild"
                    ],
                    "nutrientsDataTitle": "Nutrition value per 100 g",
                    "nutrientsData": [
                        {
                            "value100": "256",
                            "valueFull": "819",
                            "title": "Energy, kcal"
                        },
                        {
                            "value100": "1072",
                            "valueFull": "3429",
                            "title": "Energy, kJ"
                        },
                        {
                            "value100": "8",
                            "valueFull": "8",
                            "title": "Fats, g"
                        },
                        {
                            "value100": "10",
                            "valueFull": "10",
                            "title": "Of which saturated, g"
                        },
                        {
                            "value100": "13",
                            "valueFull": "13",
                            "title": "Carbohydrates, g"
                        },
                        {
                            "value100": "3",
                            "valueFull": "3",
                            "title": "Of which sugar, g"
                        },
                        {
                            "value100": "8",
                            "valueFull": "8",
                            "title": "Protein, g"
                        },
                        {
                            "value100": "1",
                            "valueFull": "1",
                            "title": "Salt, g"
                        }
                    ],
                    "foodTypes": [
                        "foodTypeAcute"
                    ],
                    "promoLabelText": null
                },
                {
                    "id": "68d0f687-5522-11eb-9cdd-f23c92a7f68e",
                    "companyCategoryId": "f99efa0f-5521-11eb-9cdd-f23c92a7f68e",
                    "isAvailableToOrder": true,
                    "name": "Caesar burger",
                    "description": "Juicy grilled chicken, double cheddar cheese, signature sauce, pickled cucumber.",
                    "fullDescription": "Signature burger with homemade brioche bun, juicy grilled chicken, crispy turkey chips, fresh Caesar salad, tomatoes, mozzarella cheese, seasoned with branded sauce.",
                    "measureText": "235 g",
                    "price": 145,
                    "promotionPrice": null,
                    "packagePrice": 0,
                    "maxCountPositionsInPackage": 1,
                    "image": "https://assets.dots.live/misteram-public/5a8e3ebf75f5588b3eebe100533dcec9-400x0.png",
                    "promotionsIds": [],
                    "modifiers": [],
                    "nutrientsDataTitle": "Nutrition value per 100 g",
                    "nutrientsData": [
                        {
                            "value100": "196",
                            "valueFull": "461",
                            "title": "Energy, kcal"
                        },
                        {
                            "value100": "821",
                            "valueFull": "1930",
                            "title": "Energy, kJ"
                        },
                        {
                            "value100": "7",
                            "valueFull": "7",
                            "title": "Fats, g"
                        },
                        {
                            "value100": "1",
                            "valueFull": "1",
                            "title": "Of which saturated, g"
                        },
                        {
                            "value100": "21",
                            "valueFull": "21",
                            "title": "Carbohydrates, g"
                        },
                        {
                            "value100": "1",
                            "valueFull": "1",
                            "title": "Of which sugar, g"
                        },
                        {
                            "value100": "10",
                            "valueFull": "10",
                            "title": "Protein, g"
                        },
                        {
                            "value100": "1",
                            "valueFull": "1",
                            "title": "Salt, g"
                        }
                    ],
                    "foodTypes": [],
                    "promoLabelText": null
                },
                {
                    "id": "68d0de0e-5522-11eb-9cdd-f23c92a7f68e",
                    "companyCategoryId": "f99efa0f-5521-11eb-9cdd-f23c92a7f68e",
                    "isAvailableToOrder": true,
                    "name": "Texas ranger",
                    "description": "Juicy beef cutlet, salad, bacon, spicy onions, cheddar cheese, spicy sauce in a hot bun.",
                    "fullDescription": "A juicy beef cutlet, slices of aromatic Cheddar cheese, fresh salad, spicy onions, crispy bacon - all spiced with a savory sauce and surrounded by a fresh sesame bun.",
                    "measureText": "230 g",
                    "price": 159,
                    "promotionPrice": null,
                    "packagePrice": 0,
                    "maxCountPositionsInPackage": 1,
                    "image": "https://assets.dots.live/misteram-public/450f9f84cd59b678bf92b1ce5b89bd90-400x0.png",
                    "promotionsIds": [],
                    "modifiers": [],
                    "nutrientsDataTitle": "Nutrition value per 100 g",
                    "nutrientsData": [
                        {
                            "value100": "202",
                            "valueFull": "464",
                            "title": "Energy, kcal"
                        },
                        {
                            "value100": "846",
                            "valueFull": "1943",
                            "title": "Energy, kJ"
                        },
                        {
                            "value100": "8",
                            "valueFull": "8",
                            "title": "Fats, g"
                        },
                        {
                            "value100": "1",
                            "valueFull": "1",
                            "title": "Of which saturated, g"
                        },
                        {
                            "value100": "20",
                            "valueFull": "20",
                            "title": "Carbohydrates, g"
                        },
                        {
                            "value100": "4",
                            "valueFull": "4",
                            "title": "Of which sugar, g"
                        },
                        {
                            "value100": "10",
                            "valueFull": "10",
                            "title": "Protein, g"
                        },
                        {
                            "value100": "1",
                            "valueFull": "1",
                            "title": "Salt, g"
                        }
                    ],
                    "foodTypes": [
                        "foodTypeAcute"
                    ],
                    "promoLabelText": null
                },
                {
                    "id": "68d12418-5522-11eb-9cdd-f23c92a7f68e",
                    "companyCategoryId": "f99efa0f-5521-11eb-9cdd-f23c92a7f68e",
                    "isAvailableToOrder": true,
                    "name": "Chicken Bao Burger",
                    "description": "Naturally smoked fillet grill, Chinese cabbage, tomatoes, sour-malt sauce, crispy turkey chips, fresh vegetables, two types of cheese, barbecue sauce",
                    "fullDescription": "The most delicious burger with a homemade bun, juicy chicken fillet, crispy turkey chips, fresh tomatoes and lettuce, pickled cucumbers and fresh red onions, Cheddar and Mozzarella cheeses, dressed with BBQ cream sauce.",
                    "measureText": "300 g",
                    "price": 159,
                    "promotionPrice": null,
                    "packagePrice": 0,
                    "maxCountPositionsInPackage": 1,
                    "image": "https://assets.dots.live/misteram-public/df629ef71ee4dd32860e630641eb1547-400x0.png",
                    "promotionsIds": [],
                    "modifiers": [],
                    "nutrientsDataTitle": "Nutrition value per 100 g",
                    "nutrientsData": [
                        {
                            "value100": "3",
                            "valueFull": "822",
                            "title": "Energy, kcal"
                        },
                        {
                            "value100": "13",
                            "valueFull": "3442",
                            "title": "Energy, kJ"
                        },
                        {
                            "value100": "16",
                            "valueFull": "16",
                            "title": "Fats, g"
                        },
                        {
                            "value100": "7",
                            "valueFull": "7",
                            "title": "Of which saturated, g"
                        },
                        {
                            "value100": "16",
                            "valueFull": "16",
                            "title": "Carbohydrates, g"
                        },
                        {
                            "value100": "3",
                            "valueFull": "3",
                            "title": "Of which sugar, g"
                        },
                        {
                            "value100": "15",
                            "valueFull": "15",
                            "title": "Protein, g"
                        },
                        {
                            "value100": "1",
                            "valueFull": "1",
                            "title": "Salt, g"
                        }
                    ],
                    "foodTypes": [],
                    "promoLabelText": null
                },
                {
                    "id": "68d11e94-5522-11eb-9cdd-f23c92a7f68e",
                    "companyCategoryId": "f99efa0f-5521-11eb-9cdd-f23c92a7f68e",
                    "isAvailableToOrder": true,
                    "name": "Dorblu Burger",
                    "description": "Juicy beef, cheddar cheese, crispy turkey chips, pickled cucumbers, fresh onions, salad, dressed with dorblu sauce",
                    "fullDescription": "Hearty burger with homemade brioche bun, juicy beef, stretching cheddar cheese and crispy turkey chips, pickled cucumbers, and fresh red onions, fresh cole slow salad, and all dressed up with dorblu sauce.",
                    "measureText": "250 g",
                    "price": 155,
                    "promotionPrice": null,
                    "packagePrice": 0,
                    "maxCountPositionsInPackage": 1,
                    "image": "https://assets.dots.live/misteram-public/76e20cb1ce52b2ae21c58cb0d78aebe2-400x0.png",
                    "promotionsIds": [],
                    "modifiers": [],
                    "nutrientsDataTitle": "Nutrition value per 100 g",
                    "nutrientsData": [
                        {
                            "value100": "300",
                            "valueFull": "749",
                            "title": "Energy, kcal"
                        },
                        {
                            "value100": "1256",
                            "valueFull": "3136",
                            "title": "Energy, kJ"
                        },
                        {
                            "value100": "20",
                            "valueFull": "20",
                            "title": "Fats, g"
                        },
                        {
                            "value100": "8",
                            "valueFull": "8",
                            "title": "Of which saturated, g"
                        },
                        {
                            "value100": "14",
                            "valueFull": "14",
                            "title": "Carbohydrates, g"
                        },
                        {
                            "value100": "4",
                            "valueFull": "4",
                            "title": "Of which sugar, g"
                        },
                        {
                            "value100": "21",
                            "valueFull": "21",
                            "title": "Protein, g"
                        },
                        {
                            "value100": "1",
                            "valueFull": "1",
                            "title": "Salt, g"
                        }
                    ],
                    "foodTypes": [],
                    "promoLabelText": null
                },
                {
                    "id": "68d12be7-5522-11eb-9cdd-f23c92a7f68e",
                    "companyCategoryId": "f99efa0f-5521-11eb-9cdd-f23c92a7f68e",
                    "isAvailableToOrder": true,
                    "name": "Beef bao burger",
                    "description": "Fresh bao bun, farm beef, cheddar, bell pepper, fresh onion, bbq sauce.",
                    "fullDescription": "Burger with two juicy farm beef patties, cheddar cheese, bell pepper and fresh onions, bbq sauce in a fresh bao bun.",
                    "measureText": "290 g",
                    "price": 169,
                    "promotionPrice": null,
                    "packagePrice": 0,
                    "maxCountPositionsInPackage": 1,
                    "image": "https://assets.dots.live/misteram-public/63d8923e65f2f81132b60c3bee6e3e7d-400x0.png",
                    "promotionsIds": [],
                    "modifiers": [],
                    "nutrientsDataTitle": "Nutrition value per 100 g",
                    "nutrientsData": [
                        {
                            "value100": "180",
                            "valueFull": "521",
                            "title": "Energy, kcal"
                        },
                        {
                            "value100": "754",
                            "valueFull": "2181",
                            "title": "Energy, kJ"
                        },
                        {
                            "value100": "9",
                            "valueFull": "9",
                            "title": "Fats, g"
                        },
                        {
                            "value100": "5",
                            "valueFull": "5",
                            "title": "Of which saturated, g"
                        },
                        {
                            "value100": "12",
                            "valueFull": "12",
                            "title": "Carbohydrates, g"
                        },
                        {
                            "value100": "1",
                            "valueFull": "1",
                            "title": "Of which sugar, g"
                        },
                        {
                            "value100": "10",
                            "valueFull": "10",
                            "title": "Protein, g"
                        },
                        {
                            "value100": "1",
                            "valueFull": "1",
                            "title": "Salt, g"
                        }
                    ],
                    "foodTypes": [],
                    "promoLabelText": null
                }
            ]
        },
        {
            "id": "f99f027d-5521-11eb-9cdd-f23c92a7f68e",
            "name": "Pizza",
            "url": "pizza",
            "items": [
                {
                    "id": "68d0d222-5522-11eb-9cdd-f23c92a7f68e",
                    "companyCategoryId": "f99f027d-5521-11eb-9cdd-f23c92a7f68e",
                    "isAvailableToOrder": true,
                    "name": "Spicy meat pizza",
                    "description": "Salami, ham, mushrooms, cheese, and barbecue sauce",
                    "fullDescription": "Pizza for those who like a combination of multiple tastes. Filled with salami sausages, smoked brisket, and juicy chicken baked with spices. The meat will be complemented by red onion with barbecue sauce and the creamy taste of mozzarella cheese.",
                    "measureText": "400 g",
                    "price": 99,
                    "promotionPrice": null,
                    "packagePrice": 0,
                    "maxCountPositionsInPackage": 1,
                    "image": "https://assets.dots.live/misteram-public/135a8c85d59c42d7f67da15f927b9278-400x0.png",
                    "promotionsIds": [],
                    "modifiers": [],
                    "nutrientsDataTitle": "Nutrition value per 100 g",
                    "nutrientsData": [
                        {
                            "value100": "218",
                            "valueFull": "873",
                            "title": "Energy, kcal"
                        },
                        {
                            "value100": "913",
                            "valueFull": "3655",
                            "title": "Energy, kJ"
                        },
                        {
                            "value100": "13",
                            "valueFull": "13",
                            "title": "Fats, g"
                        },
                        {
                            "value100": "7",
                            "valueFull": "7",
                            "title": "Of which saturated, g"
                        },
                        {
                            "value100": "15",
                            "valueFull": "15",
                            "title": "Carbohydrates, g"
                        },
                        {
                            "value100": "4",
                            "valueFull": "4",
                            "title": "Of which sugar, g"
                        },
                        {
                            "value100": "13",
                            "valueFull": "13",
                            "title": "Protein, g"
                        },
                        {
                            "value100": "1",
                            "valueFull": "1",
                            "title": "Salt, g"
                        }
                    ],
                    "foodTypes": [
                        "foodTypeAcute"
                    ],
                    "promoLabelText": null
                },
                {
                    "id": "68d0e187-5522-11eb-9cdd-f23c92a7f68e",
                    "companyCategoryId": "f99f027d-5521-11eb-9cdd-f23c92a7f68e",
                    "isAvailableToOrder": true,
                    "name": "Creamy chicken pizza",
                    "description": "Creamy sauce, chicken breast, bacon, Mozzarella cheese, fresh cherry tomatoes.",
                    "fullDescription": "Crispy dough with creamy sauce, mushrooms, mozzarella cheese, red onion, fried chicken fillet, and fresh cherry tomatoes that perfectly complement the taste.",
                    "measureText": "440 g",
                    "price": 99,
                    "promotionPrice": null,
                    "packagePrice": 0,
                    "maxCountPositionsInPackage": 1,
                    "image": "https://assets.dots.live/misteram-public/baa925557e52e653104a7268460ab05e-400x0.png",
                    "promotionsIds": [],
                    "modifiers": [],
                    "nutrientsDataTitle": "Nutrition value per 100 g",
                    "nutrientsData": [
                        {
                            "value100": "168",
                            "valueFull": "459",
                            "title": "Energy, kcal"
                        },
                        {
                            "value100": "703",
                            "valueFull": "1922",
                            "title": "Energy, kJ"
                        },
                        {
                            "value100": "20",
                            "valueFull": "20",
                            "title": "Fats, g"
                        },
                        {
                            "value100": "9",
                            "valueFull": "9",
                            "title": "Of which saturated, g"
                        },
                        {
                            "value100": "20",
                            "valueFull": "20",
                            "title": "Carbohydrates, g"
                        },
                        {
                            "value100": "0.8",
                            "valueFull": "0.8",
                            "title": "Of which sugar, g"
                        },
                        {
                            "value100": "18",
                            "valueFull": "18",
                            "title": "Protein, g"
                        },
                        {
                            "value100": "1.2",
                            "valueFull": "1.2",
                            "title": "Salt, g"
                        }
                    ],
                    "foodTypes": [],
                    "promoLabelText": null
                },
                {
                    "id": "68d0ecf3-5522-11eb-9cdd-f23c92a7f68e",
                    "companyCategoryId": "f99f027d-5521-11eb-9cdd-f23c92a7f68e",
                    "isAvailableToOrder": true,
                    "name": "Signature pizza",
                    "description": "Pork, mushrooms, tomatoes, caramelized onions, and signature sauce.",
                    "fullDescription": "Pizza with pork tenderloin skewers and bacon is a great option for a hearty lunch or dinner. Filled with shish kebab, mushrooms, bacon, tomatoes, and bell peppers under the \"cheese cap\".",
                    "measureText": "400 g",
                    "price": 99,
                    "promotionPrice": null,
                    "packagePrice": 0,
                    "maxCountPositionsInPackage": 1,
                    "image": "https://assets.dots.live/misteram-public/30478f506256324a29e3303f4aebf35a-400x0.png",
                    "promotionsIds": [],
                    "modifiers": [],
                    "nutrientsDataTitle": "Nutrition value per 100 g",
                    "nutrientsData": [
                        {
                            "value100": "331.2",
                            "valueFull": "828",
                            "title": "Energy, kcal"
                        },
                        {
                            "value100": "1387",
                            "valueFull": "3467",
                            "title": "Energy, kJ"
                        },
                        {
                            "value100": "20",
                            "valueFull": "20",
                            "title": "Fats, g"
                        },
                        {
                            "value100": "9",
                            "valueFull": "9",
                            "title": "Of which saturated, g"
                        },
                        {
                            "value100": "20",
                            "valueFull": "20",
                            "title": "Carbohydrates, g"
                        },
                        {
                            "value100": "0.8",
                            "valueFull": "0.8",
                            "title": "Of which sugar, g"
                        },
                        {
                            "value100": "18",
                            "valueFull": "18",
                            "title": "Protein, g"
                        },
                        {
                            "value100": "1.2",
                            "valueFull": "1.2",
                            "title": "Salt, g"
                        }
                    ],
                    "foodTypes": [],
                    "promoLabelText": null
                },
                {
                    "id": "070596ca-bd73-41bd-8512-ab00f6378e2b",
                    "companyCategoryId": "f99f027d-5521-11eb-9cdd-f23c92a7f68e",
                    "isAvailableToOrder": true,
                    "name": "BBQ pizza",
                    "description": "Salami, bacon, chicken fillet, tomatoes, olives, cheese, and barbecue sauce.",
                    "fullDescription": "BBQ pizza is an exclusive treat for fans of sour-sweet sauce. An excellent combination of bacon, chicken fillet, mushrooms, olives, tomatoes, and red onions.",
                    "measureText": "400 g",
                    "price": 99,
                    "promotionPrice": null,
                    "packagePrice": 0,
                    "maxCountPositionsInPackage": 1,
                    "image": "https://assets.dots.live/misteram-public/a2cddcc67bb0d8bc378755edf34eee54-400x0.png",
                    "promotionsIds": [],
                    "modifiers": [],
                    "nutrientsDataTitle": "Nutrition value per 100 g",
                    "nutrientsData": [
                        {
                            "value100": "235",
                            "valueFull": "940",
                            "title": "Energy, kcal"
                        },
                        {
                            "value100": "984",
                            "valueFull": "3936",
                            "title": "Energy, kJ"
                        },
                        {
                            "value100": "14",
                            "valueFull": "14",
                            "title": "Fats, g"
                        },
                        {
                            "value100": "7",
                            "valueFull": "7",
                            "title": "Of which saturated, g"
                        },
                        {
                            "value100": "15",
                            "valueFull": "15",
                            "title": "Carbohydrates, g"
                        },
                        {
                            "value100": "5",
                            "valueFull": "5",
                            "title": "Of which sugar, g"
                        },
                        {
                            "value100": "13",
                            "valueFull": "13",
                            "title": "Protein, g"
                        },
                        {
                            "value100": "1",
                            "valueFull": "1",
                            "title": "Salt, g"
                        }
                    ],
                    "foodTypes": [],
                    "promoLabelText": null
                },
                {
                    "id": "68d12ee9-5522-11eb-9cdd-f23c92a7f68e",
                    "companyCategoryId": "f99f027d-5521-11eb-9cdd-f23c92a7f68e",
                    "isAvailableToOrder": true,
                    "name": "Pizza with salami and tomatoes",
                    "description": "Salami, tomatoes, olives, cheese, herbs, and our signature sauce.",
                    "fullDescription": "\"Super Juicy\" is probably more appropriate than \"salami and tomatoes\". Crispy dough, puffy mozzarella, salami, juicy tomatoes, aromatic mushrooms, and black olives.",
                    "measureText": "440 g",
                    "price": 99,
                    "promotionPrice": null,
                    "packagePrice": 0,
                    "maxCountPositionsInPackage": 1,
                    "image": "https://assets.dots.live/misteram-public/7fdbcbb1d5c7ef42e5dcd390136348b8-400x0.png",
                    "promotionsIds": [],
                    "modifiers": [],
                    "nutrientsDataTitle": "Nutrition value per 100 g",
                    "nutrientsData": [
                        {
                            "value100": "215",
                            "valueFull": "865",
                            "title": "Energy, kcal"
                        },
                        {
                            "value100": "900",
                            "valueFull": "3622",
                            "title": "Energy, kJ"
                        },
                        {
                            "value100": "14",
                            "valueFull": "14",
                            "title": "Fats, g"
                        },
                        {
                            "value100": "7",
                            "valueFull": "7",
                            "title": "Of which saturated, g"
                        },
                        {
                            "value100": "16",
                            "valueFull": "16",
                            "title": "Carbohydrates, g"
                        },
                        {
                            "value100": "4",
                            "valueFull": "4",
                            "title": "Of which sugar, g"
                        },
                        {
                            "value100": "14",
                            "valueFull": "14",
                            "title": "Protein, g"
                        },
                        {
                            "value100": "1",
                            "valueFull": "1",
                            "title": "Salt, g"
                        }
                    ],
                    "foodTypes": [],
                    "promoLabelText": null
                },
                {
                    "id": "68d131e8-5522-11eb-9cdd-f23c92a7f68e",
                    "companyCategoryId": "f99f027d-5521-11eb-9cdd-f23c92a7f68e",
                    "isAvailableToOrder": true,
                    "name": "Four cheese pizza",
                    "description": "Сheese platter and cream sauce.",
                    "fullDescription": "Four cheese pizza is distinguished by an amazing taste range, as it contains parmesan. It determines such an interesting aftertaste of the Italian flatbread, which has such an overwhelming success.",
                    "measureText": "450 g",
                    "price": 110,
                    "promotionPrice": null,
                    "packagePrice": 0,
                    "maxCountPositionsInPackage": 1,
                    "image": "https://assets.dots.live/misteram-public/c15c035da892e4fc74c55a2c8aeab42f-400x0.png",
                    "promotionsIds": [],
                    "modifiers": [],
                    "nutrientsDataTitle": "Nutrition value per 100 g",
                    "nutrientsData": [
                        {
                            "value100": "207",
                            "valueFull": "930",
                            "title": "Energy, kcal"
                        },
                        {
                            "value100": "867",
                            "valueFull": "3894",
                            "title": "Energy, kJ"
                        },
                        {
                            "value100": "15",
                            "valueFull": "15",
                            "title": "Fats, g"
                        },
                        {
                            "value100": "9",
                            "valueFull": "9",
                            "title": "Of which saturated, g"
                        },
                        {
                            "value100": "16",
                            "valueFull": "16",
                            "title": "Carbohydrates, g"
                        },
                        {
                            "value100": "4",
                            "valueFull": "4",
                            "title": "Of which sugar, g"
                        },
                        {
                            "value100": "16",
                            "valueFull": "16",
                            "title": "Protein, g"
                        },
                        {
                            "value100": "1",
                            "valueFull": "1",
                            "title": "Salt, g"
                        }
                    ],
                    "foodTypes": [
                        "foodTypeVegetarian"
                    ],
                    "promoLabelText": null
                }
            ]
        },
        {
            "id": "146a4341-be88-4590-ae15-a602fa33c34a",
            "name": "Sushi",
            "url": "sushi",
            "items": [
                {
                    "id": "a54a8b11-5cf6-4b80-8a62-1c1110fa0029",
                    "companyCategoryId": "146a4341-be88-4590-ae15-a602fa33c34a",
                    "isAvailableToOrder": true,
                    "name": "Philadelphia Shrimp Roll",
                    "description": "Snow crab, tiger shrimp, tomato concasse, ogirok, sir Philadelphia, rice, nori",
                    "fullDescription": "The most delicious Philadelphia Roll with shrimp you can find. Only super fresh products.",
                    "measureText": "240 g",
                    "price": 175,
                    "promotionPrice": null,
                    "packagePrice": 0,
                    "maxCountPositionsInPackage": 1,
                    "image": "https://assets.dots.live/misteram-public/507ce09b1556f945e8f73a40a3d00b7c-400x0.png",
                    "promotionsIds": [],
                    "modifiers": [],
                    "nutrientsDataTitle": "Nutrition value per 100 g",
                    "nutrientsData": [
                        {
                            "value100": "140",
                            "valueFull": "336",
                            "title": "Energy, kcal"
                        },
                        {
                            "value100": "586",
                            "valueFull": "1407",
                            "title": "Energy, kJ"
                        },
                        {
                            "value100": "7",
                            "valueFull": "7",
                            "title": "Fats, g"
                        },
                        {
                            "value100": "16",
                            "valueFull": "16",
                            "title": "Carbohydrates, g"
                        },
                        {
                            "value100": "8",
                            "valueFull": "8",
                            "title": "Protein, g"
                        }
                    ],
                    "foodTypes": [],
                    "promoLabelText": null
                },
                {
                    "id": "936198df-44a5-4191-93a8-8b5876c76777",
                    "companyCategoryId": "146a4341-be88-4590-ae15-a602fa33c34a",
                    "isAvailableToOrder": true,
                    "name": "Philadelphia Black Roll",
                    "description": "Salmon, Philadelphia cheese, cucumber, avocado, cuttlefish ink, sesame",
                    "fullDescription": "Black rolls are prepared with cuttlefish ink, which gives the dish a seafood flavor. Black rolls are very tasty and useful.",
                    "measureText": "240 g",
                    "price": 169,
                    "promotionPrice": null,
                    "packagePrice": 0,
                    "maxCountPositionsInPackage": 1,
                    "image": "https://assets.dots.live/misteram-public/4a0f051118562706615fcf921d6388b9-400x0.png",
                    "promotionsIds": [],
                    "modifiers": [],
                    "nutrientsDataTitle": "Nutrition value per 100 g",
                    "nutrientsData": [
                        {
                            "value100": "143",
                            "valueFull": "341",
                            "title": "Energy, kcal"
                        },
                        {
                            "value100": "599",
                            "valueFull": "1428",
                            "title": "Energy, kJ"
                        },
                        {
                            "value100": "7",
                            "valueFull": "7",
                            "title": "Fats, g"
                        },
                        {
                            "value100": "17",
                            "valueFull": "17",
                            "title": "Carbohydrates, g"
                        },
                        {
                            "value100": "8",
                            "valueFull": "8",
                            "title": "Protein, g"
                        }
                    ],
                    "foodTypes": [],
                    "promoLabelText": null
                },
                {
                    "id": "260c719d-8de3-40ab-943b-ad622fa32892",
                    "companyCategoryId": "146a4341-be88-4590-ae15-a602fa33c34a",
                    "isAvailableToOrder": true,
                    "name": "Philadelphia with Eel Roll",
                    "description": "Rice, creamy sir, cucumber, avocado, eel, unagі sauce, white sesame seeds.",
                    "fullDescription": "The Philadelphia roll is stuffed with cheese and avocado. The roll is wrapped in pieces of salmon. Philadelphia with eel is prepared from unagi fillets and with the sauce from the smoked eel.",
                    "measureText": "215 g",
                    "price": 145,
                    "promotionPrice": null,
                    "packagePrice": 0,
                    "maxCountPositionsInPackage": 1,
                    "image": "https://assets.dots.live/misteram-public/213a067f94c186865c3978ddda630d97-400x0.png",
                    "promotionsIds": [],
                    "modifiers": [],
                    "nutrientsDataTitle": "Nutrition value per 100 g",
                    "nutrientsData": [
                        {
                            "value100": "141",
                            "valueFull": "340",
                            "title": "Energy, kcal"
                        },
                        {
                            "value100": "590",
                            "valueFull": "1424",
                            "title": "Energy, kJ"
                        },
                        {
                            "value100": "7",
                            "valueFull": "7",
                            "title": "Fats, g"
                        },
                        {
                            "value100": "16",
                            "valueFull": "16",
                            "title": "Carbohydrates, g"
                        },
                        {
                            "value100": "9",
                            "valueFull": "9",
                            "title": "Protein, g"
                        }
                    ],
                    "foodTypes": [],
                    "promoLabelText": null
                },
                {
                    "id": "79de3fb4-1e14-4a18-9435-475574d13249",
                    "companyCategoryId": "146a4341-be88-4590-ae15-a602fa33c34a",
                    "isAvailableToOrder": true,
                    "name": "Philadelphia Tuna Roll",
                    "description": "Rice, nori, tuna, cream cheese, cucumber",
                    "fullDescription": "Philadelphia roll is an undeniable classic. This roll is considered the most popular since it is ordered most often. An ideally selected composition of ingredients creates a rich, everyone's favorite taste of Japanese cuisine!",
                    "measureText": "240 g",
                    "price": 155,
                    "promotionPrice": null,
                    "packagePrice": 0,
                    "maxCountPositionsInPackage": 1,
                    "image": "https://assets.dots.live/misteram-public/ce85032bab405d163718bfb3575315fa-400x0.png",
                    "promotionsIds": [],
                    "modifiers": [],
                    "nutrientsDataTitle": "Nutrition value per 100 g",
                    "nutrientsData": [
                        {
                            "value100": "135",
                            "valueFull": "240",
                            "title": "Energy, kcal"
                        },
                        {
                            "value100": "565",
                            "valueFull": "1005",
                            "title": "Energy, kJ"
                        },
                        {
                            "value100": "7",
                            "valueFull": "7",
                            "title": "Fats, g"
                        },
                        {
                            "value100": "14",
                            "valueFull": "14",
                            "title": "Carbohydrates, g"
                        },
                        {
                            "value100": "7",
                            "valueFull": "7",
                            "title": "Protein, g"
                        }
                    ],
                    "foodTypes": [],
                    "promoLabelText": null
                },
                {
                    "id": "c6d63aa3-dac5-4520-9aa5-bcc36431a946",
                    "companyCategoryId": "146a4341-be88-4590-ae15-a602fa33c34a",
                    "isAvailableToOrder": true,
                    "name": "Green Dragon Roll",
                    "description": "Eel, masago, cucumber, avocado, mayonnaise, unagi sauce, sesame seeds, rice, nori.",
                    "fullDescription": "Green Dragon in its classic version is loved by numerous fans of Japanese cuisine. The combination of smoked eel, avocado, and unagi sauce is delicious.",
                    "measureText": "275 g",
                    "price": 185,
                    "promotionPrice": null,
                    "packagePrice": 0,
                    "maxCountPositionsInPackage": 1,
                    "image": "https://assets.dots.live/misteram-public/c1990f343463db7eea5b951ced6f90fe-400x0.png",
                    "promotionsIds": [],
                    "modifiers": [],
                    "nutrientsDataTitle": "Nutrition value per 100 g",
                    "nutrientsData": [
                        {
                            "value100": "180",
                            "valueFull": "495",
                            "title": "Energy, kcal"
                        },
                        {
                            "value100": "754",
                            "valueFull": "2072",
                            "title": "Energy, kJ"
                        },
                        {
                            "value100": "11",
                            "valueFull": "11",
                            "title": "Fats, g"
                        },
                        {
                            "value100": "13",
                            "valueFull": "13",
                            "title": "Carbohydrates, g"
                        },
                        {
                            "value100": "6",
                            "valueFull": "6",
                            "title": "Protein, g"
                        }
                    ],
                    "foodTypes": [],
                    "promoLabelText": null
                },
                {
                    "id": "2e77ece9-eba0-4e83-8ee2-8a27b3e26668",
                    "companyCategoryId": "146a4341-be88-4590-ae15-a602fa33c34a",
                    "isAvailableToOrder": true,
                    "name": "Signature tuna roll",
                    "description": "Smoked salmon, tuna, cream cheese, pear, cheddar cheese, cuttlefish ink, fries, spicy sauce.",
                    "fullDescription": "The signature tuna roll has rice covered with tuna shavings. Salmon goes well with tuna flakes.",
                    "measureText": "235 g",
                    "price": 165,
                    "promotionPrice": null,
                    "packagePrice": 0,
                    "maxCountPositionsInPackage": 1,
                    "image": "https://assets.dots.live/misteram-public/589518406cfd190a34da1db4d3a965a4-400x0.png",
                    "promotionsIds": [],
                    "modifiers": [],
                    "nutrientsDataTitle": "Nutrition value per 100 g",
                    "nutrientsData": [
                        {
                            "value100": "151",
                            "valueFull": "355",
                            "title": "Energy, kcal"
                        },
                        {
                            "value100": "632",
                            "valueFull": "1486",
                            "title": "Energy, kJ"
                        },
                        {
                            "value100": "8",
                            "valueFull": "8",
                            "title": "Fats, g"
                        },
                        {
                            "value100": "12",
                            "valueFull": "12",
                            "title": "Carbohydrates, g"
                        },
                        {
                            "value100": "12",
                            "valueFull": "12",
                            "title": "Protein, g"
                        }
                    ],
                    "foodTypes": [],
                    "promoLabelText": null
                }
            ]
        },
        {
            "id": "f99f0039-5521-11eb-9cdd-f23c92a7f68e",
            "name": "Salads",
            "url": "salads",
            "items": [
                {
                    "id": "68d11474-5522-11eb-9cdd-f23c92a7f68e",
                    "companyCategoryId": "f99f0039-5521-11eb-9cdd-f23c92a7f68e",
                    "isAvailableToOrder": true,
                    "name": "Eurasia Salad",
                    "description": "Chicken breast in sweet and sour sauce with asparagus, young green peas, and broccoli",
                    "fullDescription": "Japanese salad with chicken made with transparent Chinese noodles, green juicy spinach, broccoli, and sesame seeds.",
                    "measureText": "310 g",
                    "price": 149,
                    "promotionPrice": null,
                    "packagePrice": 0,
                    "maxCountPositionsInPackage": 1,
                    "image": "https://assets.dots.live/misteram-public/f36a248cae57f92bd295d1c96d2f9c82-400x0.png",
                    "promotionsIds": [],
                    "modifiers": [],
                    "nutrientsDataTitle": "Nutrition value per 100 g",
                    "nutrientsData": [
                        {
                            "value100": "72",
                            "valueFull": "223",
                            "title": "Energy, kcal"
                        },
                        {
                            "value100": "301",
                            "valueFull": "934",
                            "title": "Energy, kJ"
                        },
                        {
                            "value100": "3",
                            "valueFull": "3",
                            "title": "Fats, g"
                        },
                        {
                            "value100": "16",
                            "valueFull": "16",
                            "title": "Carbohydrates, g"
                        },
                        {
                            "value100": "11",
                            "valueFull": "11",
                            "title": "Protein, g"
                        }
                    ],
                    "foodTypes": [],
                    "promoLabelText": null
                },
                {
                    "id": "68d10f05-5522-11eb-9cdd-f23c92a7f68e",
                    "companyCategoryId": "f99f0039-5521-11eb-9cdd-f23c92a7f68e",
                    "isAvailableToOrder": true,
                    "name": "Fragrant chicken salad",
                    "description": "sous vide chicken fillet, bell pepper, feta cheese, seaweed, iceberg lettuce, creamy soy sauce, sesame, cilantro, onion.",
                    "fullDescription": "This salad has oriental, Thai notes - the spices added to it give such an amazing taste that neither salt nor pepper is required.",
                    "measureText": "320 g",
                    "price": 125,
                    "promotionPrice": null,
                    "packagePrice": 0,
                    "maxCountPositionsInPackage": 1,
                    "image": "https://assets.dots.live/misteram-public/6c703e1ab951e4eb7349ef69a54a721f-400x0.png",
                    "promotionsIds": [],
                    "modifiers": [
                        "Hot",
                        " Medium",
                        " Mild"
                    ],
                    "nutrientsDataTitle": "Nutrition value per 100 g",
                    "nutrientsData": [
                        {
                            "value100": "10",
                            "valueFull": "32",
                            "title": "Energy, kcal"
                        },
                        {
                            "value100": "42",
                            "valueFull": "134",
                            "title": "Energy, kJ"
                        },
                        {
                            "value100": "10",
                            "valueFull": "10",
                            "title": "Fats, g"
                        },
                        {
                            "value100": "10",
                            "valueFull": "10",
                            "title": "Carbohydrates, g"
                        },
                        {
                            "value100": "10",
                            "valueFull": "10",
                            "title": "Protein, g"
                        },
                        {
                            "value100": "1",
                            "valueFull": "1",
                            "title": "Salt, g"
                        }
                    ],
                    "foodTypes": [
                        "foodTypeAcute"
                    ],
                    "promoLabelText": null
                },
                {
                    "id": "68d11958-5522-11eb-9cdd-f23c92a7f68e",
                    "companyCategoryId": "f99f0039-5521-11eb-9cdd-f23c92a7f68e",
                    "isAvailableToOrder": true,
                    "name": "Fitness Salad",
                    "description": "Su-lind chicken fillet, bell pepper, feta cheese, chicken egg, seaweed salad, cucumber, sesame, tuna sauce, cilantro.",
                    "fullDescription": "A combination of low-calorie vegetables and meats is perfect for weight watchers and athletes. Iceberg lettuce leaves, tomatoes, chicken fillet, eggs, and greens contain the necessary proteins and vitamins. This light and healthy salad will make a great dinner, and the tuna sauce will enrich the overall taste of all products.",
                    "measureText": "340 g",
                    "price": 119,
                    "promotionPrice": null,
                    "packagePrice": 0,
                    "maxCountPositionsInPackage": 1,
                    "image": "https://assets.dots.live/misteram-public/e9d548f5fd3241b1cc291c6c21d586a2-400x0.png",
                    "promotionsIds": [],
                    "modifiers": [],
                    "nutrientsDataTitle": "Nutrition value per 100 g",
                    "nutrientsData": [
                        {
                            "value100": "111",
                            "valueFull": "380",
                            "title": "Energy, kcal"
                        },
                        {
                            "value100": "465",
                            "valueFull": "1591",
                            "title": "Energy, kJ"
                        },
                        {
                            "value100": "4",
                            "valueFull": "4",
                            "title": "Fats, g"
                        },
                        {
                            "value100": "21",
                            "valueFull": "21",
                            "title": "Carbohydrates, g"
                        },
                        {
                            "value100": "11",
                            "valueFull": "11",
                            "title": "Protein, g"
                        }
                    ],
                    "foodTypes": [],
                    "promoLabelText": null
                },
                {
                    "id": "68d11216-5522-11eb-9cdd-f23c92a7f68e",
                    "companyCategoryId": "f99f0039-5521-11eb-9cdd-f23c92a7f68e",
                    "isAvailableToOrder": true,
                    "name": "Salad with beef, broccoli and asparagus",
                    "description": "Beef, broccoli, asparagus, tomatoes, signature sauce, sesame seeds, cilantro.",
                    "fullDescription": "A very spicy salad with a secret dressing. Can be consumed both hot and cold. Delicious, healthy and can be served as a separate dish.",
                    "measureText": "290 g",
                    "price": 155,
                    "promotionPrice": null,
                    "packagePrice": 0,
                    "maxCountPositionsInPackage": 1,
                    "image": "https://assets.dots.live/misteram-public/ac8b33f36aac8d4bf0bd2621d441d622-400x0.png",
                    "promotionsIds": [],
                    "modifiers": [],
                    "nutrientsDataTitle": "Nutrition value per 100 g",
                    "nutrientsData": [
                        {
                            "value100": "10",
                            "valueFull": "10",
                            "title": "Fats, g"
                        },
                        {
                            "value100": "14",
                            "valueFull": "14",
                            "title": "Carbohydrates, g"
                        },
                        {
                            "value100": "18",
                            "valueFull": "18",
                            "title": "Protein, g"
                        }
                    ],
                    "foodTypes": [],
                    "promoLabelText": null
                },
                {
                    "id": "68d11bb9-5522-11eb-9cdd-f23c92a7f68e",
                    "companyCategoryId": "f99f0039-5521-11eb-9cdd-f23c92a7f68e",
                    "isAvailableToOrder": true,
                    "name": "Casablanca salad",
                    "description": "Tender sous vide chicken breast, broccoli, asparagus, and mixed cabbage, seasoned with spicy sauce and a little chili.",
                    "fullDescription": "A nutritious and healthy salad with fresh vegetables and chicken will sparkle with new flavors when mixed with Asian dressing. The dressing consists of fried onions, ginger, and garlic mixed with soy sauce, lemon juice, and dark sesame oil.",
                    "measureText": "280 g",
                    "price": 145,
                    "promotionPrice": null,
                    "packagePrice": 0,
                    "maxCountPositionsInPackage": 1,
                    "image": "https://assets.dots.live/misteram-public/c4266e70bb9c07282abf7e0baac8f88c-400x0.png",
                    "promotionsIds": [],
                    "modifiers": [
                        "Hot",
                        " Medium",
                        " Mild"
                    ],
                    "nutrientsDataTitle": "Nutrition value per 100 g",
                    "nutrientsData": [
                        {
                            "value100": "84",
                            "valueFull": "235",
                            "title": "Energy, kcal"
                        },
                        {
                            "value100": "352",
                            "valueFull": "984",
                            "title": "Energy, kJ"
                        },
                        {
                            "value100": "4",
                            "valueFull": "4",
                            "title": "Fats, g"
                        },
                        {
                            "value100": "15",
                            "valueFull": "15",
                            "title": "Carbohydrates, g"
                        },
                        {
                            "value100": "13",
                            "valueFull": "13",
                            "title": "Protein, g"
                        }
                    ],
                    "foodTypes": [
                        "foodTypeAcute"
                    ],
                    "promoLabelText": null
                },
                {
                    "id": "68d10bcb-5522-11eb-9cdd-f23c92a7f68e",
                    "companyCategoryId": "f99f0039-5521-11eb-9cdd-f23c92a7f68e",
                    "isAvailableToOrder": true,
                    "name": "Signature salad",
                    "description": "We keep his recipe a strict secret, but it is definitely worth a try.",
                    "fullDescription": "The salad is served as a separate healthy dish. Enjoy its harmoniously balanced taste and textures.",
                    "measureText": "300 g",
                    "price": 139,
                    "promotionPrice": null,
                    "packagePrice": 0,
                    "maxCountPositionsInPackage": 1,
                    "image": "https://assets.dots.live/misteram-public/f6262195a0a1a2af5ea8fafd932f6fde-400x0.png",
                    "promotionsIds": [],
                    "modifiers": [
                        "Hot",
                        " Medium",
                        " Mild"
                    ],
                    "nutrientsDataTitle": "Nutrition value per 100 g",
                    "nutrientsData": [
                        {
                            "value100": "90",
                            "valueFull": "270",
                            "title": "Energy, kcal"
                        },
                        {
                            "value100": "377",
                            "valueFull": "1130",
                            "title": "Energy, kJ"
                        },
                        {
                            "value100": "8",
                            "valueFull": "8",
                            "title": "Fats, g"
                        },
                        {
                            "value100": "18",
                            "valueFull": "18",
                            "title": "Carbohydrates, g"
                        },
                        {
                            "value100": "16",
                            "valueFull": "16",
                            "title": "Protein, g"
                        }
                    ],
                    "foodTypes": [
                        "foodTypeAcute"
                    ],
                    "promoLabelText": null
                }
            ]
        },
        {
            "id": "f99f0457-5521-11eb-9cdd-f23c92a7f68e",
            "name": "Drinks",
            "url": "drinks",
            "items": [
                {
                    "id": "a011daf1-a724-4b45-99f4-42d8b5ccbd40",
                    "companyCategoryId": "f99f0457-5521-11eb-9cdd-f23c92a7f68e",
                    "isAvailableToOrder": true,
                    "name": "Dr.Pepper",
                    "description": "Refreshing drink.",
                    "fullDescription": "Dr. Pepper Carbonated soft drink.",
                    "measureText": "0.33 l",
                    "price": 1,
                    "promotionPrice": null,
                    "packagePrice": 0,
                    "maxCountPositionsInPackage": 1,
                    "image": "https://assets.dots.live/misteram-public/45caac7860ae6c22cf27f38de58d29cf-400x0.png",
                    "promotionsIds": [],
                    "modifiers": [],
                    "nutrientsDataTitle": "Nutrition value per 100 ml",
                    "nutrientsData": [
                        {
                            "value100": "28",
                            "valueFull": "150",
                            "title": "Energy, kcal"
                        },
                        {
                            "value100": "117",
                            "valueFull": "628",
                            "title": "Energy, kJ"
                        },
                        {
                            "value100": "7",
                            "valueFull": "7",
                            "title": "Carbohydrates, ml"
                        },
                        {
                            "value100": "40",
                            "valueFull": "40",
                            "title": "Of which sugar, ml"
                        }
                    ],
                    "foodTypes": [],
                    "promoLabelText": null
                },
                {
                    "id": "68d103d0-5522-11eb-9cdd-f23c92a7f68e",
                    "companyCategoryId": "f99f0457-5521-11eb-9cdd-f23c92a7f68e",
                    "isAvailableToOrder": true,
                    "name": "Pepsi",
                    "description": "Refreshing drink.",
                    "fullDescription": "Carbonated soft drink.",
                    "measureText": "0,33 l",
                    "price": 1,
                    "promotionPrice": null,
                    "packagePrice": 0,
                    "maxCountPositionsInPackage": 1,
                    "image": "https://assets.dots.live/misteram-public/aa62403d5c38ea2a76ec3ad457c770b1-400x0.png",
                    "promotionsIds": [],
                    "modifiers": [],
                    "nutrientsDataTitle": "Nutrition value per 100 ml",
                    "nutrientsData": [
                        {
                            "value100": "27",
                            "valueFull": "89",
                            "title": "Energy, kcal"
                        },
                        {
                            "value100": "113",
                            "valueFull": "373",
                            "title": "Energy, kJ"
                        },
                        {
                            "value100": "7",
                            "valueFull": "7",
                            "title": "Carbohydrates, ml"
                        }
                    ],
                    "foodTypes": [],
                    "promoLabelText": null
                },
                {
                    "id": "68d1012c-5522-11eb-9cdd-f23c92a7f68e",
                    "companyCategoryId": "f99f0457-5521-11eb-9cdd-f23c92a7f68e",
                    "isAvailableToOrder": true,
                    "name": "Sprite",
                    "description": "Refreshing drink.",
                    "fullDescription": "Carbonated soft drink.",
                    "measureText": "0,33 l",
                    "price": 1,
                    "promotionPrice": null,
                    "packagePrice": 0,
                    "maxCountPositionsInPackage": 1,
                    "image": "https://assets.dots.live/misteram-public/d9f5db29d9d895e35015b2972376577b-400x0.png",
                    "promotionsIds": [],
                    "modifiers": [],
                    "nutrientsDataTitle": "Nutrition value per 100 ml",
                    "nutrientsData": [
                        {
                            "value100": "19",
                            "valueFull": "63",
                            "title": "Energy, kcal"
                        },
                        {
                            "value100": "80",
                            "valueFull": "264",
                            "title": "Energy, kJ"
                        },
                        {
                            "value100": "5",
                            "valueFull": "5",
                            "title": "Carbohydrates, ml"
                        },
                        {
                            "value100": "5",
                            "valueFull": "5",
                            "title": "Of which sugar, ml"
                        }
                    ],
                    "foodTypes": [],
                    "promoLabelText": null
                },
                {
                    "id": "68d10623-5522-11eb-9cdd-f23c92a7f68e",
                    "companyCategoryId": "f99f0457-5521-11eb-9cdd-f23c92a7f68e",
                    "isAvailableToOrder": true,
                    "name": "Fanta",
                    "description": "Refreshing drink.",
                    "fullDescription": "Carbonated soft drink.",
                    "measureText": "0,33 l",
                    "price": 1,
                    "promotionPrice": null,
                    "packagePrice": 0,
                    "maxCountPositionsInPackage": 1,
                    "image": "https://assets.dots.live/misteram-public/e5f6c28b55a6f7863e07d209cc2d0776-400x0.png",
                    "promotionsIds": [],
                    "modifiers": [],
                    "nutrientsDataTitle": "Nutrition value per 100 ml",
                    "nutrientsData": [
                        {
                            "value100": "33",
                            "valueFull": "109",
                            "title": "Energy, kcal"
                        },
                        {
                            "value100": "138",
                            "valueFull": "456",
                            "title": "Energy, kJ"
                        },
                        {
                            "value100": "8",
                            "valueFull": "8",
                            "title": "Carbohydrates, ml"
                        },
                        {
                            "value100": "8",
                            "valueFull": "8",
                            "title": "Of which sugar, ml"
                        }
                    ],
                    "foodTypes": [],
                    "promoLabelText": null
                },
                {
                    "id": "68d1093c-5522-11eb-9cdd-f23c92a7f68e",
                    "companyCategoryId": "f99f0457-5521-11eb-9cdd-f23c92a7f68e",
                    "isAvailableToOrder": true,
                    "name": "Schweppes",
                    "description": "Refreshing drink.",
                    "fullDescription": "Carbonated soft drink.",
                    "measureText": "0,33 l",
                    "price": 1,
                    "promotionPrice": null,
                    "packagePrice": 0,
                    "maxCountPositionsInPackage": 1,
                    "image": "https://assets.dots.live/misteram-public/de872f811b700c7e7a07216490965256-400x0.png",
                    "promotionsIds": [],
                    "modifiers": [],
                    "nutrientsDataTitle": "Nutrition value per 100 ml",
                    "nutrientsData": [
                        {
                            "value100": "37",
                            "valueFull": "122",
                            "title": "Energy, kcal"
                        },
                        {
                            "value100": "155",
                            "valueFull": "511",
                            "title": "Energy, kJ"
                        },
                        {
                            "value100": "9",
                            "valueFull": "9",
                            "title": "Carbohydrates, ml"
                        },
                        {
                            "value100": "9",
                            "valueFull": "9",
                            "title": "Of which sugar, ml"
                        }
                    ],
                    "foodTypes": [],
                    "promoLabelText": null
                },
                {
                    "id": "68d0fb6e-5522-11eb-9cdd-f23c92a7f68e",
                    "companyCategoryId": "f99f0457-5521-11eb-9cdd-f23c92a7f68e",
                    "isAvailableToOrder": true,
                    "name": "Coca-Cola",
                    "description": "Refreshing drink.",
                    "fullDescription": "Carbonated soft drink.",
                    "measureText": "0.33 l",
                    "price": 1,
                    "promotionPrice": null,
                    "packagePrice": 0,
                    "maxCountPositionsInPackage": 1,
                    "image": "https://assets.dots.live/misteram-public/003b2a52214b9511c4e8966b831343be-400x0.png",
                    "promotionsIds": [],
                    "modifiers": [],
                    "nutrientsDataTitle": "Nutrition value per 100 ml",
                    "nutrientsData": [
                        {
                            "value100": "42",
                            "valueFull": "139",
                            "title": "Energy, kcal"
                        },
                        {
                            "value100": "176",
                            "valueFull": "582",
                            "title": "Energy, kJ"
                        },
                        {
                            "value100": "11",
                            "valueFull": "11",
                            "title": "Carbohydrates, ml"
                        },
                        {
                            "value100": "11",
                            "valueFull": "11",
                            "title": "Of which sugar, ml"
                        }
                    ],
                    "foodTypes": [],
                    "promoLabelText": null
                }
            ]
        }
    ],
    "hasNext": false,
    "promotions": []
}
 

Example response (200, Empty List):


{
    "items": [],
    "hasNext": false
}
 

Request   

GET api/v2/companies/{company}/items-by-categories

URL Parameters

company  string  

Query Parameters

v  string  

Api Version

Company Active Promotions.

Example request:
curl --request GET \
    --get "clients-api.dots.live/api/v2/companies/eacdeDaa-CbdD-FBad-baAC-bDcDECdcddDc/promotions?v=2.0.0" \
    --header "Api-Token: {{YOUR_API_TOKEN}}" \
    --header "Api-Account-Token: {{YOUR_ACCOUNT_TOKEN}}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'clients-api.dots.live/api/v2/companies/eacdeDaa-CbdD-FBad-baAC-bDcDECdcddDc/promotions',
    [
        'headers' => [
            'Api-Token' => '{{YOUR_API_TOKEN}}',
            'Api-Account-Token' => '{{YOUR_ACCOUNT_TOKEN}}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'query' => [
            'v'=> '2.0.0',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200, Success Example):


{
    "items": [
        {
            "id": "f5b241d1-5521-11eb-9cdd-f23c92a7f68e",
            "image": "https://assets.dots.live/misteram-public/710b3f0c766db49df6a1aaf296522bcb-400x0.png",
            "title": "Save 20%",
            "description": "Order any burger with a 20% discount!",
            "expirationTime": 1638395999,
            "promoLabelText": "-20%"
        },
        {
            "id": "f5f7f68e-5521-11eb-9cdd-f23c92a7f68e",
            "image": "https://assets.dots.live/misteram-public/733e88ff0741ca8669da87816f51c979-400x0.png",
            "title": "Free delivery",
            "description": "Free delivery for orders over $300",
            "expirationTime": null,
            "promoLabelText": "Free delivery"
        },
        {
            "id": "f5b24e23-5521-11eb-9cdd-f23c92a7f68e",
            "image": "https://assets.dots.live/misteram-public/6d2d09c5d0e1ff64252fb789446fda41-400x0.png",
            "title": "Coca-Cola for free!",
            "description": "Order Double Chicken Roll - get Coca-Cola for free!",
            "expirationTime": 1640210399,
            "promoLabelText": "Coca-Cola for free!"
        }
    ],
    "hasNext": false
}
 

Example response (200, Empty List):


{
    "items": [],
    "hasNext": false
}
 

Request   

GET api/v2/companies/{company}/promotions

URL Parameters

company  string  

Query Parameters

v  string  

Api Version

Company Reviews.

Example request:
curl --request GET \
    --get "clients-api.dots.live/api/v2/companies/BBcdBffc-eFBa-CCEB-edBa-DaEbbdBBceDb/reviews?offset=8&v=2.0.0" \
    --header "Api-Token: {{YOUR_API_TOKEN}}" \
    --header "Api-Account-Token: {{YOUR_ACCOUNT_TOKEN}}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'clients-api.dots.live/api/v2/companies/BBcdBffc-eFBa-CCEB-edBa-DaEbbdBBceDb/reviews',
    [
        'headers' => [
            'Api-Token' => '{{YOUR_API_TOKEN}}',
            'Api-Account-Token' => '{{YOUR_ACCOUNT_TOKEN}}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'query' => [
            'offset'=> '8',
            'v'=> '2.0.0',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200, Success Example):


{
    "items": [
        {
            "id": "2abb0298-b0c6-40f8-8098-6a86bb7e906b",
            "userName": "Ярослав",
            "rating": 5,
            "message": null,
            "createdTime": 1635813782
        },
        {
            "id": "fad38ebd-2c4b-4c4d-80cb-ef2abe9cab6c",
            "userName": "Ярослав",
            "rating": 5,
            "message": null,
            "createdTime": 1635813776
        },
        {
            "id": "5d97a0f5-555f-40eb-914c-fa579554ee6e",
            "userName": "@demo",
            "rating": 0,
            "message": "1111",
            "createdTime": 1635775942
        },
        {
            "id": "14f713c1-8a4e-4717-b3cb-bed013b3860b",
            "userName": "@demo",
            "rating": 5,
            "message": "Qqqqq",
            "createdTime": 1635775771
        },
        {
            "id": "edfd3288-e3ee-4ab6-880b-8ecf7b790a8e",
            "userName": "@demo",
            "rating": 5,
            "message": null,
            "createdTime": 1633611162
        },
        {
            "id": "c5f4a1ce-86f2-4d47-91d3-7c78656a9b13",
            "userName": "@demo",
            "rating": 5,
            "message": null,
            "createdTime": 1633336692
        },
        {
            "id": "762d0245-eb32-400f-aaaf-5133810a6a1b",
            "userName": "Yu",
            "rating": 4,
            "message": "Yyy",
            "createdTime": 1633007136
        },
        {
            "id": "0042a319-797f-4b5f-9737-f374a851d697",
            "userName": "Yu",
            "rating": 5,
            "message": null,
            "createdTime": 1633007088
        },
        {
            "id": "461ba1ff-0343-4269-a400-efe5332b84d0",
            "userName": "Ivan",
            "rating": 5,
            "message": null,
            "createdTime": 1632993683
        },
        {
            "id": "ecfaec0b-13e3-4512-8316-47393777627e",
            "userName": "Ivan",
            "rating": 5,
            "message": null,
            "createdTime": 1632993199
        },
        {
            "id": "3d3e3ed1-5900-4f9c-9a75-cc933137699f",
            "userName": "Yu",
            "rating": 5,
            "message": null,
            "createdTime": 1632993047
        },
        {
            "id": "3406cb1e-04d5-45b7-a3ae-a707275b5c57",
            "userName": "Yu",
            "rating": 5,
            "message": null,
            "createdTime": 1632991695
        },
        {
            "id": "858e686e-4fe4-4873-8884-cfa3f359ecce",
            "userName": "Ivan",
            "rating": 5,
            "message": "Guvgihohbj",
            "createdTime": 1632990393
        },
        {
            "id": "0d174c6e-a1b0-4827-a1bb-1acc965684c1",
            "userName": "@demo",
            "rating": 3,
            "message": "Fff",
            "createdTime": 1632919067
        },
        {
            "id": "5060428b-8530-4a79-a6d0-6a0b899520bf",
            "userName": "@demo",
            "rating": 4,
            "message": "Gg",
            "createdTime": 1632918961
        },
        {
            "id": "0c96011d-7316-4ec0-9ab0-a59afd20a8f3",
            "userName": "Ivan",
            "rating": 5,
            "message": null,
            "createdTime": 1632916655
        },
        {
            "id": "9d175ea2-8d2f-4ba9-a3d4-be69c6a4dda0",
            "userName": "Ivan",
            "rating": 2,
            "message": "Ewrwerweqrwqerwq",
            "createdTime": 1632914571
        },
        {
            "id": "5b8b9808-cf2b-46e7-9f48-c326bd2c336e",
            "userName": "Ivan",
            "rating": 5,
            "message": null,
            "createdTime": 1632911396
        },
        {
            "id": "716e5498-f979-405d-8c2d-e6a44d64eee3",
            "userName": "@demo",
            "rating": 5,
            "message": null,
            "createdTime": 1632818434
        },
        {
            "id": "c8221af0-f997-4d9d-af61-847b8c988775",
            "userName": "Yu",
            "rating": 4,
            "message": "Тонкое тесто в пицце",
            "createdTime": 1632739833
        },
        {
            "id": "673ca9c7-9658-4cda-95c3-c58a98f83e46",
            "userName": "Юл",
            "rating": 5,
            "message": null,
            "createdTime": 1632377913
        },
        {
            "id": "9719928a-ed39-463d-9e12-f5ebbebceb04",
            "userName": "Юл",
            "rating": 5,
            "message": null,
            "createdTime": 1632377789
        },
        {
            "id": "9df396cc-0943-47f9-ba47-c725489cc058",
            "userName": "Yu",
            "rating": 5,
            "message": null,
            "createdTime": 1632377666
        },
        {
            "id": "3bbaf73e-c66a-442c-b4f6-62387b8236dd",
            "userName": "Yu",
            "rating": 4,
            "message": "Не приехало блюдо",
            "createdTime": 1632377442
        },
        {
            "id": "c3c2db6e-c1e9-4798-aaeb-489b38bea574",
            "userName": "Yu",
            "rating": 5,
            "message": null,
            "createdTime": 1632376320
        },
        {
            "id": "4f738b47-d9fe-4cc3-ba39-cc3aa4dea073",
            "userName": "@demo",
            "rating": 5,
            "message": null,
            "createdTime": 1631544534
        },
        {
            "id": "5209652f-b1c8-43de-9609-13d4f4250e7f",
            "userName": "Yu",
            "rating": 5,
            "message": null,
            "createdTime": 1631524615
        },
        {
            "id": "c0131ab5-5954-4d25-b456-93e3a660a274",
            "userName": "Yu",
            "rating": 5,
            "message": null,
            "createdTime": 1631287403
        },
        {
            "id": "77cee544-ba68-4f9f-8caa-a4d4c6d7f671",
            "userName": "Yu",
            "rating": 5,
            "message": "",
            "createdTime": 1628669711
        },
        {
            "id": "f0d05da2-f819-41f4-87c6-cede7874d33a",
            "userName": "Сергей",
            "rating": 5,
            "message": "",
            "createdTime": 1625658890
        }
    ],
    "hasNext": true
}
 

Example response (200, Empty List):


{
    "items": [],
    "hasNext": false
}
 

Request   

GET api/v2/companies/{company}/reviews

URL Parameters

company  string  

Query Parameters

offset  integer optional  

Defaults to 0

v  string  

Api Version

Company Delivery Types.

If user location is specified than delivery types are shown accordingly to the location.

Example request:
curl --request GET \
    --get "clients-api.dots.live/api/v2/companies/dEAfeAdE-DfAf-ddfF-cccA-dbBBaDfADFFb/delivery-types?latitude=51.1213&longitude=41.3232&v=2.0.0" \
    --header "Api-Token: {{YOUR_API_TOKEN}}" \
    --header "Api-Account-Token: {{YOUR_ACCOUNT_TOKEN}}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'clients-api.dots.live/api/v2/companies/dEAfeAdE-DfAf-ddfF-cccA-dbBBaDfADFFb/delivery-types',
    [
        'headers' => [
            'Api-Token' => '{{YOUR_API_TOKEN}}',
            'Api-Account-Token' => '{{YOUR_ACCOUNT_TOKEN}}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'query' => [
            'latitude'=> '51.1213',
            'longitude'=> '41.3232',
            'v'=> '2.0.0',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200, Success Example):


{
    "items": [
        {
            "title": "Home delivery",
            "price": 0,
            "type": 0,
            "isPeopleCountAvailable": true
        },
        {
            "title": "Door delivery",
            "price": 0,
            "type": 1,
            "isPeopleCountAvailable": true
        },
        {
            "title": "Takeaway",
            "price": 0,
            "type": 2,
            "isPeopleCountAvailable": true
        },
        {
            "title": "Table reservation",
            "price": 0,
            "type": 3,
            "isPeopleCountAvailable": true
        },
        {
            "title": "Serving to the table",
            "price": 0,
            "type": 4,
            "isPeopleCountAvailable": true
        },
        {
            "title": "Room delivery",
            "price": 0,
            "type": 5,
            "isPeopleCountAvailable": true
        }
    ],
    "hasNext": false
}
 

Request   

GET api/v2/companies/{company}/delivery-types

URL Parameters

company  string  

Query Parameters

latitude  number optional  

Required with longitude.

longitude  number optional  

Required with latitude.

v  string  

Api Version

Example request:
curl --request GET \
    --get "clients-api.dots.live/api/v2/companies/dbCAdECc-CaeF-cFDf-eFEd-CfdcCcdfdEBb/recommended-items?v=2.0.0" \
    --header "Api-Token: {{YOUR_API_TOKEN}}" \
    --header "Api-Account-Token: {{YOUR_ACCOUNT_TOKEN}}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'clients-api.dots.live/api/v2/companies/dbCAdECc-CaeF-cFDf-eFEd-CfdcCcdfdEBb/recommended-items',
    [
        'headers' => [
            'Api-Token' => '{{YOUR_API_TOKEN}}',
            'Api-Account-Token' => '{{YOUR_ACCOUNT_TOKEN}}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'query' => [
            'v'=> '2.0.0',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200, Success Example):


{
    "items": [
        {
            "id": "68d12be7-5522-11eb-9cdd-f23c92a7f68e",
            "companyCategoryId": "f99efa0f-5521-11eb-9cdd-f23c92a7f68e",
            "isAvailableToOrder": true,
            "name": "Beef bao burger",
            "description": "Fresh bao bun, farm beef, cheddar, bell pepper, fresh onion, bbq sauce.",
            "fullDescription": "Burger with two juicy farm beef patties, cheddar cheese, bell pepper and fresh onions, bbq sauce in a fresh bao bun.",
            "measureText": "290 g",
            "price": 169,
            "promotionPrice": 135.2,
            "packagePrice": 0,
            "maxCountPositionsInPackage": 1,
            "image": "https://assets.dots.live/misteram-public/63d8923e65f2f81132b60c3bee6e3e7d-400x0.png",
            "promotionsIds": [
                "f5b241d1-5521-11eb-9cdd-f23c92a7f68e",
                "f5f7f68e-5521-11eb-9cdd-f23c92a7f68e"
            ],
            "modifiers": [],
            "nutrientsDataTitle": "Nutrition value per 100 g",
            "nutrientsData": [
                {
                    "value100": "180",
                    "valueFull": "521",
                    "title": "Energy, kcal"
                },
                {
                    "value100": "754",
                    "valueFull": "2181",
                    "title": "Energy, kJ"
                },
                {
                    "value100": "9",
                    "valueFull": "9",
                    "title": "Fats, g"
                },
                {
                    "value100": "5",
                    "valueFull": "5",
                    "title": "Of which saturated, g"
                },
                {
                    "value100": "12",
                    "valueFull": "12",
                    "title": "Carbohydrates, g"
                },
                {
                    "value100": "1",
                    "valueFull": "1",
                    "title": "Of which sugar, g"
                },
                {
                    "value100": "10",
                    "valueFull": "10",
                    "title": "Protein, g"
                },
                {
                    "value100": "1",
                    "valueFull": "1",
                    "title": "Salt, g"
                }
            ],
            "foodTypes": [],
            "promoLabelText": "2 promotions"
        },
        {
            "id": "68d12418-5522-11eb-9cdd-f23c92a7f68e",
            "companyCategoryId": "f99efa0f-5521-11eb-9cdd-f23c92a7f68e",
            "isAvailableToOrder": true,
            "name": "Chicken Bao Burger",
            "description": "Naturally smoked fillet grill, Chinese cabbage, tomatoes, sour-malt sauce, crispy turkey chips, fresh vegetables, two types of cheese, barbecue sauce",
            "fullDescription": "The most delicious burger with a homemade bun, juicy chicken fillet, crispy turkey chips, fresh tomatoes and lettuce, pickled cucumbers and fresh red onions, Cheddar and Mozzarella cheeses, dressed with BBQ cream sauce.",
            "measureText": "300 g",
            "price": 159,
            "promotionPrice": 127.2,
            "packagePrice": 0,
            "maxCountPositionsInPackage": 1,
            "image": "https://assets.dots.live/misteram-public/df629ef71ee4dd32860e630641eb1547-400x0.png",
            "promotionsIds": [
                "f5b241d1-5521-11eb-9cdd-f23c92a7f68e",
                "f5f7f68e-5521-11eb-9cdd-f23c92a7f68e"
            ],
            "modifiers": [],
            "nutrientsDataTitle": "Nutrition value per 100 g",
            "nutrientsData": [
                {
                    "value100": "3",
                    "valueFull": "822",
                    "title": "Energy, kcal"
                },
                {
                    "value100": "13",
                    "valueFull": "3442",
                    "title": "Energy, kJ"
                },
                {
                    "value100": "16",
                    "valueFull": "16",
                    "title": "Fats, g"
                },
                {
                    "value100": "7",
                    "valueFull": "7",
                    "title": "Of which saturated, g"
                },
                {
                    "value100": "16",
                    "valueFull": "16",
                    "title": "Carbohydrates, g"
                },
                {
                    "value100": "3",
                    "valueFull": "3",
                    "title": "Of which sugar, g"
                },
                {
                    "value100": "15",
                    "valueFull": "15",
                    "title": "Protein, g"
                },
                {
                    "value100": "1",
                    "valueFull": "1",
                    "title": "Salt, g"
                }
            ],
            "foodTypes": [],
            "promoLabelText": "2 promotions"
        },
        {
            "id": "936198df-44a5-4191-93a8-8b5876c76777",
            "companyCategoryId": "146a4341-be88-4590-ae15-a602fa33c34a",
            "isAvailableToOrder": true,
            "name": "Philadelphia Black Roll",
            "description": "Salmon, Philadelphia cheese, cucumber, avocado, cuttlefish ink, sesame",
            "fullDescription": "Black rolls are prepared with cuttlefish ink, which gives the dish a seafood flavor. Black rolls are very tasty and useful.",
            "measureText": "240 g",
            "price": 169,
            "promotionPrice": null,
            "packagePrice": 0,
            "maxCountPositionsInPackage": 1,
            "image": "https://assets.dots.live/misteram-public/4a0f051118562706615fcf921d6388b9-400x0.png",
            "promotionsIds": [
                "f5f7f68e-5521-11eb-9cdd-f23c92a7f68e"
            ],
            "modifiers": [],
            "nutrientsDataTitle": "Nutrition value per 100 g",
            "nutrientsData": [
                {
                    "value100": "143",
                    "valueFull": "341",
                    "title": "Energy, kcal"
                },
                {
                    "value100": "599",
                    "valueFull": "1428",
                    "title": "Energy, kJ"
                },
                {
                    "value100": "7",
                    "valueFull": "7",
                    "title": "Fats, g"
                },
                {
                    "value100": "17",
                    "valueFull": "17",
                    "title": "Carbohydrates, g"
                },
                {
                    "value100": "8",
                    "valueFull": "8",
                    "title": "Protein, g"
                }
            ],
            "foodTypes": [],
            "promoLabelText": "Free delivery"
        },
        {
            "id": "2e77ece9-eba0-4e83-8ee2-8a27b3e26668",
            "companyCategoryId": "146a4341-be88-4590-ae15-a602fa33c34a",
            "isAvailableToOrder": true,
            "name": "Signature tuna roll",
            "description": "Smoked salmon, tuna, cream cheese, pear, cheddar cheese, cuttlefish ink, fries, spicy sauce.",
            "fullDescription": "The signature tuna roll has rice covered with tuna shavings. Salmon goes well with tuna flakes.",
            "measureText": "235 g",
            "price": 165,
            "promotionPrice": null,
            "packagePrice": 0,
            "maxCountPositionsInPackage": 1,
            "image": "https://assets.dots.live/misteram-public/589518406cfd190a34da1db4d3a965a4-400x0.png",
            "promotionsIds": [
                "f5f7f68e-5521-11eb-9cdd-f23c92a7f68e"
            ],
            "modifiers": [],
            "nutrientsDataTitle": "Nutrition value per 100 g",
            "nutrientsData": [
                {
                    "value100": "151",
                    "valueFull": "355",
                    "title": "Energy, kcal"
                },
                {
                    "value100": "632",
                    "valueFull": "1486",
                    "title": "Energy, kJ"
                },
                {
                    "value100": "8",
                    "valueFull": "8",
                    "title": "Fats, g"
                },
                {
                    "value100": "12",
                    "valueFull": "12",
                    "title": "Carbohydrates, g"
                },
                {
                    "value100": "12",
                    "valueFull": "12",
                    "title": "Protein, g"
                }
            ],
            "foodTypes": [],
            "promoLabelText": "Free delivery"
        }
    ],
    "hasNext": false
}
 

Example response (200, Empty List):


{
    "items": [],
    "hasNext": false
}
 

Company Item Info.

Example request:
curl --request GET \
    --get "clients-api.dots.live/api/v2/items/nisi?v=2.0.0" \
    --header "Api-Token: {{YOUR_API_TOKEN}}" \
    --header "Api-Account-Token: {{YOUR_ACCOUNT_TOKEN}}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'clients-api.dots.live/api/v2/items/nisi',
    [
        'headers' => [
            'Api-Token' => '{{YOUR_API_TOKEN}}',
            'Api-Account-Token' => '{{YOUR_ACCOUNT_TOKEN}}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'query' => [
            'v'=> '2.0.0',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
  "item": {
    "id": "d4e1623c-1def-43eb-a7c3-d9055aefed78",
    "companyCategoryId": "60af6add-1a11-46d3-b920-770cb1598c88",
    "isAvailableToOrder": true,
    "name": "Test",
    "description": "Description",
    "fullDescription": "Full Description",
    "measureText": "nme8rnmD0s Undefined",
    "price": 41,
    "promotionPrice": null,
    "packagePrice": 14,
    "maxCountPositionsInPackage": 1,
    "image": "http://clients-api.test/uploads/images/Mt23fOPg1b-400x0.png",
    "promotionsIds": [],
    "modifiers": array:1 [,
      0: "kTpKUEgwcD",
    ],
    "nutrientsData": [],
    "promoLabelText": null
  },
  "promotions": [],
  "modifierGroups": []
}
 

Request   

GET api/v2/items/{id}

URL Parameters

id  string  

The ID of the item.

Query Parameters

v  string  

Api Version

Orders

Store Order.

requires authentication

Delivery types:


0 - delivery to door
1 - delivery to flat
2 - pickup
3 - table booking (used when user want to book a table)
4 - order in company (used when user is in company and want to make order to table)
5 - inner order to room (used for hotels)

Payment types:


1 - cash
2 - online (used when user want to pay with a card or Apple Pay/GPay.)
3 - terminal (used when user want to pay with a credit card to your courier/company)

.
Example request:
curl --request POST \
    "clients-api.dots.live/api/v2/orders?v=2.0.0" \
    --header "Api-Auth-Token: {{YOUR_API_AUTH_TOKEN}}" \
    --header "Api-Token: {{YOUR_API_TOKEN}}" \
    --header "Api-Account-Token: {{YOUR_ACCOUNT_TOKEN}}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
$client = new \GuzzleHttp\Client();
$response = $client->post(
    'clients-api.dots.live/api/v2/orders',
    [
        'headers' => [
            'Api-Auth-Token' => '{{YOUR_API_AUTH_TOKEN}}',
            'Api-Token' => '{{YOUR_API_TOKEN}}',
            'Api-Account-Token' => '{{YOUR_ACCOUNT_TOKEN}}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'query' => [
            'v'=> '2.0.0',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200, Success Example):


{
    "id": "95760c30-ba38-48fa-ae19-5ad41cbe7749"
}
 

Request   

POST api/v2/orders

Query Parameters

v  string  

Api Version

Body Parameters

orderFields  object  

orderFields.cityId  uuid  

City where you create order.

orderFields.companyId  uuid  

Company where you create order. Must belong to city.

orderFields.companyAddressId  uuid  

Company Address where exactly need to prepare order. Used when delivery type in [2,3,4,5] (non delivering order). For orders with type 0 or 1 system will automatically use the best companyAddress. Must belong to company.

orderFields.userName  string  

Displayed name of user. Max 100 characters.

orderFields.userPhone  string  

Displayed phone of user. Must be in format 380XXXXXXXXX.

orderFields.deliveryType  integer  

Delivery type. Must be one of 0, 1, 2, 3, 4, or 5.

orderFields.paymentType  integer  

Payment type. Must be one of 1, 2, 3.

orderFields.deliveryTime  integer  

Timestamp when user wants to receive order. Use 0 if user want to receive order as soon as possible.

orderFields.paidByCashbackAmount  number optional  

Should be specified if user has available cashback and wants to pay with it

orderFields.cartItems  string  

Specify cart items here.

Order info.

requires authentication

Example request:
curl --request GET \
    --get "clients-api.dots.live/api/v2/orders/et?v=2.0.0" \
    --header "Api-Auth-Token: {{YOUR_API_AUTH_TOKEN}}" \
    --header "Api-Token: {{YOUR_API_TOKEN}}" \
    --header "Api-Account-Token: {{YOUR_ACCOUNT_TOKEN}}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'clients-api.dots.live/api/v2/orders/et',
    [
        'headers' => [
            'Api-Auth-Token' => '{{YOUR_API_AUTH_TOKEN}}',
            'Api-Token' => '{{YOUR_API_TOKEN}}',
            'Api-Account-Token' => '{{YOUR_ACCOUNT_TOKEN}}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'query' => [
            'v'=> '2.0.0',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200, Success Example):


{
    "id": "f2d8c084-abca-435c-a937-25bacca9650e",
    "number": "976-91940",
    "cityId": "f68b48c2-5521-11eb-9cdd-f23c92a7f68e",
    "companyId": "f7bccc99-5521-11eb-9cdd-f23c92a7f68e",
    "showReorderButton": false,
    "companyActive": true,
    "completedTime": null,
    "companyName": "Jack's Burgers",
    "delivery": {
        "deliveryTypeText": "Door delivery",
        "deliveryAddress": ", "
    },
    "deliveryTime": {
        "title": "As soon as possible",
        "type": "asap"
    },
    "payment": {
        "type": 2,
        "title": "Online"
    },
    "user": {
        "name": "vel",
        "phone": "380630001122",
        "wishes": "",
        "peopleCount": null
    },
    "prices": {
        "itemsPrice": 198,
        "packagePrice": 0,
        "deliveryPrice": 55,
        "promoCodeDiscountAmount": 0,
        "paidByCashbackAmount": 0,
        "receivingCashbackAmount": 0,
        "checkPrice": 198,
        "fullPrice": 253
    },
    "items": [
        {
            "id": "68d0ecf3-5522-11eb-9cdd-f23c92a7f68e",
            "count": 2,
            "name": "Signature pizza",
            "modifierValue": null,
            "price": 99,
            "promoPrice": null,
            "isAvailableToOrder": false
        }
    ],
    "review": null
}
 

Request   

GET api/v2/orders/{id}

URL Parameters

id  string  

The ID of the order.

Query Parameters

v  string  

Api Version

Online payment Data.

requires authentication

When you create order system will create online payment. When it is created you need to redirect to checkoutUrl or use token to render payment within SDK.

Example request:
curl --request GET \
    --get "clients-api.dots.live/api/v2/orders/CbcCfCdA-dFBf-cfcf-daEB-dFaDdccDaCac/online-payment-data?v=2.0.0" \
    --header "Api-Auth-Token: {{YOUR_API_AUTH_TOKEN}}" \
    --header "Api-Token: {{YOUR_API_TOKEN}}" \
    --header "Api-Account-Token: {{YOUR_ACCOUNT_TOKEN}}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'clients-api.dots.live/api/v2/orders/CbcCfCdA-dFBf-cfcf-daEB-dFaDdccDaCac/online-payment-data',
    [
        'headers' => [
            'Api-Auth-Token' => '{{YOUR_API_AUTH_TOKEN}}',
            'Api-Token' => '{{YOUR_API_TOKEN}}',
            'Api-Account-Token' => '{{YOUR_ACCOUNT_TOKEN}}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'query' => [
            'v'=> '2.0.0',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200, Success Example):


{
    "id": "0a9b4a1e-6ea5-4398-ad58-f1f4a8b813d2",
    "status": 1,
    "onlinePayment": {
        "merchantId": 1440488,
        "orderPrice": 21990,
        "description": "Payment for order",
        "currency": "UAH",
        "operationId": "15164-dots",
        "token": "67c814e2593e23ede3135a16cb5bf89af5faeb33",
        "commission": 0.027,
        "feeAmount": 594,
        "callbackUrl": "https://jackburgersbar.com/ua/chernigov/cart/success",
        "checkoutUrl": "https://pay.fondy.eu/merchants/61afab6b27e2c096f3ab183360792381/default/index.html?token=67c814e2593e23ede3135a16cb5bf89af5faeb33",
        "totalPrice": 22584
    }
}
 

Request   

GET api/v2/orders/{order}/online-payment-data

URL Parameters

order  string  

Query Parameters

v  string  

Api Version

Order courier info.

requires authentication

Example request:
curl --request GET \
    --get "clients-api.dots.live/api/v2/orders/AbdEabff-dfBE-BFcd-cdEb-dFAABDFFBAFF/courier-data?v=2.0.0" \
    --header "Api-Auth-Token: {{YOUR_API_AUTH_TOKEN}}" \
    --header "Api-Token: {{YOUR_API_TOKEN}}" \
    --header "Api-Account-Token: {{YOUR_ACCOUNT_TOKEN}}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'clients-api.dots.live/api/v2/orders/AbdEabff-dfBE-BFcd-cdEb-dFAABDFFBAFF/courier-data',
    [
        'headers' => [
            'Api-Auth-Token' => '{{YOUR_API_AUTH_TOKEN}}',
            'Api-Token' => '{{YOUR_API_TOKEN}}',
            'Api-Account-Token' => '{{YOUR_ACCOUNT_TOKEN}}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'query' => [
            'v'=> '2.0.0',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200, Success Example):


{
    "courier": {
        "name": "Andrew 127"
    },
    "courierRoute": {
        "status": 10,
        "duration": 54,
        "lastUpdated": 1622118255,
        "currentCourierPositionDTO": {
            "latitude": 51.496267236017,
            "longitude": 31.306502453193
        },
        "routeCourierPositionDTOs": [
            {
                "latitude": 51.496267236017,
                "longitude": 31.306502453193
            },
            {
                "latitude": 51.496267236017,
                "longitude": 31.306502453193
            },
            {
                "latitude": 51.496267236017,
                "longitude": 31.306502453193
            },
            {
                "latitude": 51.49618693554,
                "longitude": 31.30643749379
            },
            {
                "latitude": 51.49618693554,
                "longitude": 31.30643749379
            },
            {
                "latitude": 51.49618693554,
                "longitude": 31.30643749379
            },
            {
                "latitude": 51.49618693554,
                "longitude": 31.30643749379
            },
            {
                "latitude": 51.49618693554,
                "longitude": 31.30643749379
            },
            {
                "latitude": 51.49618693554,
                "longitude": 31.30643749379
            },
            {
                "latitude": 51.49618693554,
                "longitude": 31.30643749379
            }
        ]
    }
}
 

Request   

GET api/v2/orders/{order}/courier-data

URL Parameters

order  string  

Query Parameters

v  string  

Api Version

Decline Order.

requires authentication

Example request:
curl --request PATCH \
    "clients-api.dots.live/api/v2/orders/cdbBFbBB-ddAf-dCaf-dBDf-BEcdCABdDfdb/decline?v=2.0.0" \
    --header "Api-Auth-Token: {{YOUR_API_AUTH_TOKEN}}" \
    --header "Api-Token: {{YOUR_API_TOKEN}}" \
    --header "Api-Account-Token: {{YOUR_ACCOUNT_TOKEN}}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
$client = new \GuzzleHttp\Client();
$response = $client->patch(
    'clients-api.dots.live/api/v2/orders/cdbBFbBB-ddAf-dCaf-dBDf-BEcdCABdDfdb/decline',
    [
        'headers' => [
            'Api-Auth-Token' => '{{YOUR_API_AUTH_TOKEN}}',
            'Api-Token' => '{{YOUR_API_TOKEN}}',
            'Api-Account-Token' => '{{YOUR_ACCOUNT_TOKEN}}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'query' => [
            'v'=> '2.0.0',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200, Success Example):


[
    "ok"
]
 

Request   

PATCH api/v2/orders/{order}/decline

URL Parameters

order  string  

Query Parameters

v  string  

Api Version

Get repeat order cart info.

requires authentication

Example request:
curl --request GET \
    --get "clients-api.dots.live/api/v2/orders/FFACAaBD-ccFd-fdeC-BAfb-dfEeAcaABdfd/repeat-cart-data?v=2.0.0" \
    --header "Api-Auth-Token: {{YOUR_API_AUTH_TOKEN}}" \
    --header "Api-Token: {{YOUR_API_TOKEN}}" \
    --header "Api-Account-Token: {{YOUR_ACCOUNT_TOKEN}}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'clients-api.dots.live/api/v2/orders/FFACAaBD-ccFd-fdeC-BAfb-dfEeAcaABdfd/repeat-cart-data',
    [
        'headers' => [
            'Api-Auth-Token' => '{{YOUR_API_AUTH_TOKEN}}',
            'Api-Token' => '{{YOUR_API_TOKEN}}',
            'Api-Account-Token' => '{{YOUR_ACCOUNT_TOKEN}}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'query' => [
            'v'=> '2.0.0',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200, Success Example):


storage/app/scribe/responses/orders/repeat/success.json
 

Request   

GET api/v2/orders/{order}/repeat-cart-data

URL Parameters

order  string  

Query Parameters

v  string  

Api Version

Review: Store Order Review.

requires authentication

Reviews with 5 rating will be shown in the company page immediately. Reviews with any message will be shown only after moderation.

Example request:
curl --request POST \
    "clients-api.dots.live/api/v2/orders/assumenda/reviews?v=2.0.0" \
    --header "Api-Auth-Token: {{YOUR_API_AUTH_TOKEN}}" \
    --header "Api-Token: {{YOUR_API_TOKEN}}" \
    --header "Api-Account-Token: {{YOUR_ACCOUNT_TOKEN}}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"companyRating\": 4,
    \"companyMessage\": \"Soup was too salty.\",
    \"courierRating\": 4,
    \"courierMessage\": \"Courier was late.\"
}"
$client = new \GuzzleHttp\Client();
$response = $client->post(
    'clients-api.dots.live/api/v2/orders/assumenda/reviews',
    [
        'headers' => [
            'Api-Auth-Token' => '{{YOUR_API_AUTH_TOKEN}}',
            'Api-Token' => '{{YOUR_API_TOKEN}}',
            'Api-Account-Token' => '{{YOUR_ACCOUNT_TOKEN}}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'query' => [
            'v'=> '2.0.0',
        ],
        'json' => [
            'companyRating' => 4,
            'companyMessage' => 'Soup was too salty.',
            'courierRating' => 4,
            'courierMessage' => 'Courier was late.',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200, Success Example):


[
    "ok"
]
 

Request   

POST api/v2/orders/{order}/reviews

URL Parameters

order  string  

Query Parameters

v  string  

Api Version

Body Parameters

companyRating  integer  

Company rating must be from 1 to 5.

companyMessage  string optional  

Company message is required only if company rating below 5. Up to 400 characters.

courierRating  integer optional  

Courier rating is required only if order delivery type was with 0 or 1. Must be from 1 to 5.

courierMessage  string optional  

Courier message is required only if courier rating below 5. Up to 400 characters.

Review: Update order review <aside>Message is required for reviews with rating 4 or less.</aside> Reviews with 5 rating will be shown in the company page immediately.

requires authentication

Reviews with any message will be shown only after moderation.

Example request:
curl --request PATCH \
    "clients-api.dots.live/api/v2/orders/commodi/reviews/quibusdam?v=2.0.0" \
    --header "Api-Auth-Token: {{YOUR_API_AUTH_TOKEN}}" \
    --header "Api-Token: {{YOUR_API_TOKEN}}" \
    --header "Api-Account-Token: {{YOUR_ACCOUNT_TOKEN}}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"companyRating\": 4,
    \"companyMessage\": \"Soup was too salty.\",
    \"courierRating\": 4,
    \"courierMessage\": \"Courier was late.\"
}"
$client = new \GuzzleHttp\Client();
$response = $client->patch(
    'clients-api.dots.live/api/v2/orders/commodi/reviews/quibusdam',
    [
        'headers' => [
            'Api-Auth-Token' => '{{YOUR_API_AUTH_TOKEN}}',
            'Api-Token' => '{{YOUR_API_TOKEN}}',
            'Api-Account-Token' => '{{YOUR_ACCOUNT_TOKEN}}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'query' => [
            'v'=> '2.0.0',
        ],
        'json' => [
            'companyRating' => 4,
            'companyMessage' => 'Soup was too salty.',
            'courierRating' => 4,
            'courierMessage' => 'Courier was late.',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200, Success Example):


[
    "ok"
]
 

Request   

PATCH api/v2/orders/{order_id}/reviews/{id}

URL Parameters

order_id  string  

The ID of the order.

id  string  

The ID of the review.

Query Parameters

v  string  

Api Version

Body Parameters

companyRating  integer  

Company rating must be from 1 to 5.

companyMessage  string optional  

Company message is required only if company rating below 5. Up to 400 characters.

courierRating  integer optional  

Courier rating is required only if order delivery type was with 0 or 1. Must be from 1 to 5.

courierMessage  string optional  

Courier message is required only if courier rating below 5. Up to 400 characters.

User Addresses

Validate User Address.

You can validate address without saving to check if user address is correctly recognized by and if it is in city polygon o delivery.

User Address types:


0 - apartment
1 - private house
2 - office
3 - other

Example request:
curl --request POST \
    "clients-api.dots.live/api/v2/user-addresses/validate?v=2.0.0" \
    --header "Api-Token: {{YOUR_API_TOKEN}}" \
    --header "Api-Account-Token: {{YOUR_ACCOUNT_TOKEN}}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"cityId\": \"8aa41c38-2229-427d-a6cd-b93c5d11da5c\",
    \"type\": 0,
    \"street\": \"Shevchenko\",
    \"house\": \"11a\",
    \"flat\": \"7\",
    \"stage\": \"3\",
    \"note\": \"The entrance is between bank and drugstore.\",
    \"title\": \"Sweet home.\"
}"
$client = new \GuzzleHttp\Client();
$response = $client->post(
    'clients-api.dots.live/api/v2/user-addresses/validate',
    [
        'headers' => [
            'Api-Token' => '{{YOUR_API_TOKEN}}',
            'Api-Account-Token' => '{{YOUR_ACCOUNT_TOKEN}}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'query' => [
            'v'=> '2.0.0',
        ],
        'json' => [
            'cityId' => '8aa41c38-2229-427d-a6cd-b93c5d11da5c',
            'type' => 0,
            'street' => 'Shevchenko',
            'house' => '11a',
            'flat' => '7',
            'stage' => '3',
            'note' => 'The entrance is between bank and drugstore.',
            'title' => 'Sweet home.',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200, Success):


{
    "cityId": "f688da6b-5521-11eb-9cdd-f23c92a7f68e",
    "type": 0,
    "position": {
        "latitude": 51.50403,
        "longitude": 31.33999
    },
    "inCityPolygon": true,
    "street": "shevchenko",
    "house": "99b",
    "flat": "7",
    "stage": "3",
    "note": "New buildings",
    "title": null
}
 

Example response (200, Success With not found address coordinates):


{
    "cityId": "f688da6b-5521-11eb-9cdd-f23c92a7f68e",
    "type": 0,
    "position": null,
    "inCityPolygon": false,
    "street": "2312312",
    "house": "99b",
    "flat": "7",
    "stage": "3",
    "note": "New buildings",
    "title": null
}
 

Example response (422, Validation fails):


{
    "message": "The given data was invalid.",
    "errors": {
        "cityId": [
            "validation.required"
        ],
        "type": [
            "validation.required"
        ],
        "street": [
            "validation.required"
        ],
        "house": [
            "validation.required"
        ],
        "flat": [
            "validation.required"
        ],
        "stage": [
            "validation.required"
        ]
    }
}
 

Request   

POST api/v2/user-addresses/validate

Query Parameters

v  string  

Api Version

Body Parameters

cityId  uuid  

type  integer  

Must be one of [0,1,2,3].

street  string  

Max 255 characters allowed.

house  string optional  

Required if type one of [0,1,2]. Max 10 characters allowed.

flat  string optional  

Required if type one of [0,2]. Max 10 characters allowed.

stage  string optional  

Required if type is 0. Max 10 characters allowed.

note  string optional  

Max 100 characters allowed. User can specify some details here. Note will be shown to courier.

title  string optional  

Max 100 characters allowed. Only user will see this title. Used to quick navigation between addresses.

Store User Address.

Validation is the same as in Validate User Address.

Example request:
curl --request POST \
    "clients-api.dots.live/api/v2/user-addresses?v=2.0.0" \
    --header "Api-Token: {{YOUR_API_TOKEN}}" \
    --header "Api-Account-Token: {{YOUR_ACCOUNT_TOKEN}}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"cityId\": \"8aa41c38-2229-427d-a6cd-b93c5d11da5c\",
    \"type\": 0,
    \"street\": \"Shevchenko\",
    \"house\": \"11a\",
    \"flat\": \"7\",
    \"stage\": \"3\",
    \"note\": \"The entrance is between bank and drugstore.\",
    \"title\": \"Sweet home.\"
}"
$client = new \GuzzleHttp\Client();
$response = $client->post(
    'clients-api.dots.live/api/v2/user-addresses',
    [
        'headers' => [
            'Api-Token' => '{{YOUR_API_TOKEN}}',
            'Api-Account-Token' => '{{YOUR_ACCOUNT_TOKEN}}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'query' => [
            'v'=> '2.0.0',
        ],
        'json' => [
            'cityId' => '8aa41c38-2229-427d-a6cd-b93c5d11da5c',
            'type' => 0,
            'street' => 'Shevchenko',
            'house' => '11a',
            'flat' => '7',
            'stage' => '3',
            'note' => 'The entrance is between bank and drugstore.',
            'title' => 'Sweet home.',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200, Success):


{
    "cityId": "f688da6b-5521-11eb-9cdd-f23c92a7f68e",
    "type": 0,
    "position": {
        "latitude": 51.50403,
        "longitude": 31.33999
    },
    "inCityPolygon": true,
    "street": "shevchenko",
    "house": "99b",
    "flat": "7",
    "stage": "3",
    "note": "New buildings",
    "title": null
}
 

Example response (200, Success With not found address coordinates):


{
    "cityId": "f688da6b-5521-11eb-9cdd-f23c92a7f68e",
    "type": 0,
    "position": null,
    "inCityPolygon": false,
    "street": "2312312",
    "house": "99b",
    "flat": "7",
    "stage": "3",
    "note": "New buildings",
    "title": null
}
 

Example response (422, Validation fails):


{
    "message": "The given data was invalid.",
    "errors": {
        "cityId": [
            "validation.required"
        ],
        "type": [
            "validation.required"
        ],
        "street": [
            "validation.required"
        ],
        "house": [
            "validation.required"
        ],
        "flat": [
            "validation.required"
        ],
        "stage": [
            "validation.required"
        ]
    }
}
 

Request   

POST api/v2/user-addresses

Query Parameters

v  string  

Api Version

Body Parameters

cityId  uuid  

type  integer  

Must be one of [0,1,2,3].

street  string  

Max 255 characters allowed.

house  string optional  

Required if type one of [0,1,2]. Max 10 characters allowed.

flat  string optional  

Required if type one of [0,2]. Max 10 characters allowed.

stage  string optional  

Required if type is 0. Max 10 characters allowed.

note  string optional  

Max 100 characters allowed. User can specify some details here. Note will be shown to courier.

title  string optional  

Max 100 characters allowed. Only user will see this title. Used to quick navigation between addresses.

Update User Address.

Validation is the same as in Validate User Address.

Example request:
curl --request PATCH \
    "clients-api.dots.live/api/v2/user-addresses/sequi?v=2.0.0" \
    --header "Api-Token: {{YOUR_API_TOKEN}}" \
    --header "Api-Account-Token: {{YOUR_ACCOUNT_TOKEN}}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"cityId\": \"8aa41c38-2229-427d-a6cd-b93c5d11da5c\",
    \"type\": 0,
    \"street\": \"Shevchenko\",
    \"house\": \"11a\",
    \"flat\": \"7\",
    \"stage\": \"3\",
    \"note\": \"The entrance is between bank and drugstore.\",
    \"title\": \"Sweet home.\"
}"
$client = new \GuzzleHttp\Client();
$response = $client->patch(
    'clients-api.dots.live/api/v2/user-addresses/sequi',
    [
        'headers' => [
            'Api-Token' => '{{YOUR_API_TOKEN}}',
            'Api-Account-Token' => '{{YOUR_ACCOUNT_TOKEN}}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'query' => [
            'v'=> '2.0.0',
        ],
        'json' => [
            'cityId' => '8aa41c38-2229-427d-a6cd-b93c5d11da5c',
            'type' => 0,
            'street' => 'Shevchenko',
            'house' => '11a',
            'flat' => '7',
            'stage' => '3',
            'note' => 'The entrance is between bank and drugstore.',
            'title' => 'Sweet home.',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200, Success):


{
    "cityId": "f688da6b-5521-11eb-9cdd-f23c92a7f68e",
    "type": 0,
    "position": {
        "latitude": 51.50403,
        "longitude": 31.33999
    },
    "inCityPolygon": true,
    "street": "shevchenko",
    "house": "99b",
    "flat": "7",
    "stage": "3",
    "note": "New buildings",
    "title": null
}
 

Example response (200, Success With not found address coordinates):


{
    "cityId": "f688da6b-5521-11eb-9cdd-f23c92a7f68e",
    "type": 0,
    "position": null,
    "inCityPolygon": false,
    "street": "2312312",
    "house": "99b",
    "flat": "7",
    "stage": "3",
    "note": "New buildings",
    "title": null
}
 

Example response (422, Validation fails):


{
    "message": "The given data was invalid.",
    "errors": {
        "cityId": [
            "validation.required"
        ],
        "type": [
            "validation.required"
        ],
        "street": [
            "validation.required"
        ],
        "house": [
            "validation.required"
        ],
        "flat": [
            "validation.required"
        ],
        "stage": [
            "validation.required"
        ]
    }
}
 

Request   

PATCH api/v2/user-addresses/{userAddress}

URL Parameters

userAddress  string  

Query Parameters

v  string  

Api Version

Body Parameters

cityId  uuid  

type  integer  

Must be one of [0,1,2,3].

street  string  

Max 255 characters allowed.

house  string optional  

Required if type one of [0,1,2]. Max 10 characters allowed.

flat  string optional  

Required if type one of [0,2]. Max 10 characters allowed.

stage  string optional  

Required if type is 0. Max 10 characters allowed.

note  string optional  

Max 100 characters allowed. User can specify some details here. Note will be shown to courier.

title  string optional  

Max 100 characters allowed. Only user will see this title. Used to quick navigation between addresses.

Destroy User Address.

requires authentication

Example request:
curl --request DELETE \
    "clients-api.dots.live/api/v2/user-addresses/totam?v=2.0.0" \
    --header "Api-Auth-Token: {{YOUR_API_AUTH_TOKEN}}" \
    --header "Api-Token: {{YOUR_API_TOKEN}}" \
    --header "Api-Account-Token: {{YOUR_ACCOUNT_TOKEN}}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
$client = new \GuzzleHttp\Client();
$response = $client->delete(
    'clients-api.dots.live/api/v2/user-addresses/totam',
    [
        'headers' => [
            'Api-Auth-Token' => '{{YOUR_API_AUTH_TOKEN}}',
            'Api-Token' => '{{YOUR_API_TOKEN}}',
            'Api-Account-Token' => '{{YOUR_ACCOUNT_TOKEN}}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'query' => [
            'v'=> '2.0.0',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200, Success Example):


[
    "ok"
]
 

Request   

DELETE api/v2/user-addresses/{userAddress}

URL Parameters

userAddress  string  

Query Parameters

v  string  

Api Version

Users

User Orders: Active list.

requires authentication

Active Orders that are in progress and orders that requires review will be returned here.

Example request:
curl --request GET \
    --get "clients-api.dots.live/api/v2/users/sed/orders/active?v=2.0.0" \
    --header "Api-Auth-Token: {{YOUR_API_AUTH_TOKEN}}" \
    --header "Api-Token: {{YOUR_API_TOKEN}}" \
    --header "Api-Account-Token: {{YOUR_ACCOUNT_TOKEN}}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'clients-api.dots.live/api/v2/users/sed/orders/active',
    [
        'headers' => [
            'Api-Auth-Token' => '{{YOUR_API_AUTH_TOKEN}}',
            'Api-Token' => '{{YOUR_API_TOKEN}}',
            'Api-Account-Token' => '{{YOUR_ACCOUNT_TOKEN}}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'query' => [
            'v'=> '2.0.0',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
access-control-expose-headers: *
 

{
    "message": "App Token is invalid",
    "exception": "Symfony\\Component\\HttpKernel\\Exception\\HttpException",
    "file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Foundation/Application.php",
    "line": 1146,
    "trace": [
        {
            "file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Foundation/helpers.php",
            "line": 44,
            "function": "abort",
            "class": "Illuminate\\Foundation\\Application",
            "type": "->"
        },
        {
            "file": "/var/www/clients-api/app/Http/Middleware/Auth/AppAuth.php",
            "line": 34,
            "function": "abort"
        },
        {
            "file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 180,
            "function": "handle",
            "class": "App\\Http\\Middleware\\Auth\\AppAuth",
            "type": "->"
        },
        {
            "file": "/var/www/clients-api/app/Http/Middleware/Headers/VerifyAppTokenHeader.php",
            "line": 30,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 180,
            "function": "handle",
            "class": "App\\Http\\Middleware\\Headers\\VerifyAppTokenHeader",
            "type": "->"
        },
        {
            "file": "/var/www/clients-api/app/Http/Middleware/Headers/VerifyAccountTokenHeader.php",
            "line": 38,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 180,
            "function": "handle",
            "class": "App\\Http\\Middleware\\Headers\\VerifyAccountTokenHeader",
            "type": "->"
        },
        {
            "file": "/var/www/clients-api/app/Http/Middleware/StoreUserApiVersion.php",
            "line": 44,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 180,
            "function": "handle",
            "class": "App\\Http\\Middleware\\StoreUserApiVersion",
            "type": "->"
        },
        {
            "file": "/var/www/clients-api/app/Http/Middleware/RestrictUnsupportedApiVersion.php",
            "line": 34,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 180,
            "function": "handle",
            "class": "App\\Http\\Middleware\\RestrictUnsupportedApiVersion",
            "type": "->"
        },
        {
            "file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 116,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Routing/Router.php",
            "line": 726,
            "function": "then",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Routing/Router.php",
            "line": 703,
            "function": "runRouteWithinStack",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Routing/Router.php",
            "line": 667,
            "function": "runRoute",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Routing/Router.php",
            "line": 656,
            "function": "dispatchToRoute",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php",
            "line": 167,
            "function": "dispatch",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 141,
            "function": "Illuminate\\Foundation\\Http\\{closure}",
            "class": "Illuminate\\Foundation\\Http\\Kernel",
            "type": "->"
        },
        {
            "file": "/var/www/clients-api/vendor/laravel/vapor-core/src/Http/Middleware/ServeStaticAssets.php",
            "line": 21,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 180,
            "function": "handle",
            "class": "Laravel\\Vapor\\Http\\Middleware\\ServeStaticAssets",
            "type": "->"
        },
        {
            "file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php",
            "line": 21,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ConvertEmptyStringsToNull.php",
            "line": 31,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest",
            "type": "->"
        },
        {
            "file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 180,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\ConvertEmptyStringsToNull",
            "type": "->"
        },
        {
            "file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php",
            "line": 21,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TrimStrings.php",
            "line": 40,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest",
            "type": "->"
        },
        {
            "file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 180,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\TrimStrings",
            "type": "->"
        },
        {
            "file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ValidatePostSize.php",
            "line": 27,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 180,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\ValidatePostSize",
            "type": "->"
        },
        {
            "file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/PreventRequestsDuringMaintenance.php",
            "line": 86,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 180,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\PreventRequestsDuringMaintenance",
            "type": "->"
        },
        {
            "file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Http/Middleware/HandleCors.php",
            "line": 62,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 180,
            "function": "handle",
            "class": "Illuminate\\Http\\Middleware\\HandleCors",
            "type": "->"
        },
        {
            "file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Http/Middleware/TrustProxies.php",
            "line": 39,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 180,
            "function": "handle",
            "class": "Illuminate\\Http\\Middleware\\TrustProxies",
            "type": "->"
        },
        {
            "file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Http/Middleware/TrustHosts.php",
            "line": 48,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 180,
            "function": "handle",
            "class": "Illuminate\\Http\\Middleware\\TrustHosts",
            "type": "->"
        },
        {
            "file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 116,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php",
            "line": 142,
            "function": "then",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php",
            "line": 111,
            "function": "sendRequestThroughRouter",
            "class": "Illuminate\\Foundation\\Http\\Kernel",
            "type": "->"
        },
        {
            "file": "/var/www/clients-api/vendor/knuckleswtf/scribe/src/Extracting/Strategies/Responses/ResponseCalls.php",
            "line": 299,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Kernel",
            "type": "->"
        },
        {
            "file": "/var/www/clients-api/vendor/knuckleswtf/scribe/src/Extracting/Strategies/Responses/ResponseCalls.php",
            "line": 287,
            "function": "callLaravelOrLumenRoute",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "/var/www/clients-api/vendor/knuckleswtf/scribe/src/Extracting/Strategies/Responses/ResponseCalls.php",
            "line": 89,
            "function": "makeApiCall",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "/var/www/clients-api/vendor/knuckleswtf/scribe/src/Extracting/Strategies/Responses/ResponseCalls.php",
            "line": 45,
            "function": "makeResponseCall",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "/var/www/clients-api/vendor/knuckleswtf/scribe/src/Extracting/Strategies/Responses/ResponseCalls.php",
            "line": 35,
            "function": "makeResponseCallIfConditionsPass",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "/var/www/clients-api/vendor/knuckleswtf/scribe/src/Extracting/Extractor.php",
            "line": 222,
            "function": "__invoke",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "/var/www/clients-api/vendor/knuckleswtf/scribe/src/Extracting/Extractor.php",
            "line": 179,
            "function": "iterateThroughStrategies",
            "class": "Knuckles\\Scribe\\Extracting\\Extractor",
            "type": "->"
        },
        {
            "file": "/var/www/clients-api/vendor/knuckleswtf/scribe/src/Extracting/Extractor.php",
            "line": 116,
            "function": "fetchResponses",
            "class": "Knuckles\\Scribe\\Extracting\\Extractor",
            "type": "->"
        },
        {
            "file": "/var/www/clients-api/vendor/knuckleswtf/scribe/src/GroupedEndpoints/GroupedEndpointsFromApp.php",
            "line": 123,
            "function": "processRoute",
            "class": "Knuckles\\Scribe\\Extracting\\Extractor",
            "type": "->"
        },
        {
            "file": "/var/www/clients-api/vendor/knuckleswtf/scribe/src/GroupedEndpoints/GroupedEndpointsFromApp.php",
            "line": 80,
            "function": "extractEndpointsInfoFromLaravelApp",
            "class": "Knuckles\\Scribe\\GroupedEndpoints\\GroupedEndpointsFromApp",
            "type": "->"
        },
        {
            "file": "/var/www/clients-api/vendor/knuckleswtf/scribe/src/GroupedEndpoints/GroupedEndpointsFromApp.php",
            "line": 56,
            "function": "extractEndpointsInfoAndWriteToDisk",
            "class": "Knuckles\\Scribe\\GroupedEndpoints\\GroupedEndpointsFromApp",
            "type": "->"
        },
        {
            "file": "/var/www/clients-api/vendor/knuckleswtf/scribe/src/Commands/GenerateDocumentation.php",
            "line": 55,
            "function": "get",
            "class": "Knuckles\\Scribe\\GroupedEndpoints\\GroupedEndpointsFromApp",
            "type": "->"
        },
        {
            "file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php",
            "line": 36,
            "function": "handle",
            "class": "Knuckles\\Scribe\\Commands\\GenerateDocumentation",
            "type": "->"
        },
        {
            "file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Container/Util.php",
            "line": 41,
            "function": "Illuminate\\Container\\{closure}",
            "class": "Illuminate\\Container\\BoundMethod",
            "type": "::"
        },
        {
            "file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php",
            "line": 93,
            "function": "unwrapIfClosure",
            "class": "Illuminate\\Container\\Util",
            "type": "::"
        },
        {
            "file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php",
            "line": 37,
            "function": "callBoundMethod",
            "class": "Illuminate\\Container\\BoundMethod",
            "type": "::"
        },
        {
            "file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Container/Container.php",
            "line": 651,
            "function": "call",
            "class": "Illuminate\\Container\\BoundMethod",
            "type": "::"
        },
        {
            "file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Console/Command.php",
            "line": 136,
            "function": "call",
            "class": "Illuminate\\Container\\Container",
            "type": "->"
        },
        {
            "file": "/var/www/clients-api/vendor/symfony/console/Command/Command.php",
            "line": 308,
            "function": "execute",
            "class": "Illuminate\\Console\\Command",
            "type": "->"
        },
        {
            "file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Console/Command.php",
            "line": 121,
            "function": "run",
            "class": "Symfony\\Component\\Console\\Command\\Command",
            "type": "->"
        },
        {
            "file": "/var/www/clients-api/vendor/symfony/console/Application.php",
            "line": 998,
            "function": "run",
            "class": "Illuminate\\Console\\Command",
            "type": "->"
        },
        {
            "file": "/var/www/clients-api/vendor/symfony/console/Application.php",
            "line": 299,
            "function": "doRunCommand",
            "class": "Symfony\\Component\\Console\\Application",
            "type": "->"
        },
        {
            "file": "/var/www/clients-api/vendor/symfony/console/Application.php",
            "line": 171,
            "function": "doRun",
            "class": "Symfony\\Component\\Console\\Application",
            "type": "->"
        },
        {
            "file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Console/Application.php",
            "line": 102,
            "function": "run",
            "class": "Symfony\\Component\\Console\\Application",
            "type": "->"
        },
        {
            "file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php",
            "line": 129,
            "function": "run",
            "class": "Illuminate\\Console\\Application",
            "type": "->"
        },
        {
            "file": "/var/www/clients-api/artisan",
            "line": 37,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Console\\Kernel",
            "type": "->"
        }
    ]
}
 

Request   

GET api/v2/users/{user}/orders/active

URL Parameters

user  string  

Query Parameters

v  string  

Api Version

User Orders: History list.

requires authentication

Example request:
curl --request GET \
    --get "clients-api.dots.live/api/v2/users/repellat/orders/history?v=2.0.0" \
    --header "Api-Auth-Token: {{YOUR_API_AUTH_TOKEN}}" \
    --header "Api-Token: {{YOUR_API_TOKEN}}" \
    --header "Api-Account-Token: {{YOUR_ACCOUNT_TOKEN}}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'clients-api.dots.live/api/v2/users/repellat/orders/history',
    [
        'headers' => [
            'Api-Auth-Token' => '{{YOUR_API_AUTH_TOKEN}}',
            'Api-Token' => '{{YOUR_API_TOKEN}}',
            'Api-Account-Token' => '{{YOUR_ACCOUNT_TOKEN}}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'query' => [
            'v'=> '2.0.0',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{

 "items": [{
   "id" => "fb6be6bd-9089-4408-8837-89f27897745b",
   "status" => "7",
   "title" => "19.05.2021 - Test - #111-11111",
 }],
 "hasNext": false
 

Request   

GET api/v2/users/{user}/orders/history

URL Parameters

user  string  

Query Parameters

v  string  

Api Version

User Info.

requires authentication

Example request:
curl --request GET \
    --get "clients-api.dots.live/api/v2/users/commodi?v=2.0.0" \
    --header "Api-Auth-Token: {{YOUR_API_AUTH_TOKEN}}" \
    --header "Api-Token: {{YOUR_API_TOKEN}}" \
    --header "Api-Account-Token: {{YOUR_ACCOUNT_TOKEN}}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'clients-api.dots.live/api/v2/users/commodi',
    [
        'headers' => [
            'Api-Auth-Token' => '{{YOUR_API_AUTH_TOKEN}}',
            'Api-Token' => '{{YOUR_API_TOKEN}}',
            'Api-Account-Token' => '{{YOUR_ACCOUNT_TOKEN}}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'query' => [
            'v'=> '2.0.0',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
access-control-expose-headers: *
 

{
    "message": "App Token is invalid",
    "exception": "Symfony\\Component\\HttpKernel\\Exception\\HttpException",
    "file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Foundation/Application.php",
    "line": 1146,
    "trace": [
        {
            "file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Foundation/helpers.php",
            "line": 44,
            "function": "abort",
            "class": "Illuminate\\Foundation\\Application",
            "type": "->"
        },
        {
            "file": "/var/www/clients-api/app/Http/Middleware/Auth/AppAuth.php",
            "line": 34,
            "function": "abort"
        },
        {
            "file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 180,
            "function": "handle",
            "class": "App\\Http\\Middleware\\Auth\\AppAuth",
            "type": "->"
        },
        {
            "file": "/var/www/clients-api/app/Http/Middleware/Headers/VerifyAppTokenHeader.php",
            "line": 30,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 180,
            "function": "handle",
            "class": "App\\Http\\Middleware\\Headers\\VerifyAppTokenHeader",
            "type": "->"
        },
        {
            "file": "/var/www/clients-api/app/Http/Middleware/Headers/VerifyAccountTokenHeader.php",
            "line": 38,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 180,
            "function": "handle",
            "class": "App\\Http\\Middleware\\Headers\\VerifyAccountTokenHeader",
            "type": "->"
        },
        {
            "file": "/var/www/clients-api/app/Http/Middleware/StoreUserApiVersion.php",
            "line": 44,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 180,
            "function": "handle",
            "class": "App\\Http\\Middleware\\StoreUserApiVersion",
            "type": "->"
        },
        {
            "file": "/var/www/clients-api/app/Http/Middleware/RestrictUnsupportedApiVersion.php",
            "line": 34,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 180,
            "function": "handle",
            "class": "App\\Http\\Middleware\\RestrictUnsupportedApiVersion",
            "type": "->"
        },
        {
            "file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 116,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Routing/Router.php",
            "line": 726,
            "function": "then",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Routing/Router.php",
            "line": 703,
            "function": "runRouteWithinStack",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Routing/Router.php",
            "line": 667,
            "function": "runRoute",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Routing/Router.php",
            "line": 656,
            "function": "dispatchToRoute",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php",
            "line": 167,
            "function": "dispatch",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 141,
            "function": "Illuminate\\Foundation\\Http\\{closure}",
            "class": "Illuminate\\Foundation\\Http\\Kernel",
            "type": "->"
        },
        {
            "file": "/var/www/clients-api/vendor/laravel/vapor-core/src/Http/Middleware/ServeStaticAssets.php",
            "line": 21,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 180,
            "function": "handle",
            "class": "Laravel\\Vapor\\Http\\Middleware\\ServeStaticAssets",
            "type": "->"
        },
        {
            "file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php",
            "line": 21,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ConvertEmptyStringsToNull.php",
            "line": 31,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest",
            "type": "->"
        },
        {
            "file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 180,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\ConvertEmptyStringsToNull",
            "type": "->"
        },
        {
            "file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php",
            "line": 21,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TrimStrings.php",
            "line": 40,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest",
            "type": "->"
        },
        {
            "file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 180,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\TrimStrings",
            "type": "->"
        },
        {
            "file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ValidatePostSize.php",
            "line": 27,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 180,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\ValidatePostSize",
            "type": "->"
        },
        {
            "file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/PreventRequestsDuringMaintenance.php",
            "line": 86,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 180,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\PreventRequestsDuringMaintenance",
            "type": "->"
        },
        {
            "file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Http/Middleware/HandleCors.php",
            "line": 62,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 180,
            "function": "handle",
            "class": "Illuminate\\Http\\Middleware\\HandleCors",
            "type": "->"
        },
        {
            "file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Http/Middleware/TrustProxies.php",
            "line": 39,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 180,
            "function": "handle",
            "class": "Illuminate\\Http\\Middleware\\TrustProxies",
            "type": "->"
        },
        {
            "file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Http/Middleware/TrustHosts.php",
            "line": 48,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 180,
            "function": "handle",
            "class": "Illuminate\\Http\\Middleware\\TrustHosts",
            "type": "->"
        },
        {
            "file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 116,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php",
            "line": 142,
            "function": "then",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php",
            "line": 111,
            "function": "sendRequestThroughRouter",
            "class": "Illuminate\\Foundation\\Http\\Kernel",
            "type": "->"
        },
        {
            "file": "/var/www/clients-api/vendor/knuckleswtf/scribe/src/Extracting/Strategies/Responses/ResponseCalls.php",
            "line": 299,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Kernel",
            "type": "->"
        },
        {
            "file": "/var/www/clients-api/vendor/knuckleswtf/scribe/src/Extracting/Strategies/Responses/ResponseCalls.php",
            "line": 287,
            "function": "callLaravelOrLumenRoute",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "/var/www/clients-api/vendor/knuckleswtf/scribe/src/Extracting/Strategies/Responses/ResponseCalls.php",
            "line": 89,
            "function": "makeApiCall",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "/var/www/clients-api/vendor/knuckleswtf/scribe/src/Extracting/Strategies/Responses/ResponseCalls.php",
            "line": 45,
            "function": "makeResponseCall",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "/var/www/clients-api/vendor/knuckleswtf/scribe/src/Extracting/Strategies/Responses/ResponseCalls.php",
            "line": 35,
            "function": "makeResponseCallIfConditionsPass",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "/var/www/clients-api/vendor/knuckleswtf/scribe/src/Extracting/Extractor.php",
            "line": 222,
            "function": "__invoke",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "/var/www/clients-api/vendor/knuckleswtf/scribe/src/Extracting/Extractor.php",
            "line": 179,
            "function": "iterateThroughStrategies",
            "class": "Knuckles\\Scribe\\Extracting\\Extractor",
            "type": "->"
        },
        {
            "file": "/var/www/clients-api/vendor/knuckleswtf/scribe/src/Extracting/Extractor.php",
            "line": 116,
            "function": "fetchResponses",
            "class": "Knuckles\\Scribe\\Extracting\\Extractor",
            "type": "->"
        },
        {
            "file": "/var/www/clients-api/vendor/knuckleswtf/scribe/src/GroupedEndpoints/GroupedEndpointsFromApp.php",
            "line": 123,
            "function": "processRoute",
            "class": "Knuckles\\Scribe\\Extracting\\Extractor",
            "type": "->"
        },
        {
            "file": "/var/www/clients-api/vendor/knuckleswtf/scribe/src/GroupedEndpoints/GroupedEndpointsFromApp.php",
            "line": 80,
            "function": "extractEndpointsInfoFromLaravelApp",
            "class": "Knuckles\\Scribe\\GroupedEndpoints\\GroupedEndpointsFromApp",
            "type": "->"
        },
        {
            "file": "/var/www/clients-api/vendor/knuckleswtf/scribe/src/GroupedEndpoints/GroupedEndpointsFromApp.php",
            "line": 56,
            "function": "extractEndpointsInfoAndWriteToDisk",
            "class": "Knuckles\\Scribe\\GroupedEndpoints\\GroupedEndpointsFromApp",
            "type": "->"
        },
        {
            "file": "/var/www/clients-api/vendor/knuckleswtf/scribe/src/Commands/GenerateDocumentation.php",
            "line": 55,
            "function": "get",
            "class": "Knuckles\\Scribe\\GroupedEndpoints\\GroupedEndpointsFromApp",
            "type": "->"
        },
        {
            "file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php",
            "line": 36,
            "function": "handle",
            "class": "Knuckles\\Scribe\\Commands\\GenerateDocumentation",
            "type": "->"
        },
        {
            "file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Container/Util.php",
            "line": 41,
            "function": "Illuminate\\Container\\{closure}",
            "class": "Illuminate\\Container\\BoundMethod",
            "type": "::"
        },
        {
            "file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php",
            "line": 93,
            "function": "unwrapIfClosure",
            "class": "Illuminate\\Container\\Util",
            "type": "::"
        },
        {
            "file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php",
            "line": 37,
            "function": "callBoundMethod",
            "class": "Illuminate\\Container\\BoundMethod",
            "type": "::"
        },
        {
            "file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Container/Container.php",
            "line": 651,
            "function": "call",
            "class": "Illuminate\\Container\\BoundMethod",
            "type": "::"
        },
        {
            "file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Console/Command.php",
            "line": 136,
            "function": "call",
            "class": "Illuminate\\Container\\Container",
            "type": "->"
        },
        {
            "file": "/var/www/clients-api/vendor/symfony/console/Command/Command.php",
            "line": 308,
            "function": "execute",
            "class": "Illuminate\\Console\\Command",
            "type": "->"
        },
        {
            "file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Console/Command.php",
            "line": 121,
            "function": "run",
            "class": "Symfony\\Component\\Console\\Command\\Command",
            "type": "->"
        },
        {
            "file": "/var/www/clients-api/vendor/symfony/console/Application.php",
            "line": 998,
            "function": "run",
            "class": "Illuminate\\Console\\Command",
            "type": "->"
        },
        {
            "file": "/var/www/clients-api/vendor/symfony/console/Application.php",
            "line": 299,
            "function": "doRunCommand",
            "class": "Symfony\\Component\\Console\\Application",
            "type": "->"
        },
        {
            "file": "/var/www/clients-api/vendor/symfony/console/Application.php",
            "line": 171,
            "function": "doRun",
            "class": "Symfony\\Component\\Console\\Application",
            "type": "->"
        },
        {
            "file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Console/Application.php",
            "line": 102,
            "function": "run",
            "class": "Symfony\\Component\\Console\\Application",
            "type": "->"
        },
        {
            "file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php",
            "line": 129,
            "function": "run",
            "class": "Illuminate\\Console\\Application",
            "type": "->"
        },
        {
            "file": "/var/www/clients-api/artisan",
            "line": 37,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Console\\Kernel",
            "type": "->"
        }
    ]
}
 

Request   

GET api/v2/users/{id}

URL Parameters

id  string  

The ID of the user.

Query Parameters

v  string  

Api Version

User Notifications List.

requires authentication

Example request:
curl --request GET \
    --get "clients-api.dots.live/api/v2/users/enim/notifications?v=2.0.0" \
    --header "Api-Auth-Token: {{YOUR_API_AUTH_TOKEN}}" \
    --header "Api-Token: {{YOUR_API_TOKEN}}" \
    --header "Api-Account-Token: {{YOUR_ACCOUNT_TOKEN}}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'clients-api.dots.live/api/v2/users/enim/notifications',
    [
        'headers' => [
            'Api-Auth-Token' => '{{YOUR_API_AUTH_TOKEN}}',
            'Api-Token' => '{{YOUR_API_TOKEN}}',
            'Api-Account-Token' => '{{YOUR_ACCOUNT_TOKEN}}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'query' => [
            'v'=> '2.0.0',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
 "hasNext": false,
 "items": [{
  "id" => "UUID",
  "title" => "Вам нараховано кешбек.",
  "text" => "Вам успішно нараховано кешбек у розмірі 30.00. Дякуємо за замовлення",
  "image" => null,
  "sent_at" => 1604918827,
  "read" => true,
  "pushNotificationActionData" => {
    "params" => {
      "cityId" => "UUID",
      "orderId" => "UUID",
      "fallback_screen" => "order-details-info",
    },
    "screen" => "active-orders"
  },
 }]
}
 

Request   

GET api/v2/users/{user}/notifications

URL Parameters

user  string  

Query Parameters

v  string  

Api Version

User Addresses List By City.

requires authentication

Example request:
curl --request GET \
    --get "clients-api.dots.live/api/v2/users/molestiae/addresses/by-city/corporis?v=2.0.0" \
    --header "Api-Auth-Token: {{YOUR_API_AUTH_TOKEN}}" \
    --header "Api-Token: {{YOUR_API_TOKEN}}" \
    --header "Api-Account-Token: {{YOUR_ACCOUNT_TOKEN}}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'clients-api.dots.live/api/v2/users/molestiae/addresses/by-city/corporis',
    [
        'headers' => [
            'Api-Auth-Token' => '{{YOUR_API_AUTH_TOKEN}}',
            'Api-Token' => '{{YOUR_API_TOKEN}}',
            'Api-Account-Token' => '{{YOUR_ACCOUNT_TOKEN}}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'query' => [
            'v'=> '2.0.0',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
 "hasNext": false,
 "items": [{
  "id" => "UUID",
  "userId" => "UUID",
  "cityId" => "UUID",
  "type" => 0,
  "street" => "Shevchenko",
  "house" => "99b",
  "flat" => "1",
  "stage" => "5",
  "title" => "Home",
  "note" => "Near hotel",
  "position" => {
    "latitude" => 51.4,
    "longitude" => 31.4
  },
  "inCityPolygon" => true
 }]
}
 

Request   

GET api/v2/users/{user}/addresses/by-city/{city}

URL Parameters

user  string  

city  string  

Query Parameters

v  string  

Api Version

Update User City.

requires authentication

Update users city id: used when user selects another city.

Example request:
curl --request PATCH \
    "clients-api.dots.live/api/v2/users/molestiae/city?v=2.0.0" \
    --header "Api-Auth-Token: {{YOUR_API_AUTH_TOKEN}}" \
    --header "Api-Token: {{YOUR_API_TOKEN}}" \
    --header "Api-Account-Token: {{YOUR_ACCOUNT_TOKEN}}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
$client = new \GuzzleHttp\Client();
$response = $client->patch(
    'clients-api.dots.live/api/v2/users/molestiae/city',
    [
        'headers' => [
            'Api-Auth-Token' => '{{YOUR_API_AUTH_TOKEN}}',
            'Api-Token' => '{{YOUR_API_TOKEN}}',
            'Api-Account-Token' => '{{YOUR_ACCOUNT_TOKEN}}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'query' => [
            'v'=> '2.0.0',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request   

PATCH api/v2/users/{user_id}/city

URL Parameters

user_id  string  

The ID of the user.

Query Parameters

v  string  

Api Version

User state.

requires authentication

Example request:
curl --request GET \
    --get "clients-api.dots.live/api/v2/users/nemo/state?v=2.0.0" \
    --header "Api-Auth-Token: {{YOUR_API_AUTH_TOKEN}}" \
    --header "Api-Token: {{YOUR_API_TOKEN}}" \
    --header "Api-Account-Token: {{YOUR_ACCOUNT_TOKEN}}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'clients-api.dots.live/api/v2/users/nemo/state',
    [
        'headers' => [
            'Api-Auth-Token' => '{{YOUR_API_AUTH_TOKEN}}',
            'Api-Token' => '{{YOUR_API_TOKEN}}',
            'Api-Account-Token' => '{{YOUR_ACCOUNT_TOKEN}}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'query' => [
            'v'=> '2.0.0',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
  "unreadNotificationsCount" => 0,
  "actualOrdersCount" => 0,
}
 

Request   

GET api/v2/users/{user}/state

URL Parameters

user  string  

Query Parameters

v  string  

Api Version

User Cashback info.

requires authentication

Returns user available balance and info text.

Example request:
curl --request GET \
    --get "clients-api.dots.live/api/v2/users/ex/cashback-info?v=2.0.0" \
    --header "Api-Auth-Token: {{YOUR_API_AUTH_TOKEN}}" \
    --header "Api-Token: {{YOUR_API_TOKEN}}" \
    --header "Api-Account-Token: {{YOUR_ACCOUNT_TOKEN}}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'clients-api.dots.live/api/v2/users/ex/cashback-info',
    [
        'headers' => [
            'Api-Auth-Token' => '{{YOUR_API_AUTH_TOKEN}}',
            'Api-Token' => '{{YOUR_API_TOKEN}}',
            'Api-Account-Token' => '{{YOUR_ACCOUNT_TOKEN}}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'query' => [
            'v'=> '2.0.0',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "availableBalance" => 95.0
    "infoText" => """
        Як отримати кешбек?\n
        \n
        \n
        Зроби замовлення через сайт чи мобільний додаток. Через 30 хв. після успішного замовлення ми нарахуємо кешбек. Сумма кешбеку становить 1% від  чеку, без урахування доставки.\n
        \n
        \n
        Як скористатися кешбеком?\n
        \n
        \n
        Використати бонуси можна тільки через додаток. При оформленні замовлення введи всі свої дані для доставки та активуй кешбек. Мінімальна сума для списання бонусів – 50 грн.\n
        \n
        \n
        У разі, якщо ти використав кешбек для оплати замовлення, а воно було неуспішним, кешбек повертається на рахунок. Якщо сума кешбеку не відображається, онови додаток до останньої версії.\n
        \n
        \n
        Кешбек не нараховується:\n
        \n
        якщо замовляння було зроблене по телефону;\n
        \n
        якщо замовлення було неуспішним;\n
        \n
        на суму знижок за акціями та промо-кодами;\n
        \n
        на вартість доставки.
    """,
    "rateText" => "1 bonus = 1 :currency",
    "transactions" => [
        {
             "title" => "06.05.2021 - New York Street Pizza",
             "amount" => 44.37,
             "orderId" => "3339",
         },
     ],
}
 

Request   

GET api/v2/users/{user}/cashback-info

URL Parameters

user  string  

Query Parameters

v  string  

Api Version

Users Statistics By Phone.

requires authentication

Requires permission: users-index. This endpoint usually used to show user's statics for operator(call center).

Example request:
curl --request GET \
    --get "clients-api.dots.live/api/v2/users/statistics-by-phone?phone=380631837252&v=2.0.0" \
    --header "Api-Auth-Token: {{YOUR_API_AUTH_TOKEN}}" \
    --header "Api-Token: {{YOUR_API_TOKEN}}" \
    --header "Api-Account-Token: {{YOUR_ACCOUNT_TOKEN}}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'clients-api.dots.live/api/v2/users/statistics-by-phone',
    [
        'headers' => [
            'Api-Auth-Token' => '{{YOUR_API_AUTH_TOKEN}}',
            'Api-Token' => '{{YOUR_API_TOKEN}}',
            'Api-Account-Token' => '{{YOUR_ACCOUNT_TOKEN}}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'query' => [
            'phone'=> '380631837252',
            'v'=> '2.0.0',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200, Success Example):


{
    "user": {
        "id": "85f65390-001e-11ec-b62f-91e4f52e2402",
        "cashbackAvailableBalance": 200,
        "phone": "380631837250",
        "lang": "ua",
        "name": "Yehor Herasymchuk",
        "cityName": "Chernihiv",
        "about": "Dots Platform CTO / Likes spicy chicken. "
    },
    "orders": [
        {
            "id": "06f1efa3-fcd1-4252-a228-55e32456dfea",
            "status": 1,
            "deliveryType": 4,
            "fullPrice": 100.5,
            "company": {
                "id": "631da261-93f8-4e05-b3b0-9f374dc0f261",
                "name": "Hochu Pizza",
                "urlPath": "/en/chernihiv/hochu-pizza"
            },
            "createdTime": 1652953170,
            "completedTime": null,
            "deadlineTime": 1652960400
        }
    ],
    "userAddresses": [
        {
            "id": "e278317b-dd17-4d0c-a3bf-ed3e8935e8be",
            "cityId": "f688da6b-5521-11eb-9cdd-f23c92a7f68e",
            "userId": "85f65390-001e-11ec-b62f-91e4f52e2402",
            "type": 0,
            "position": {
                "latitude": 51.49667,
                "longitude": 31.29202
            },
            "inCityPolygon": true,
            "street": "Проспект Миру 41а кв. 18",
            "house": null,
            "flat": null,
            "stage": null,
            "note": null,
            "title": null
        },
        {
            "id": "39f85c1f-58c1-48ee-8b0a-dd17551d029f",
            "cityId": "f688da6b-5521-11eb-9cdd-f23c92a7f68e",
            "userId": "85f65390-001e-11ec-b62f-91e4f52e2402",
            "type": 0,
            "position": {
                "latitude": 51.4938,
                "longitude": 31.30932
            },
            "inCityPolygon": true,
            "street": "Вулиця Пушкіна 12",
            "house": null,
            "flat": null,
            "stage": null,
            "note": null,
            "title": null
        }
    ]
}
 

Request   

GET api/v2/users/statistics-by-phone

Query Parameters

phone  string optional  

User phone.

v  string  

Api Version

WebPages

Account Main Page Site Blocks data.

Example request:
curl --request GET \
    --get "clients-api.dots.live/api/v2/pages/main/site-blocks?v=2.0.0" \
    --header "Api-Token: {{YOUR_API_TOKEN}}" \
    --header "Api-Account-Token: {{YOUR_ACCOUNT_TOKEN}}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'clients-api.dots.live/api/v2/pages/main/site-blocks',
    [
        'headers' => [
            'Api-Token' => '{{YOUR_API_TOKEN}}',
            'Api-Account-Token' => '{{YOUR_ACCOUNT_TOKEN}}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'query' => [
            'v'=> '2.0.0',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
access-control-expose-headers: *
 

{
    "items": [],
    "hasNext": false
}
 

Request   

GET api/v2/pages/main/site-blocks

Query Parameters

v  string  

Api Version

Page Data By Url.

Example request:
curl --request GET \
    --get "clients-api.dots.live/api/v2/pages/by-url?v=2.0.0" \
    --header "Api-Token: {{YOUR_API_TOKEN}}" \
    --header "Api-Account-Token: {{YOUR_ACCOUNT_TOKEN}}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'clients-api.dots.live/api/v2/pages/by-url',
    [
        'headers' => [
            'Api-Token' => '{{YOUR_API_TOKEN}}',
            'Api-Account-Token' => '{{YOUR_ACCOUNT_TOKEN}}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'query' => [
            'v'=> '2.0.0',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200, Company Item):


{
    "url": "/chernigov/peperoni-release-a/soft-drinks/koka-kola",
    "type": "company-item",
    "lang": "ua",
    "entities": {
        "cityId": "f688da6b-5521-11eb-9cdd-f23c92a7f68e",
        "cityCategoryId": null,
        "companyId": "f7abed3b-5521-11eb-9cdd-f23c92a7f68e",
        "companyCategoryId": "f937434a-5521-11eb-9cdd-f23c92a7f68e",
        "itemId": "68739ed3-5522-11eb-9cdd-f23c92a7f68e"
    },
    "redirect": null
}
 

Example response (200, Redirect for old company item):


{
    "url": "/en/chernigov/peperoni-release-a/koka-kola",
    "type": "company-item-old",
    "lang": "ua",
    "entities": {
        "cityId": "f688da6b-5521-11eb-9cdd-f23c92a7f68e",
        "cityCategoryId": null,
        "companyId": "f7abed3b-5521-11eb-9cdd-f23c92a7f68e",
        "companyCategoryId": null,
        "itemId": "68739ed3-5522-11eb-9cdd-f23c92a7f68e"
    },
    "redirect": {
        "code": 301,
        "url": "/chernigov/peperoni-release-a/soft-drinks/koka-kola"
    }
}
 

Request   

GET api/v2/pages/by-url

Query Parameters

v  string  

Api Version

Page Seo.

Available Page Types:

main
city
city-promotions
city-promotions-category
city-category
company
company-info
company-promotions
company-delivery
company-reviews
company-category
company-item
cart-index
cart-checkout
cart-success

Example request:
curl --request GET \
    --get "clients-api.dots.live/api/v2/pages/main/seo?url=%2Fkyiv%2Fcelentano&v=2.0.0" \
    --header "Api-Token: {{YOUR_API_TOKEN}}" \
    --header "Api-Account-Token: {{YOUR_ACCOUNT_TOKEN}}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'clients-api.dots.live/api/v2/pages/main/seo',
    [
        'headers' => [
            'Api-Token' => '{{YOUR_API_TOKEN}}',
            'Api-Account-Token' => '{{YOUR_ACCOUNT_TOKEN}}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'query' => [
            'url'=> '/kyiv/celentano',
            'v'=> '2.0.0',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "pageType": "main",
    "seo": {
        "title": "Jack's Burger Bar - Food order and delivery service",
        "ogTitle": "Jack's Burger Bar - Food order and delivery service",
        "description": "Food order and delivery service",
        "ogDescription": "Food order and delivery service",
        "ogImage": "https://via.placeholder.com/640x480.png/0077bb?text=alias.png",
        "ogUrl": "/",
        "ogSiteName": "Jack's Burger Bar"
    }
}
 

Request   

GET api/v2/pages/{pageType}/seo

URL Parameters

pageType  string optional  

Must be withing Available Page Types.

Query Parameters

url  string  

Entity url.

v  string  

Api Version

Account Cashback Page data.

Example request:
curl --request GET \
    --get "clients-api.dots.live/api/v2/pages/cashback?v=2.0.0" \
    --header "Api-Token: {{YOUR_API_TOKEN}}" \
    --header "Api-Account-Token: {{YOUR_ACCOUNT_TOKEN}}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'clients-api.dots.live/api/v2/pages/cashback',
    [
        'headers' => [
            'Api-Token' => '{{YOUR_API_TOKEN}}',
            'Api-Account-Token' => '{{YOUR_ACCOUNT_TOKEN}}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'query' => [
            'v'=> '2.0.0',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (404):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
access-control-expose-headers: *
 

{
    "message": "",
    "exception": "Symfony\\Component\\HttpKernel\\Exception\\NotFoundHttpException",
    "file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Foundation/Application.php",
    "line": 1143,
    "trace": [
        {
            "file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Foundation/helpers.php",
            "line": 44,
            "function": "abort",
            "class": "Illuminate\\Foundation\\Application",
            "type": "->"
        },
        {
            "file": "/var/www/clients-api/app/Http/Controllers/Api/Pages/CashbackPageSiteBlockController.php",
            "line": 32,
            "function": "abort"
        },
        {
            "file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Routing/Controller.php",
            "line": 54,
            "function": "__invoke",
            "class": "App\\Http\\Controllers\\Api\\Pages\\CashbackPageSiteBlockController",
            "type": "->"
        },
        {
            "file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php",
            "line": 45,
            "function": "callAction",
            "class": "Illuminate\\Routing\\Controller",
            "type": "->"
        },
        {
            "file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Routing/Route.php",
            "line": 268,
            "function": "dispatch",
            "class": "Illuminate\\Routing\\ControllerDispatcher",
            "type": "->"
        },
        {
            "file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Routing/Route.php",
            "line": 211,
            "function": "runController",
            "class": "Illuminate\\Routing\\Route",
            "type": "->"
        },
        {
            "file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Routing/Router.php",
            "line": 725,
            "function": "run",
            "class": "Illuminate\\Routing\\Route",
            "type": "->"
        },
        {
            "file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 141,
            "function": "Illuminate\\Routing\\{closure}",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "/var/www/clients-api/app/Http/Middleware/Headers/VerifyAppTokenHeader.php",
            "line": 30,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 180,
            "function": "handle",
            "class": "App\\Http\\Middleware\\Headers\\VerifyAppTokenHeader",
            "type": "->"
        },
        {
            "file": "/var/www/clients-api/app/Http/Middleware/Headers/VerifyAccountTokenHeader.php",
            "line": 38,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 180,
            "function": "handle",
            "class": "App\\Http\\Middleware\\Headers\\VerifyAccountTokenHeader",
            "type": "->"
        },
        {
            "file": "/var/www/clients-api/app/Http/Middleware/StoreUserApiVersion.php",
            "line": 44,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 180,
            "function": "handle",
            "class": "App\\Http\\Middleware\\StoreUserApiVersion",
            "type": "->"
        },
        {
            "file": "/var/www/clients-api/app/Http/Middleware/RestrictUnsupportedApiVersion.php",
            "line": 34,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 180,
            "function": "handle",
            "class": "App\\Http\\Middleware\\RestrictUnsupportedApiVersion",
            "type": "->"
        },
        {
            "file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 116,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Routing/Router.php",
            "line": 726,
            "function": "then",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Routing/Router.php",
            "line": 703,
            "function": "runRouteWithinStack",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Routing/Router.php",
            "line": 667,
            "function": "runRoute",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Routing/Router.php",
            "line": 656,
            "function": "dispatchToRoute",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php",
            "line": 167,
            "function": "dispatch",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 141,
            "function": "Illuminate\\Foundation\\Http\\{closure}",
            "class": "Illuminate\\Foundation\\Http\\Kernel",
            "type": "->"
        },
        {
            "file": "/var/www/clients-api/vendor/laravel/vapor-core/src/Http/Middleware/ServeStaticAssets.php",
            "line": 21,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 180,
            "function": "handle",
            "class": "Laravel\\Vapor\\Http\\Middleware\\ServeStaticAssets",
            "type": "->"
        },
        {
            "file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php",
            "line": 21,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ConvertEmptyStringsToNull.php",
            "line": 31,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest",
            "type": "->"
        },
        {
            "file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 180,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\ConvertEmptyStringsToNull",
            "type": "->"
        },
        {
            "file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php",
            "line": 21,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TrimStrings.php",
            "line": 40,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest",
            "type": "->"
        },
        {
            "file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 180,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\TrimStrings",
            "type": "->"
        },
        {
            "file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ValidatePostSize.php",
            "line": 27,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 180,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\ValidatePostSize",
            "type": "->"
        },
        {
            "file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/PreventRequestsDuringMaintenance.php",
            "line": 86,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 180,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\PreventRequestsDuringMaintenance",
            "type": "->"
        },
        {
            "file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Http/Middleware/HandleCors.php",
            "line": 62,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 180,
            "function": "handle",
            "class": "Illuminate\\Http\\Middleware\\HandleCors",
            "type": "->"
        },
        {
            "file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Http/Middleware/TrustProxies.php",
            "line": 39,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 180,
            "function": "handle",
            "class": "Illuminate\\Http\\Middleware\\TrustProxies",
            "type": "->"
        },
        {
            "file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Http/Middleware/TrustHosts.php",
            "line": 48,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 180,
            "function": "handle",
            "class": "Illuminate\\Http\\Middleware\\TrustHosts",
            "type": "->"
        },
        {
            "file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 116,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php",
            "line": 142,
            "function": "then",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php",
            "line": 111,
            "function": "sendRequestThroughRouter",
            "class": "Illuminate\\Foundation\\Http\\Kernel",
            "type": "->"
        },
        {
            "file": "/var/www/clients-api/vendor/knuckleswtf/scribe/src/Extracting/Strategies/Responses/ResponseCalls.php",
            "line": 299,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Kernel",
            "type": "->"
        },
        {
            "file": "/var/www/clients-api/vendor/knuckleswtf/scribe/src/Extracting/Strategies/Responses/ResponseCalls.php",
            "line": 287,
            "function": "callLaravelOrLumenRoute",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "/var/www/clients-api/vendor/knuckleswtf/scribe/src/Extracting/Strategies/Responses/ResponseCalls.php",
            "line": 89,
            "function": "makeApiCall",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "/var/www/clients-api/vendor/knuckleswtf/scribe/src/Extracting/Strategies/Responses/ResponseCalls.php",
            "line": 45,
            "function": "makeResponseCall",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "/var/www/clients-api/vendor/knuckleswtf/scribe/src/Extracting/Strategies/Responses/ResponseCalls.php",
            "line": 35,
            "function": "makeResponseCallIfConditionsPass",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "/var/www/clients-api/vendor/knuckleswtf/scribe/src/Extracting/Extractor.php",
            "line": 222,
            "function": "__invoke",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "/var/www/clients-api/vendor/knuckleswtf/scribe/src/Extracting/Extractor.php",
            "line": 179,
            "function": "iterateThroughStrategies",
            "class": "Knuckles\\Scribe\\Extracting\\Extractor",
            "type": "->"
        },
        {
            "file": "/var/www/clients-api/vendor/knuckleswtf/scribe/src/Extracting/Extractor.php",
            "line": 116,
            "function": "fetchResponses",
            "class": "Knuckles\\Scribe\\Extracting\\Extractor",
            "type": "->"
        },
        {
            "file": "/var/www/clients-api/vendor/knuckleswtf/scribe/src/GroupedEndpoints/GroupedEndpointsFromApp.php",
            "line": 123,
            "function": "processRoute",
            "class": "Knuckles\\Scribe\\Extracting\\Extractor",
            "type": "->"
        },
        {
            "file": "/var/www/clients-api/vendor/knuckleswtf/scribe/src/GroupedEndpoints/GroupedEndpointsFromApp.php",
            "line": 80,
            "function": "extractEndpointsInfoFromLaravelApp",
            "class": "Knuckles\\Scribe\\GroupedEndpoints\\GroupedEndpointsFromApp",
            "type": "->"
        },
        {
            "file": "/var/www/clients-api/vendor/knuckleswtf/scribe/src/GroupedEndpoints/GroupedEndpointsFromApp.php",
            "line": 56,
            "function": "extractEndpointsInfoAndWriteToDisk",
            "class": "Knuckles\\Scribe\\GroupedEndpoints\\GroupedEndpointsFromApp",
            "type": "->"
        },
        {
            "file": "/var/www/clients-api/vendor/knuckleswtf/scribe/src/Commands/GenerateDocumentation.php",
            "line": 55,
            "function": "get",
            "class": "Knuckles\\Scribe\\GroupedEndpoints\\GroupedEndpointsFromApp",
            "type": "->"
        },
        {
            "file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php",
            "line": 36,
            "function": "handle",
            "class": "Knuckles\\Scribe\\Commands\\GenerateDocumentation",
            "type": "->"
        },
        {
            "file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Container/Util.php",
            "line": 41,
            "function": "Illuminate\\Container\\{closure}",
            "class": "Illuminate\\Container\\BoundMethod",
            "type": "::"
        },
        {
            "file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php",
            "line": 93,
            "function": "unwrapIfClosure",
            "class": "Illuminate\\Container\\Util",
            "type": "::"
        },
        {
            "file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php",
            "line": 37,
            "function": "callBoundMethod",
            "class": "Illuminate\\Container\\BoundMethod",
            "type": "::"
        },
        {
            "file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Container/Container.php",
            "line": 651,
            "function": "call",
            "class": "Illuminate\\Container\\BoundMethod",
            "type": "::"
        },
        {
            "file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Console/Command.php",
            "line": 136,
            "function": "call",
            "class": "Illuminate\\Container\\Container",
            "type": "->"
        },
        {
            "file": "/var/www/clients-api/vendor/symfony/console/Command/Command.php",
            "line": 308,
            "function": "execute",
            "class": "Illuminate\\Console\\Command",
            "type": "->"
        },
        {
            "file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Console/Command.php",
            "line": 121,
            "function": "run",
            "class": "Symfony\\Component\\Console\\Command\\Command",
            "type": "->"
        },
        {
            "file": "/var/www/clients-api/vendor/symfony/console/Application.php",
            "line": 998,
            "function": "run",
            "class": "Illuminate\\Console\\Command",
            "type": "->"
        },
        {
            "file": "/var/www/clients-api/vendor/symfony/console/Application.php",
            "line": 299,
            "function": "doRunCommand",
            "class": "Symfony\\Component\\Console\\Application",
            "type": "->"
        },
        {
            "file": "/var/www/clients-api/vendor/symfony/console/Application.php",
            "line": 171,
            "function": "doRun",
            "class": "Symfony\\Component\\Console\\Application",
            "type": "->"
        },
        {
            "file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Console/Application.php",
            "line": 102,
            "function": "run",
            "class": "Symfony\\Component\\Console\\Application",
            "type": "->"
        },
        {
            "file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php",
            "line": 129,
            "function": "run",
            "class": "Illuminate\\Console\\Application",
            "type": "->"
        },
        {
            "file": "/var/www/clients-api/artisan",
            "line": 37,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Console\\Kernel",
            "type": "->"
        }
    ]
}
 

Request   

GET api/v2/pages/cashback

Query Parameters

v  string  

Api Version